; LLVM IR from aws/s2n-tls :: tests/unit (s2n_signature_algorithms_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_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_signature_scheme = type { i16, ptr, i32, i32, i8, i8, i16, ptr }
%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_local_sig_schemes_context = type { %struct.s2n_security_policy, %struct.s2n_signature_preferences }
%struct.s2n_test_io_pair = type { i32, i32 }
%struct.s2n_ecc_preferences = type { i8, ptr }
%struct.s2n_config = type { i32, ptr, ptr, %struct.certs_by_type, %struct.s2n_blob, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i64, ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, i32, i8, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, %struct.s2n_x509_trust_store, i16, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, ptr, i32, i32, ptr, ptr, i32, %struct.s2n_blob }
%struct.certs_by_type = type { [4 x ptr] }
%struct.s2n_x509_trust_store = type { ptr, 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_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x i8] }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon.0 }
%union.anon.0 = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }

@s2n_use_color_in_output = external dso_local global i8, align 1
@s2n_ecc_curve_secp384r1 = external constant %struct.s2n_ecc_named_curve, align 8
@s2n_test_tls13_ecdsa_sha384 = external dso_local constant %struct.s2n_signature_scheme, align 8
@s2n_rsa_pkcs1_sha256 = external constant %struct.s2n_signature_scheme, align 8
@s2n_rsa_pkcs1_sha224 = external constant %struct.s2n_signature_scheme, align 8
@s2n_rsa_pkcs1_sha1 = external constant %struct.s2n_signature_scheme, align 8
@s2n_ecdsa_sha1 = external constant %struct.s2n_signature_scheme, align 8
@s2n_ecdsa_sha256 = external constant %struct.s2n_signature_scheme, align 8
@test_signature_schemes = external dso_local constant [6 x ptr], align 16
@test_preferences = external dso_local constant %struct.s2n_signature_preferences, align 8
@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 [88 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 [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [201 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [106 x i8], align 1
@s2n_ecdsa_sha384 = external constant %struct.s2n_signature_scheme, align 8
@s2n_rsa_pss_rsae_sha256 = external constant %struct.s2n_signature_scheme, align 8
@s2n_rsa_pss_pss_sha256 = external constant %struct.s2n_signature_scheme, align 8
@__const.main.test_schemes = external hidden unnamed_addr constant [4 x ptr], align 16
@.str.30 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [171 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [78 x i8], align 1
@s2n_rsa_pkcs1_md5_sha1 = external constant %struct.s2n_signature_scheme, align 8
@.str.36 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [75 x i8], align 1
@s2n_ecdhe_ecdsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.38 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [78 x i8], align 1
@s2n_ecdhe_rsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.40 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [121 x i8], align 1
@__const.main.order = external hidden unnamed_addr constant [3 x ptr], align 16
@__const.main.reversed_order = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.42 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [177 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [154 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [84 x i8], align 1
@s2n_ecdsa_sha224 = external constant %struct.s2n_signature_scheme, align 8
@.str.48 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [120 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.50 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [171 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [175 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [84 x i8], align 1
@s2n_ecdsa_sha512 = external constant %struct.s2n_signature_scheme, align 8
@s2n_rsa_pss_rsae_sha384 = external constant %struct.s2n_signature_scheme, align 8
@.str.67 = external hidden unnamed_addr constant [184 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [82 x i8], align 1
@__const.main.test_schemes.81 = external hidden unnamed_addr constant [4 x ptr], align 16
@__const.main.supported_schemes = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.82 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [39 x i8], align 1
@__const.main.pss_test_signature_schemes = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.92 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [91 x i8], align 1
@__const.main.schemes = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.99 = external hidden unnamed_addr constant [91 x i8], align 1
@__const.main.peer_schemes = external hidden unnamed_addr constant [1 x ptr], align 8
@__const.main.local_schemes = external hidden unnamed_addr constant [3 x ptr], align 16
@__const.main.default_schemes = external hidden unnamed_addr constant [2 x ptr], align 16
@__const.main.sha256_schemes = external hidden unnamed_addr constant [2 x ptr], align 16
@__const.main.sha384_schemes = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.100 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [129 x i8], align 1
@security_policy_20190214 = external constant %struct.s2n_security_policy, align 8
@.str.102 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [97 x i8], align 1
@s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@__const.main.cipher_prefs = external hidden unnamed_addr constant %struct.s2n_cipher_preferences, align 8
@__const.main.sig_schemes = external hidden unnamed_addr constant [3 x ptr], align 16
@s2n_ecc_curve_secp521r1 = external constant %struct.s2n_ecc_named_curve, align 8
@__const.main.curves = external hidden unnamed_addr constant [2 x ptr], align 16
@security_policy_20230317 = external constant %struct.s2n_security_policy, align 8
@.str.120 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.138 = 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 ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca [2 x ptr], align 16
  %15 = alloca %struct.s2n_security_policy, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca %struct.s2n_stuffer, align 8
  %19 = alloca i32, align 4
  %20 = alloca %struct.s2n_result, align 4
  %21 = alloca i32, align 4
  %22 = alloca i16, align 2
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i64, align 8
  %26 = alloca i16, align 2
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %struct.s2n_result, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca %struct.s2n_stuffer, align 8
  %34 = alloca i32, align 4
  %35 = alloca %struct.s2n_result, align 4
  %36 = alloca i32, align 4
  %37 = alloca i16, align 2
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i64, align 8
  %41 = alloca i16, align 2
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca %struct.s2n_result, align 4
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca %struct.s2n_stuffer, align 8
  %49 = alloca i32, align 4
  %50 = alloca %struct.s2n_result, align 4
  %51 = alloca i32, align 4
  %52 = alloca %struct.s2n_sig_scheme_list, align 2
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i64, align 8
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca %struct.s2n_result, align 4
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca %struct.s2n_stuffer, align 8
  %63 = alloca i32, align 4
  %64 = alloca %struct.s2n_result, align 4
  %65 = alloca i32, align 4
  %66 = alloca i16, align 2
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i64, align 8
  %70 = alloca i16, align 2
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca %struct.s2n_result, align 4
  %75 = alloca ptr, align 8
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca ptr, align 8
  %79 = alloca i32, align 4
  %80 = alloca ptr, align 8
  %81 = alloca i32, align 4
  %82 = alloca ptr, align 8
  %83 = alloca ptr, align 8
  %84 = alloca [4 x ptr], align 16
  %85 = alloca ptr, align 8
  %86 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %87 = alloca %struct.s2n_result, align 4
  %88 = alloca i32, align 4
  %89 = alloca %struct.s2n_result, align 4
  %90 = alloca i32, align 4
  %91 = alloca ptr, align 8
  %92 = alloca i32, align 4
  %93 = alloca %struct.s2n_result, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca %struct.s2n_result, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca ptr, align 8
  %100 = alloca i32, align 4
  %101 = alloca %struct.s2n_result, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca %struct.s2n_result, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca %struct.s2n_result, align 4
  %108 = alloca ptr, align 8
  %109 = alloca i32, align 4
  %110 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %111 = alloca %struct.s2n_result, align 4
  %112 = alloca i32, align 4
  %113 = alloca %struct.s2n_result, align 4
  %114 = alloca i32, align 4
  %115 = alloca ptr, align 8
  %116 = alloca %struct.s2n_result, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca %struct.s2n_result, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca ptr, align 8
  %123 = alloca %struct.s2n_result, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca %struct.s2n_result, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca %struct.s2n_result, align 4
  %130 = alloca ptr, align 8
  %131 = alloca ptr, align 8
  %132 = alloca i32, align 4
  %133 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %134 = alloca %struct.s2n_result, align 4
  %135 = alloca i32, align 4
  %136 = alloca %struct.s2n_result, align 4
  %137 = alloca i32, align 4
  %138 = alloca %struct.s2n_result, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca %struct.s2n_result, align 4
  %142 = alloca ptr, align 8
  %143 = alloca ptr, align 8
  %144 = alloca i32, align 4
  %145 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %146 = alloca %struct.s2n_result, align 4
  %147 = alloca i32, align 4
  %148 = alloca %struct.s2n_result, align 4
  %149 = alloca i32, align 4
  %150 = alloca %struct.s2n_result, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca %struct.s2n_result, align 4
  %154 = alloca [3 x ptr], align 16
  %155 = alloca [3 x ptr], align 16
  %156 = alloca ptr, align 8
  %157 = alloca i32, align 4
  %158 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %159 = alloca %struct.s2n_result, align 4
  %160 = alloca i32, align 4
  %161 = alloca %struct.s2n_result, align 4
  %162 = alloca i32, align 4
  %163 = alloca %struct.s2n_result, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca %struct.s2n_result, align 4
  %167 = alloca i32, align 4
  %168 = alloca %struct.s2n_result, align 4
  %169 = alloca i32, align 4
  %170 = alloca %struct.s2n_result, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca %struct.s2n_result, align 4
  %174 = alloca i32, align 4
  %175 = alloca %struct.s2n_result, align 4
  %176 = alloca i32, align 4
  %177 = alloca %struct.s2n_result, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca %struct.s2n_result, align 4
  %181 = alloca ptr, align 8
  %182 = alloca ptr, align 8
  %183 = alloca i32, align 4
  %184 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %185 = alloca %struct.s2n_result, align 4
  %186 = alloca i32, align 4
  %187 = alloca %struct.s2n_result, align 4
  %188 = alloca i32, align 4
  %189 = alloca %struct.s2n_result, align 4
  %190 = alloca i32, align 4
  %191 = alloca i32, align 4
  %192 = alloca i32, align 4
  %193 = alloca %struct.s2n_result, align 4
  %194 = alloca i32, align 4
  %195 = alloca %struct.s2n_result, align 4
  %196 = alloca ptr, align 8
  %197 = alloca ptr, align 8
  %198 = alloca i32, align 4
  %199 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %200 = alloca %struct.s2n_result, align 4
  %201 = alloca i32, align 4
  %202 = alloca %struct.s2n_result, align 4
  %203 = alloca i32, align 4
  %204 = alloca %struct.s2n_result, align 4
  %205 = alloca i32, align 4
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca %struct.s2n_result, align 4
  %209 = alloca i32, align 4
  %210 = alloca %struct.s2n_result, align 4
  %211 = alloca %struct.s2n_signature_scheme, align 8
  %212 = alloca ptr, align 8
  %213 = alloca ptr, align 8
  %214 = alloca i32, align 4
  %215 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %216 = alloca %struct.s2n_result, align 4
  %217 = alloca i32, align 4
  %218 = alloca %struct.s2n_result, align 4
  %219 = alloca i32, align 4
  %220 = alloca %struct.s2n_result, align 4
  %221 = alloca i32, align 4
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca %struct.s2n_result, align 4
  %225 = alloca i32, align 4
  %226 = alloca %struct.s2n_result, align 4
  %227 = alloca %struct.s2n_signature_scheme, align 8
  %228 = alloca ptr, align 8
  %229 = alloca ptr, align 8
  %230 = alloca i32, align 4
  %231 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %232 = alloca %struct.s2n_result, align 4
  %233 = alloca i32, align 4
  %234 = alloca %struct.s2n_result, align 4
  %235 = alloca i32, align 4
  %236 = alloca %struct.s2n_result, align 4
  %237 = alloca i32, align 4
  %238 = alloca i32, align 4
  %239 = alloca i32, align 4
  %240 = alloca %struct.s2n_result, align 4
  %241 = alloca i32, align 4
  %242 = alloca %struct.s2n_result, align 4
  %243 = alloca ptr, align 8
  %244 = alloca ptr, align 8
  %245 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %246 = alloca %struct.s2n_result, align 4
  %247 = alloca i32, align 4
  %248 = alloca %struct.s2n_result, align 4
  %249 = alloca i32, align 4
  %250 = alloca %struct.s2n_result, align 4
  %251 = alloca i32, align 4
  %252 = alloca i32, align 4
  %253 = alloca i32, align 4
  %254 = alloca i32, align 4
  %255 = alloca %struct.s2n_result, align 4
  %256 = alloca i32, align 4
  %257 = alloca i32, align 4
  %258 = alloca i32, align 4
  %259 = alloca i32, align 4
  %260 = alloca %struct.s2n_result, align 4
  %261 = alloca i32, align 4
  %262 = alloca %struct.s2n_result, align 4
  %263 = alloca ptr, align 8
  %264 = alloca ptr, align 8
  %265 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %266 = alloca %struct.s2n_result, align 4
  %267 = alloca i32, align 4
  %268 = alloca %struct.s2n_result, align 4
  %269 = alloca i32, align 4
  %270 = alloca %struct.s2n_result, align 4
  %271 = alloca i32, align 4
  %272 = alloca i32, align 4
  %273 = alloca i32, align 4
  %274 = alloca i32, align 4
  %275 = alloca %struct.s2n_result, align 4
  %276 = alloca i32, align 4
  %277 = alloca i32, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = alloca %struct.s2n_result, align 4
  %281 = alloca i32, align 4
  %282 = alloca %struct.s2n_result, align 4
  %283 = alloca ptr, align 8
  %284 = alloca ptr, align 8
  %285 = alloca ptr, align 8
  %286 = alloca i32, align 4
  %287 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %288 = alloca %struct.s2n_result, align 4
  %289 = alloca i32, align 4
  %290 = alloca %struct.s2n_result, align 4
  %291 = alloca i32, align 4
  %292 = alloca %struct.s2n_result, align 4
  %293 = alloca i32, align 4
  %294 = alloca i32, align 4
  %295 = alloca i32, align 4
  %296 = alloca %struct.s2n_result, align 4
  %297 = alloca i32, align 4
  %298 = alloca %struct.s2n_result, align 4
  %299 = alloca i32, align 4
  %300 = alloca %struct.s2n_result, align 4
  %301 = alloca i32, align 4
  %302 = alloca %struct.s2n_result, align 4
  %303 = alloca ptr, align 8
  %304 = alloca i32, align 4
  %305 = alloca ptr, align 8
  %306 = alloca [6 x ptr], align 16
  %307 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %308 = alloca %struct.s2n_result, align 4
  %309 = alloca i32, align 4
  %310 = alloca %struct.s2n_result, align 4
  %311 = alloca i32, align 4
  %312 = alloca %struct.s2n_result, align 4
  %313 = alloca i32, align 4
  %314 = alloca i32, align 4
  %315 = alloca %struct.s2n_result, align 4
  %316 = alloca ptr, align 8
  %317 = alloca [1 x ptr], align 8
  %318 = alloca [4 x ptr], align 16
  %319 = alloca ptr, align 8
  %320 = alloca i32, align 4
  %321 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %322 = alloca %struct.s2n_result, align 4
  %323 = alloca i32, align 4
  %324 = alloca %struct.s2n_result, align 4
  %325 = alloca i32, align 4
  %326 = alloca %struct.s2n_result, align 4
  %327 = alloca i32, align 4
  %328 = alloca i32, align 4
  %329 = alloca %struct.s2n_result, align 4
  %330 = alloca ptr, align 8
  %331 = alloca ptr, align 8
  %332 = alloca [4 x ptr], align 16
  %333 = alloca ptr, align 8
  %334 = alloca i32, align 4
  %335 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %336 = alloca %struct.s2n_result, align 4
  %337 = alloca i32, align 4
  %338 = alloca %struct.s2n_result, align 4
  %339 = alloca i32, align 4
  %340 = alloca i32, align 4
  %341 = alloca %struct.s2n_result, align 4
  %342 = alloca i32, align 4
  %343 = alloca i32, align 4
  %344 = alloca %struct.s2n_result, align 4
  %345 = alloca i32, align 4
  %346 = alloca i32, align 4
  %347 = alloca %struct.s2n_result, align 4
  %348 = alloca [5 x ptr], align 16
  %349 = alloca ptr, align 8
  %350 = alloca i32, align 4
  %351 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %352 = alloca %struct.s2n_result, align 4
  %353 = alloca i32, align 4
  %354 = alloca %struct.s2n_result, align 4
  %355 = alloca i32, align 4
  %356 = alloca i32, align 4
  %357 = alloca %struct.s2n_result, align 4
  %358 = alloca i32, align 4
  %359 = alloca i32, align 4
  %360 = alloca %struct.s2n_result, align 4
  %361 = alloca i32, align 4
  %362 = alloca i32, align 4
  %363 = alloca %struct.s2n_result, align 4
  %364 = alloca ptr, align 8
  %365 = alloca [6 x ptr], align 16
  %366 = alloca ptr, align 8
  %367 = alloca i32, align 4
  %368 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %369 = alloca %struct.s2n_result, align 4
  %370 = alloca i32, align 4
  %371 = alloca %struct.s2n_result, align 4
  %372 = alloca i32, align 4
  %373 = alloca i32, align 4
  %374 = alloca %struct.s2n_result, align 4
  %375 = alloca ptr, align 8
  %376 = alloca ptr, align 8
  %377 = alloca ptr, align 8
  %378 = alloca [5 x ptr], align 16
  %379 = alloca [1 x ptr], align 8
  %380 = alloca ptr, align 8
  %381 = alloca i32, align 4
  %382 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %383 = alloca %struct.s2n_result, align 4
  %384 = alloca i32, align 4
  %385 = alloca %struct.s2n_result, align 4
  %386 = alloca i32, align 4
  %387 = alloca %struct.s2n_result, align 4
  %388 = alloca i32, align 4
  %389 = alloca i32, align 4
  %390 = alloca %struct.s2n_result, align 4
  %391 = alloca i32, align 4
  %392 = alloca i32, align 4
  %393 = alloca %struct.s2n_result, align 4
  %394 = alloca [4 x ptr], align 16
  %395 = alloca [3 x ptr], align 16
  %396 = alloca ptr, align 8
  %397 = alloca i32, align 4
  %398 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %399 = alloca %struct.s2n_result, align 4
  %400 = alloca i32, align 4
  %401 = alloca %struct.s2n_result, align 4
  %402 = alloca i32, align 4
  %403 = alloca %struct.s2n_result, align 4
  %404 = alloca i32, align 4
  %405 = alloca i32, align 4
  %406 = alloca %struct.s2n_result, align 4
  %407 = alloca %struct.s2n_result, align 4
  %408 = alloca %struct.s2n_result, align 4
  %409 = alloca %struct.s2n_result, align 4
  %410 = alloca %struct.s2n_security_policy, align 8
  %411 = alloca ptr, align 8
  %412 = alloca %struct.s2n_stuffer, align 8
  %413 = alloca i32, align 4
  %414 = alloca i32, align 4
  %415 = alloca %struct.s2n_result, align 4
  %416 = alloca i32, align 4
  %417 = alloca i32, align 4
  %418 = alloca %struct.s2n_result, align 4
  %419 = alloca ptr, align 8
  %420 = alloca %struct.s2n_stuffer, align 8
  %421 = alloca i32, align 4
  %422 = alloca i32, align 4
  %423 = alloca %struct.s2n_result, align 4
  %424 = alloca i32, align 4
  %425 = alloca i32, align 4
  %426 = alloca %struct.s2n_result, align 4
  %427 = alloca %struct.s2n_stuffer, align 8
  %428 = alloca ptr, align 8
  %429 = alloca %struct.s2n_result, align 4
  %430 = alloca i32, align 4
  %431 = alloca i32, align 4
  %432 = alloca i32, align 4
  %433 = alloca %struct.s2n_result, align 4
  %434 = alloca ptr, align 8
  %435 = alloca %struct.s2n_result, align 4
  %436 = alloca i32, align 4
  %437 = alloca i32, align 4
  %438 = alloca %struct.s2n_result, align 4
  %439 = alloca i32, align 4
  %440 = alloca i32, align 4
  %441 = alloca %struct.s2n_result, align 4
  %442 = alloca ptr, align 8
  %443 = alloca %struct.s2n_result, align 4
  %444 = alloca i32, align 4
  %445 = alloca i32, align 4
  %446 = alloca %struct.s2n_result, align 4
  %447 = alloca i32, align 4
  %448 = alloca i32, align 4
  %449 = alloca %struct.s2n_result, align 4
  %450 = alloca ptr, align 8
  %451 = alloca %struct.s2n_stuffer, align 8
  %452 = alloca i32, align 4
  %453 = alloca [4 x ptr], align 16
  %454 = alloca [1 x ptr], align 8
  %455 = alloca %struct.s2n_security_policy, align 8
  %456 = alloca %struct.s2n_signature_preferences, align 8
  %457 = alloca %struct.s2n_security_policy, align 8
  %458 = alloca %struct.s2n_signature_preferences, align 8
  %459 = alloca i64, align 8
  %460 = alloca i32, align 4
  %461 = alloca %struct.s2n_result, align 4
  %462 = alloca i32, align 4
  %463 = alloca i32, align 4
  %464 = alloca i32, align 4
  %465 = alloca i64, align 8
  %466 = alloca i32, align 4
  %467 = alloca %struct.s2n_result, align 4
  %468 = alloca i32, align 4
  %469 = alloca %struct.s2n_result, align 4
  %470 = alloca ptr, align 8
  %471 = alloca %struct.s2n_stuffer, align 8
  %472 = alloca i32, align 4
  %473 = alloca i32, align 4
  %474 = alloca %struct.s2n_result, align 4
  %475 = alloca i32, align 4
  %476 = alloca i32, align 4
  %477 = alloca i32, align 4
  %478 = alloca %struct.s2n_result, align 4
  %479 = alloca i32, align 4
  %480 = alloca i32, align 4
  %481 = alloca i32, align 4
  %482 = alloca %struct.s2n_result, align 4
  %483 = alloca i16, align 2
  %484 = alloca i16, align 2
  %485 = alloca i32, align 4
  %486 = alloca ptr, align 8
  %487 = alloca i32, align 4
  %488 = alloca %struct.s2n_stuffer, align 8
  %489 = alloca i32, align 4
  %490 = alloca i16, align 2
  %491 = alloca i32, align 4
  %492 = alloca i64, align 8
  %493 = alloca i32, align 4
  %494 = alloca i32, align 4
  %495 = alloca i32, align 4
  %496 = alloca i32, align 4
  %497 = alloca i32, align 4
  %498 = alloca i32, align 4
  %499 = alloca %struct.s2n_result, align 4
  %500 = alloca i64, align 8
  %501 = alloca ptr, align 8
  %502 = alloca i32, align 4
  %503 = alloca %struct.s2n_stuffer, align 8
  %504 = alloca i32, align 4
  %505 = alloca %struct.s2n_result, align 4
  %506 = alloca i32, align 4
  %507 = alloca %struct.s2n_sig_scheme_list, align 2
  %508 = alloca i32, align 4
  %509 = alloca i32, align 4
  %510 = alloca i16, align 2
  %511 = alloca i16, align 2
  %512 = alloca i64, align 8
  %513 = alloca i32, align 4
  %514 = alloca i32, align 4
  %515 = alloca %struct.s2n_result, align 4
  %516 = alloca [2 x ptr], align 16
  %517 = alloca %struct.s2n_signature_preferences, align 8
  %518 = alloca ptr, align 8
  %519 = alloca i32, align 4
  %520 = alloca %struct.s2n_security_policy, align 8
  %521 = alloca ptr, align 8
  %522 = alloca i32, align 4
  %523 = alloca %struct.s2n_stuffer, align 8
  %524 = alloca i32, align 4
  %525 = alloca %struct.s2n_result, align 4
  %526 = alloca i32, align 4
  %527 = alloca i16, align 2
  %528 = alloca i32, align 4
  %529 = alloca i32, align 4
  %530 = alloca i32, align 4
  %531 = alloca i32, align 4
  %532 = alloca i32, align 4
  %533 = alloca %struct.s2n_result, align 4
  %534 = alloca ptr, align 8
  %535 = alloca i32, align 4
  %536 = alloca %struct.s2n_stuffer, align 8
  %537 = alloca i32, align 4
  %538 = alloca i32, align 4
  %539 = alloca %struct.s2n_result, align 4
  %540 = alloca i32, align 4
  %541 = alloca i32, align 4
  %542 = alloca %struct.s2n_result, align 4
  %543 = alloca i32, align 4
  %544 = alloca i32, align 4
  %545 = alloca i32, align 4
  %546 = alloca %struct.s2n_result, align 4
  %547 = alloca ptr, align 8
  %548 = alloca i32, align 4
  %549 = alloca [1 x ptr], align 8
  %550 = alloca %struct.s2n_result, align 4
  %551 = alloca i32, align 4
  %552 = alloca %struct.s2n_result, align 4
  %553 = alloca i32, align 4
  %554 = alloca i32, align 4
  %555 = alloca %struct.s2n_result, align 4
  %556 = alloca i32, align 4
  %557 = alloca i32, align 4
  %558 = alloca i32, align 4
  %559 = alloca %struct.s2n_result, align 4
  %560 = alloca ptr, align 8
  %561 = alloca [1 x ptr], align 8
  %562 = alloca %struct.s2n_result, align 4
  %563 = alloca i32, align 4
  %564 = alloca [3 x ptr], align 16
  %565 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %566 = alloca %struct.s2n_result, align 4
  %567 = alloca i32, align 4
  %568 = alloca %struct.s2n_result, align 4
  %569 = alloca i32, align 4
  %570 = alloca i32, align 4
  %571 = alloca i32, align 4
  %572 = alloca i32, align 4
  %573 = alloca %struct.s2n_result, align 4
  %574 = alloca i32, align 4
  %575 = alloca i32, align 4
  %576 = alloca %struct.s2n_result, align 4
  %577 = alloca i32, align 4
  %578 = alloca i32, align 4
  %579 = alloca i32, align 4
  %580 = alloca %struct.s2n_result, align 4
  %581 = alloca %struct.s2n_result, align 4
  %582 = alloca [2 x ptr], align 16
  %583 = alloca [2 x ptr], align 16
  %584 = alloca [2 x ptr], align 16
  %585 = alloca %struct.s2n_signature_preferences, align 8
  %586 = alloca %struct.s2n_signature_preferences, align 8
  %587 = alloca i64, align 8
  %588 = alloca i64, align 8
  %589 = alloca i32, align 4
  %590 = alloca %struct.s2n_signature_preferences, align 8
  %591 = alloca i64, align 8
  %592 = alloca i64, align 8
  %593 = alloca i32, align 4
  %594 = alloca %struct.s2n_security_policy, align 8
  %595 = alloca %struct.s2n_security_policy, align 8
  %596 = alloca %struct.s2n_security_policy, align 8
  %597 = alloca i64, align 8
  %598 = alloca ptr, align 8
  %599 = alloca i32, align 4
  %600 = alloca i32, align 4
  %601 = alloca i32, align 4
  %602 = alloca ptr, align 8
  %603 = alloca ptr, align 8
  %604 = alloca i32, align 4
  %605 = alloca i32, align 4
  %606 = alloca %struct.s2n_test_io_pair, align 4
  %607 = alloca i32, align 4
  %608 = alloca i32, align 4
  %609 = alloca i32, align 4
  %610 = alloca i32, align 4
  %611 = alloca i32, align 4
  %612 = alloca %struct.s2n_result, align 4
  %613 = alloca %struct.s2n_result, align 4
  %614 = alloca %struct.s2n_result, align 4
  %615 = alloca i64, align 8
  %616 = alloca ptr, align 8
  %617 = alloca i32, align 4
  %618 = alloca i32, align 4
  %619 = alloca i32, align 4
  %620 = alloca ptr, align 8
  %621 = alloca ptr, align 8
  %622 = alloca i32, align 4
  %623 = alloca i32, align 4
  %624 = alloca i32, align 4
  %625 = alloca i32, align 4
  %626 = alloca %struct.s2n_test_io_pair, align 4
  %627 = alloca i32, align 4
  %628 = alloca i32, align 4
  %629 = alloca i32, align 4
  %630 = alloca i32, align 4
  %631 = alloca i32, align 4
  %632 = alloca i32, align 4
  %633 = alloca i32, align 4
  %634 = alloca %struct.s2n_result, align 4
  %635 = alloca %struct.s2n_result, align 4
  %636 = alloca %struct.s2n_result, align 4
  %637 = alloca i64, align 8
  %638 = alloca ptr, align 8
  %639 = alloca i32, align 4
  %640 = alloca i32, align 4
  %641 = alloca i32, align 4
  %642 = alloca ptr, align 8
  %643 = alloca ptr, align 8
  %644 = alloca i32, align 4
  %645 = alloca i32, align 4
  %646 = alloca i32, align 4
  %647 = alloca i32, align 4
  %648 = alloca %struct.s2n_test_io_pair, align 4
  %649 = alloca i32, align 4
  %650 = alloca i32, align 4
  %651 = alloca i32, align 4
  %652 = alloca i32, align 4
  %653 = alloca i32, align 4
  %654 = alloca i32, align 4
  %655 = alloca i32, align 4
  %656 = alloca %struct.s2n_result, align 4
  %657 = alloca %struct.s2n_result, align 4
  %658 = alloca %struct.s2n_result, align 4
  %659 = alloca i32, align 4
  %660 = alloca ptr, align 8
  %661 = alloca i32, align 4
  %662 = alloca i32, align 4
  %663 = alloca ptr, align 8
  %664 = alloca i32, align 4
  %665 = alloca i32, align 4
  %666 = alloca ptr, align 8
  %667 = alloca ptr, align 8
  %668 = alloca %struct.s2n_cipher_preferences, align 8
  %669 = alloca [3 x ptr], align 16
  %670 = alloca %struct.s2n_signature_preferences, align 8
  %671 = alloca [2 x ptr], align 16
  %672 = alloca %struct.s2n_ecc_preferences, align 8
  %673 = alloca %struct.s2n_security_policy, align 8
  %674 = alloca i8, align 1
  %675 = alloca ptr, align 8
  %676 = alloca i32, align 4
  %677 = alloca ptr, align 8
  %678 = alloca i32, align 4
  %679 = alloca %struct.s2n_test_io_pair, align 4
  %680 = alloca i32, align 4
  %681 = alloca i32, align 4
  %682 = alloca i32, align 4
  %683 = alloca i32, align 4
  %684 = alloca i32, align 4
  %685 = alloca i32, align 4
  %686 = alloca i32, align 4
  %687 = alloca i32, align 4
  %688 = alloca i32, align 4
  %689 = alloca i32, align 4
  %690 = alloca i32, align 4
  %691 = alloca i32, align 4
  %692 = alloca %struct.s2n_result, align 4
  %693 = alloca %struct.s2n_result, align 4
  %694 = alloca %struct.s2n_result, align 4
  %695 = alloca %struct.s2n_result, align 4
  %696 = alloca i32, align 4
  %697 = alloca i32, align 4
  %698 = alloca %struct.s2n_result, align 4
  %699 = alloca %struct.s2n_result, 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 %700

700:                                              ; preds = %2
  br label %701

701:                                              ; preds = %700
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %702 = load ptr, ptr @stdout, align 8, !tbaa !9
  %703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %702, ptr noundef @.str, ptr noundef @.str.1) #10
  %704 = load ptr, ptr @stdout, align 8, !tbaa !9
  %705 = call i32 @fflush(ptr noundef %704)
  br label %706

706:                                              ; preds = %701
  %707 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %708 = icmp eq i32 %707, -1
  br i1 %708, label %709, label %760

709:                                              ; preds = %706
  br label %710

710:                                              ; preds = %709
  br label %711

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

718:                                              ; preds = %711
  %719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %720 = call i32 @fileno(ptr noundef %719) #10
  %721 = call i32 @isatty(i32 noundef %720) #10
  %722 = icmp ne i32 %721, 0
  br i1 %722, label %723, label %740

723:                                              ; preds = %718
  %724 = load i32, ptr %6, align 4, !tbaa !5
  %725 = call ptr @__errno_location() #11
  store i32 %724, ptr %725, align 4, !tbaa !5
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = load i32, ptr @test_count, align 4, !tbaa !5
  %728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %729 = load i32, ptr %728, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror(i32 noundef %729, ptr noundef @.str.4)
  %731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %732 = load i32, ptr %731, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror_debug(i32 noundef %732, ptr noundef @.str.4)
  %734 = call ptr @__errno_location() #11
  %735 = load i32, ptr %734, align 4, !tbaa !5
  %736 = call ptr @strerror(i32 noundef %735) #10
  %737 = call ptr @__errno_location() #11
  %738 = load i32, ptr %737, align 4, !tbaa !5
  %739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %726, ptr noundef @.str.2, i32 noundef %727, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 99, ptr noundef %730, ptr noundef %733, ptr noundef %736, i32 noundef %738) #10
  br label %757

740:                                              ; preds = %718, %711
  %741 = load i32, ptr %6, align 4, !tbaa !5
  %742 = call ptr @__errno_location() #11
  store i32 %741, ptr %742, align 4, !tbaa !5
  %743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %744 = load i32, ptr @test_count, align 4, !tbaa !5
  %745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = call ptr @s2n_strerror(i32 noundef %746, ptr noundef @.str.4)
  %748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %749 = load i32, ptr %748, align 4, !tbaa !5
  %750 = call ptr @s2n_strerror_debug(i32 noundef %749, ptr noundef @.str.4)
  %751 = call ptr @__errno_location() #11
  %752 = load i32, ptr %751, align 4, !tbaa !5
  %753 = call ptr @strerror(i32 noundef %752) #10
  %754 = call ptr @__errno_location() #11
  %755 = load i32, ptr %754, align 4, !tbaa !5
  %756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %743, ptr noundef @.str.5, i32 noundef %744, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 99, ptr noundef %747, ptr noundef %750, ptr noundef %753, i32 noundef %755) #10
  br label %757

757:                                              ; preds = %740, %723
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %758

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

759:                                              ; No predecessors!
  br label %760

760:                                              ; preds = %759, %706
  br label %761

761:                                              ; preds = %760
  br label %762

762:                                              ; preds = %761
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = add nsw i32 %763, 1
  store i32 %764, ptr @test_count, align 4, !tbaa !5
  %765 = call i32 @s2n_enable_atexit()
  %766 = icmp eq i32 %765, -1
  br i1 %766, label %767, label %818

767:                                              ; preds = %762
  br label %768

768:                                              ; preds = %767
  br label %769

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

776:                                              ; preds = %769
  %777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %778 = call i32 @fileno(ptr noundef %777) #10
  %779 = call i32 @isatty(i32 noundef %778) #10
  %780 = icmp ne i32 %779, 0
  br i1 %780, label %781, label %798

781:                                              ; preds = %776
  %782 = load i32, ptr %7, align 4, !tbaa !5
  %783 = call ptr @__errno_location() #11
  store i32 %782, ptr %783, align 4, !tbaa !5
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror(i32 noundef %787, ptr noundef @.str.4)
  %789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @s2n_strerror_debug(i32 noundef %790, ptr noundef @.str.4)
  %792 = call ptr @__errno_location() #11
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call ptr @strerror(i32 noundef %793) #10
  %795 = call ptr @__errno_location() #11
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %784, ptr noundef @.str.2, i32 noundef %785, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 99, ptr noundef %788, ptr noundef %791, ptr noundef %794, i32 noundef %796) #10
  br label %815

798:                                              ; preds = %776, %769
  %799 = load i32, ptr %7, align 4, !tbaa !5
  %800 = call ptr @__errno_location() #11
  store i32 %799, ptr %800, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror(i32 noundef %804, ptr noundef @.str.4)
  %806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror_debug(i32 noundef %807, ptr noundef @.str.4)
  %809 = call ptr @__errno_location() #11
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @strerror(i32 noundef %810) #10
  %812 = call ptr @__errno_location() #11
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef @.str.5, i32 noundef %802, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 99, ptr noundef %805, ptr noundef %808, ptr noundef %811, i32 noundef %813) #10
  br label %815

815:                                              ; preds = %798, %781
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %816

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

817:                                              ; No predecessors!
  br label %818

818:                                              ; preds = %817, %762
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819
  br label %821

821:                                              ; preds = %820
  %822 = call i32 @s2n_init()
  %823 = icmp eq i32 %822, -1
  br i1 %823, label %824, label %875

824:                                              ; preds = %821
  br label %825

825:                                              ; preds = %824
  br label %826

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

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

838:                                              ; preds = %833
  %839 = load i32, ptr %8, align 4, !tbaa !5
  %840 = call ptr @__errno_location() #11
  store i32 %839, ptr %840, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = load i32, ptr @test_count, align 4, !tbaa !5
  %843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror(i32 noundef %844, ptr noundef @.str.4)
  %846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror_debug(i32 noundef %847, ptr noundef @.str.4)
  %849 = call ptr @__errno_location() #11
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = call ptr @strerror(i32 noundef %850) #10
  %852 = call ptr @__errno_location() #11
  %853 = load i32, ptr %852, align 4, !tbaa !5
  %854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %841, ptr noundef @.str.2, i32 noundef %842, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 99, ptr noundef %845, ptr noundef %848, ptr noundef %851, i32 noundef %853) #10
  br label %872

855:                                              ; preds = %833, %826
  %856 = load i32, ptr %8, align 4, !tbaa !5
  %857 = call ptr @__errno_location() #11
  store i32 %856, ptr %857, align 4, !tbaa !5
  %858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %859 = load i32, ptr @test_count, align 4, !tbaa !5
  %860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = call ptr @s2n_strerror(i32 noundef %861, ptr noundef @.str.4)
  %863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror_debug(i32 noundef %864, ptr noundef @.str.4)
  %866 = call ptr @__errno_location() #11
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call ptr @strerror(i32 noundef %867) #10
  %869 = call ptr @__errno_location() #11
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %858, ptr noundef @.str.5, i32 noundef %859, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 99, ptr noundef %862, ptr noundef %865, ptr noundef %868, i32 noundef %870) #10
  br label %872

872:                                              ; preds = %855, %838
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %873

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

874:                                              ; No predecessors!
  br label %875

875:                                              ; preds = %874, %821
  br label %876

876:                                              ; preds = %875
  br label %877

877:                                              ; preds = %876
  br label %878

878:                                              ; preds = %877
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = add nsw i32 %879, 1
  store i32 %880, ptr @test_count, align 4, !tbaa !5
  %881 = call i32 (...) @s2n_disable_tls13_in_test()
  %882 = icmp eq i32 %881, -1
  br i1 %882, label %883, label %934

883:                                              ; preds = %878
  br label %884

884:                                              ; preds = %883
  br label %885

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

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

897:                                              ; preds = %892
  %898 = load i32, ptr %9, align 4, !tbaa !5
  %899 = call ptr @__errno_location() #11
  store i32 %898, ptr %899, align 4, !tbaa !5
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = load i32, ptr @test_count, align 4, !tbaa !5
  %902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call ptr @s2n_strerror(i32 noundef %903, ptr noundef @.str.4)
  %905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = call ptr @s2n_strerror_debug(i32 noundef %906, ptr noundef @.str.4)
  %908 = call ptr @__errno_location() #11
  %909 = load i32, ptr %908, align 4, !tbaa !5
  %910 = call ptr @strerror(i32 noundef %909) #10
  %911 = call ptr @__errno_location() #11
  %912 = load i32, ptr %911, align 4, !tbaa !5
  %913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %900, ptr noundef @.str.2, i32 noundef %901, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 100, ptr noundef %904, ptr noundef %907, ptr noundef %910, i32 noundef %912) #10
  br label %931

914:                                              ; preds = %892, %885
  %915 = load i32, ptr %9, align 4, !tbaa !5
  %916 = call ptr @__errno_location() #11
  store i32 %915, ptr %916, align 4, !tbaa !5
  %917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %918 = load i32, ptr @test_count, align 4, !tbaa !5
  %919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %920 = load i32, ptr %919, align 4, !tbaa !5
  %921 = call ptr @s2n_strerror(i32 noundef %920, ptr noundef @.str.4)
  %922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %923 = load i32, ptr %922, align 4, !tbaa !5
  %924 = call ptr @s2n_strerror_debug(i32 noundef %923, ptr noundef @.str.4)
  %925 = call ptr @__errno_location() #11
  %926 = load i32, ptr %925, align 4, !tbaa !5
  %927 = call ptr @strerror(i32 noundef %926) #10
  %928 = call ptr @__errno_location() #11
  %929 = load i32, ptr %928, align 4, !tbaa !5
  %930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %917, ptr noundef @.str.5, i32 noundef %918, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 100, ptr noundef %921, ptr noundef %924, ptr noundef %927, i32 noundef %929) #10
  br label %931

931:                                              ; preds = %914, %897
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %932

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

933:                                              ; No predecessors!
  br label %934

934:                                              ; preds = %933, %878
  br label %935

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

936:                                              ; preds = %935
  %937 = load i32, ptr @test_count, align 4, !tbaa !5
  %938 = add nsw i32 %937, 1
  store i32 %938, ptr @test_count, align 4, !tbaa !5
  %939 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %10, ptr noundef @.str.9, ptr noundef @.str.10)
  %940 = icmp eq i32 %939, -1
  br i1 %940, label %941, label %994

941:                                              ; preds = %936
  br label %942

942:                                              ; preds = %941
  br label %943

943:                                              ; preds = %942
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  %944 = call ptr @__errno_location() #11
  %945 = load i32, ptr %944, align 4, !tbaa !5
  store i32 %945, ptr %11, align 4, !tbaa !5
  %946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %947 = call i32 @s2n_print_stacktrace(ptr noundef %946)
  %948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %949 = trunc i8 %948 to i1
  br i1 %949, label %950, label %972

950:                                              ; preds = %943
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = call i32 @fileno(ptr noundef %951) #10
  %953 = call i32 @isatty(i32 noundef %952) #10
  %954 = icmp ne i32 %953, 0
  br i1 %954, label %955, label %972

955:                                              ; preds = %950
  %956 = load i32, ptr %11, align 4, !tbaa !5
  %957 = call ptr @__errno_location() #11
  store i32 %956, ptr %957, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = load i32, ptr @test_count, align 4, !tbaa !5
  %960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %961 = load i32, ptr %960, align 4, !tbaa !5
  %962 = call ptr @s2n_strerror(i32 noundef %961, ptr noundef @.str.4)
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror_debug(i32 noundef %964, ptr noundef @.str.4)
  %966 = call ptr @__errno_location() #11
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call ptr @strerror(i32 noundef %967) #10
  %969 = call ptr @__errno_location() #11
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %958, ptr noundef @.str.2, i32 noundef %959, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 105, ptr noundef %962, ptr noundef %965, ptr noundef %968, i32 noundef %970) #10
  br label %989

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

989:                                              ; preds = %972, %955
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  br label %990

990:                                              ; preds = %989
  br label %991

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

992:                                              ; No predecessors!
  br label %993

993:                                              ; preds = %992
  br label %994

994:                                              ; preds = %993, %936
  br label %995

995:                                              ; preds = %994
  br label %996

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

997:                                              ; preds = %996
  %998 = load i32, ptr @test_count, align 4, !tbaa !5
  %999 = add nsw i32 %998, 1
  store i32 %999, ptr @test_count, align 4, !tbaa !5
  %1000 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %12, ptr noundef @.str.12, ptr noundef @.str.13)
  %1001 = icmp eq i32 %1000, -1
  br i1 %1001, label %1002, label %1055

1002:                                             ; preds = %997
  br label %1003

1003:                                             ; preds = %1002
  br label %1004

1004:                                             ; preds = %1003
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  %1005 = call ptr @__errno_location() #11
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  store i32 %1006, ptr %13, align 4, !tbaa !5
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = call i32 @s2n_print_stacktrace(ptr noundef %1007)
  %1009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1010 = trunc i8 %1009 to i1
  br i1 %1010, label %1011, label %1033

1011:                                             ; preds = %1004
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = call i32 @fileno(ptr noundef %1012) #10
  %1014 = call i32 @isatty(i32 noundef %1013) #10
  %1015 = icmp ne i32 %1014, 0
  br i1 %1015, label %1016, label %1033

1016:                                             ; preds = %1011
  %1017 = load i32, ptr %13, align 4, !tbaa !5
  %1018 = call ptr @__errno_location() #11
  store i32 %1017, ptr %1018, align 4, !tbaa !5
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1020 = load i32, ptr @test_count, align 4, !tbaa !5
  %1021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1022 = load i32, ptr %1021, align 4, !tbaa !5
  %1023 = call ptr @s2n_strerror(i32 noundef %1022, ptr noundef @.str.4)
  %1024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1025 = load i32, ptr %1024, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror_debug(i32 noundef %1025, ptr noundef @.str.4)
  %1027 = call ptr @__errno_location() #11
  %1028 = load i32, ptr %1027, align 4, !tbaa !5
  %1029 = call ptr @strerror(i32 noundef %1028) #10
  %1030 = call ptr @__errno_location() #11
  %1031 = load i32, ptr %1030, align 4, !tbaa !5
  %1032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1019, ptr noundef @.str.2, i32 noundef %1020, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1023, ptr noundef %1026, ptr noundef %1029, i32 noundef %1031) #10
  br label %1050

1033:                                             ; preds = %1011, %1004
  %1034 = load i32, ptr %13, align 4, !tbaa !5
  %1035 = call ptr @__errno_location() #11
  store i32 %1034, ptr %1035, align 4, !tbaa !5
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = load i32, ptr @test_count, align 4, !tbaa !5
  %1038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call ptr @s2n_strerror(i32 noundef %1039, ptr noundef @.str.4)
  %1041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call ptr @s2n_strerror_debug(i32 noundef %1042, ptr noundef @.str.4)
  %1044 = call ptr @__errno_location() #11
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @strerror(i32 noundef %1045) #10
  %1047 = call ptr @__errno_location() #11
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1036, ptr noundef @.str.5, i32 noundef %1037, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1040, ptr noundef %1043, ptr noundef %1046, i32 noundef %1048) #10
  br label %1050

1050:                                             ; preds = %1033, %1016
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %1051

1051:                                             ; preds = %1050
  br label %1052

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

1053:                                             ; No predecessors!
  br label %1054

1054:                                             ; preds = %1053
  br label %1055

1055:                                             ; preds = %1054, %997
  br label %1056

1056:                                             ; preds = %1055
  br label %1057

1057:                                             ; preds = %1056
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #10
  %1058 = load ptr, ptr %12, align 8, !tbaa !9
  store ptr %1058, ptr %14, align 8, !tbaa !9
  %1059 = getelementptr inbounds ptr, ptr %14, i64 1
  %1060 = load ptr, ptr %10, align 8, !tbaa !9
  store ptr %1060, ptr %1059, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 64, ptr %15) #10
  %1061 = call ptr @s2n_fetch_default_config()
  %1062 = getelementptr inbounds %struct.s2n_config, ptr %1061, i32 0, i32 7
  %1063 = load ptr, ptr %1062, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %15, ptr align 8 %1063, i64 64, i1 false), !tbaa.struct !22
  %1064 = getelementptr inbounds %struct.s2n_security_policy, ptr %15, i32 0, i32 3
  store ptr @test_preferences, ptr %1064, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %1065 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1065, ptr %16, align 8, !tbaa !9
  br label %1066

1066:                                             ; preds = %1057
  %1067 = load i32, ptr @test_count, align 4, !tbaa !5
  %1068 = add nsw i32 %1067, 1
  store i32 %1068, ptr @test_count, align 4, !tbaa !5
  %1069 = load ptr, ptr %16, align 8, !tbaa !9
  %1070 = icmp eq ptr %1069, null
  br i1 %1070, label %1071, label %1124

1071:                                             ; preds = %1066
  br label %1072

1072:                                             ; preds = %1071
  br label %1073

1073:                                             ; preds = %1072
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %1074 = call ptr @__errno_location() #11
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  store i32 %1075, ptr %17, align 4, !tbaa !5
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = call i32 @s2n_print_stacktrace(ptr noundef %1076)
  %1078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1079 = trunc i8 %1078 to i1
  br i1 %1079, label %1080, label %1102

1080:                                             ; preds = %1073
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = call i32 @fileno(ptr noundef %1081) #10
  %1083 = call i32 @isatty(i32 noundef %1082) #10
  %1084 = icmp ne i32 %1083, 0
  br i1 %1084, label %1085, label %1102

1085:                                             ; preds = %1080
  %1086 = load i32, ptr %17, align 4, !tbaa !5
  %1087 = call ptr @__errno_location() #11
  store i32 %1086, ptr %1087, align 4, !tbaa !5
  %1088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = call ptr @s2n_strerror(i32 noundef %1091, ptr noundef @.str.4)
  %1093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror_debug(i32 noundef %1094, ptr noundef @.str.4)
  %1096 = call ptr @__errno_location() #11
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call ptr @strerror(i32 noundef %1097) #10
  %1099 = call ptr @__errno_location() #11
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1088, ptr noundef @.str.2, i32 noundef %1089, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1092, ptr noundef %1095, ptr noundef %1098, i32 noundef %1100) #10
  br label %1119

1102:                                             ; preds = %1080, %1073
  %1103 = load i32, ptr %17, align 4, !tbaa !5
  %1104 = call ptr @__errno_location() #11
  store i32 %1103, ptr %1104, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror(i32 noundef %1108, ptr noundef @.str.4)
  %1110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror_debug(i32 noundef %1111, ptr noundef @.str.4)
  %1113 = call ptr @__errno_location() #11
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #10
  %1116 = call ptr @__errno_location() #11
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1105, ptr noundef @.str.5, i32 noundef %1106, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1109, ptr noundef %1112, ptr noundef %1115, i32 noundef %1117) #10
  br label %1119

1119:                                             ; preds = %1102, %1085
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %1120

1120:                                             ; preds = %1119
  br label %1121

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

1122:                                             ; No predecessors!
  br label %1123

1123:                                             ; preds = %1122
  br label %1124

1124:                                             ; preds = %1123, %1066
  br label %1125

1125:                                             ; preds = %1124
  br label %1126

1126:                                             ; preds = %1125
  %1127 = load ptr, ptr %16, align 8, !tbaa !9
  %1128 = getelementptr inbounds %struct.s2n_connection, ptr %1127, i32 0, i32 2
  store ptr %15, ptr %1128, align 8, !tbaa !26
  %1129 = load ptr, ptr %16, align 8, !tbaa !9
  %1130 = getelementptr inbounds %struct.s2n_connection, ptr %1129, i32 0, i32 23
  store i8 34, ptr %1130, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr %18) #10
  call void @llvm.memset.p0.i64(ptr align 8 %18, i8 0, i64 40, i1 false)
  br label %1131

1131:                                             ; preds = %1126
  %1132 = load i32, ptr @test_count, align 4, !tbaa !5
  %1133 = add nsw i32 %1132, 1
  store i32 %1133, ptr @test_count, align 4, !tbaa !5
  %1134 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %18, i32 noundef 0)
  %1135 = icmp eq i32 %1134, -1
  br i1 %1135, label %1136, label %1189

1136:                                             ; preds = %1131
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

1138:                                             ; preds = %1137
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  %1139 = call ptr @__errno_location() #11
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  store i32 %1140, ptr %19, align 4, !tbaa !5
  %1141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1142 = call i32 @s2n_print_stacktrace(ptr noundef %1141)
  %1143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1144 = trunc i8 %1143 to i1
  br i1 %1144, label %1145, label %1167

1145:                                             ; preds = %1138
  %1146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1147 = call i32 @fileno(ptr noundef %1146) #10
  %1148 = call i32 @isatty(i32 noundef %1147) #10
  %1149 = icmp ne i32 %1148, 0
  br i1 %1149, label %1150, label %1167

1150:                                             ; preds = %1145
  %1151 = load i32, ptr %19, align 4, !tbaa !5
  %1152 = call ptr @__errno_location() #11
  store i32 %1151, ptr %1152, align 4, !tbaa !5
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1154 = load i32, ptr @test_count, align 4, !tbaa !5
  %1155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1156 = load i32, ptr %1155, align 4, !tbaa !5
  %1157 = call ptr @s2n_strerror(i32 noundef %1156, ptr noundef @.str.4)
  %1158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1159 = load i32, ptr %1158, align 4, !tbaa !5
  %1160 = call ptr @s2n_strerror_debug(i32 noundef %1159, ptr noundef @.str.4)
  %1161 = call ptr @__errno_location() #11
  %1162 = load i32, ptr %1161, align 4, !tbaa !5
  %1163 = call ptr @strerror(i32 noundef %1162) #10
  %1164 = call ptr @__errno_location() #11
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1153, ptr noundef @.str.2, i32 noundef %1154, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 128, ptr noundef %1157, ptr noundef %1160, ptr noundef %1163, i32 noundef %1165) #10
  br label %1184

1167:                                             ; preds = %1145, %1138
  %1168 = load i32, ptr %19, align 4, !tbaa !5
  %1169 = call ptr @__errno_location() #11
  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() #11
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = call ptr @strerror(i32 noundef %1179) #10
  %1181 = call ptr @__errno_location() #11
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1170, ptr noundef @.str.5, i32 noundef %1171, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 128, ptr noundef %1174, ptr noundef %1177, ptr noundef %1180, i32 noundef %1182) #10
  br label %1184

1184:                                             ; preds = %1167, %1150
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %1185

1185:                                             ; preds = %1184
  br label %1186

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

1187:                                             ; No predecessors!
  br label %1188

1188:                                             ; preds = %1187
  br label %1189

1189:                                             ; preds = %1188, %1131
  br label %1190

1190:                                             ; preds = %1189
  br label %1191

1191:                                             ; preds = %1190
  br label %1192

1192:                                             ; preds = %1191
  %1193 = load i32, ptr @test_count, align 4, !tbaa !5
  %1194 = add nsw i32 %1193, 1
  store i32 %1194, ptr @test_count, align 4, !tbaa !5
  %1195 = load ptr, ptr %16, align 8, !tbaa !9
  %1196 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %1195, ptr noundef %18)
  %1197 = getelementptr inbounds %struct.s2n_result, ptr %20, i32 0, i32 0
  store i32 %1196, ptr %1197, align 4
  %1198 = getelementptr inbounds %struct.s2n_result, ptr %20, i32 0, i32 0
  %1199 = load i32, ptr %1198, align 4
  %1200 = call zeroext i1 @s2n_result_is_ok(i32 %1199)
  br i1 %1200, label %1254, label %1201

1201:                                             ; preds = %1192
  br label %1202

1202:                                             ; preds = %1201
  br label %1203

1203:                                             ; preds = %1202
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %1204 = call ptr @__errno_location() #11
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  store i32 %1205, ptr %21, align 4, !tbaa !5
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = call i32 @s2n_print_stacktrace(ptr noundef %1206)
  %1208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1209 = trunc i8 %1208 to i1
  br i1 %1209, label %1210, label %1232

1210:                                             ; preds = %1203
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = call i32 @fileno(ptr noundef %1211) #10
  %1213 = call i32 @isatty(i32 noundef %1212) #10
  %1214 = icmp ne i32 %1213, 0
  br i1 %1214, label %1215, label %1232

1215:                                             ; preds = %1210
  %1216 = load i32, ptr %21, align 4, !tbaa !5
  %1217 = call ptr @__errno_location() #11
  store i32 %1216, ptr %1217, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = call ptr @s2n_strerror(i32 noundef %1221, ptr noundef @.str.4)
  %1223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  %1225 = call ptr @s2n_strerror_debug(i32 noundef %1224, ptr noundef @.str.4)
  %1226 = call ptr @__errno_location() #11
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = call ptr @strerror(i32 noundef %1227) #10
  %1229 = call ptr @__errno_location() #11
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  %1231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef @.str.2, i32 noundef %1219, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 129, ptr noundef %1222, ptr noundef %1225, ptr noundef %1228, i32 noundef %1230) #10
  br label %1249

1232:                                             ; preds = %1210, %1203
  %1233 = load i32, ptr %21, align 4, !tbaa !5
  %1234 = call ptr @__errno_location() #11
  store i32 %1233, ptr %1234, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1238, ptr noundef @.str.4)
  %1240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror_debug(i32 noundef %1241, ptr noundef @.str.4)
  %1243 = call ptr @__errno_location() #11
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = call ptr @strerror(i32 noundef %1244) #10
  %1246 = call ptr @__errno_location() #11
  %1247 = load i32, ptr %1246, align 4, !tbaa !5
  %1248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1235, ptr noundef @.str.5, i32 noundef %1236, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 129, ptr noundef %1239, ptr noundef %1242, ptr noundef %1245, i32 noundef %1247) #10
  br label %1249

1249:                                             ; preds = %1232, %1215
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %1250

1250:                                             ; preds = %1249
  br label %1251

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

1252:                                             ; No predecessors!
  br label %1253

1253:                                             ; preds = %1252
  br label %1254

1254:                                             ; preds = %1253, %1192
  br label %1255

1255:                                             ; preds = %1254
  br label %1256

1256:                                             ; preds = %1255
  call void @llvm.lifetime.start.p0(i64 2, ptr %22) #10
  store i16 0, ptr %22, align 2, !tbaa !51
  br label %1257

1257:                                             ; preds = %1256
  %1258 = load i32, ptr @test_count, align 4, !tbaa !5
  %1259 = add nsw i32 %1258, 1
  store i32 %1259, ptr @test_count, align 4, !tbaa !5
  %1260 = call i32 @s2n_stuffer_read_uint16(ptr noundef %18, ptr noundef %22)
  %1261 = icmp eq i32 %1260, -1
  br i1 %1261, label %1262, label %1315

1262:                                             ; preds = %1257
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

1264:                                             ; preds = %1263
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %1265 = call ptr @__errno_location() #11
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  store i32 %1266, ptr %23, align 4, !tbaa !5
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = call i32 @s2n_print_stacktrace(ptr noundef %1267)
  %1269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1270 = trunc i8 %1269 to i1
  br i1 %1270, label %1271, label %1293

1271:                                             ; preds = %1264
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1273 = call i32 @fileno(ptr noundef %1272) #10
  %1274 = call i32 @isatty(i32 noundef %1273) #10
  %1275 = icmp ne i32 %1274, 0
  br i1 %1275, label %1276, label %1293

1276:                                             ; preds = %1271
  %1277 = load i32, ptr %23, align 4, !tbaa !5
  %1278 = call ptr @__errno_location() #11
  store i32 %1277, ptr %1278, align 4, !tbaa !5
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = load i32, ptr @test_count, align 4, !tbaa !5
  %1281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror(i32 noundef %1282, ptr noundef @.str.4)
  %1284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror_debug(i32 noundef %1285, ptr noundef @.str.4)
  %1287 = call ptr @__errno_location() #11
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  %1289 = call ptr @strerror(i32 noundef %1288) #10
  %1290 = call ptr @__errno_location() #11
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1279, ptr noundef @.str.2, i32 noundef %1280, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 132, ptr noundef %1283, ptr noundef %1286, ptr noundef %1289, i32 noundef %1291) #10
  br label %1310

1293:                                             ; preds = %1271, %1264
  %1294 = load i32, ptr %23, align 4, !tbaa !5
  %1295 = call ptr @__errno_location() #11
  store i32 %1294, ptr %1295, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror(i32 noundef %1299, ptr noundef @.str.4)
  %1301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror_debug(i32 noundef %1302, ptr noundef @.str.4)
  %1304 = call ptr @__errno_location() #11
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call ptr @strerror(i32 noundef %1305) #10
  %1307 = call ptr @__errno_location() #11
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1296, ptr noundef @.str.5, i32 noundef %1297, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 132, ptr noundef %1300, ptr noundef %1303, ptr noundef %1306, i32 noundef %1308) #10
  br label %1310

1310:                                             ; preds = %1293, %1276
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %1311

1311:                                             ; preds = %1310
  br label %1312

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

1313:                                             ; No predecessors!
  br label %1314

1314:                                             ; preds = %1313
  br label %1315

1315:                                             ; preds = %1314, %1257
  br label %1316

1316:                                             ; preds = %1315
  br label %1317

1317:                                             ; preds = %1316
  br label %1318

1318:                                             ; preds = %1317
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = add nsw i32 %1319, 1
  store i32 %1320, ptr @test_count, align 4, !tbaa !5
  %1321 = load i16, ptr %22, align 2, !tbaa !51
  %1322 = zext i16 %1321 to i32
  %1323 = getelementptr inbounds %struct.s2n_stuffer, ptr %18, i32 0, i32 2
  %1324 = load i32, ptr %1323, align 4, !tbaa !52
  %1325 = getelementptr inbounds %struct.s2n_stuffer, ptr %18, i32 0, i32 1
  %1326 = load i32, ptr %1325, align 8, !tbaa !53
  %1327 = sub i32 %1324, %1326
  %1328 = icmp eq i32 %1322, %1327
  br i1 %1328, label %1382, label %1329

1329:                                             ; preds = %1318
  br label %1330

1330:                                             ; preds = %1329
  br label %1331

1331:                                             ; preds = %1330
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %1332 = call ptr @__errno_location() #11
  %1333 = load i32, ptr %1332, align 4, !tbaa !5
  store i32 %1333, ptr %24, align 4, !tbaa !5
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = call i32 @s2n_print_stacktrace(ptr noundef %1334)
  %1336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1337 = trunc i8 %1336 to i1
  br i1 %1337, label %1338, label %1360

1338:                                             ; preds = %1331
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = call i32 @fileno(ptr noundef %1339) #10
  %1341 = call i32 @isatty(i32 noundef %1340) #10
  %1342 = icmp ne i32 %1341, 0
  br i1 %1342, label %1343, label %1360

1343:                                             ; preds = %1338
  %1344 = load i32, ptr %24, align 4, !tbaa !5
  %1345 = call ptr @__errno_location() #11
  store i32 %1344, ptr %1345, align 4, !tbaa !5
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = load i32, ptr @test_count, align 4, !tbaa !5
  %1348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call ptr @s2n_strerror(i32 noundef %1349, ptr noundef @.str.4)
  %1351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1352 = load i32, ptr %1351, align 4, !tbaa !5
  %1353 = call ptr @s2n_strerror_debug(i32 noundef %1352, ptr noundef @.str.4)
  %1354 = call ptr @__errno_location() #11
  %1355 = load i32, ptr %1354, align 4, !tbaa !5
  %1356 = call ptr @strerror(i32 noundef %1355) #10
  %1357 = call ptr @__errno_location() #11
  %1358 = load i32, ptr %1357, align 4, !tbaa !5
  %1359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1346, ptr noundef @.str.2, i32 noundef %1347, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 133, ptr noundef %1350, ptr noundef %1353, ptr noundef %1356, i32 noundef %1358) #10
  br label %1377

1360:                                             ; preds = %1338, %1331
  %1361 = load i32, ptr %24, align 4, !tbaa !5
  %1362 = call ptr @__errno_location() #11
  store i32 %1361, ptr %1362, align 4, !tbaa !5
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call ptr @s2n_strerror(i32 noundef %1366, ptr noundef @.str.4)
  %1368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  %1370 = call ptr @s2n_strerror_debug(i32 noundef %1369, ptr noundef @.str.4)
  %1371 = call ptr @__errno_location() #11
  %1372 = load i32, ptr %1371, align 4, !tbaa !5
  %1373 = call ptr @strerror(i32 noundef %1372) #10
  %1374 = call ptr @__errno_location() #11
  %1375 = load i32, ptr %1374, align 4, !tbaa !5
  %1376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1363, ptr noundef @.str.5, i32 noundef %1364, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 133, ptr noundef %1367, ptr noundef %1370, ptr noundef %1373, i32 noundef %1375) #10
  br label %1377

1377:                                             ; preds = %1360, %1343
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %1378

1378:                                             ; preds = %1377
  br label %1379

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

1380:                                             ; No predecessors!
  br label %1381

1381:                                             ; preds = %1380
  br label %1382

1382:                                             ; preds = %1381, %1318
  br label %1383

1383:                                             ; preds = %1382
  br label %1384

1384:                                             ; preds = %1383
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  store i64 0, ptr %25, align 8, !tbaa !54
  br label %1385

1385:                                             ; preds = %1519, %1384
  %1386 = load i64, ptr %25, align 8, !tbaa !54
  %1387 = icmp ult i64 %1386, 6
  br i1 %1387, label %1389, label %1388

1388:                                             ; preds = %1385
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  br label %1522

1389:                                             ; preds = %1385
  call void @llvm.lifetime.start.p0(i64 2, ptr %26) #10
  store i16 0, ptr %26, align 2, !tbaa !51
  br label %1390

1390:                                             ; preds = %1389
  %1391 = load i32, ptr @test_count, align 4, !tbaa !5
  %1392 = add nsw i32 %1391, 1
  store i32 %1392, ptr @test_count, align 4, !tbaa !5
  %1393 = call i32 @s2n_stuffer_read_uint16(ptr noundef %18, ptr noundef %26)
  %1394 = icmp eq i32 %1393, -1
  br i1 %1394, label %1395, label %1448

1395:                                             ; preds = %1390
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

1397:                                             ; preds = %1396
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %1398 = call ptr @__errno_location() #11
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  store i32 %1399, ptr %27, align 4, !tbaa !5
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = call i32 @s2n_print_stacktrace(ptr noundef %1400)
  %1402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1403 = trunc i8 %1402 to i1
  br i1 %1403, label %1404, label %1426

1404:                                             ; preds = %1397
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1406 = call i32 @fileno(ptr noundef %1405) #10
  %1407 = call i32 @isatty(i32 noundef %1406) #10
  %1408 = icmp ne i32 %1407, 0
  br i1 %1408, label %1409, label %1426

1409:                                             ; preds = %1404
  %1410 = load i32, ptr %27, align 4, !tbaa !5
  %1411 = call ptr @__errno_location() #11
  store i32 %1410, ptr %1411, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror(i32 noundef %1415, ptr noundef @.str.4)
  %1417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror_debug(i32 noundef %1418, ptr noundef @.str.4)
  %1420 = call ptr @__errno_location() #11
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @strerror(i32 noundef %1421) #10
  %1423 = call ptr @__errno_location() #11
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1412, ptr noundef @.str.2, i32 noundef %1413, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 137, ptr noundef %1416, ptr noundef %1419, ptr noundef %1422, i32 noundef %1424) #10
  br label %1443

1426:                                             ; preds = %1404, %1397
  %1427 = load i32, ptr %27, align 4, !tbaa !5
  %1428 = call ptr @__errno_location() #11
  store i32 %1427, ptr %1428, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = load i32, ptr @test_count, align 4, !tbaa !5
  %1431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror(i32 noundef %1432, ptr noundef @.str.4)
  %1434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror_debug(i32 noundef %1435, ptr noundef @.str.4)
  %1437 = call ptr @__errno_location() #11
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = call ptr @strerror(i32 noundef %1438) #10
  %1440 = call ptr @__errno_location() #11
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1429, ptr noundef @.str.5, i32 noundef %1430, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 137, ptr noundef %1433, ptr noundef %1436, ptr noundef %1439, i32 noundef %1441) #10
  br label %1443

1443:                                             ; preds = %1426, %1409
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1444

1444:                                             ; preds = %1443
  br label %1445

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

1446:                                             ; No predecessors!
  br label %1447

1447:                                             ; preds = %1446
  br label %1448

1448:                                             ; preds = %1447, %1390
  br label %1449

1449:                                             ; preds = %1448
  br label %1450

1450:                                             ; preds = %1449
  br label %1451

1451:                                             ; preds = %1450
  %1452 = load i32, ptr @test_count, align 4, !tbaa !5
  %1453 = add nsw i32 %1452, 1
  store i32 %1453, ptr @test_count, align 4, !tbaa !5
  %1454 = load i16, ptr %26, align 2, !tbaa !51
  %1455 = zext i16 %1454 to i32
  %1456 = load i64, ptr %25, align 8, !tbaa !54
  %1457 = getelementptr inbounds [6 x ptr], ptr @test_signature_schemes, i64 0, i64 %1456
  %1458 = load ptr, ptr %1457, align 8, !tbaa !9
  %1459 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %1458, i32 0, i32 0
  %1460 = load i16, ptr %1459, align 8, !tbaa !55
  %1461 = zext i16 %1460 to i32
  %1462 = icmp eq i32 %1455, %1461
  br i1 %1462, label %1516, label %1463

1463:                                             ; preds = %1451
  br label %1464

1464:                                             ; preds = %1463
  br label %1465

1465:                                             ; preds = %1464
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %1466 = call ptr @__errno_location() #11
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  store i32 %1467, ptr %28, align 4, !tbaa !5
  %1468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1469 = call i32 @s2n_print_stacktrace(ptr noundef %1468)
  %1470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1471 = trunc i8 %1470 to i1
  br i1 %1471, label %1472, label %1494

1472:                                             ; preds = %1465
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = call i32 @fileno(ptr noundef %1473) #10
  %1475 = call i32 @isatty(i32 noundef %1474) #10
  %1476 = icmp ne i32 %1475, 0
  br i1 %1476, label %1477, label %1494

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

1494:                                             ; preds = %1472, %1465
  %1495 = load i32, ptr %28, align 4, !tbaa !5
  %1496 = call ptr @__errno_location() #11
  store i32 %1495, ptr %1496, align 4, !tbaa !5
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = load i32, ptr @test_count, align 4, !tbaa !5
  %1499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = call ptr @s2n_strerror(i32 noundef %1500, ptr noundef @.str.4)
  %1502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call ptr @s2n_strerror_debug(i32 noundef %1503, ptr noundef @.str.4)
  %1505 = call ptr @__errno_location() #11
  %1506 = load i32, ptr %1505, align 4, !tbaa !5
  %1507 = call ptr @strerror(i32 noundef %1506) #10
  %1508 = call ptr @__errno_location() #11
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1497, ptr noundef @.str.5, i32 noundef %1498, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 138, ptr noundef %1501, ptr noundef %1504, ptr noundef %1507, i32 noundef %1509) #10
  br label %1511

1511:                                             ; preds = %1494, %1477
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1512

1512:                                             ; preds = %1511
  br label %1513

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

1514:                                             ; No predecessors!
  br label %1515

1515:                                             ; preds = %1514
  br label %1516

1516:                                             ; preds = %1515, %1451
  br label %1517

1517:                                             ; preds = %1516
  br label %1518

1518:                                             ; preds = %1517
  call void @llvm.lifetime.end.p0(i64 2, ptr %26) #10
  br label %1519

1519:                                             ; preds = %1518
  %1520 = load i64, ptr %25, align 8, !tbaa !54
  %1521 = add i64 %1520, 1
  store i64 %1521, ptr %25, align 8, !tbaa !54
  br label %1385, !llvm.loop !57

1522:                                             ; preds = %1388
  br label %1523

1523:                                             ; preds = %1522
  %1524 = load i32, ptr @test_count, align 4, !tbaa !5
  %1525 = add nsw i32 %1524, 1
  store i32 %1525, ptr @test_count, align 4, !tbaa !5
  %1526 = getelementptr inbounds %struct.s2n_stuffer, ptr %18, i32 0, i32 2
  %1527 = load i32, ptr %1526, align 4, !tbaa !52
  %1528 = getelementptr inbounds %struct.s2n_stuffer, ptr %18, i32 0, i32 1
  %1529 = load i32, ptr %1528, align 8, !tbaa !53
  %1530 = sub i32 %1527, %1529
  %1531 = icmp eq i32 %1530, 0
  br i1 %1531, label %1585, label %1532

1532:                                             ; preds = %1523
  br label %1533

1533:                                             ; preds = %1532
  br label %1534

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

1541:                                             ; preds = %1534
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = call i32 @fileno(ptr noundef %1542) #10
  %1544 = call i32 @isatty(i32 noundef %1543) #10
  %1545 = icmp ne i32 %1544, 0
  br i1 %1545, label %1546, label %1563

1546:                                             ; preds = %1541
  %1547 = load i32, ptr %29, align 4, !tbaa !5
  %1548 = call ptr @__errno_location() #11
  store i32 %1547, ptr %1548, align 4, !tbaa !5
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror(i32 noundef %1552, ptr noundef @.str.4)
  %1554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call ptr @s2n_strerror_debug(i32 noundef %1555, ptr noundef @.str.4)
  %1557 = call ptr @__errno_location() #11
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call ptr @strerror(i32 noundef %1558) #10
  %1560 = call ptr @__errno_location() #11
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1549, ptr noundef @.str.2, i32 noundef %1550, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 140, ptr noundef %1553, ptr noundef %1556, ptr noundef %1559, i32 noundef %1561) #10
  br label %1580

1563:                                             ; preds = %1541, %1534
  %1564 = load i32, ptr %29, align 4, !tbaa !5
  %1565 = call ptr @__errno_location() #11
  store i32 %1564, ptr %1565, align 4, !tbaa !5
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = load i32, ptr @test_count, align 4, !tbaa !5
  %1568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  %1570 = call ptr @s2n_strerror(i32 noundef %1569, ptr noundef @.str.4)
  %1571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror_debug(i32 noundef %1572, ptr noundef @.str.4)
  %1574 = call ptr @__errno_location() #11
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  %1576 = call ptr @strerror(i32 noundef %1575) #10
  %1577 = call ptr @__errno_location() #11
  %1578 = load i32, ptr %1577, align 4, !tbaa !5
  %1579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1566, ptr noundef @.str.5, i32 noundef %1567, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 140, ptr noundef %1570, ptr noundef %1573, ptr noundef %1576, i32 noundef %1578) #10
  br label %1580

1580:                                             ; preds = %1563, %1546
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1581

1581:                                             ; preds = %1580
  br label %1582

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

1583:                                             ; No predecessors!
  br label %1584

1584:                                             ; preds = %1583
  br label %1585

1585:                                             ; preds = %1584, %1523
  br label %1586

1586:                                             ; preds = %1585
  br label %1587

1587:                                             ; preds = %1586
  call void @llvm.lifetime.end.p0(i64 2, ptr %22) #10
  %1588 = call i32 @s2n_stuffer_free(ptr noundef %18)
  call void @llvm.lifetime.end.p0(i64 40, ptr %18) #10
  %1589 = call i32 @s2n_connection_ptr_free(ptr noundef %16)
  %1590 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  store i32 %1589, ptr %1590, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %1591 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1591, ptr %31, align 8, !tbaa !9
  br label %1592

1592:                                             ; preds = %1587
  %1593 = load i32, ptr @test_count, align 4, !tbaa !5
  %1594 = add nsw i32 %1593, 1
  store i32 %1594, ptr @test_count, align 4, !tbaa !5
  %1595 = load ptr, ptr %31, align 8, !tbaa !9
  %1596 = icmp eq ptr %1595, null
  br i1 %1596, label %1597, label %1650

1597:                                             ; preds = %1592
  br label %1598

1598:                                             ; preds = %1597
  br label %1599

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

1606:                                             ; preds = %1599
  %1607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1608 = call i32 @fileno(ptr noundef %1607) #10
  %1609 = call i32 @isatty(i32 noundef %1608) #10
  %1610 = icmp ne i32 %1609, 0
  br i1 %1610, label %1611, label %1628

1611:                                             ; preds = %1606
  %1612 = load i32, ptr %32, align 4, !tbaa !5
  %1613 = call ptr @__errno_location() #11
  store i32 %1612, ptr %1613, align 4, !tbaa !5
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = load i32, ptr @test_count, align 4, !tbaa !5
  %1616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = call ptr @s2n_strerror(i32 noundef %1617, ptr noundef @.str.4)
  %1619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call ptr @s2n_strerror_debug(i32 noundef %1620, ptr noundef @.str.4)
  %1622 = call ptr @__errno_location() #11
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call ptr @strerror(i32 noundef %1623) #10
  %1625 = call ptr @__errno_location() #11
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1614, ptr noundef @.str.2, i32 noundef %1615, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 147, ptr noundef %1618, ptr noundef %1621, ptr noundef %1624, i32 noundef %1626) #10
  br label %1645

1628:                                             ; preds = %1606, %1599
  %1629 = load i32, ptr %32, align 4, !tbaa !5
  %1630 = call ptr @__errno_location() #11
  store i32 %1629, ptr %1630, align 4, !tbaa !5
  %1631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1632 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1634, ptr noundef @.str.4)
  %1636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call ptr @s2n_strerror_debug(i32 noundef %1637, ptr noundef @.str.4)
  %1639 = call ptr @__errno_location() #11
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call ptr @strerror(i32 noundef %1640) #10
  %1642 = call ptr @__errno_location() #11
  %1643 = load i32, ptr %1642, align 4, !tbaa !5
  %1644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1631, ptr noundef @.str.5, i32 noundef %1632, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 147, ptr noundef %1635, ptr noundef %1638, ptr noundef %1641, i32 noundef %1643) #10
  br label %1645

1645:                                             ; preds = %1628, %1611
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1646

1646:                                             ; preds = %1645
  br label %1647

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

1648:                                             ; No predecessors!
  br label %1649

1649:                                             ; preds = %1648
  br label %1650

1650:                                             ; preds = %1649, %1592
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

1652:                                             ; preds = %1651
  %1653 = load ptr, ptr %31, align 8, !tbaa !9
  %1654 = getelementptr inbounds %struct.s2n_connection, ptr %1653, i32 0, i32 2
  store ptr %15, ptr %1654, align 8, !tbaa !26
  %1655 = load ptr, ptr %31, align 8, !tbaa !9
  %1656 = getelementptr inbounds %struct.s2n_connection, ptr %1655, i32 0, i32 23
  store i8 33, ptr %1656, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr %33) #10
  call void @llvm.memset.p0.i64(ptr align 8 %33, i8 0, i64 40, i1 false)
  br label %1657

1657:                                             ; preds = %1652
  %1658 = load i32, ptr @test_count, align 4, !tbaa !5
  %1659 = add nsw i32 %1658, 1
  store i32 %1659, ptr @test_count, align 4, !tbaa !5
  %1660 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %33, i32 noundef 0)
  %1661 = icmp eq i32 %1660, -1
  br i1 %1661, label %1662, label %1715

1662:                                             ; preds = %1657
  br label %1663

1663:                                             ; preds = %1662
  br label %1664

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

1671:                                             ; preds = %1664
  %1672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1673 = call i32 @fileno(ptr noundef %1672) #10
  %1674 = call i32 @isatty(i32 noundef %1673) #10
  %1675 = icmp ne i32 %1674, 0
  br i1 %1675, label %1676, label %1693

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

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

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

1711:                                             ; preds = %1710
  br label %1712

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

1713:                                             ; No predecessors!
  br label %1714

1714:                                             ; preds = %1713
  br label %1715

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

1716:                                             ; preds = %1715
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

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

1727:                                             ; preds = %1718
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

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

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

1741:                                             ; preds = %1736
  %1742 = load i32, ptr %36, align 4, !tbaa !5
  %1743 = call ptr @__errno_location() #11
  store i32 %1742, ptr %1743, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = load i32, ptr @test_count, align 4, !tbaa !5
  %1746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  %1748 = call ptr @s2n_strerror(i32 noundef %1747, ptr noundef @.str.4)
  %1749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @s2n_strerror_debug(i32 noundef %1750, ptr noundef @.str.4)
  %1752 = call ptr @__errno_location() #11
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call ptr @strerror(i32 noundef %1753) #10
  %1755 = call ptr @__errno_location() #11
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1744, ptr noundef @.str.2, i32 noundef %1745, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1748, ptr noundef %1751, ptr noundef %1754, i32 noundef %1756) #10
  br label %1775

1758:                                             ; preds = %1736, %1729
  %1759 = load i32, ptr %36, align 4, !tbaa !5
  %1760 = call ptr @__errno_location() #11
  store i32 %1759, ptr %1760, align 4, !tbaa !5
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = load i32, ptr @test_count, align 4, !tbaa !5
  %1763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call ptr @s2n_strerror(i32 noundef %1764, ptr noundef @.str.4)
  %1766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror_debug(i32 noundef %1767, ptr noundef @.str.4)
  %1769 = call ptr @__errno_location() #11
  %1770 = load i32, ptr %1769, align 4, !tbaa !5
  %1771 = call ptr @strerror(i32 noundef %1770) #10
  %1772 = call ptr @__errno_location() #11
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1761, ptr noundef @.str.5, i32 noundef %1762, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1765, ptr noundef %1768, ptr noundef %1771, i32 noundef %1773) #10
  br label %1775

1775:                                             ; preds = %1758, %1741
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1776

1776:                                             ; preds = %1775
  br label %1777

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

1778:                                             ; No predecessors!
  br label %1779

1779:                                             ; preds = %1778
  br label %1780

1780:                                             ; preds = %1779, %1718
  br label %1781

1781:                                             ; preds = %1780
  br label %1782

1782:                                             ; preds = %1781
  call void @llvm.lifetime.start.p0(i64 2, ptr %37) #10
  store i16 0, ptr %37, align 2, !tbaa !51
  br label %1783

1783:                                             ; preds = %1782
  %1784 = load i32, ptr @test_count, align 4, !tbaa !5
  %1785 = add nsw i32 %1784, 1
  store i32 %1785, ptr @test_count, align 4, !tbaa !5
  %1786 = call i32 @s2n_stuffer_read_uint16(ptr noundef %33, ptr noundef %37)
  %1787 = icmp eq i32 %1786, -1
  br i1 %1787, label %1788, label %1841

1788:                                             ; preds = %1783
  br label %1789

1789:                                             ; preds = %1788
  br label %1790

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

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

1802:                                             ; preds = %1797
  %1803 = load i32, ptr %38, align 4, !tbaa !5
  %1804 = call ptr @__errno_location() #11
  store i32 %1803, ptr %1804, align 4, !tbaa !5
  %1805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1806 = load i32, ptr @test_count, align 4, !tbaa !5
  %1807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1808 = load i32, ptr %1807, align 4, !tbaa !5
  %1809 = call ptr @s2n_strerror(i32 noundef %1808, ptr noundef @.str.4)
  %1810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1811 = load i32, ptr %1810, align 4, !tbaa !5
  %1812 = call ptr @s2n_strerror_debug(i32 noundef %1811, ptr noundef @.str.4)
  %1813 = call ptr @__errno_location() #11
  %1814 = load i32, ptr %1813, align 4, !tbaa !5
  %1815 = call ptr @strerror(i32 noundef %1814) #10
  %1816 = call ptr @__errno_location() #11
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1805, ptr noundef @.str.2, i32 noundef %1806, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 156, ptr noundef %1809, ptr noundef %1812, ptr noundef %1815, i32 noundef %1817) #10
  br label %1836

1819:                                             ; preds = %1797, %1790
  %1820 = load i32, ptr %38, align 4, !tbaa !5
  %1821 = call ptr @__errno_location() #11
  store i32 %1820, ptr %1821, align 4, !tbaa !5
  %1822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1823 = load i32, ptr @test_count, align 4, !tbaa !5
  %1824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  %1826 = call ptr @s2n_strerror(i32 noundef %1825, ptr noundef @.str.4)
  %1827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  %1829 = call ptr @s2n_strerror_debug(i32 noundef %1828, ptr noundef @.str.4)
  %1830 = call ptr @__errno_location() #11
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call ptr @strerror(i32 noundef %1831) #10
  %1833 = call ptr @__errno_location() #11
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1822, ptr noundef @.str.5, i32 noundef %1823, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 156, ptr noundef %1826, ptr noundef %1829, ptr noundef %1832, i32 noundef %1834) #10
  br label %1836

1836:                                             ; preds = %1819, %1802
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1837

1837:                                             ; preds = %1836
  br label %1838

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

1839:                                             ; No predecessors!
  br label %1840

1840:                                             ; preds = %1839
  br label %1841

1841:                                             ; preds = %1840, %1783
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

1843:                                             ; preds = %1842
  br label %1844

1844:                                             ; preds = %1843
  %1845 = load i32, ptr @test_count, align 4, !tbaa !5
  %1846 = add nsw i32 %1845, 1
  store i32 %1846, ptr @test_count, align 4, !tbaa !5
  %1847 = load i16, ptr %37, align 2, !tbaa !51
  %1848 = zext i16 %1847 to i32
  %1849 = getelementptr inbounds %struct.s2n_stuffer, ptr %33, i32 0, i32 2
  %1850 = load i32, ptr %1849, align 4, !tbaa !52
  %1851 = getelementptr inbounds %struct.s2n_stuffer, ptr %33, i32 0, i32 1
  %1852 = load i32, ptr %1851, align 8, !tbaa !53
  %1853 = sub i32 %1850, %1852
  %1854 = icmp eq i32 %1848, %1853
  br i1 %1854, label %1908, label %1855

1855:                                             ; preds = %1844
  br label %1856

1856:                                             ; preds = %1855
  br label %1857

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

1864:                                             ; preds = %1857
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = call i32 @fileno(ptr noundef %1865) #10
  %1867 = call i32 @isatty(i32 noundef %1866) #10
  %1868 = icmp ne i32 %1867, 0
  br i1 %1868, label %1869, label %1886

1869:                                             ; preds = %1864
  %1870 = load i32, ptr %39, align 4, !tbaa !5
  %1871 = call ptr @__errno_location() #11
  store i32 %1870, ptr %1871, align 4, !tbaa !5
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = load i32, ptr @test_count, align 4, !tbaa !5
  %1874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call ptr @s2n_strerror(i32 noundef %1875, ptr noundef @.str.4)
  %1877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror_debug(i32 noundef %1878, ptr noundef @.str.4)
  %1880 = call ptr @__errno_location() #11
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  %1882 = call ptr @strerror(i32 noundef %1881) #10
  %1883 = call ptr @__errno_location() #11
  %1884 = load i32, ptr %1883, align 4, !tbaa !5
  %1885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1872, ptr noundef @.str.2, i32 noundef %1873, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 157, ptr noundef %1876, ptr noundef %1879, ptr noundef %1882, i32 noundef %1884) #10
  br label %1903

1886:                                             ; preds = %1864, %1857
  %1887 = load i32, ptr %39, align 4, !tbaa !5
  %1888 = call ptr @__errno_location() #11
  store i32 %1887, ptr %1888, align 4, !tbaa !5
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call ptr @s2n_strerror(i32 noundef %1892, ptr noundef @.str.4)
  %1894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror_debug(i32 noundef %1895, ptr noundef @.str.4)
  %1897 = call ptr @__errno_location() #11
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = call ptr @strerror(i32 noundef %1898) #10
  %1900 = call ptr @__errno_location() #11
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1889, ptr noundef @.str.5, i32 noundef %1890, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 157, ptr noundef %1893, ptr noundef %1896, ptr noundef %1899, i32 noundef %1901) #10
  br label %1903

1903:                                             ; preds = %1886, %1869
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1904

1904:                                             ; preds = %1903
  br label %1905

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

1906:                                             ; No predecessors!
  br label %1907

1907:                                             ; preds = %1906
  br label %1908

1908:                                             ; preds = %1907, %1844
  br label %1909

1909:                                             ; preds = %1908
  br label %1910

1910:                                             ; preds = %1909
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #10
  store i64 0, ptr %40, align 8, !tbaa !54
  br label %1911

1911:                                             ; preds = %2051, %1910
  %1912 = load i64, ptr %40, align 8, !tbaa !54
  %1913 = icmp ult i64 %1912, 6
  br i1 %1913, label %1915, label %1914

1914:                                             ; preds = %1911
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  br label %2054

1915:                                             ; preds = %1911
  %1916 = load i64, ptr %40, align 8, !tbaa !54
  %1917 = getelementptr inbounds [6 x ptr], ptr @test_signature_schemes, i64 0, i64 %1916
  %1918 = load ptr, ptr %1917, align 8, !tbaa !9
  %1919 = icmp ne ptr %1918, @s2n_test_tls13_ecdsa_sha384
  br i1 %1919, label %1920, label %2050

1920:                                             ; preds = %1915
  call void @llvm.lifetime.start.p0(i64 2, ptr %41) #10
  store i16 0, ptr %41, align 2, !tbaa !51
  br label %1921

1921:                                             ; preds = %1920
  %1922 = load i32, ptr @test_count, align 4, !tbaa !5
  %1923 = add nsw i32 %1922, 1
  store i32 %1923, ptr @test_count, align 4, !tbaa !5
  %1924 = call i32 @s2n_stuffer_read_uint16(ptr noundef %33, ptr noundef %41)
  %1925 = icmp eq i32 %1924, -1
  br i1 %1925, label %1926, label %1979

1926:                                             ; preds = %1921
  br label %1927

1927:                                             ; preds = %1926
  br label %1928

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

1935:                                             ; preds = %1928
  %1936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1937 = call i32 @fileno(ptr noundef %1936) #10
  %1938 = call i32 @isatty(i32 noundef %1937) #10
  %1939 = icmp ne i32 %1938, 0
  br i1 %1939, label %1940, label %1957

1940:                                             ; preds = %1935
  %1941 = load i32, ptr %42, align 4, !tbaa !5
  %1942 = call ptr @__errno_location() #11
  store i32 %1941, ptr %1942, align 4, !tbaa !5
  %1943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1944 = load i32, ptr @test_count, align 4, !tbaa !5
  %1945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1946 = load i32, ptr %1945, align 4, !tbaa !5
  %1947 = call ptr @s2n_strerror(i32 noundef %1946, ptr noundef @.str.4)
  %1948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  %1950 = call ptr @s2n_strerror_debug(i32 noundef %1949, ptr noundef @.str.4)
  %1951 = call ptr @__errno_location() #11
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call ptr @strerror(i32 noundef %1952) #10
  %1954 = call ptr @__errno_location() #11
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1943, ptr noundef @.str.2, i32 noundef %1944, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 162, ptr noundef %1947, ptr noundef %1950, ptr noundef %1953, i32 noundef %1955) #10
  br label %1974

1957:                                             ; preds = %1935, %1928
  %1958 = load i32, ptr %42, align 4, !tbaa !5
  %1959 = call ptr @__errno_location() #11
  store i32 %1958, ptr %1959, align 4, !tbaa !5
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = load i32, ptr @test_count, align 4, !tbaa !5
  %1962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = call ptr @s2n_strerror(i32 noundef %1963, ptr noundef @.str.4)
  %1965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call ptr @s2n_strerror_debug(i32 noundef %1966, ptr noundef @.str.4)
  %1968 = call ptr @__errno_location() #11
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call ptr @strerror(i32 noundef %1969) #10
  %1971 = call ptr @__errno_location() #11
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  %1973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1960, ptr noundef @.str.5, i32 noundef %1961, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 162, ptr noundef %1964, ptr noundef %1967, ptr noundef %1970, i32 noundef %1972) #10
  br label %1974

1974:                                             ; preds = %1957, %1940
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

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

1977:                                             ; No predecessors!
  br label %1978

1978:                                             ; preds = %1977
  br label %1979

1979:                                             ; preds = %1978, %1921
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980
  br label %1982

1982:                                             ; preds = %1981
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr @test_count, align 4, !tbaa !5
  %1985 = load i16, ptr %41, align 2, !tbaa !51
  %1986 = zext i16 %1985 to i32
  %1987 = load i64, ptr %40, align 8, !tbaa !54
  %1988 = getelementptr inbounds [6 x ptr], ptr @test_signature_schemes, i64 0, i64 %1987
  %1989 = load ptr, ptr %1988, align 8, !tbaa !9
  %1990 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %1989, i32 0, i32 0
  %1991 = load i16, ptr %1990, align 8, !tbaa !55
  %1992 = zext i16 %1991 to i32
  %1993 = icmp eq i32 %1986, %1992
  br i1 %1993, label %2047, label %1994

1994:                                             ; preds = %1982
  br label %1995

1995:                                             ; preds = %1994
  br label %1996

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

2003:                                             ; preds = %1996
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = call i32 @fileno(ptr noundef %2004) #10
  %2006 = call i32 @isatty(i32 noundef %2005) #10
  %2007 = icmp ne i32 %2006, 0
  br i1 %2007, label %2008, label %2025

2008:                                             ; preds = %2003
  %2009 = load i32, ptr %43, align 4, !tbaa !5
  %2010 = call ptr @__errno_location() #11
  store i32 %2009, ptr %2010, align 4, !tbaa !5
  %2011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2012 = load i32, ptr @test_count, align 4, !tbaa !5
  %2013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2014 = load i32, ptr %2013, align 4, !tbaa !5
  %2015 = call ptr @s2n_strerror(i32 noundef %2014, ptr noundef @.str.4)
  %2016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2017 = load i32, ptr %2016, align 4, !tbaa !5
  %2018 = call ptr @s2n_strerror_debug(i32 noundef %2017, ptr noundef @.str.4)
  %2019 = call ptr @__errno_location() #11
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call ptr @strerror(i32 noundef %2020) #10
  %2022 = call ptr @__errno_location() #11
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2011, ptr noundef @.str.2, i32 noundef %2012, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 163, ptr noundef %2015, ptr noundef %2018, ptr noundef %2021, i32 noundef %2023) #10
  br label %2042

2025:                                             ; preds = %2003, %1996
  %2026 = load i32, ptr %43, align 4, !tbaa !5
  %2027 = call ptr @__errno_location() #11
  store i32 %2026, ptr %2027, align 4, !tbaa !5
  %2028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2029 = load i32, ptr @test_count, align 4, !tbaa !5
  %2030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call ptr @s2n_strerror(i32 noundef %2031, ptr noundef @.str.4)
  %2033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  %2035 = call ptr @s2n_strerror_debug(i32 noundef %2034, ptr noundef @.str.4)
  %2036 = call ptr @__errno_location() #11
  %2037 = load i32, ptr %2036, align 4, !tbaa !5
  %2038 = call ptr @strerror(i32 noundef %2037) #10
  %2039 = call ptr @__errno_location() #11
  %2040 = load i32, ptr %2039, align 4, !tbaa !5
  %2041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2028, ptr noundef @.str.5, i32 noundef %2029, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 163, ptr noundef %2032, ptr noundef %2035, ptr noundef %2038, i32 noundef %2040) #10
  br label %2042

2042:                                             ; preds = %2025, %2008
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

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

2045:                                             ; No predecessors!
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

2047:                                             ; preds = %2046, %1982
  br label %2048

2048:                                             ; preds = %2047
  br label %2049

2049:                                             ; preds = %2048
  call void @llvm.lifetime.end.p0(i64 2, ptr %41) #10
  br label %2050

2050:                                             ; preds = %2049, %1915
  br label %2051

2051:                                             ; preds = %2050
  %2052 = load i64, ptr %40, align 8, !tbaa !54
  %2053 = add i64 %2052, 1
  store i64 %2053, ptr %40, align 8, !tbaa !54
  br label %1911, !llvm.loop !59

2054:                                             ; preds = %1914
  br label %2055

2055:                                             ; preds = %2054
  %2056 = load i32, ptr @test_count, align 4, !tbaa !5
  %2057 = add nsw i32 %2056, 1
  store i32 %2057, ptr @test_count, align 4, !tbaa !5
  %2058 = getelementptr inbounds %struct.s2n_stuffer, ptr %33, i32 0, i32 2
  %2059 = load i32, ptr %2058, align 4, !tbaa !52
  %2060 = getelementptr inbounds %struct.s2n_stuffer, ptr %33, i32 0, i32 1
  %2061 = load i32, ptr %2060, align 8, !tbaa !53
  %2062 = sub i32 %2059, %2061
  %2063 = icmp eq i32 %2062, 0
  br i1 %2063, label %2117, label %2064

2064:                                             ; preds = %2055
  br label %2065

2065:                                             ; preds = %2064
  br label %2066

2066:                                             ; preds = %2065
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %2067 = call ptr @__errno_location() #11
  %2068 = load i32, ptr %2067, align 4, !tbaa !5
  store i32 %2068, ptr %44, align 4, !tbaa !5
  %2069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2070 = call i32 @s2n_print_stacktrace(ptr noundef %2069)
  %2071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2072 = trunc i8 %2071 to i1
  br i1 %2072, label %2073, label %2095

2073:                                             ; preds = %2066
  %2074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2075 = call i32 @fileno(ptr noundef %2074) #10
  %2076 = call i32 @isatty(i32 noundef %2075) #10
  %2077 = icmp ne i32 %2076, 0
  br i1 %2077, label %2078, label %2095

2078:                                             ; preds = %2073
  %2079 = load i32, ptr %44, align 4, !tbaa !5
  %2080 = call ptr @__errno_location() #11
  store i32 %2079, ptr %2080, align 4, !tbaa !5
  %2081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2082 = load i32, ptr @test_count, align 4, !tbaa !5
  %2083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror(i32 noundef %2084, ptr noundef @.str.4)
  %2086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror_debug(i32 noundef %2087, ptr noundef @.str.4)
  %2089 = call ptr @__errno_location() #11
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @strerror(i32 noundef %2090) #10
  %2092 = call ptr @__errno_location() #11
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2081, ptr noundef @.str.2, i32 noundef %2082, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2085, ptr noundef %2088, ptr noundef %2091, i32 noundef %2093) #10
  br label %2112

2095:                                             ; preds = %2073, %2066
  %2096 = load i32, ptr %44, align 4, !tbaa !5
  %2097 = call ptr @__errno_location() #11
  store i32 %2096, ptr %2097, align 4, !tbaa !5
  %2098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2099 = load i32, ptr @test_count, align 4, !tbaa !5
  %2100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2101 = load i32, ptr %2100, align 4, !tbaa !5
  %2102 = call ptr @s2n_strerror(i32 noundef %2101, ptr noundef @.str.4)
  %2103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2104 = load i32, ptr %2103, align 4, !tbaa !5
  %2105 = call ptr @s2n_strerror_debug(i32 noundef %2104, ptr noundef @.str.4)
  %2106 = call ptr @__errno_location() #11
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  %2108 = call ptr @strerror(i32 noundef %2107) #10
  %2109 = call ptr @__errno_location() #11
  %2110 = load i32, ptr %2109, align 4, !tbaa !5
  %2111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2098, ptr noundef @.str.5, i32 noundef %2099, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2102, ptr noundef %2105, ptr noundef %2108, i32 noundef %2110) #10
  br label %2112

2112:                                             ; preds = %2095, %2078
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %2113

2113:                                             ; preds = %2112
  br label %2114

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

2115:                                             ; No predecessors!
  br label %2116

2116:                                             ; preds = %2115
  br label %2117

2117:                                             ; preds = %2116, %2055
  br label %2118

2118:                                             ; preds = %2117
  br label %2119

2119:                                             ; preds = %2118
  call void @llvm.lifetime.end.p0(i64 2, ptr %37) #10
  %2120 = call i32 @s2n_stuffer_free(ptr noundef %33)
  call void @llvm.lifetime.end.p0(i64 40, ptr %33) #10
  %2121 = call i32 @s2n_connection_ptr_free(ptr noundef %31)
  %2122 = getelementptr inbounds %struct.s2n_result, ptr %45, i32 0, i32 0
  store i32 %2121, ptr %2122, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  %2123 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2123, ptr %46, align 8, !tbaa !9
  br label %2124

2124:                                             ; preds = %2119
  %2125 = load i32, ptr @test_count, align 4, !tbaa !5
  %2126 = add nsw i32 %2125, 1
  store i32 %2126, ptr @test_count, align 4, !tbaa !5
  %2127 = load ptr, ptr %46, align 8, !tbaa !9
  %2128 = icmp eq ptr %2127, null
  br i1 %2128, label %2129, label %2182

2129:                                             ; preds = %2124
  br label %2130

2130:                                             ; preds = %2129
  br label %2131

2131:                                             ; preds = %2130
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %2132 = call ptr @__errno_location() #11
  %2133 = load i32, ptr %2132, align 4, !tbaa !5
  store i32 %2133, ptr %47, align 4, !tbaa !5
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = call i32 @s2n_print_stacktrace(ptr noundef %2134)
  %2136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2137 = trunc i8 %2136 to i1
  br i1 %2137, label %2138, label %2160

2138:                                             ; preds = %2131
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = call i32 @fileno(ptr noundef %2139) #10
  %2141 = call i32 @isatty(i32 noundef %2140) #10
  %2142 = icmp ne i32 %2141, 0
  br i1 %2142, label %2143, label %2160

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

2160:                                             ; preds = %2138, %2131
  %2161 = load i32, ptr %47, align 4, !tbaa !5
  %2162 = call ptr @__errno_location() #11
  store i32 %2161, ptr %2162, align 4, !tbaa !5
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = load i32, ptr @test_count, align 4, !tbaa !5
  %2165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror(i32 noundef %2166, ptr noundef @.str.4)
  %2168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = call ptr @s2n_strerror_debug(i32 noundef %2169, ptr noundef @.str.4)
  %2171 = call ptr @__errno_location() #11
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call ptr @strerror(i32 noundef %2172) #10
  %2174 = call ptr @__errno_location() #11
  %2175 = load i32, ptr %2174, align 4, !tbaa !5
  %2176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2163, ptr noundef @.str.5, i32 noundef %2164, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 173, ptr noundef %2167, ptr noundef %2170, ptr noundef %2173, i32 noundef %2175) #10
  br label %2177

2177:                                             ; preds = %2160, %2143
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %2178

2178:                                             ; preds = %2177
  br label %2179

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

2180:                                             ; No predecessors!
  br label %2181

2181:                                             ; preds = %2180
  br label %2182

2182:                                             ; preds = %2181, %2124
  br label %2183

2183:                                             ; preds = %2182
  br label %2184

2184:                                             ; preds = %2183
  %2185 = load ptr, ptr %46, align 8, !tbaa !9
  %2186 = getelementptr inbounds %struct.s2n_connection, ptr %2185, i32 0, i32 2
  store ptr %15, ptr %2186, align 8, !tbaa !26
  %2187 = load ptr, ptr %46, align 8, !tbaa !9
  %2188 = getelementptr inbounds %struct.s2n_connection, ptr %2187, i32 0, i32 23
  store i8 34, ptr %2188, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr %48) #10
  call void @llvm.memset.p0.i64(ptr align 8 %48, i8 0, i64 40, i1 false)
  br label %2189

2189:                                             ; preds = %2184
  %2190 = load i32, ptr @test_count, align 4, !tbaa !5
  %2191 = add nsw i32 %2190, 1
  store i32 %2191, ptr @test_count, align 4, !tbaa !5
  %2192 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %48, i32 noundef 0)
  %2193 = icmp eq i32 %2192, -1
  br i1 %2193, label %2194, label %2247

2194:                                             ; preds = %2189
  br label %2195

2195:                                             ; preds = %2194
  br label %2196

2196:                                             ; preds = %2195
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %2197 = call ptr @__errno_location() #11
  %2198 = load i32, ptr %2197, align 4, !tbaa !5
  store i32 %2198, ptr %49, align 4, !tbaa !5
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = call i32 @s2n_print_stacktrace(ptr noundef %2199)
  %2201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2202 = trunc i8 %2201 to i1
  br i1 %2202, label %2203, label %2225

2203:                                             ; preds = %2196
  %2204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2205 = call i32 @fileno(ptr noundef %2204) #10
  %2206 = call i32 @isatty(i32 noundef %2205) #10
  %2207 = icmp ne i32 %2206, 0
  br i1 %2207, label %2208, label %2225

2208:                                             ; preds = %2203
  %2209 = load i32, ptr %49, align 4, !tbaa !5
  %2210 = call ptr @__errno_location() #11
  store i32 %2209, ptr %2210, align 4, !tbaa !5
  %2211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2212 = load i32, ptr @test_count, align 4, !tbaa !5
  %2213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2214 = load i32, ptr %2213, align 4, !tbaa !5
  %2215 = call ptr @s2n_strerror(i32 noundef %2214, ptr noundef @.str.4)
  %2216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2217 = load i32, ptr %2216, align 4, !tbaa !5
  %2218 = call ptr @s2n_strerror_debug(i32 noundef %2217, ptr noundef @.str.4)
  %2219 = call ptr @__errno_location() #11
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = call ptr @strerror(i32 noundef %2220) #10
  %2222 = call ptr @__errno_location() #11
  %2223 = load i32, ptr %2222, align 4, !tbaa !5
  %2224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2211, ptr noundef @.str.2, i32 noundef %2212, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 178, ptr noundef %2215, ptr noundef %2218, ptr noundef %2221, i32 noundef %2223) #10
  br label %2242

2225:                                             ; preds = %2203, %2196
  %2226 = load i32, ptr %49, align 4, !tbaa !5
  %2227 = call ptr @__errno_location() #11
  store i32 %2226, ptr %2227, align 4, !tbaa !5
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = load i32, ptr @test_count, align 4, !tbaa !5
  %2230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call ptr @s2n_strerror(i32 noundef %2231, ptr noundef @.str.4)
  %2233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2234 = load i32, ptr %2233, align 4, !tbaa !5
  %2235 = call ptr @s2n_strerror_debug(i32 noundef %2234, ptr noundef @.str.4)
  %2236 = call ptr @__errno_location() #11
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = call ptr @strerror(i32 noundef %2237) #10
  %2239 = call ptr @__errno_location() #11
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2228, ptr noundef @.str.5, i32 noundef %2229, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 178, ptr noundef %2232, ptr noundef %2235, ptr noundef %2238, i32 noundef %2240) #10
  br label %2242

2242:                                             ; preds = %2225, %2208
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %2243

2243:                                             ; preds = %2242
  br label %2244

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

2245:                                             ; No predecessors!
  br label %2246

2246:                                             ; preds = %2245
  br label %2247

2247:                                             ; preds = %2246, %2189
  br label %2248

2248:                                             ; preds = %2247
  br label %2249

2249:                                             ; preds = %2248
  br label %2250

2250:                                             ; preds = %2249
  %2251 = load i32, ptr @test_count, align 4, !tbaa !5
  %2252 = add nsw i32 %2251, 1
  store i32 %2252, ptr @test_count, align 4, !tbaa !5
  %2253 = load ptr, ptr %46, align 8, !tbaa !9
  %2254 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %2253, ptr noundef %48)
  %2255 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  store i32 %2254, ptr %2255, align 4
  %2256 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  %2257 = load i32, ptr %2256, align 4
  %2258 = call zeroext i1 @s2n_result_is_ok(i32 %2257)
  br i1 %2258, label %2312, label %2259

2259:                                             ; preds = %2250
  br label %2260

2260:                                             ; preds = %2259
  br label %2261

2261:                                             ; preds = %2260
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2262 = call ptr @__errno_location() #11
  %2263 = load i32, ptr %2262, align 4, !tbaa !5
  store i32 %2263, ptr %51, align 4, !tbaa !5
  %2264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2265 = call i32 @s2n_print_stacktrace(ptr noundef %2264)
  %2266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2267 = trunc i8 %2266 to i1
  br i1 %2267, label %2268, label %2290

2268:                                             ; preds = %2261
  %2269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2270 = call i32 @fileno(ptr noundef %2269) #10
  %2271 = call i32 @isatty(i32 noundef %2270) #10
  %2272 = icmp ne i32 %2271, 0
  br i1 %2272, label %2273, label %2290

2273:                                             ; preds = %2268
  %2274 = load i32, ptr %51, align 4, !tbaa !5
  %2275 = call ptr @__errno_location() #11
  store i32 %2274, ptr %2275, align 4, !tbaa !5
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = load i32, ptr @test_count, align 4, !tbaa !5
  %2278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2279 = load i32, ptr %2278, align 4, !tbaa !5
  %2280 = call ptr @s2n_strerror(i32 noundef %2279, ptr noundef @.str.4)
  %2281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = call ptr @s2n_strerror_debug(i32 noundef %2282, ptr noundef @.str.4)
  %2284 = call ptr @__errno_location() #11
  %2285 = load i32, ptr %2284, align 4, !tbaa !5
  %2286 = call ptr @strerror(i32 noundef %2285) #10
  %2287 = call ptr @__errno_location() #11
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2276, ptr noundef @.str.2, i32 noundef %2277, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 179, ptr noundef %2280, ptr noundef %2283, ptr noundef %2286, i32 noundef %2288) #10
  br label %2307

2290:                                             ; preds = %2268, %2261
  %2291 = load i32, ptr %51, align 4, !tbaa !5
  %2292 = call ptr @__errno_location() #11
  store i32 %2291, ptr %2292, align 4, !tbaa !5
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = load i32, ptr @test_count, align 4, !tbaa !5
  %2295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2296 = load i32, ptr %2295, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror(i32 noundef %2296, ptr noundef @.str.4)
  %2298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = call ptr @s2n_strerror_debug(i32 noundef %2299, ptr noundef @.str.4)
  %2301 = call ptr @__errno_location() #11
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call ptr @strerror(i32 noundef %2302) #10
  %2304 = call ptr @__errno_location() #11
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2293, ptr noundef @.str.5, i32 noundef %2294, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 179, ptr noundef %2297, ptr noundef %2300, ptr noundef %2303, i32 noundef %2305) #10
  br label %2307

2307:                                             ; preds = %2290, %2273
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2308

2308:                                             ; preds = %2307
  br label %2309

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

2310:                                             ; No predecessors!
  br label %2311

2311:                                             ; preds = %2310
  br label %2312

2312:                                             ; preds = %2311, %2250
  br label %2313

2313:                                             ; preds = %2312
  br label %2314

2314:                                             ; preds = %2313
  call void @llvm.lifetime.start.p0(i64 258, ptr %52) #10
  call void @llvm.memset.p0.i64(ptr align 2 %52, i8 0, i64 258, i1 false)
  br label %2315

2315:                                             ; preds = %2314
  %2316 = load i32, ptr @test_count, align 4, !tbaa !5
  %2317 = add nsw i32 %2316, 1
  store i32 %2317, ptr @test_count, align 4, !tbaa !5
  %2318 = call i32 @s2n_recv_supported_sig_scheme_list(ptr noundef %48, ptr noundef %52)
  %2319 = icmp eq i32 %2318, -1
  br i1 %2319, label %2320, label %2373

2320:                                             ; preds = %2315
  br label %2321

2321:                                             ; preds = %2320
  br label %2322

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

2329:                                             ; preds = %2322
  %2330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2331 = call i32 @fileno(ptr noundef %2330) #10
  %2332 = call i32 @isatty(i32 noundef %2331) #10
  %2333 = icmp ne i32 %2332, 0
  br i1 %2333, label %2334, label %2351

2334:                                             ; preds = %2329
  %2335 = load i32, ptr %53, align 4, !tbaa !5
  %2336 = call ptr @__errno_location() #11
  store i32 %2335, ptr %2336, align 4, !tbaa !5
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = load i32, ptr @test_count, align 4, !tbaa !5
  %2339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = call ptr @s2n_strerror(i32 noundef %2340, ptr noundef @.str.4)
  %2342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call ptr @s2n_strerror_debug(i32 noundef %2343, ptr noundef @.str.4)
  %2345 = call ptr @__errno_location() #11
  %2346 = load i32, ptr %2345, align 4, !tbaa !5
  %2347 = call ptr @strerror(i32 noundef %2346) #10
  %2348 = call ptr @__errno_location() #11
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2337, ptr noundef @.str.2, i32 noundef %2338, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 182, ptr noundef %2341, ptr noundef %2344, ptr noundef %2347, i32 noundef %2349) #10
  br label %2368

2351:                                             ; preds = %2329, %2322
  %2352 = load i32, ptr %53, align 4, !tbaa !5
  %2353 = call ptr @__errno_location() #11
  store i32 %2352, ptr %2353, align 4, !tbaa !5
  %2354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2355 = load i32, ptr @test_count, align 4, !tbaa !5
  %2356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call ptr @s2n_strerror(i32 noundef %2357, ptr noundef @.str.4)
  %2359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call ptr @s2n_strerror_debug(i32 noundef %2360, ptr noundef @.str.4)
  %2362 = call ptr @__errno_location() #11
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call ptr @strerror(i32 noundef %2363) #10
  %2365 = call ptr @__errno_location() #11
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2354, ptr noundef @.str.5, i32 noundef %2355, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 182, ptr noundef %2358, ptr noundef %2361, ptr noundef %2364, i32 noundef %2366) #10
  br label %2368

2368:                                             ; preds = %2351, %2334
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %2369

2369:                                             ; preds = %2368
  br label %2370

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

2371:                                             ; No predecessors!
  br label %2372

2372:                                             ; preds = %2371
  br label %2373

2373:                                             ; preds = %2372, %2315
  br label %2374

2374:                                             ; preds = %2373
  br label %2375

2375:                                             ; preds = %2374
  br label %2376

2376:                                             ; preds = %2375
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %2378 = add nsw i32 %2377, 1
  store i32 %2378, ptr @test_count, align 4, !tbaa !5
  %2379 = getelementptr inbounds %struct.s2n_stuffer, ptr %48, i32 0, i32 2
  %2380 = load i32, ptr %2379, align 4, !tbaa !52
  %2381 = getelementptr inbounds %struct.s2n_stuffer, ptr %48, i32 0, i32 1
  %2382 = load i32, ptr %2381, align 8, !tbaa !53
  %2383 = sub i32 %2380, %2382
  %2384 = icmp eq i32 %2383, 0
  br i1 %2384, label %2438, label %2385

2385:                                             ; preds = %2376
  br label %2386

2386:                                             ; preds = %2385
  br label %2387

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

2394:                                             ; preds = %2387
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = call i32 @fileno(ptr noundef %2395) #10
  %2397 = call i32 @isatty(i32 noundef %2396) #10
  %2398 = icmp ne i32 %2397, 0
  br i1 %2398, label %2399, label %2416

2399:                                             ; preds = %2394
  %2400 = load i32, ptr %54, align 4, !tbaa !5
  %2401 = call ptr @__errno_location() #11
  store i32 %2400, ptr %2401, align 4, !tbaa !5
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2403 = load i32, ptr @test_count, align 4, !tbaa !5
  %2404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2405 = load i32, ptr %2404, align 4, !tbaa !5
  %2406 = call ptr @s2n_strerror(i32 noundef %2405, ptr noundef @.str.4)
  %2407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2408 = load i32, ptr %2407, align 4, !tbaa !5
  %2409 = call ptr @s2n_strerror_debug(i32 noundef %2408, ptr noundef @.str.4)
  %2410 = call ptr @__errno_location() #11
  %2411 = load i32, ptr %2410, align 4, !tbaa !5
  %2412 = call ptr @strerror(i32 noundef %2411) #10
  %2413 = call ptr @__errno_location() #11
  %2414 = load i32, ptr %2413, align 4, !tbaa !5
  %2415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2402, ptr noundef @.str.2, i32 noundef %2403, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 183, ptr noundef %2406, ptr noundef %2409, ptr noundef %2412, i32 noundef %2414) #10
  br label %2433

2416:                                             ; preds = %2394, %2387
  %2417 = load i32, ptr %54, align 4, !tbaa !5
  %2418 = call ptr @__errno_location() #11
  store i32 %2417, ptr %2418, align 4, !tbaa !5
  %2419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2420 = load i32, ptr @test_count, align 4, !tbaa !5
  %2421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call ptr @s2n_strerror(i32 noundef %2422, ptr noundef @.str.4)
  %2424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call ptr @s2n_strerror_debug(i32 noundef %2425, ptr noundef @.str.4)
  %2427 = call ptr @__errno_location() #11
  %2428 = load i32, ptr %2427, align 4, !tbaa !5
  %2429 = call ptr @strerror(i32 noundef %2428) #10
  %2430 = call ptr @__errno_location() #11
  %2431 = load i32, ptr %2430, align 4, !tbaa !5
  %2432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2419, ptr noundef @.str.5, i32 noundef %2420, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 183, ptr noundef %2423, ptr noundef %2426, ptr noundef %2429, i32 noundef %2431) #10
  br label %2433

2433:                                             ; preds = %2416, %2399
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

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

2436:                                             ; No predecessors!
  br label %2437

2437:                                             ; preds = %2436
  br label %2438

2438:                                             ; preds = %2437, %2376
  br label %2439

2439:                                             ; preds = %2438
  br label %2440

2440:                                             ; preds = %2439
  br label %2441

2441:                                             ; preds = %2440
  %2442 = load i32, ptr @test_count, align 4, !tbaa !5
  %2443 = add nsw i32 %2442, 1
  store i32 %2443, ptr @test_count, align 4, !tbaa !5
  %2444 = getelementptr inbounds %struct.s2n_sig_scheme_list, ptr %52, i32 0, i32 1
  %2445 = load i8, ptr %2444, align 2, !tbaa !60
  %2446 = zext i8 %2445 to i64
  %2447 = icmp eq i64 %2446, 6
  br i1 %2447, label %2501, label %2448

2448:                                             ; preds = %2441
  br label %2449

2449:                                             ; preds = %2448
  br label %2450

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

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

2462:                                             ; preds = %2457
  %2463 = load i32, ptr %55, align 4, !tbaa !5
  %2464 = call ptr @__errno_location() #11
  store i32 %2463, ptr %2464, align 4, !tbaa !5
  %2465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2466 = load i32, ptr @test_count, align 4, !tbaa !5
  %2467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2468 = load i32, ptr %2467, align 4, !tbaa !5
  %2469 = call ptr @s2n_strerror(i32 noundef %2468, ptr noundef @.str.4)
  %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_debug(i32 noundef %2471, ptr noundef @.str.4)
  %2473 = call ptr @__errno_location() #11
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = call ptr @strerror(i32 noundef %2474) #10
  %2476 = call ptr @__errno_location() #11
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2465, ptr noundef @.str.2, i32 noundef %2466, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 185, ptr noundef %2469, ptr noundef %2472, ptr noundef %2475, i32 noundef %2477) #10
  br label %2496

2479:                                             ; preds = %2457, %2450
  %2480 = load i32, ptr %55, align 4, !tbaa !5
  %2481 = call ptr @__errno_location() #11
  store i32 %2480, ptr %2481, align 4, !tbaa !5
  %2482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2483 = load i32, ptr @test_count, align 4, !tbaa !5
  %2484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  %2486 = call ptr @s2n_strerror(i32 noundef %2485, ptr noundef @.str.4)
  %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_debug(i32 noundef %2488, ptr noundef @.str.4)
  %2490 = call ptr @__errno_location() #11
  %2491 = load i32, ptr %2490, align 4, !tbaa !5
  %2492 = call ptr @strerror(i32 noundef %2491) #10
  %2493 = call ptr @__errno_location() #11
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2482, ptr noundef @.str.5, i32 noundef %2483, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 185, ptr noundef %2486, ptr noundef %2489, ptr noundef %2492, i32 noundef %2494) #10
  br label %2496

2496:                                             ; preds = %2479, %2462
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2497

2497:                                             ; preds = %2496
  br label %2498

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

2499:                                             ; No predecessors!
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

2501:                                             ; preds = %2500, %2441
  br label %2502

2502:                                             ; preds = %2501
  br label %2503

2503:                                             ; preds = %2502
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #10
  store i64 0, ptr %56, align 8, !tbaa !54
  br label %2504

2504:                                             ; preds = %2580, %2503
  %2505 = load i64, ptr %56, align 8, !tbaa !54
  %2506 = icmp ult i64 %2505, 6
  br i1 %2506, label %2508, label %2507

2507:                                             ; preds = %2504
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  br label %2583

2508:                                             ; preds = %2504
  br label %2509

2509:                                             ; preds = %2508
  %2510 = load i32, ptr @test_count, align 4, !tbaa !5
  %2511 = add nsw i32 %2510, 1
  store i32 %2511, ptr @test_count, align 4, !tbaa !5
  %2512 = getelementptr inbounds %struct.s2n_sig_scheme_list, ptr %52, i32 0, i32 0
  %2513 = load i64, ptr %56, align 8, !tbaa !54
  %2514 = getelementptr inbounds [128 x i16], ptr %2512, i64 0, i64 %2513
  %2515 = load i16, ptr %2514, align 2, !tbaa !51
  %2516 = zext i16 %2515 to i32
  %2517 = load i64, ptr %56, align 8, !tbaa !54
  %2518 = getelementptr inbounds [6 x ptr], ptr @test_signature_schemes, i64 0, i64 %2517
  %2519 = load ptr, ptr %2518, align 8, !tbaa !9
  %2520 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %2519, i32 0, i32 0
  %2521 = load i16, ptr %2520, align 8, !tbaa !55
  %2522 = zext i16 %2521 to i32
  %2523 = icmp eq i32 %2516, %2522
  br i1 %2523, label %2577, label %2524

2524:                                             ; preds = %2509
  br label %2525

2525:                                             ; preds = %2524
  br label %2526

2526:                                             ; preds = %2525
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  %2527 = call ptr @__errno_location() #11
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  store i32 %2528, ptr %57, align 4, !tbaa !5
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = call i32 @s2n_print_stacktrace(ptr noundef %2529)
  %2531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2532 = trunc i8 %2531 to i1
  br i1 %2532, label %2533, label %2555

2533:                                             ; preds = %2526
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = call i32 @fileno(ptr noundef %2534) #10
  %2536 = call i32 @isatty(i32 noundef %2535) #10
  %2537 = icmp ne i32 %2536, 0
  br i1 %2537, label %2538, label %2555

2538:                                             ; preds = %2533
  %2539 = load i32, ptr %57, align 4, !tbaa !5
  %2540 = call ptr @__errno_location() #11
  store i32 %2539, ptr %2540, align 4, !tbaa !5
  %2541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2542 = load i32, ptr @test_count, align 4, !tbaa !5
  %2543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror(i32 noundef %2544, ptr noundef @.str.4)
  %2546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror_debug(i32 noundef %2547, ptr noundef @.str.4)
  %2549 = call ptr @__errno_location() #11
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call ptr @strerror(i32 noundef %2550) #10
  %2552 = call ptr @__errno_location() #11
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2541, ptr noundef @.str.2, i32 noundef %2542, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2545, ptr noundef %2548, ptr noundef %2551, i32 noundef %2553) #10
  br label %2572

2555:                                             ; preds = %2533, %2526
  %2556 = load i32, ptr %57, align 4, !tbaa !5
  %2557 = call ptr @__errno_location() #11
  store i32 %2556, ptr %2557, align 4, !tbaa !5
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = load i32, ptr @test_count, align 4, !tbaa !5
  %2560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call ptr @s2n_strerror(i32 noundef %2561, ptr noundef @.str.4)
  %2563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror_debug(i32 noundef %2564, ptr noundef @.str.4)
  %2566 = call ptr @__errno_location() #11
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @strerror(i32 noundef %2567) #10
  %2569 = call ptr @__errno_location() #11
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2558, ptr noundef @.str.5, i32 noundef %2559, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2562, ptr noundef %2565, ptr noundef %2568, i32 noundef %2570) #10
  br label %2572

2572:                                             ; preds = %2555, %2538
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2573

2573:                                             ; preds = %2572
  br label %2574

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

2575:                                             ; No predecessors!
  br label %2576

2576:                                             ; preds = %2575
  br label %2577

2577:                                             ; preds = %2576, %2509
  br label %2578

2578:                                             ; preds = %2577
  br label %2579

2579:                                             ; preds = %2578
  br label %2580

2580:                                             ; preds = %2579
  %2581 = load i64, ptr %56, align 8, !tbaa !54
  %2582 = add i64 %2581, 1
  store i64 %2582, ptr %56, align 8, !tbaa !54
  br label %2504, !llvm.loop !61

2583:                                             ; preds = %2507
  br label %2584

2584:                                             ; preds = %2583
  %2585 = load i32, ptr @test_count, align 4, !tbaa !5
  %2586 = add nsw i32 %2585, 1
  store i32 %2586, ptr @test_count, align 4, !tbaa !5
  %2587 = getelementptr inbounds %struct.s2n_stuffer, ptr %48, i32 0, i32 2
  %2588 = load i32, ptr %2587, align 4, !tbaa !52
  %2589 = getelementptr inbounds %struct.s2n_stuffer, ptr %48, i32 0, i32 1
  %2590 = load i32, ptr %2589, align 8, !tbaa !53
  %2591 = sub i32 %2588, %2590
  %2592 = icmp eq i32 %2591, 0
  br i1 %2592, label %2646, label %2593

2593:                                             ; preds = %2584
  br label %2594

2594:                                             ; preds = %2593
  br label %2595

2595:                                             ; preds = %2594
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  %2596 = call ptr @__errno_location() #11
  %2597 = load i32, ptr %2596, align 4, !tbaa !5
  store i32 %2597, ptr %58, align 4, !tbaa !5
  %2598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2599 = call i32 @s2n_print_stacktrace(ptr noundef %2598)
  %2600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2601 = trunc i8 %2600 to i1
  br i1 %2601, label %2602, label %2624

2602:                                             ; preds = %2595
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = call i32 @fileno(ptr noundef %2603) #10
  %2605 = call i32 @isatty(i32 noundef %2604) #10
  %2606 = icmp ne i32 %2605, 0
  br i1 %2606, label %2607, label %2624

2607:                                             ; preds = %2602
  %2608 = load i32, ptr %58, align 4, !tbaa !5
  %2609 = call ptr @__errno_location() #11
  store i32 %2608, ptr %2609, align 4, !tbaa !5
  %2610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2611 = load i32, ptr @test_count, align 4, !tbaa !5
  %2612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call ptr @s2n_strerror(i32 noundef %2613, ptr noundef @.str.4)
  %2615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call ptr @s2n_strerror_debug(i32 noundef %2616, ptr noundef @.str.4)
  %2618 = call ptr @__errno_location() #11
  %2619 = load i32, ptr %2618, align 4, !tbaa !5
  %2620 = call ptr @strerror(i32 noundef %2619) #10
  %2621 = call ptr @__errno_location() #11
  %2622 = load i32, ptr %2621, align 4, !tbaa !5
  %2623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2610, ptr noundef @.str.2, i32 noundef %2611, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 189, ptr noundef %2614, ptr noundef %2617, ptr noundef %2620, i32 noundef %2622) #10
  br label %2641

2624:                                             ; preds = %2602, %2595
  %2625 = load i32, ptr %58, align 4, !tbaa !5
  %2626 = call ptr @__errno_location() #11
  store i32 %2625, ptr %2626, align 4, !tbaa !5
  %2627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2628 = load i32, ptr @test_count, align 4, !tbaa !5
  %2629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2630 = load i32, ptr %2629, align 4, !tbaa !5
  %2631 = call ptr @s2n_strerror(i32 noundef %2630, ptr noundef @.str.4)
  %2632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2633 = load i32, ptr %2632, align 4, !tbaa !5
  %2634 = call ptr @s2n_strerror_debug(i32 noundef %2633, ptr noundef @.str.4)
  %2635 = call ptr @__errno_location() #11
  %2636 = load i32, ptr %2635, align 4, !tbaa !5
  %2637 = call ptr @strerror(i32 noundef %2636) #10
  %2638 = call ptr @__errno_location() #11
  %2639 = load i32, ptr %2638, align 4, !tbaa !5
  %2640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2627, ptr noundef @.str.5, i32 noundef %2628, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 189, ptr noundef %2631, ptr noundef %2634, ptr noundef %2637, i32 noundef %2639) #10
  br label %2641

2641:                                             ; preds = %2624, %2607
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2642

2642:                                             ; preds = %2641
  br label %2643

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

2644:                                             ; No predecessors!
  br label %2645

2645:                                             ; preds = %2644
  br label %2646

2646:                                             ; preds = %2645, %2584
  br label %2647

2647:                                             ; preds = %2646
  br label %2648

2648:                                             ; preds = %2647
  call void @llvm.lifetime.end.p0(i64 258, ptr %52) #10
  %2649 = call i32 @s2n_stuffer_free(ptr noundef %48)
  call void @llvm.lifetime.end.p0(i64 40, ptr %48) #10
  %2650 = call i32 @s2n_connection_ptr_free(ptr noundef %46)
  %2651 = getelementptr inbounds %struct.s2n_result, ptr %59, i32 0, i32 0
  store i32 %2650, ptr %2651, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %2652 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2652, ptr %60, align 8, !tbaa !9
  br label %2653

2653:                                             ; preds = %2648
  %2654 = load i32, ptr @test_count, align 4, !tbaa !5
  %2655 = add nsw i32 %2654, 1
  store i32 %2655, ptr @test_count, align 4, !tbaa !5
  %2656 = load ptr, ptr %60, align 8, !tbaa !9
  %2657 = icmp eq ptr %2656, null
  br i1 %2657, label %2658, label %2711

2658:                                             ; preds = %2653
  br label %2659

2659:                                             ; preds = %2658
  br label %2660

2660:                                             ; preds = %2659
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2661 = call ptr @__errno_location() #11
  %2662 = load i32, ptr %2661, align 4, !tbaa !5
  store i32 %2662, ptr %61, align 4, !tbaa !5
  %2663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2664 = call i32 @s2n_print_stacktrace(ptr noundef %2663)
  %2665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2666 = trunc i8 %2665 to i1
  br i1 %2666, label %2667, label %2689

2667:                                             ; preds = %2660
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = call i32 @fileno(ptr noundef %2668) #10
  %2670 = call i32 @isatty(i32 noundef %2669) #10
  %2671 = icmp ne i32 %2670, 0
  br i1 %2671, label %2672, label %2689

2672:                                             ; preds = %2667
  %2673 = load i32, ptr %61, align 4, !tbaa !5
  %2674 = call ptr @__errno_location() #11
  store i32 %2673, ptr %2674, align 4, !tbaa !5
  %2675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2676 = load i32, ptr @test_count, align 4, !tbaa !5
  %2677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2678 = load i32, ptr %2677, align 4, !tbaa !5
  %2679 = call ptr @s2n_strerror(i32 noundef %2678, ptr noundef @.str.4)
  %2680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2681 = load i32, ptr %2680, align 4, !tbaa !5
  %2682 = call ptr @s2n_strerror_debug(i32 noundef %2681, ptr noundef @.str.4)
  %2683 = call ptr @__errno_location() #11
  %2684 = load i32, ptr %2683, align 4, !tbaa !5
  %2685 = call ptr @strerror(i32 noundef %2684) #10
  %2686 = call ptr @__errno_location() #11
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  %2688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2675, ptr noundef @.str.2, i32 noundef %2676, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 196, ptr noundef %2679, ptr noundef %2682, ptr noundef %2685, i32 noundef %2687) #10
  br label %2706

2689:                                             ; preds = %2667, %2660
  %2690 = load i32, ptr %61, align 4, !tbaa !5
  %2691 = call ptr @__errno_location() #11
  store i32 %2690, ptr %2691, align 4, !tbaa !5
  %2692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2693 = load i32, ptr @test_count, align 4, !tbaa !5
  %2694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  %2696 = call ptr @s2n_strerror(i32 noundef %2695, ptr noundef @.str.4)
  %2697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2698 = load i32, ptr %2697, align 4, !tbaa !5
  %2699 = call ptr @s2n_strerror_debug(i32 noundef %2698, ptr noundef @.str.4)
  %2700 = call ptr @__errno_location() #11
  %2701 = load i32, ptr %2700, align 4, !tbaa !5
  %2702 = call ptr @strerror(i32 noundef %2701) #10
  %2703 = call ptr @__errno_location() #11
  %2704 = load i32, ptr %2703, align 4, !tbaa !5
  %2705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2692, ptr noundef @.str.5, i32 noundef %2693, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 196, ptr noundef %2696, ptr noundef %2699, ptr noundef %2702, i32 noundef %2704) #10
  br label %2706

2706:                                             ; preds = %2689, %2672
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2707

2707:                                             ; preds = %2706
  br label %2708

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

2709:                                             ; No predecessors!
  br label %2710

2710:                                             ; preds = %2709
  br label %2711

2711:                                             ; preds = %2710, %2653
  br label %2712

2712:                                             ; preds = %2711
  br label %2713

2713:                                             ; preds = %2712
  %2714 = load ptr, ptr %60, align 8, !tbaa !9
  %2715 = getelementptr inbounds %struct.s2n_connection, ptr %2714, i32 0, i32 2
  store ptr %15, ptr %2715, align 8, !tbaa !26
  %2716 = load ptr, ptr %60, align 8, !tbaa !9
  %2717 = getelementptr inbounds %struct.s2n_connection, ptr %2716, i32 0, i32 23
  store i8 34, ptr %2717, align 4, !tbaa !50
  %2718 = load ptr, ptr %60, align 8, !tbaa !9
  %2719 = load i32, ptr %2718, align 8
  %2720 = and i32 %2719, -5
  %2721 = or i32 %2720, 4
  store i32 %2721, ptr %2718, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr %62) #10
  call void @llvm.memset.p0.i64(ptr align 8 %62, i8 0, i64 40, i1 false)
  br label %2722

2722:                                             ; preds = %2713
  %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_stuffer_growable_alloc(ptr noundef %62, i32 noundef 0)
  %2726 = icmp eq i32 %2725, -1
  br i1 %2726, label %2727, label %2780

2727:                                             ; preds = %2722
  br label %2728

2728:                                             ; preds = %2727
  br label %2729

2729:                                             ; preds = %2728
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %2730 = call ptr @__errno_location() #11
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  store i32 %2731, ptr %63, align 4, !tbaa !5
  %2732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2733 = call i32 @s2n_print_stacktrace(ptr noundef %2732)
  %2734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2735 = trunc i8 %2734 to i1
  br i1 %2735, label %2736, label %2758

2736:                                             ; preds = %2729
  %2737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2738 = call i32 @fileno(ptr noundef %2737) #10
  %2739 = call i32 @isatty(i32 noundef %2738) #10
  %2740 = icmp ne i32 %2739, 0
  br i1 %2740, label %2741, label %2758

2741:                                             ; preds = %2736
  %2742 = load i32, ptr %63, align 4, !tbaa !5
  %2743 = call ptr @__errno_location() #11
  store i32 %2742, ptr %2743, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = load i32, ptr @test_count, align 4, !tbaa !5
  %2746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = call ptr @s2n_strerror(i32 noundef %2747, ptr noundef @.str.4)
  %2749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call ptr @s2n_strerror_debug(i32 noundef %2750, ptr noundef @.str.4)
  %2752 = call ptr @__errno_location() #11
  %2753 = load i32, ptr %2752, align 4, !tbaa !5
  %2754 = call ptr @strerror(i32 noundef %2753) #10
  %2755 = call ptr @__errno_location() #11
  %2756 = load i32, ptr %2755, align 4, !tbaa !5
  %2757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2744, ptr noundef @.str.2, i32 noundef %2745, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 202, ptr noundef %2748, ptr noundef %2751, ptr noundef %2754, i32 noundef %2756) #10
  br label %2775

2758:                                             ; preds = %2736, %2729
  %2759 = load i32, ptr %63, align 4, !tbaa !5
  %2760 = call ptr @__errno_location() #11
  store i32 %2759, ptr %2760, align 4, !tbaa !5
  %2761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2762 = load i32, ptr @test_count, align 4, !tbaa !5
  %2763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2764 = load i32, ptr %2763, align 4, !tbaa !5
  %2765 = call ptr @s2n_strerror(i32 noundef %2764, ptr noundef @.str.4)
  %2766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2767 = load i32, ptr %2766, align 4, !tbaa !5
  %2768 = call ptr @s2n_strerror_debug(i32 noundef %2767, ptr noundef @.str.4)
  %2769 = call ptr @__errno_location() #11
  %2770 = load i32, ptr %2769, align 4, !tbaa !5
  %2771 = call ptr @strerror(i32 noundef %2770) #10
  %2772 = call ptr @__errno_location() #11
  %2773 = load i32, ptr %2772, align 4, !tbaa !5
  %2774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2761, ptr noundef @.str.5, i32 noundef %2762, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 202, ptr noundef %2765, ptr noundef %2768, ptr noundef %2771, i32 noundef %2773) #10
  br label %2775

2775:                                             ; preds = %2758, %2741
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %2776

2776:                                             ; preds = %2775
  br label %2777

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

2778:                                             ; No predecessors!
  br label %2779

2779:                                             ; preds = %2778
  br label %2780

2780:                                             ; preds = %2779, %2722
  br label %2781

2781:                                             ; preds = %2780
  br label %2782

2782:                                             ; preds = %2781
  br label %2783

2783:                                             ; preds = %2782
  %2784 = load i32, ptr @test_count, align 4, !tbaa !5
  %2785 = add nsw i32 %2784, 1
  store i32 %2785, ptr @test_count, align 4, !tbaa !5
  %2786 = load ptr, ptr %60, align 8, !tbaa !9
  %2787 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %2786, ptr noundef %62)
  %2788 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  store i32 %2787, ptr %2788, align 4
  %2789 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  %2790 = load i32, ptr %2789, align 4
  %2791 = call zeroext i1 @s2n_result_is_ok(i32 %2790)
  br i1 %2791, label %2845, label %2792

2792:                                             ; preds = %2783
  br label %2793

2793:                                             ; preds = %2792
  br label %2794

2794:                                             ; preds = %2793
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %2795 = call ptr @__errno_location() #11
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  store i32 %2796, ptr %65, align 4, !tbaa !5
  %2797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2798 = call i32 @s2n_print_stacktrace(ptr noundef %2797)
  %2799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2800 = trunc i8 %2799 to i1
  br i1 %2800, label %2801, label %2823

2801:                                             ; preds = %2794
  %2802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2803 = call i32 @fileno(ptr noundef %2802) #10
  %2804 = call i32 @isatty(i32 noundef %2803) #10
  %2805 = icmp ne i32 %2804, 0
  br i1 %2805, label %2806, label %2823

2806:                                             ; preds = %2801
  %2807 = load i32, ptr %65, align 4, !tbaa !5
  %2808 = call ptr @__errno_location() #11
  store i32 %2807, ptr %2808, align 4, !tbaa !5
  %2809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2810 = load i32, ptr @test_count, align 4, !tbaa !5
  %2811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  %2813 = call ptr @s2n_strerror(i32 noundef %2812, ptr noundef @.str.4)
  %2814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2815 = load i32, ptr %2814, align 4, !tbaa !5
  %2816 = call ptr @s2n_strerror_debug(i32 noundef %2815, ptr noundef @.str.4)
  %2817 = call ptr @__errno_location() #11
  %2818 = load i32, ptr %2817, align 4, !tbaa !5
  %2819 = call ptr @strerror(i32 noundef %2818) #10
  %2820 = call ptr @__errno_location() #11
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2809, ptr noundef @.str.2, i32 noundef %2810, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 203, ptr noundef %2813, ptr noundef %2816, ptr noundef %2819, i32 noundef %2821) #10
  br label %2840

2823:                                             ; preds = %2801, %2794
  %2824 = load i32, ptr %65, align 4, !tbaa !5
  %2825 = call ptr @__errno_location() #11
  store i32 %2824, ptr %2825, align 4, !tbaa !5
  %2826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2827 = load i32, ptr @test_count, align 4, !tbaa !5
  %2828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2829 = load i32, ptr %2828, align 4, !tbaa !5
  %2830 = call ptr @s2n_strerror(i32 noundef %2829, ptr noundef @.str.4)
  %2831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  %2833 = call ptr @s2n_strerror_debug(i32 noundef %2832, ptr noundef @.str.4)
  %2834 = call ptr @__errno_location() #11
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  %2836 = call ptr @strerror(i32 noundef %2835) #10
  %2837 = call ptr @__errno_location() #11
  %2838 = load i32, ptr %2837, align 4, !tbaa !5
  %2839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2826, ptr noundef @.str.5, i32 noundef %2827, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 203, ptr noundef %2830, ptr noundef %2833, ptr noundef %2836, i32 noundef %2838) #10
  br label %2840

2840:                                             ; preds = %2823, %2806
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %2841

2841:                                             ; preds = %2840
  br label %2842

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

2843:                                             ; No predecessors!
  br label %2844

2844:                                             ; preds = %2843
  br label %2845

2845:                                             ; preds = %2844, %2783
  br label %2846

2846:                                             ; preds = %2845
  br label %2847

2847:                                             ; preds = %2846
  call void @llvm.lifetime.start.p0(i64 2, ptr %66) #10
  store i16 0, ptr %66, align 2, !tbaa !51
  br label %2848

2848:                                             ; preds = %2847
  %2849 = load i32, ptr @test_count, align 4, !tbaa !5
  %2850 = add nsw i32 %2849, 1
  store i32 %2850, ptr @test_count, align 4, !tbaa !5
  %2851 = call i32 @s2n_stuffer_read_uint16(ptr noundef %62, ptr noundef %66)
  %2852 = icmp eq i32 %2851, -1
  br i1 %2852, label %2853, label %2906

2853:                                             ; preds = %2848
  br label %2854

2854:                                             ; preds = %2853
  br label %2855

2855:                                             ; preds = %2854
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  %2856 = call ptr @__errno_location() #11
  %2857 = load i32, ptr %2856, align 4, !tbaa !5
  store i32 %2857, ptr %67, align 4, !tbaa !5
  %2858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2859 = call i32 @s2n_print_stacktrace(ptr noundef %2858)
  %2860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2861 = trunc i8 %2860 to i1
  br i1 %2861, label %2862, label %2884

2862:                                             ; preds = %2855
  %2863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2864 = call i32 @fileno(ptr noundef %2863) #10
  %2865 = call i32 @isatty(i32 noundef %2864) #10
  %2866 = icmp ne i32 %2865, 0
  br i1 %2866, label %2867, label %2884

2867:                                             ; preds = %2862
  %2868 = load i32, ptr %67, align 4, !tbaa !5
  %2869 = call ptr @__errno_location() #11
  store i32 %2868, ptr %2869, align 4, !tbaa !5
  %2870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2871 = load i32, ptr @test_count, align 4, !tbaa !5
  %2872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2873 = load i32, ptr %2872, align 4, !tbaa !5
  %2874 = call ptr @s2n_strerror(i32 noundef %2873, ptr noundef @.str.4)
  %2875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2876 = load i32, ptr %2875, align 4, !tbaa !5
  %2877 = call ptr @s2n_strerror_debug(i32 noundef %2876, ptr noundef @.str.4)
  %2878 = call ptr @__errno_location() #11
  %2879 = load i32, ptr %2878, align 4, !tbaa !5
  %2880 = call ptr @strerror(i32 noundef %2879) #10
  %2881 = call ptr @__errno_location() #11
  %2882 = load i32, ptr %2881, align 4, !tbaa !5
  %2883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2870, ptr noundef @.str.2, i32 noundef %2871, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2874, ptr noundef %2877, ptr noundef %2880, i32 noundef %2882) #10
  br label %2901

2884:                                             ; preds = %2862, %2855
  %2885 = load i32, ptr %67, align 4, !tbaa !5
  %2886 = call ptr @__errno_location() #11
  store i32 %2885, ptr %2886, align 4, !tbaa !5
  %2887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2888 = load i32, ptr @test_count, align 4, !tbaa !5
  %2889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call ptr @s2n_strerror(i32 noundef %2890, ptr noundef @.str.4)
  %2892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2893 = load i32, ptr %2892, align 4, !tbaa !5
  %2894 = call ptr @s2n_strerror_debug(i32 noundef %2893, ptr noundef @.str.4)
  %2895 = call ptr @__errno_location() #11
  %2896 = load i32, ptr %2895, align 4, !tbaa !5
  %2897 = call ptr @strerror(i32 noundef %2896) #10
  %2898 = call ptr @__errno_location() #11
  %2899 = load i32, ptr %2898, align 4, !tbaa !5
  %2900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2887, ptr noundef @.str.5, i32 noundef %2888, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2891, ptr noundef %2894, ptr noundef %2897, i32 noundef %2899) #10
  br label %2901

2901:                                             ; preds = %2884, %2867
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %2902

2902:                                             ; preds = %2901
  br label %2903

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

2904:                                             ; No predecessors!
  br label %2905

2905:                                             ; preds = %2904
  br label %2906

2906:                                             ; preds = %2905, %2848
  br label %2907

2907:                                             ; preds = %2906
  br label %2908

2908:                                             ; preds = %2907
  br label %2909

2909:                                             ; preds = %2908
  %2910 = load i32, ptr @test_count, align 4, !tbaa !5
  %2911 = add nsw i32 %2910, 1
  store i32 %2911, ptr @test_count, align 4, !tbaa !5
  %2912 = load i16, ptr %66, align 2, !tbaa !51
  %2913 = zext i16 %2912 to i32
  %2914 = getelementptr inbounds %struct.s2n_stuffer, ptr %62, i32 0, i32 2
  %2915 = load i32, ptr %2914, align 4, !tbaa !52
  %2916 = getelementptr inbounds %struct.s2n_stuffer, ptr %62, i32 0, i32 1
  %2917 = load i32, ptr %2916, align 8, !tbaa !53
  %2918 = sub i32 %2915, %2917
  %2919 = icmp eq i32 %2913, %2918
  br i1 %2919, label %2973, label %2920

2920:                                             ; preds = %2909
  br label %2921

2921:                                             ; preds = %2920
  br label %2922

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

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

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

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

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

2969:                                             ; preds = %2968
  br label %2970

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

2971:                                             ; No predecessors!
  br label %2972

2972:                                             ; preds = %2971
  br label %2973

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

2974:                                             ; preds = %2973
  br label %2975

2975:                                             ; preds = %2974
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #10
  store i64 0, ptr %69, align 8, !tbaa !54
  br label %2976

2976:                                             ; preds = %3127, %2975
  %2977 = load i64, ptr %69, align 8, !tbaa !54
  %2978 = icmp ult i64 %2977, 6
  br i1 %2978, label %2980, label %2979

2979:                                             ; preds = %2976
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  br label %3130

2980:                                             ; preds = %2976
  %2981 = load i64, ptr %69, align 8, !tbaa !54
  %2982 = getelementptr inbounds [6 x ptr], ptr @test_signature_schemes, i64 0, i64 %2981
  %2983 = load ptr, ptr %2982, align 8, !tbaa !9
  %2984 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %2983, i32 0, i32 5
  %2985 = load i8, ptr %2984, align 1, !tbaa !62
  %2986 = zext i8 %2985 to i32
  %2987 = icmp eq i32 %2986, 0
  br i1 %2987, label %2996, label %2988

2988:                                             ; preds = %2980
  %2989 = load i64, ptr %69, align 8, !tbaa !54
  %2990 = getelementptr inbounds [6 x ptr], ptr @test_signature_schemes, i64 0, i64 %2989
  %2991 = load ptr, ptr %2990, align 8, !tbaa !9
  %2992 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %2991, i32 0, i32 5
  %2993 = load i8, ptr %2992, align 1, !tbaa !62
  %2994 = zext i8 %2993 to i32
  %2995 = icmp sge i32 %2994, 34
  br i1 %2995, label %2996, label %3126

2996:                                             ; preds = %2988, %2980
  call void @llvm.lifetime.start.p0(i64 2, ptr %70) #10
  store i16 0, ptr %70, align 2, !tbaa !51
  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 = call i32 @s2n_stuffer_read_uint16(ptr noundef %62, ptr noundef %70)
  %3001 = icmp eq i32 %3000, -1
  br i1 %3001, label %3002, label %3055

3002:                                             ; preds = %2997
  br label %3003

3003:                                             ; preds = %3002
  br label %3004

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

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

3016:                                             ; preds = %3011
  %3017 = load i32, ptr %71, align 4, !tbaa !5
  %3018 = call ptr @__errno_location() #11
  store i32 %3017, ptr %3018, align 4, !tbaa !5
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = load i32, ptr @test_count, align 4, !tbaa !5
  %3021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  %3023 = call ptr @s2n_strerror(i32 noundef %3022, ptr noundef @.str.4)
  %3024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  %3026 = call ptr @s2n_strerror_debug(i32 noundef %3025, ptr noundef @.str.4)
  %3027 = call ptr @__errno_location() #11
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call ptr @strerror(i32 noundef %3028) #10
  %3030 = call ptr @__errno_location() #11
  %3031 = load i32, ptr %3030, align 4, !tbaa !5
  %3032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3019, ptr noundef @.str.2, i32 noundef %3020, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 213, ptr noundef %3023, ptr noundef %3026, ptr noundef %3029, i32 noundef %3031) #10
  br label %3050

3033:                                             ; preds = %3011, %3004
  %3034 = load i32, ptr %71, align 4, !tbaa !5
  %3035 = call ptr @__errno_location() #11
  store i32 %3034, ptr %3035, align 4, !tbaa !5
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = load i32, ptr @test_count, align 4, !tbaa !5
  %3038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror(i32 noundef %3039, ptr noundef @.str.4)
  %3041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @s2n_strerror_debug(i32 noundef %3042, ptr noundef @.str.4)
  %3044 = call ptr @__errno_location() #11
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call ptr @strerror(i32 noundef %3045) #10
  %3047 = call ptr @__errno_location() #11
  %3048 = load i32, ptr %3047, align 4, !tbaa !5
  %3049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3036, ptr noundef @.str.5, i32 noundef %3037, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 213, ptr noundef %3040, ptr noundef %3043, ptr noundef %3046, i32 noundef %3048) #10
  br label %3050

3050:                                             ; preds = %3033, %3016
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %3051

3051:                                             ; preds = %3050
  br label %3052

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

3053:                                             ; No predecessors!
  br label %3054

3054:                                             ; preds = %3053
  br label %3055

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

3056:                                             ; preds = %3055
  br label %3057

3057:                                             ; preds = %3056
  br label %3058

3058:                                             ; preds = %3057
  %3059 = load i32, ptr @test_count, align 4, !tbaa !5
  %3060 = add nsw i32 %3059, 1
  store i32 %3060, ptr @test_count, align 4, !tbaa !5
  %3061 = load i16, ptr %70, align 2, !tbaa !51
  %3062 = zext i16 %3061 to i32
  %3063 = load i64, ptr %69, align 8, !tbaa !54
  %3064 = getelementptr inbounds [6 x ptr], ptr @test_signature_schemes, i64 0, i64 %3063
  %3065 = load ptr, ptr %3064, align 8, !tbaa !9
  %3066 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %3065, i32 0, i32 0
  %3067 = load i16, ptr %3066, align 8, !tbaa !55
  %3068 = zext i16 %3067 to i32
  %3069 = icmp eq i32 %3062, %3068
  br i1 %3069, label %3123, label %3070

3070:                                             ; preds = %3058
  br label %3071

3071:                                             ; preds = %3070
  br label %3072

3072:                                             ; preds = %3071
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %3073 = call ptr @__errno_location() #11
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  store i32 %3074, ptr %72, align 4, !tbaa !5
  %3075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3076 = call i32 @s2n_print_stacktrace(ptr noundef %3075)
  %3077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3078 = trunc i8 %3077 to i1
  br i1 %3078, label %3079, label %3101

3079:                                             ; preds = %3072
  %3080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3081 = call i32 @fileno(ptr noundef %3080) #10
  %3082 = call i32 @isatty(i32 noundef %3081) #10
  %3083 = icmp ne i32 %3082, 0
  br i1 %3083, label %3084, label %3101

3084:                                             ; preds = %3079
  %3085 = load i32, ptr %72, align 4, !tbaa !5
  %3086 = call ptr @__errno_location() #11
  store i32 %3085, ptr %3086, align 4, !tbaa !5
  %3087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3088 = load i32, ptr @test_count, align 4, !tbaa !5
  %3089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3090 = load i32, ptr %3089, align 4, !tbaa !5
  %3091 = call ptr @s2n_strerror(i32 noundef %3090, ptr noundef @.str.4)
  %3092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call ptr @s2n_strerror_debug(i32 noundef %3093, ptr noundef @.str.4)
  %3095 = call ptr @__errno_location() #11
  %3096 = load i32, ptr %3095, align 4, !tbaa !5
  %3097 = call ptr @strerror(i32 noundef %3096) #10
  %3098 = call ptr @__errno_location() #11
  %3099 = load i32, ptr %3098, align 4, !tbaa !5
  %3100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3087, ptr noundef @.str.2, i32 noundef %3088, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 214, ptr noundef %3091, ptr noundef %3094, ptr noundef %3097, i32 noundef %3099) #10
  br label %3118

3101:                                             ; preds = %3079, %3072
  %3102 = load i32, ptr %72, align 4, !tbaa !5
  %3103 = call ptr @__errno_location() #11
  store i32 %3102, ptr %3103, align 4, !tbaa !5
  %3104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3105 = load i32, ptr @test_count, align 4, !tbaa !5
  %3106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = call ptr @s2n_strerror(i32 noundef %3107, ptr noundef @.str.4)
  %3109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3110 = load i32, ptr %3109, align 4, !tbaa !5
  %3111 = call ptr @s2n_strerror_debug(i32 noundef %3110, ptr noundef @.str.4)
  %3112 = call ptr @__errno_location() #11
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call ptr @strerror(i32 noundef %3113) #10
  %3115 = call ptr @__errno_location() #11
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3104, ptr noundef @.str.5, i32 noundef %3105, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 214, ptr noundef %3108, ptr noundef %3111, ptr noundef %3114, i32 noundef %3116) #10
  br label %3118

3118:                                             ; preds = %3101, %3084
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %3119

3119:                                             ; preds = %3118
  br label %3120

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

3121:                                             ; No predecessors!
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

3123:                                             ; preds = %3122, %3058
  br label %3124

3124:                                             ; preds = %3123
  br label %3125

3125:                                             ; preds = %3124
  call void @llvm.lifetime.end.p0(i64 2, ptr %70) #10
  br label %3126

3126:                                             ; preds = %3125, %2988
  br label %3127

3127:                                             ; preds = %3126
  %3128 = load i64, ptr %69, align 8, !tbaa !54
  %3129 = add i64 %3128, 1
  store i64 %3129, ptr %69, align 8, !tbaa !54
  br label %2976, !llvm.loop !63

3130:                                             ; preds = %2979
  br label %3131

3131:                                             ; preds = %3130
  %3132 = load i32, ptr @test_count, align 4, !tbaa !5
  %3133 = add nsw i32 %3132, 1
  store i32 %3133, ptr @test_count, align 4, !tbaa !5
  %3134 = getelementptr inbounds %struct.s2n_stuffer, ptr %62, i32 0, i32 2
  %3135 = load i32, ptr %3134, align 4, !tbaa !52
  %3136 = getelementptr inbounds %struct.s2n_stuffer, ptr %62, i32 0, i32 1
  %3137 = load i32, ptr %3136, align 8, !tbaa !53
  %3138 = sub i32 %3135, %3137
  %3139 = icmp eq i32 %3138, 0
  br i1 %3139, label %3193, label %3140

3140:                                             ; preds = %3131
  br label %3141

3141:                                             ; preds = %3140
  br label %3142

3142:                                             ; preds = %3141
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  %3143 = call ptr @__errno_location() #11
  %3144 = load i32, ptr %3143, align 4, !tbaa !5
  store i32 %3144, ptr %73, align 4, !tbaa !5
  %3145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3146 = call i32 @s2n_print_stacktrace(ptr noundef %3145)
  %3147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3148 = trunc i8 %3147 to i1
  br i1 %3148, label %3149, label %3171

3149:                                             ; preds = %3142
  %3150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3151 = call i32 @fileno(ptr noundef %3150) #10
  %3152 = call i32 @isatty(i32 noundef %3151) #10
  %3153 = icmp ne i32 %3152, 0
  br i1 %3153, label %3154, label %3171

3154:                                             ; preds = %3149
  %3155 = load i32, ptr %73, align 4, !tbaa !5
  %3156 = call ptr @__errno_location() #11
  store i32 %3155, ptr %3156, align 4, !tbaa !5
  %3157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3158 = load i32, ptr @test_count, align 4, !tbaa !5
  %3159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3160 = load i32, ptr %3159, align 4, !tbaa !5
  %3161 = call ptr @s2n_strerror(i32 noundef %3160, ptr noundef @.str.4)
  %3162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3163 = load i32, ptr %3162, align 4, !tbaa !5
  %3164 = call ptr @s2n_strerror_debug(i32 noundef %3163, ptr noundef @.str.4)
  %3165 = call ptr @__errno_location() #11
  %3166 = load i32, ptr %3165, align 4, !tbaa !5
  %3167 = call ptr @strerror(i32 noundef %3166) #10
  %3168 = call ptr @__errno_location() #11
  %3169 = load i32, ptr %3168, align 4, !tbaa !5
  %3170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3157, ptr noundef @.str.2, i32 noundef %3158, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 217, ptr noundef %3161, ptr noundef %3164, ptr noundef %3167, i32 noundef %3169) #10
  br label %3188

3171:                                             ; preds = %3149, %3142
  %3172 = load i32, ptr %73, align 4, !tbaa !5
  %3173 = call ptr @__errno_location() #11
  store i32 %3172, ptr %3173, align 4, !tbaa !5
  %3174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3175 = load i32, ptr @test_count, align 4, !tbaa !5
  %3176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3177 = load i32, ptr %3176, align 4, !tbaa !5
  %3178 = call ptr @s2n_strerror(i32 noundef %3177, ptr noundef @.str.4)
  %3179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3180 = load i32, ptr %3179, align 4, !tbaa !5
  %3181 = call ptr @s2n_strerror_debug(i32 noundef %3180, ptr noundef @.str.4)
  %3182 = call ptr @__errno_location() #11
  %3183 = load i32, ptr %3182, align 4, !tbaa !5
  %3184 = call ptr @strerror(i32 noundef %3183) #10
  %3185 = call ptr @__errno_location() #11
  %3186 = load i32, ptr %3185, align 4, !tbaa !5
  %3187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3174, ptr noundef @.str.5, i32 noundef %3175, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 217, ptr noundef %3178, ptr noundef %3181, ptr noundef %3184, i32 noundef %3186) #10
  br label %3188

3188:                                             ; preds = %3171, %3154
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %3189

3189:                                             ; preds = %3188
  br label %3190

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

3191:                                             ; No predecessors!
  br label %3192

3192:                                             ; preds = %3191
  br label %3193

3193:                                             ; preds = %3192, %3131
  br label %3194

3194:                                             ; preds = %3193
  br label %3195

3195:                                             ; preds = %3194
  call void @llvm.lifetime.end.p0(i64 2, ptr %66) #10
  %3196 = call i32 @s2n_stuffer_free(ptr noundef %62)
  call void @llvm.lifetime.end.p0(i64 40, ptr %62) #10
  %3197 = call i32 @s2n_connection_ptr_free(ptr noundef %60)
  %3198 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  store i32 %3197, ptr %3198, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %15) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #10
  %3199 = call ptr @s2n_config_new()
  store ptr %3199, ptr %75, align 8, !tbaa !9
  br label %3200

3200:                                             ; preds = %3195
  %3201 = load i32, ptr @test_count, align 4, !tbaa !5
  %3202 = add nsw i32 %3201, 1
  store i32 %3202, ptr @test_count, align 4, !tbaa !5
  %3203 = load ptr, ptr %75, align 8, !tbaa !9
  %3204 = load ptr, ptr %10, align 8, !tbaa !9
  %3205 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3203, ptr noundef %3204)
  %3206 = icmp eq i32 %3205, -1
  br i1 %3206, label %3207, label %3260

3207:                                             ; preds = %3200
  br label %3208

3208:                                             ; preds = %3207
  br label %3209

3209:                                             ; preds = %3208
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  %3210 = call ptr @__errno_location() #11
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  store i32 %3211, ptr %76, align 4, !tbaa !5
  %3212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3213 = call i32 @s2n_print_stacktrace(ptr noundef %3212)
  %3214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3215 = trunc i8 %3214 to i1
  br i1 %3215, label %3216, label %3238

3216:                                             ; preds = %3209
  %3217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3218 = call i32 @fileno(ptr noundef %3217) #10
  %3219 = call i32 @isatty(i32 noundef %3218) #10
  %3220 = icmp ne i32 %3219, 0
  br i1 %3220, label %3221, label %3238

3221:                                             ; preds = %3216
  %3222 = load i32, ptr %76, align 4, !tbaa !5
  %3223 = call ptr @__errno_location() #11
  store i32 %3222, ptr %3223, align 4, !tbaa !5
  %3224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3227 = load i32, ptr %3226, align 4, !tbaa !5
  %3228 = call ptr @s2n_strerror(i32 noundef %3227, ptr noundef @.str.4)
  %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_debug(i32 noundef %3230, ptr noundef @.str.4)
  %3232 = call ptr @__errno_location() #11
  %3233 = load i32, ptr %3232, align 4, !tbaa !5
  %3234 = call ptr @strerror(i32 noundef %3233) #10
  %3235 = call ptr @__errno_location() #11
  %3236 = load i32, ptr %3235, align 4, !tbaa !5
  %3237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3224, ptr noundef @.str.2, i32 noundef %3225, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3228, ptr noundef %3231, ptr noundef %3234, i32 noundef %3236) #10
  br label %3255

3238:                                             ; preds = %3216, %3209
  %3239 = load i32, ptr %76, align 4, !tbaa !5
  %3240 = call ptr @__errno_location() #11
  store i32 %3239, ptr %3240, align 4, !tbaa !5
  %3241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3242 = load i32, ptr @test_count, align 4, !tbaa !5
  %3243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3244 = load i32, ptr %3243, align 4, !tbaa !5
  %3245 = call ptr @s2n_strerror(i32 noundef %3244, ptr noundef @.str.4)
  %3246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3247 = load i32, ptr %3246, align 4, !tbaa !5
  %3248 = call ptr @s2n_strerror_debug(i32 noundef %3247, ptr noundef @.str.4)
  %3249 = call ptr @__errno_location() #11
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  %3251 = call ptr @strerror(i32 noundef %3250) #10
  %3252 = call ptr @__errno_location() #11
  %3253 = load i32, ptr %3252, align 4, !tbaa !5
  %3254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3241, ptr noundef @.str.5, i32 noundef %3242, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3245, ptr noundef %3248, ptr noundef %3251, i32 noundef %3253) #10
  br label %3255

3255:                                             ; preds = %3238, %3221
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %3256

3256:                                             ; preds = %3255
  br label %3257

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

3258:                                             ; No predecessors!
  br label %3259

3259:                                             ; preds = %3258
  br label %3260

3260:                                             ; preds = %3259, %3200
  br label %3261

3261:                                             ; preds = %3260
  br label %3262

3262:                                             ; preds = %3261
  br label %3263

3263:                                             ; preds = %3262
  %3264 = load i32, ptr @test_count, align 4, !tbaa !5
  %3265 = add nsw i32 %3264, 1
  store i32 %3265, ptr @test_count, align 4, !tbaa !5
  %3266 = load ptr, ptr %75, align 8, !tbaa !9
  %3267 = load ptr, ptr %12, align 8, !tbaa !9
  %3268 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3266, ptr noundef %3267)
  %3269 = icmp eq i32 %3268, -1
  br i1 %3269, label %3270, label %3323

3270:                                             ; preds = %3263
  br label %3271

3271:                                             ; preds = %3270
  br label %3272

3272:                                             ; preds = %3271
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %3273 = call ptr @__errno_location() #11
  %3274 = load i32, ptr %3273, align 4, !tbaa !5
  store i32 %3274, ptr %77, align 4, !tbaa !5
  %3275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3276 = call i32 @s2n_print_stacktrace(ptr noundef %3275)
  %3277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3278 = trunc i8 %3277 to i1
  br i1 %3278, label %3279, label %3301

3279:                                             ; preds = %3272
  %3280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3281 = call i32 @fileno(ptr noundef %3280) #10
  %3282 = call i32 @isatty(i32 noundef %3281) #10
  %3283 = icmp ne i32 %3282, 0
  br i1 %3283, label %3284, label %3301

3284:                                             ; preds = %3279
  %3285 = load i32, ptr %77, align 4, !tbaa !5
  %3286 = call ptr @__errno_location() #11
  store i32 %3285, ptr %3286, align 4, !tbaa !5
  %3287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3288 = load i32, ptr @test_count, align 4, !tbaa !5
  %3289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3290 = load i32, ptr %3289, align 4, !tbaa !5
  %3291 = call ptr @s2n_strerror(i32 noundef %3290, ptr noundef @.str.4)
  %3292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3293 = load i32, ptr %3292, align 4, !tbaa !5
  %3294 = call ptr @s2n_strerror_debug(i32 noundef %3293, ptr noundef @.str.4)
  %3295 = call ptr @__errno_location() #11
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  %3297 = call ptr @strerror(i32 noundef %3296) #10
  %3298 = call ptr @__errno_location() #11
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  %3300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3287, ptr noundef @.str.2, i32 noundef %3288, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 225, ptr noundef %3291, ptr noundef %3294, ptr noundef %3297, i32 noundef %3299) #10
  br label %3318

3301:                                             ; preds = %3279, %3272
  %3302 = load i32, ptr %77, align 4, !tbaa !5
  %3303 = call ptr @__errno_location() #11
  store i32 %3302, ptr %3303, align 4, !tbaa !5
  %3304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3305 = load i32, ptr @test_count, align 4, !tbaa !5
  %3306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3307 = load i32, ptr %3306, align 4, !tbaa !5
  %3308 = call ptr @s2n_strerror(i32 noundef %3307, ptr noundef @.str.4)
  %3309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3310 = load i32, ptr %3309, align 4, !tbaa !5
  %3311 = call ptr @s2n_strerror_debug(i32 noundef %3310, ptr noundef @.str.4)
  %3312 = call ptr @__errno_location() #11
  %3313 = load i32, ptr %3312, align 4, !tbaa !5
  %3314 = call ptr @strerror(i32 noundef %3313) #10
  %3315 = call ptr @__errno_location() #11
  %3316 = load i32, ptr %3315, align 4, !tbaa !5
  %3317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3304, ptr noundef @.str.5, i32 noundef %3305, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 225, ptr noundef %3308, ptr noundef %3311, ptr noundef %3314, i32 noundef %3316) #10
  br label %3318

3318:                                             ; preds = %3301, %3284
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3319

3319:                                             ; preds = %3318
  br label %3320

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

3321:                                             ; No predecessors!
  br label %3322

3322:                                             ; preds = %3321
  br label %3323

3323:                                             ; preds = %3322, %3263
  br label %3324

3324:                                             ; preds = %3323
  br label %3325

3325:                                             ; preds = %3324
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #10
  %3326 = call ptr @s2n_config_new()
  store ptr %3326, ptr %78, align 8, !tbaa !9
  br label %3327

3327:                                             ; preds = %3325
  %3328 = load i32, ptr @test_count, align 4, !tbaa !5
  %3329 = add nsw i32 %3328, 1
  store i32 %3329, ptr @test_count, align 4, !tbaa !5
  %3330 = load ptr, ptr %78, align 8, !tbaa !9
  %3331 = load ptr, ptr %12, align 8, !tbaa !9
  %3332 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3330, ptr noundef %3331)
  %3333 = icmp eq i32 %3332, -1
  br i1 %3333, label %3334, label %3387

3334:                                             ; preds = %3327
  br label %3335

3335:                                             ; preds = %3334
  br label %3336

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

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

3348:                                             ; preds = %3343
  %3349 = load i32, ptr %79, align 4, !tbaa !5
  %3350 = call ptr @__errno_location() #11
  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() #11
  %3360 = load i32, ptr %3359, align 4, !tbaa !5
  %3361 = call ptr @strerror(i32 noundef %3360) #10
  %3362 = call ptr @__errno_location() #11
  %3363 = load i32, ptr %3362, align 4, !tbaa !5
  %3364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3351, ptr noundef @.str.2, i32 noundef %3352, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 229, ptr noundef %3355, ptr noundef %3358, ptr noundef %3361, i32 noundef %3363) #10
  br label %3382

3365:                                             ; preds = %3343, %3336
  %3366 = load i32, ptr %79, align 4, !tbaa !5
  %3367 = call ptr @__errno_location() #11
  store i32 %3366, ptr %3367, align 4, !tbaa !5
  %3368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3369 = load i32, ptr @test_count, align 4, !tbaa !5
  %3370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3371 = load i32, ptr %3370, align 4, !tbaa !5
  %3372 = call ptr @s2n_strerror(i32 noundef %3371, ptr noundef @.str.4)
  %3373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3374 = load i32, ptr %3373, align 4, !tbaa !5
  %3375 = call ptr @s2n_strerror_debug(i32 noundef %3374, ptr noundef @.str.4)
  %3376 = call ptr @__errno_location() #11
  %3377 = load i32, ptr %3376, align 4, !tbaa !5
  %3378 = call ptr @strerror(i32 noundef %3377) #10
  %3379 = call ptr @__errno_location() #11
  %3380 = load i32, ptr %3379, align 4, !tbaa !5
  %3381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3368, ptr noundef @.str.5, i32 noundef %3369, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 229, ptr noundef %3372, ptr noundef %3375, ptr noundef %3378, i32 noundef %3380) #10
  br label %3382

3382:                                             ; preds = %3365, %3348
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3383

3383:                                             ; preds = %3382
  br label %3384

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

3385:                                             ; No predecessors!
  br label %3386

3386:                                             ; preds = %3385
  br label %3387

3387:                                             ; preds = %3386, %3327
  br label %3388

3388:                                             ; preds = %3387
  br label %3389

3389:                                             ; preds = %3388
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #10
  %3390 = call ptr @s2n_config_new()
  store ptr %3390, ptr %80, align 8, !tbaa !9
  br label %3391

3391:                                             ; preds = %3389
  %3392 = load i32, ptr @test_count, align 4, !tbaa !5
  %3393 = add nsw i32 %3392, 1
  store i32 %3393, ptr @test_count, align 4, !tbaa !5
  %3394 = load ptr, ptr %80, align 8, !tbaa !9
  %3395 = load ptr, ptr %10, align 8, !tbaa !9
  %3396 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3394, ptr noundef %3395)
  %3397 = icmp eq i32 %3396, -1
  br i1 %3397, label %3398, label %3451

3398:                                             ; preds = %3391
  br label %3399

3399:                                             ; preds = %3398
  br label %3400

3400:                                             ; preds = %3399
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %3401 = call ptr @__errno_location() #11
  %3402 = load i32, ptr %3401, align 4, !tbaa !5
  store i32 %3402, ptr %81, align 4, !tbaa !5
  %3403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3404 = call i32 @s2n_print_stacktrace(ptr noundef %3403)
  %3405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3406 = trunc i8 %3405 to i1
  br i1 %3406, label %3407, label %3429

3407:                                             ; preds = %3400
  %3408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3409 = call i32 @fileno(ptr noundef %3408) #10
  %3410 = call i32 @isatty(i32 noundef %3409) #10
  %3411 = icmp ne i32 %3410, 0
  br i1 %3411, label %3412, label %3429

3412:                                             ; preds = %3407
  %3413 = load i32, ptr %81, align 4, !tbaa !5
  %3414 = call ptr @__errno_location() #11
  store i32 %3413, ptr %3414, align 4, !tbaa !5
  %3415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3416 = load i32, ptr @test_count, align 4, !tbaa !5
  %3417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3418 = load i32, ptr %3417, align 4, !tbaa !5
  %3419 = call ptr @s2n_strerror(i32 noundef %3418, ptr noundef @.str.4)
  %3420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3421 = load i32, ptr %3420, align 4, !tbaa !5
  %3422 = call ptr @s2n_strerror_debug(i32 noundef %3421, ptr noundef @.str.4)
  %3423 = call ptr @__errno_location() #11
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  %3425 = call ptr @strerror(i32 noundef %3424) #10
  %3426 = call ptr @__errno_location() #11
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  %3428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3415, ptr noundef @.str.2, i32 noundef %3416, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 231, ptr noundef %3419, ptr noundef %3422, ptr noundef %3425, i32 noundef %3427) #10
  br label %3446

3429:                                             ; preds = %3407, %3400
  %3430 = load i32, ptr %81, align 4, !tbaa !5
  %3431 = call ptr @__errno_location() #11
  store i32 %3430, ptr %3431, align 4, !tbaa !5
  %3432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3433 = load i32, ptr @test_count, align 4, !tbaa !5
  %3434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3435 = load i32, ptr %3434, align 4, !tbaa !5
  %3436 = call ptr @s2n_strerror(i32 noundef %3435, ptr noundef @.str.4)
  %3437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3438 = load i32, ptr %3437, align 4, !tbaa !5
  %3439 = call ptr @s2n_strerror_debug(i32 noundef %3438, ptr noundef @.str.4)
  %3440 = call ptr @__errno_location() #11
  %3441 = load i32, ptr %3440, align 4, !tbaa !5
  %3442 = call ptr @strerror(i32 noundef %3441) #10
  %3443 = call ptr @__errno_location() #11
  %3444 = load i32, ptr %3443, align 4, !tbaa !5
  %3445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3432, ptr noundef @.str.5, i32 noundef %3433, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 231, ptr noundef %3436, ptr noundef %3439, ptr noundef %3442, i32 noundef %3444) #10
  br label %3446

3446:                                             ; preds = %3429, %3412
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3447

3447:                                             ; preds = %3446
  br label %3448

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

3449:                                             ; No predecessors!
  br label %3450

3450:                                             ; preds = %3449
  br label %3451

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

3452:                                             ; preds = %3451
  br label %3453

3453:                                             ; preds = %3452
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #10
  store ptr @s2n_ecdsa_sha1, ptr %82, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  store ptr @s2n_rsa_pkcs1_sha1, ptr %83, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %84, ptr align 16 @__const.main.test_schemes, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %3454 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3454, ptr %85, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %86) #10
  call void @llvm.memset.p0.i64(ptr align 8 %86, i8 0, i64 80, i1 false)
  br label %3455

3455:                                             ; preds = %3453
  %3456 = load i32, ptr @test_count, align 4, !tbaa !5
  %3457 = add nsw i32 %3456, 1
  store i32 %3457, ptr @test_count, align 4, !tbaa !5
  %3458 = load ptr, ptr %85, align 8, !tbaa !9
  %3459 = getelementptr inbounds [4 x ptr], ptr %84, i64 0, i64 0
  %3460 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %3458, ptr noundef %86, ptr noundef %3459, i64 noundef 4)
  %3461 = getelementptr inbounds %struct.s2n_result, ptr %87, i32 0, i32 0
  store i32 %3460, ptr %3461, align 4
  %3462 = getelementptr inbounds %struct.s2n_result, ptr %87, i32 0, i32 0
  %3463 = load i32, ptr %3462, align 4
  %3464 = call zeroext i1 @s2n_result_is_ok(i32 %3463)
  br i1 %3464, label %3518, label %3465

3465:                                             ; preds = %3455
  br label %3466

3466:                                             ; preds = %3465
  br label %3467

3467:                                             ; preds = %3466
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #10
  %3468 = call ptr @__errno_location() #11
  %3469 = load i32, ptr %3468, align 4, !tbaa !5
  store i32 %3469, ptr %88, align 4, !tbaa !5
  %3470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3471 = call i32 @s2n_print_stacktrace(ptr noundef %3470)
  %3472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3473 = trunc i8 %3472 to i1
  br i1 %3473, label %3474, label %3496

3474:                                             ; preds = %3467
  %3475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3476 = call i32 @fileno(ptr noundef %3475) #10
  %3477 = call i32 @isatty(i32 noundef %3476) #10
  %3478 = icmp ne i32 %3477, 0
  br i1 %3478, label %3479, label %3496

3479:                                             ; preds = %3474
  %3480 = load i32, ptr %88, align 4, !tbaa !5
  %3481 = call ptr @__errno_location() #11
  store i32 %3480, ptr %3481, align 4, !tbaa !5
  %3482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3483 = load i32, ptr @test_count, align 4, !tbaa !5
  %3484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3485 = load i32, ptr %3484, align 4, !tbaa !5
  %3486 = call ptr @s2n_strerror(i32 noundef %3485, ptr noundef @.str.4)
  %3487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3488 = load i32, ptr %3487, align 4, !tbaa !5
  %3489 = call ptr @s2n_strerror_debug(i32 noundef %3488, ptr noundef @.str.4)
  %3490 = call ptr @__errno_location() #11
  %3491 = load i32, ptr %3490, align 4, !tbaa !5
  %3492 = call ptr @strerror(i32 noundef %3491) #10
  %3493 = call ptr @__errno_location() #11
  %3494 = load i32, ptr %3493, align 4, !tbaa !5
  %3495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3482, ptr noundef @.str.2, i32 noundef %3483, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 256, ptr noundef %3486, ptr noundef %3489, ptr noundef %3492, i32 noundef %3494) #10
  br label %3513

3496:                                             ; preds = %3474, %3467
  %3497 = load i32, ptr %88, align 4, !tbaa !5
  %3498 = call ptr @__errno_location() #11
  store i32 %3497, ptr %3498, align 4, !tbaa !5
  %3499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3500 = load i32, ptr @test_count, align 4, !tbaa !5
  %3501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3502 = load i32, ptr %3501, align 4, !tbaa !5
  %3503 = call ptr @s2n_strerror(i32 noundef %3502, ptr noundef @.str.4)
  %3504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3505 = load i32, ptr %3504, align 4, !tbaa !5
  %3506 = call ptr @s2n_strerror_debug(i32 noundef %3505, ptr noundef @.str.4)
  %3507 = call ptr @__errno_location() #11
  %3508 = load i32, ptr %3507, align 4, !tbaa !5
  %3509 = call ptr @strerror(i32 noundef %3508) #10
  %3510 = call ptr @__errno_location() #11
  %3511 = load i32, ptr %3510, align 4, !tbaa !5
  %3512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3499, ptr noundef @.str.5, i32 noundef %3500, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 256, ptr noundef %3503, ptr noundef %3506, ptr noundef %3509, i32 noundef %3511) #10
  br label %3513

3513:                                             ; preds = %3496, %3479
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %3514

3514:                                             ; preds = %3513
  br label %3515

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

3516:                                             ; No predecessors!
  br label %3517

3517:                                             ; preds = %3516
  br label %3518

3518:                                             ; preds = %3517, %3455
  br label %3519

3519:                                             ; preds = %3518
  br label %3520

3520:                                             ; preds = %3519
  br label %3521

3521:                                             ; preds = %3520
  %3522 = load i32, ptr @test_count, align 4, !tbaa !5
  %3523 = add nsw i32 %3522, 1
  store i32 %3523, ptr @test_count, align 4, !tbaa !5
  %3524 = load ptr, ptr %85, align 8, !tbaa !9
  %3525 = getelementptr inbounds %struct.s2n_connection, ptr %3524, i32 0, i32 32
  %3526 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %3525, i32 0, i32 4
  %3527 = getelementptr inbounds [4 x ptr], ptr %84, i64 0, i64 0
  %3528 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %3526, ptr noundef %3527, i64 noundef 4)
  %3529 = getelementptr inbounds %struct.s2n_result, ptr %89, i32 0, i32 0
  store i32 %3528, ptr %3529, align 4
  %3530 = getelementptr inbounds %struct.s2n_result, ptr %89, i32 0, i32 0
  %3531 = load i32, ptr %3530, align 4
  %3532 = call zeroext i1 @s2n_result_is_ok(i32 %3531)
  br i1 %3532, label %3586, label %3533

3533:                                             ; preds = %3521
  br label %3534

3534:                                             ; preds = %3533
  br label %3535

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

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

3547:                                             ; preds = %3542
  %3548 = load i32, ptr %90, align 4, !tbaa !5
  %3549 = call ptr @__errno_location() #11
  store i32 %3548, ptr %3549, align 4, !tbaa !5
  %3550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3551 = load i32, ptr @test_count, align 4, !tbaa !5
  %3552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3553 = load i32, ptr %3552, align 4, !tbaa !5
  %3554 = call ptr @s2n_strerror(i32 noundef %3553, ptr noundef @.str.4)
  %3555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3556 = load i32, ptr %3555, align 4, !tbaa !5
  %3557 = call ptr @s2n_strerror_debug(i32 noundef %3556, ptr noundef @.str.4)
  %3558 = call ptr @__errno_location() #11
  %3559 = load i32, ptr %3558, align 4, !tbaa !5
  %3560 = call ptr @strerror(i32 noundef %3559) #10
  %3561 = call ptr @__errno_location() #11
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  %3563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3550, ptr noundef @.str.2, i32 noundef %3551, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 258, ptr noundef %3554, ptr noundef %3557, ptr noundef %3560, i32 noundef %3562) #10
  br label %3581

3564:                                             ; preds = %3542, %3535
  %3565 = load i32, ptr %90, align 4, !tbaa !5
  %3566 = call ptr @__errno_location() #11
  store i32 %3565, ptr %3566, align 4, !tbaa !5
  %3567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3568 = load i32, ptr @test_count, align 4, !tbaa !5
  %3569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3570 = load i32, ptr %3569, align 4, !tbaa !5
  %3571 = call ptr @s2n_strerror(i32 noundef %3570, ptr noundef @.str.4)
  %3572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3573 = load i32, ptr %3572, align 4, !tbaa !5
  %3574 = call ptr @s2n_strerror_debug(i32 noundef %3573, ptr noundef @.str.4)
  %3575 = call ptr @__errno_location() #11
  %3576 = load i32, ptr %3575, align 4, !tbaa !5
  %3577 = call ptr @strerror(i32 noundef %3576) #10
  %3578 = call ptr @__errno_location() #11
  %3579 = load i32, ptr %3578, align 4, !tbaa !5
  %3580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3567, ptr noundef @.str.5, i32 noundef %3568, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 258, ptr noundef %3571, ptr noundef %3574, ptr noundef %3577, i32 noundef %3579) #10
  br label %3581

3581:                                             ; preds = %3564, %3547
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %3582

3582:                                             ; preds = %3581
  br label %3583

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

3584:                                             ; No predecessors!
  br label %3585

3585:                                             ; preds = %3584
  br label %3586

3586:                                             ; preds = %3585, %3521
  br label %3587

3587:                                             ; preds = %3586
  br label %3588

3588:                                             ; preds = %3587
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #10
  store ptr @s2n_ecdsa_sha1, ptr %91, align 8, !tbaa !9
  %3589 = load ptr, ptr %85, align 8, !tbaa !9
  %3590 = getelementptr inbounds %struct.s2n_connection, ptr %3589, i32 0, i32 32
  %3591 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %3590, i32 0, i32 3
  store i32 1, ptr %3591, align 8, !tbaa !64
  br label %3592

3592:                                             ; preds = %3588
  %3593 = load i32, ptr @test_count, align 4, !tbaa !5
  %3594 = add nsw i32 %3593, 1
  store i32 %3594, ptr @test_count, align 4, !tbaa !5
  %3595 = load ptr, ptr %85, align 8, !tbaa !9
  %3596 = load ptr, ptr %78, align 8, !tbaa !9
  %3597 = call i32 @s2n_connection_set_config(ptr noundef %3595, ptr noundef %3596)
  %3598 = icmp eq i32 %3597, -1
  br i1 %3598, label %3599, label %3652

3599:                                             ; preds = %3592
  br label %3600

3600:                                             ; preds = %3599
  br label %3601

3601:                                             ; preds = %3600
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %3602 = call ptr @__errno_location() #11
  %3603 = load i32, ptr %3602, align 4, !tbaa !5
  store i32 %3603, ptr %92, align 4, !tbaa !5
  %3604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3605 = call i32 @s2n_print_stacktrace(ptr noundef %3604)
  %3606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3607 = trunc i8 %3606 to i1
  br i1 %3607, label %3608, label %3630

3608:                                             ; preds = %3601
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = call i32 @fileno(ptr noundef %3609) #10
  %3611 = call i32 @isatty(i32 noundef %3610) #10
  %3612 = icmp ne i32 %3611, 0
  br i1 %3612, label %3613, label %3630

3613:                                             ; preds = %3608
  %3614 = load i32, ptr %92, align 4, !tbaa !5
  %3615 = call ptr @__errno_location() #11
  store i32 %3614, ptr %3615, align 4, !tbaa !5
  %3616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3617 = load i32, ptr @test_count, align 4, !tbaa !5
  %3618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3619 = load i32, ptr %3618, align 4, !tbaa !5
  %3620 = call ptr @s2n_strerror(i32 noundef %3619, ptr noundef @.str.4)
  %3621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  %3623 = call ptr @s2n_strerror_debug(i32 noundef %3622, ptr noundef @.str.4)
  %3624 = call ptr @__errno_location() #11
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call ptr @strerror(i32 noundef %3625) #10
  %3627 = call ptr @__errno_location() #11
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3616, ptr noundef @.str.2, i32 noundef %3617, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 264, ptr noundef %3620, ptr noundef %3623, ptr noundef %3626, i32 noundef %3628) #10
  br label %3647

3630:                                             ; preds = %3608, %3601
  %3631 = load i32, ptr %92, align 4, !tbaa !5
  %3632 = call ptr @__errno_location() #11
  store i32 %3631, ptr %3632, align 4, !tbaa !5
  %3633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3634 = load i32, ptr @test_count, align 4, !tbaa !5
  %3635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3636 = load i32, ptr %3635, align 4, !tbaa !5
  %3637 = call ptr @s2n_strerror(i32 noundef %3636, ptr noundef @.str.4)
  %3638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3639 = load i32, ptr %3638, align 4, !tbaa !5
  %3640 = call ptr @s2n_strerror_debug(i32 noundef %3639, ptr noundef @.str.4)
  %3641 = call ptr @__errno_location() #11
  %3642 = load i32, ptr %3641, align 4, !tbaa !5
  %3643 = call ptr @strerror(i32 noundef %3642) #10
  %3644 = call ptr @__errno_location() #11
  %3645 = load i32, ptr %3644, align 4, !tbaa !5
  %3646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3633, ptr noundef @.str.5, i32 noundef %3634, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 264, ptr noundef %3637, ptr noundef %3640, ptr noundef %3643, i32 noundef %3645) #10
  br label %3647

3647:                                             ; preds = %3630, %3613
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %3648

3648:                                             ; preds = %3647
  br label %3649

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

3650:                                             ; No predecessors!
  br label %3651

3651:                                             ; preds = %3650
  br label %3652

3652:                                             ; preds = %3651, %3592
  br label %3653

3653:                                             ; preds = %3652
  br label %3654

3654:                                             ; preds = %3653
  %3655 = load ptr, ptr %85, align 8, !tbaa !9
  %3656 = getelementptr inbounds %struct.s2n_connection, ptr %3655, i32 0, i32 23
  store i8 32, ptr %3656, align 4, !tbaa !50
  br label %3657

3657:                                             ; preds = %3654
  %3658 = load i32, ptr @test_count, align 4, !tbaa !5
  %3659 = add nsw i32 %3658, 1
  store i32 %3659, ptr @test_count, align 4, !tbaa !5
  %3660 = load ptr, ptr %85, align 8, !tbaa !9
  %3661 = call i32 @s2n_signature_algorithm_select(ptr noundef %3660)
  %3662 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  store i32 %3661, ptr %3662, align 4
  %3663 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  %3664 = load i32, ptr %3663, align 4
  %3665 = call zeroext i1 @s2n_result_is_ok(i32 %3664)
  br i1 %3665, label %3719, label %3666

3666:                                             ; preds = %3657
  br label %3667

3667:                                             ; preds = %3666
  br label %3668

3668:                                             ; preds = %3667
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #10
  %3669 = call ptr @__errno_location() #11
  %3670 = load i32, ptr %3669, align 4, !tbaa !5
  store i32 %3670, ptr %94, align 4, !tbaa !5
  %3671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3672 = call i32 @s2n_print_stacktrace(ptr noundef %3671)
  %3673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3674 = trunc i8 %3673 to i1
  br i1 %3674, label %3675, label %3697

3675:                                             ; preds = %3668
  %3676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3677 = call i32 @fileno(ptr noundef %3676) #10
  %3678 = call i32 @isatty(i32 noundef %3677) #10
  %3679 = icmp ne i32 %3678, 0
  br i1 %3679, label %3680, label %3697

3680:                                             ; preds = %3675
  %3681 = load i32, ptr %94, align 4, !tbaa !5
  %3682 = call ptr @__errno_location() #11
  store i32 %3681, ptr %3682, align 4, !tbaa !5
  %3683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3684 = load i32, ptr @test_count, align 4, !tbaa !5
  %3685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3686 = load i32, ptr %3685, align 4, !tbaa !5
  %3687 = call ptr @s2n_strerror(i32 noundef %3686, ptr noundef @.str.4)
  %3688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3689 = load i32, ptr %3688, align 4, !tbaa !5
  %3690 = call ptr @s2n_strerror_debug(i32 noundef %3689, ptr noundef @.str.4)
  %3691 = call ptr @__errno_location() #11
  %3692 = load i32, ptr %3691, align 4, !tbaa !5
  %3693 = call ptr @strerror(i32 noundef %3692) #10
  %3694 = call ptr @__errno_location() #11
  %3695 = load i32, ptr %3694, align 4, !tbaa !5
  %3696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3683, ptr noundef @.str.2, i32 noundef %3684, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 268, ptr noundef %3687, ptr noundef %3690, ptr noundef %3693, i32 noundef %3695) #10
  br label %3714

3697:                                             ; preds = %3675, %3668
  %3698 = load i32, ptr %94, align 4, !tbaa !5
  %3699 = call ptr @__errno_location() #11
  store i32 %3698, ptr %3699, align 4, !tbaa !5
  %3700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3701 = load i32, ptr @test_count, align 4, !tbaa !5
  %3702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3703 = load i32, ptr %3702, align 4, !tbaa !5
  %3704 = call ptr @s2n_strerror(i32 noundef %3703, ptr noundef @.str.4)
  %3705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3706 = load i32, ptr %3705, align 4, !tbaa !5
  %3707 = call ptr @s2n_strerror_debug(i32 noundef %3706, ptr noundef @.str.4)
  %3708 = call ptr @__errno_location() #11
  %3709 = load i32, ptr %3708, align 4, !tbaa !5
  %3710 = call ptr @strerror(i32 noundef %3709) #10
  %3711 = call ptr @__errno_location() #11
  %3712 = load i32, ptr %3711, align 4, !tbaa !5
  %3713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3700, ptr noundef @.str.5, i32 noundef %3701, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 268, ptr noundef %3704, ptr noundef %3707, ptr noundef %3710, i32 noundef %3712) #10
  br label %3714

3714:                                             ; preds = %3697, %3680
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %3715

3715:                                             ; preds = %3714
  br label %3716

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

3717:                                             ; No predecessors!
  br label %3718

3718:                                             ; preds = %3717
  br label %3719

3719:                                             ; preds = %3718, %3657
  br label %3720

3720:                                             ; preds = %3719
  br label %3721

3721:                                             ; preds = %3720
  br label %3722

3722:                                             ; preds = %3721
  %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 = load ptr, ptr %85, align 8, !tbaa !9
  %3726 = getelementptr inbounds %struct.s2n_connection, ptr %3725, i32 0, i32 32
  %3727 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %3726, i32 0, i32 6
  %3728 = load ptr, ptr %3727, align 8, !tbaa !65
  %3729 = load ptr, ptr %91, align 8, !tbaa !9
  %3730 = icmp eq ptr %3728, %3729
  br i1 %3730, label %3784, label %3731

3731:                                             ; preds = %3722
  br label %3732

3732:                                             ; preds = %3731
  br label %3733

3733:                                             ; preds = %3732
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #10
  %3734 = call ptr @__errno_location() #11
  %3735 = load i32, ptr %3734, align 4, !tbaa !5
  store i32 %3735, ptr %95, align 4, !tbaa !5
  %3736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3737 = call i32 @s2n_print_stacktrace(ptr noundef %3736)
  %3738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3739 = trunc i8 %3738 to i1
  br i1 %3739, label %3740, label %3762

3740:                                             ; preds = %3733
  %3741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3742 = call i32 @fileno(ptr noundef %3741) #10
  %3743 = call i32 @isatty(i32 noundef %3742) #10
  %3744 = icmp ne i32 %3743, 0
  br i1 %3744, label %3745, label %3762

3745:                                             ; preds = %3740
  %3746 = load i32, ptr %95, align 4, !tbaa !5
  %3747 = call ptr @__errno_location() #11
  store i32 %3746, ptr %3747, align 4, !tbaa !5
  %3748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3749 = load i32, ptr @test_count, align 4, !tbaa !5
  %3750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3751 = load i32, ptr %3750, align 4, !tbaa !5
  %3752 = call ptr @s2n_strerror(i32 noundef %3751, ptr noundef @.str.4)
  %3753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3754 = load i32, ptr %3753, align 4, !tbaa !5
  %3755 = call ptr @s2n_strerror_debug(i32 noundef %3754, ptr noundef @.str.4)
  %3756 = call ptr @__errno_location() #11
  %3757 = load i32, ptr %3756, align 4, !tbaa !5
  %3758 = call ptr @strerror(i32 noundef %3757) #10
  %3759 = call ptr @__errno_location() #11
  %3760 = load i32, ptr %3759, align 4, !tbaa !5
  %3761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3748, ptr noundef @.str.2, i32 noundef %3749, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 269, ptr noundef %3752, ptr noundef %3755, ptr noundef %3758, i32 noundef %3760) #10
  br label %3779

3762:                                             ; preds = %3740, %3733
  %3763 = load i32, ptr %95, align 4, !tbaa !5
  %3764 = call ptr @__errno_location() #11
  store i32 %3763, ptr %3764, align 4, !tbaa !5
  %3765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3766 = load i32, ptr @test_count, align 4, !tbaa !5
  %3767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3768 = load i32, ptr %3767, align 4, !tbaa !5
  %3769 = call ptr @s2n_strerror(i32 noundef %3768, ptr noundef @.str.4)
  %3770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3771 = load i32, ptr %3770, align 4, !tbaa !5
  %3772 = call ptr @s2n_strerror_debug(i32 noundef %3771, ptr noundef @.str.4)
  %3773 = call ptr @__errno_location() #11
  %3774 = load i32, ptr %3773, align 4, !tbaa !5
  %3775 = call ptr @strerror(i32 noundef %3774) #10
  %3776 = call ptr @__errno_location() #11
  %3777 = load i32, ptr %3776, align 4, !tbaa !5
  %3778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3765, ptr noundef @.str.5, i32 noundef %3766, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 269, ptr noundef %3769, ptr noundef %3772, ptr noundef %3775, i32 noundef %3777) #10
  br label %3779

3779:                                             ; preds = %3762, %3745
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  br label %3780

3780:                                             ; preds = %3779
  br label %3781

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

3782:                                             ; No predecessors!
  br label %3783

3783:                                             ; preds = %3782
  br label %3784

3784:                                             ; preds = %3783, %3722
  br label %3785

3785:                                             ; preds = %3784
  br label %3786

3786:                                             ; preds = %3785
  %3787 = load ptr, ptr %85, align 8, !tbaa !9
  %3788 = getelementptr inbounds %struct.s2n_connection, ptr %3787, i32 0, i32 23
  store i8 33, ptr %3788, align 4, !tbaa !50
  br label %3789

3789:                                             ; preds = %3786
  %3790 = load i32, ptr @test_count, align 4, !tbaa !5
  %3791 = add nsw i32 %3790, 1
  store i32 %3791, ptr @test_count, align 4, !tbaa !5
  %3792 = load ptr, ptr %85, align 8, !tbaa !9
  %3793 = call i32 @s2n_signature_algorithm_select(ptr noundef %3792)
  %3794 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  store i32 %3793, ptr %3794, align 4
  %3795 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  %3796 = load i32, ptr %3795, align 4
  %3797 = call zeroext i1 @s2n_result_is_ok(i32 %3796)
  br i1 %3797, label %3851, label %3798

3798:                                             ; preds = %3789
  br label %3799

3799:                                             ; preds = %3798
  br label %3800

3800:                                             ; preds = %3799
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #10
  %3801 = call ptr @__errno_location() #11
  %3802 = load i32, ptr %3801, align 4, !tbaa !5
  store i32 %3802, ptr %97, align 4, !tbaa !5
  %3803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3804 = call i32 @s2n_print_stacktrace(ptr noundef %3803)
  %3805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3806 = trunc i8 %3805 to i1
  br i1 %3806, label %3807, label %3829

3807:                                             ; preds = %3800
  %3808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3809 = call i32 @fileno(ptr noundef %3808) #10
  %3810 = call i32 @isatty(i32 noundef %3809) #10
  %3811 = icmp ne i32 %3810, 0
  br i1 %3811, label %3812, label %3829

3812:                                             ; preds = %3807
  %3813 = load i32, ptr %97, align 4, !tbaa !5
  %3814 = call ptr @__errno_location() #11
  store i32 %3813, ptr %3814, align 4, !tbaa !5
  %3815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3816 = load i32, ptr @test_count, align 4, !tbaa !5
  %3817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3818 = load i32, ptr %3817, align 4, !tbaa !5
  %3819 = call ptr @s2n_strerror(i32 noundef %3818, ptr noundef @.str.4)
  %3820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3821 = load i32, ptr %3820, align 4, !tbaa !5
  %3822 = call ptr @s2n_strerror_debug(i32 noundef %3821, ptr noundef @.str.4)
  %3823 = call ptr @__errno_location() #11
  %3824 = load i32, ptr %3823, align 4, !tbaa !5
  %3825 = call ptr @strerror(i32 noundef %3824) #10
  %3826 = call ptr @__errno_location() #11
  %3827 = load i32, ptr %3826, align 4, !tbaa !5
  %3828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3815, ptr noundef @.str.2, i32 noundef %3816, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 273, ptr noundef %3819, ptr noundef %3822, ptr noundef %3825, i32 noundef %3827) #10
  br label %3846

3829:                                             ; preds = %3807, %3800
  %3830 = load i32, ptr %97, align 4, !tbaa !5
  %3831 = call ptr @__errno_location() #11
  store i32 %3830, ptr %3831, align 4, !tbaa !5
  %3832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3833 = load i32, ptr @test_count, align 4, !tbaa !5
  %3834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = call ptr @s2n_strerror(i32 noundef %3835, ptr noundef @.str.4)
  %3837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3838 = load i32, ptr %3837, align 4, !tbaa !5
  %3839 = call ptr @s2n_strerror_debug(i32 noundef %3838, ptr noundef @.str.4)
  %3840 = call ptr @__errno_location() #11
  %3841 = load i32, ptr %3840, align 4, !tbaa !5
  %3842 = call ptr @strerror(i32 noundef %3841) #10
  %3843 = call ptr @__errno_location() #11
  %3844 = load i32, ptr %3843, align 4, !tbaa !5
  %3845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3832, ptr noundef @.str.5, i32 noundef %3833, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 273, ptr noundef %3836, ptr noundef %3839, ptr noundef %3842, i32 noundef %3844) #10
  br label %3846

3846:                                             ; preds = %3829, %3812
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #10
  br label %3847

3847:                                             ; preds = %3846
  br label %3848

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

3849:                                             ; No predecessors!
  br label %3850

3850:                                             ; preds = %3849
  br label %3851

3851:                                             ; preds = %3850, %3789
  br label %3852

3852:                                             ; preds = %3851
  br label %3853

3853:                                             ; preds = %3852
  br label %3854

3854:                                             ; preds = %3853
  %3855 = load i32, ptr @test_count, align 4, !tbaa !5
  %3856 = add nsw i32 %3855, 1
  store i32 %3856, ptr @test_count, align 4, !tbaa !5
  %3857 = load ptr, ptr %85, align 8, !tbaa !9
  %3858 = getelementptr inbounds %struct.s2n_connection, ptr %3857, i32 0, i32 32
  %3859 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %3858, i32 0, i32 6
  %3860 = load ptr, ptr %3859, align 8, !tbaa !65
  %3861 = load ptr, ptr %91, align 8, !tbaa !9
  %3862 = icmp eq ptr %3860, %3861
  br i1 %3862, label %3863, label %3916

3863:                                             ; preds = %3854
  br label %3864

3864:                                             ; preds = %3863
  br label %3865

3865:                                             ; preds = %3864
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #10
  %3866 = call ptr @__errno_location() #11
  %3867 = load i32, ptr %3866, align 4, !tbaa !5
  store i32 %3867, ptr %98, align 4, !tbaa !5
  %3868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3869 = call i32 @s2n_print_stacktrace(ptr noundef %3868)
  %3870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3871 = trunc i8 %3870 to i1
  br i1 %3871, label %3872, label %3894

3872:                                             ; preds = %3865
  %3873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3874 = call i32 @fileno(ptr noundef %3873) #10
  %3875 = call i32 @isatty(i32 noundef %3874) #10
  %3876 = icmp ne i32 %3875, 0
  br i1 %3876, label %3877, label %3894

3877:                                             ; preds = %3872
  %3878 = load i32, ptr %98, align 4, !tbaa !5
  %3879 = call ptr @__errno_location() #11
  store i32 %3878, ptr %3879, align 4, !tbaa !5
  %3880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3881 = load i32, ptr @test_count, align 4, !tbaa !5
  %3882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  %3884 = call ptr @s2n_strerror(i32 noundef %3883, ptr noundef @.str.4)
  %3885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3886 = load i32, ptr %3885, align 4, !tbaa !5
  %3887 = call ptr @s2n_strerror_debug(i32 noundef %3886, ptr noundef @.str.4)
  %3888 = call ptr @__errno_location() #11
  %3889 = load i32, ptr %3888, align 4, !tbaa !5
  %3890 = call ptr @strerror(i32 noundef %3889) #10
  %3891 = call ptr @__errno_location() #11
  %3892 = load i32, ptr %3891, align 4, !tbaa !5
  %3893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3880, ptr noundef @.str.2, i32 noundef %3881, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 274, ptr noundef %3884, ptr noundef %3887, ptr noundef %3890, i32 noundef %3892) #10
  br label %3911

3894:                                             ; preds = %3872, %3865
  %3895 = load i32, ptr %98, align 4, !tbaa !5
  %3896 = call ptr @__errno_location() #11
  store i32 %3895, ptr %3896, align 4, !tbaa !5
  %3897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3898 = load i32, ptr @test_count, align 4, !tbaa !5
  %3899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3900 = load i32, ptr %3899, align 4, !tbaa !5
  %3901 = call ptr @s2n_strerror(i32 noundef %3900, ptr noundef @.str.4)
  %3902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3903 = load i32, ptr %3902, align 4, !tbaa !5
  %3904 = call ptr @s2n_strerror_debug(i32 noundef %3903, ptr noundef @.str.4)
  %3905 = call ptr @__errno_location() #11
  %3906 = load i32, ptr %3905, align 4, !tbaa !5
  %3907 = call ptr @strerror(i32 noundef %3906) #10
  %3908 = call ptr @__errno_location() #11
  %3909 = load i32, ptr %3908, align 4, !tbaa !5
  %3910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3897, ptr noundef @.str.5, i32 noundef %3898, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 274, ptr noundef %3901, ptr noundef %3904, ptr noundef %3907, i32 noundef %3909) #10
  br label %3911

3911:                                             ; preds = %3894, %3877
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %3912

3912:                                             ; preds = %3911
  br label %3913

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

3914:                                             ; No predecessors!
  br label %3915

3915:                                             ; preds = %3914
  br label %3916

3916:                                             ; preds = %3915, %3854
  br label %3917

3917:                                             ; preds = %3916
  br label %3918

3918:                                             ; preds = %3917
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #10
  store ptr @s2n_rsa_pkcs1_md5_sha1, ptr %99, align 8, !tbaa !9
  %3919 = load ptr, ptr %85, align 8, !tbaa !9
  %3920 = getelementptr inbounds %struct.s2n_connection, ptr %3919, i32 0, i32 32
  %3921 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %3920, i32 0, i32 3
  store i32 0, ptr %3921, align 8, !tbaa !64
  br label %3922

3922:                                             ; preds = %3918
  %3923 = load i32, ptr @test_count, align 4, !tbaa !5
  %3924 = add nsw i32 %3923, 1
  store i32 %3924, ptr @test_count, align 4, !tbaa !5
  %3925 = load ptr, ptr %85, align 8, !tbaa !9
  %3926 = load ptr, ptr %80, align 8, !tbaa !9
  %3927 = call i32 @s2n_connection_set_config(ptr noundef %3925, ptr noundef %3926)
  %3928 = icmp eq i32 %3927, -1
  br i1 %3928, label %3929, label %3982

3929:                                             ; preds = %3922
  br label %3930

3930:                                             ; preds = %3929
  br label %3931

3931:                                             ; preds = %3930
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  %3932 = call ptr @__errno_location() #11
  %3933 = load i32, ptr %3932, align 4, !tbaa !5
  store i32 %3933, ptr %100, align 4, !tbaa !5
  %3934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3935 = call i32 @s2n_print_stacktrace(ptr noundef %3934)
  %3936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3937 = trunc i8 %3936 to i1
  br i1 %3937, label %3938, label %3960

3938:                                             ; preds = %3931
  %3939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3940 = call i32 @fileno(ptr noundef %3939) #10
  %3941 = call i32 @isatty(i32 noundef %3940) #10
  %3942 = icmp ne i32 %3941, 0
  br i1 %3942, label %3943, label %3960

3943:                                             ; preds = %3938
  %3944 = load i32, ptr %100, align 4, !tbaa !5
  %3945 = call ptr @__errno_location() #11
  store i32 %3944, ptr %3945, align 4, !tbaa !5
  %3946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3947 = load i32, ptr @test_count, align 4, !tbaa !5
  %3948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3949 = load i32, ptr %3948, align 4, !tbaa !5
  %3950 = call ptr @s2n_strerror(i32 noundef %3949, ptr noundef @.str.4)
  %3951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3952 = load i32, ptr %3951, align 4, !tbaa !5
  %3953 = call ptr @s2n_strerror_debug(i32 noundef %3952, ptr noundef @.str.4)
  %3954 = call ptr @__errno_location() #11
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  %3956 = call ptr @strerror(i32 noundef %3955) #10
  %3957 = call ptr @__errno_location() #11
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3946, ptr noundef @.str.2, i32 noundef %3947, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 281, ptr noundef %3950, ptr noundef %3953, ptr noundef %3956, i32 noundef %3958) #10
  br label %3977

3960:                                             ; preds = %3938, %3931
  %3961 = load i32, ptr %100, align 4, !tbaa !5
  %3962 = call ptr @__errno_location() #11
  store i32 %3961, ptr %3962, align 4, !tbaa !5
  %3963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3964 = load i32, ptr @test_count, align 4, !tbaa !5
  %3965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3966 = load i32, ptr %3965, align 4, !tbaa !5
  %3967 = call ptr @s2n_strerror(i32 noundef %3966, ptr noundef @.str.4)
  %3968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3969 = load i32, ptr %3968, align 4, !tbaa !5
  %3970 = call ptr @s2n_strerror_debug(i32 noundef %3969, ptr noundef @.str.4)
  %3971 = call ptr @__errno_location() #11
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call ptr @strerror(i32 noundef %3972) #10
  %3974 = call ptr @__errno_location() #11
  %3975 = load i32, ptr %3974, align 4, !tbaa !5
  %3976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3963, ptr noundef @.str.5, i32 noundef %3964, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 281, ptr noundef %3967, ptr noundef %3970, ptr noundef %3973, i32 noundef %3975) #10
  br label %3977

3977:                                             ; preds = %3960, %3943
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %3978

3978:                                             ; preds = %3977
  br label %3979

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

3980:                                             ; No predecessors!
  br label %3981

3981:                                             ; preds = %3980
  br label %3982

3982:                                             ; preds = %3981, %3922
  br label %3983

3983:                                             ; preds = %3982
  br label %3984

3984:                                             ; preds = %3983
  %3985 = load ptr, ptr %85, align 8, !tbaa !9
  %3986 = getelementptr inbounds %struct.s2n_connection, ptr %3985, i32 0, i32 23
  store i8 32, ptr %3986, align 4, !tbaa !50
  br label %3987

3987:                                             ; preds = %3984
  %3988 = load i32, ptr @test_count, align 4, !tbaa !5
  %3989 = add nsw i32 %3988, 1
  store i32 %3989, ptr @test_count, align 4, !tbaa !5
  %3990 = load ptr, ptr %85, align 8, !tbaa !9
  %3991 = call i32 @s2n_signature_algorithm_select(ptr noundef %3990)
  %3992 = getelementptr inbounds %struct.s2n_result, ptr %101, i32 0, i32 0
  store i32 %3991, ptr %3992, align 4
  %3993 = getelementptr inbounds %struct.s2n_result, ptr %101, i32 0, i32 0
  %3994 = load i32, ptr %3993, align 4
  %3995 = call zeroext i1 @s2n_result_is_ok(i32 %3994)
  br i1 %3995, label %4049, label %3996

3996:                                             ; preds = %3987
  br label %3997

3997:                                             ; preds = %3996
  br label %3998

3998:                                             ; preds = %3997
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  %3999 = call ptr @__errno_location() #11
  %4000 = load i32, ptr %3999, align 4, !tbaa !5
  store i32 %4000, ptr %102, align 4, !tbaa !5
  %4001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4002 = call i32 @s2n_print_stacktrace(ptr noundef %4001)
  %4003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4004 = trunc i8 %4003 to i1
  br i1 %4004, label %4005, label %4027

4005:                                             ; preds = %3998
  %4006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4007 = call i32 @fileno(ptr noundef %4006) #10
  %4008 = call i32 @isatty(i32 noundef %4007) #10
  %4009 = icmp ne i32 %4008, 0
  br i1 %4009, label %4010, label %4027

4010:                                             ; preds = %4005
  %4011 = load i32, ptr %102, align 4, !tbaa !5
  %4012 = call ptr @__errno_location() #11
  store i32 %4011, ptr %4012, align 4, !tbaa !5
  %4013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4014 = load i32, ptr @test_count, align 4, !tbaa !5
  %4015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4016 = load i32, ptr %4015, align 4, !tbaa !5
  %4017 = call ptr @s2n_strerror(i32 noundef %4016, ptr noundef @.str.4)
  %4018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4019 = load i32, ptr %4018, align 4, !tbaa !5
  %4020 = call ptr @s2n_strerror_debug(i32 noundef %4019, ptr noundef @.str.4)
  %4021 = call ptr @__errno_location() #11
  %4022 = load i32, ptr %4021, align 4, !tbaa !5
  %4023 = call ptr @strerror(i32 noundef %4022) #10
  %4024 = call ptr @__errno_location() #11
  %4025 = load i32, ptr %4024, align 4, !tbaa !5
  %4026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4013, ptr noundef @.str.2, i32 noundef %4014, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 285, ptr noundef %4017, ptr noundef %4020, ptr noundef %4023, i32 noundef %4025) #10
  br label %4044

4027:                                             ; preds = %4005, %3998
  %4028 = load i32, ptr %102, align 4, !tbaa !5
  %4029 = call ptr @__errno_location() #11
  store i32 %4028, ptr %4029, align 4, !tbaa !5
  %4030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4031 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4033, ptr noundef @.str.4)
  %4035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4036 = load i32, ptr %4035, align 4, !tbaa !5
  %4037 = call ptr @s2n_strerror_debug(i32 noundef %4036, ptr noundef @.str.4)
  %4038 = call ptr @__errno_location() #11
  %4039 = load i32, ptr %4038, align 4, !tbaa !5
  %4040 = call ptr @strerror(i32 noundef %4039) #10
  %4041 = call ptr @__errno_location() #11
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  %4043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4030, ptr noundef @.str.5, i32 noundef %4031, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 285, ptr noundef %4034, ptr noundef %4037, ptr noundef %4040, i32 noundef %4042) #10
  br label %4044

4044:                                             ; preds = %4027, %4010
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %4045

4045:                                             ; preds = %4044
  br label %4046

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

4047:                                             ; No predecessors!
  br label %4048

4048:                                             ; preds = %4047
  br label %4049

4049:                                             ; preds = %4048, %3987
  br label %4050

4050:                                             ; preds = %4049
  br label %4051

4051:                                             ; preds = %4050
  br label %4052

4052:                                             ; preds = %4051
  %4053 = load i32, ptr @test_count, align 4, !tbaa !5
  %4054 = add nsw i32 %4053, 1
  store i32 %4054, ptr @test_count, align 4, !tbaa !5
  %4055 = load ptr, ptr %85, align 8, !tbaa !9
  %4056 = getelementptr inbounds %struct.s2n_connection, ptr %4055, i32 0, i32 32
  %4057 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %4056, i32 0, i32 6
  %4058 = load ptr, ptr %4057, align 8, !tbaa !65
  %4059 = load ptr, ptr %99, align 8, !tbaa !9
  %4060 = icmp eq ptr %4058, %4059
  br i1 %4060, label %4114, label %4061

4061:                                             ; preds = %4052
  br label %4062

4062:                                             ; preds = %4061
  br label %4063

4063:                                             ; preds = %4062
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #10
  %4064 = call ptr @__errno_location() #11
  %4065 = load i32, ptr %4064, align 4, !tbaa !5
  store i32 %4065, ptr %103, align 4, !tbaa !5
  %4066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4067 = call i32 @s2n_print_stacktrace(ptr noundef %4066)
  %4068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4069 = trunc i8 %4068 to i1
  br i1 %4069, label %4070, label %4092

4070:                                             ; preds = %4063
  %4071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4072 = call i32 @fileno(ptr noundef %4071) #10
  %4073 = call i32 @isatty(i32 noundef %4072) #10
  %4074 = icmp ne i32 %4073, 0
  br i1 %4074, label %4075, label %4092

4075:                                             ; preds = %4070
  %4076 = load i32, ptr %103, align 4, !tbaa !5
  %4077 = call ptr @__errno_location() #11
  store i32 %4076, ptr %4077, align 4, !tbaa !5
  %4078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4079 = load i32, ptr @test_count, align 4, !tbaa !5
  %4080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4081 = load i32, ptr %4080, align 4, !tbaa !5
  %4082 = call ptr @s2n_strerror(i32 noundef %4081, ptr noundef @.str.4)
  %4083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4084 = load i32, ptr %4083, align 4, !tbaa !5
  %4085 = call ptr @s2n_strerror_debug(i32 noundef %4084, ptr noundef @.str.4)
  %4086 = call ptr @__errno_location() #11
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call ptr @strerror(i32 noundef %4087) #10
  %4089 = call ptr @__errno_location() #11
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4078, ptr noundef @.str.2, i32 noundef %4079, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 286, ptr noundef %4082, ptr noundef %4085, ptr noundef %4088, i32 noundef %4090) #10
  br label %4109

4092:                                             ; preds = %4070, %4063
  %4093 = load i32, ptr %103, align 4, !tbaa !5
  %4094 = call ptr @__errno_location() #11
  store i32 %4093, ptr %4094, align 4, !tbaa !5
  %4095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4096 = load i32, ptr @test_count, align 4, !tbaa !5
  %4097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4098 = load i32, ptr %4097, align 4, !tbaa !5
  %4099 = call ptr @s2n_strerror(i32 noundef %4098, ptr noundef @.str.4)
  %4100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4101 = load i32, ptr %4100, align 4, !tbaa !5
  %4102 = call ptr @s2n_strerror_debug(i32 noundef %4101, ptr noundef @.str.4)
  %4103 = call ptr @__errno_location() #11
  %4104 = load i32, ptr %4103, align 4, !tbaa !5
  %4105 = call ptr @strerror(i32 noundef %4104) #10
  %4106 = call ptr @__errno_location() #11
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4095, ptr noundef @.str.5, i32 noundef %4096, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 286, ptr noundef %4099, ptr noundef %4102, ptr noundef %4105, i32 noundef %4107) #10
  br label %4109

4109:                                             ; preds = %4092, %4075
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  br label %4110

4110:                                             ; preds = %4109
  br label %4111

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

4112:                                             ; No predecessors!
  br label %4113

4113:                                             ; preds = %4112
  br label %4114

4114:                                             ; preds = %4113, %4052
  br label %4115

4115:                                             ; preds = %4114
  br label %4116

4116:                                             ; preds = %4115
  %4117 = load ptr, ptr %85, align 8, !tbaa !9
  %4118 = getelementptr inbounds %struct.s2n_connection, ptr %4117, i32 0, i32 23
  store i8 33, ptr %4118, align 4, !tbaa !50
  br label %4119

4119:                                             ; preds = %4116
  %4120 = load i32, ptr @test_count, align 4, !tbaa !5
  %4121 = add nsw i32 %4120, 1
  store i32 %4121, ptr @test_count, align 4, !tbaa !5
  %4122 = load ptr, ptr %85, align 8, !tbaa !9
  %4123 = call i32 @s2n_signature_algorithm_select(ptr noundef %4122)
  %4124 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  store i32 %4123, ptr %4124, align 4
  %4125 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  %4126 = load i32, ptr %4125, align 4
  %4127 = call zeroext i1 @s2n_result_is_ok(i32 %4126)
  br i1 %4127, label %4181, label %4128

4128:                                             ; preds = %4119
  br label %4129

4129:                                             ; preds = %4128
  br label %4130

4130:                                             ; preds = %4129
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %4131 = call ptr @__errno_location() #11
  %4132 = load i32, ptr %4131, align 4, !tbaa !5
  store i32 %4132, ptr %105, align 4, !tbaa !5
  %4133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4134 = call i32 @s2n_print_stacktrace(ptr noundef %4133)
  %4135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4136 = trunc i8 %4135 to i1
  br i1 %4136, label %4137, label %4159

4137:                                             ; preds = %4130
  %4138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4139 = call i32 @fileno(ptr noundef %4138) #10
  %4140 = call i32 @isatty(i32 noundef %4139) #10
  %4141 = icmp ne i32 %4140, 0
  br i1 %4141, label %4142, label %4159

4142:                                             ; preds = %4137
  %4143 = load i32, ptr %105, align 4, !tbaa !5
  %4144 = call ptr @__errno_location() #11
  store i32 %4143, ptr %4144, align 4, !tbaa !5
  %4145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4146 = load i32, ptr @test_count, align 4, !tbaa !5
  %4147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  %4149 = call ptr @s2n_strerror(i32 noundef %4148, ptr noundef @.str.4)
  %4150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4151 = load i32, ptr %4150, align 4, !tbaa !5
  %4152 = call ptr @s2n_strerror_debug(i32 noundef %4151, ptr noundef @.str.4)
  %4153 = call ptr @__errno_location() #11
  %4154 = load i32, ptr %4153, align 4, !tbaa !5
  %4155 = call ptr @strerror(i32 noundef %4154) #10
  %4156 = call ptr @__errno_location() #11
  %4157 = load i32, ptr %4156, align 4, !tbaa !5
  %4158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4145, ptr noundef @.str.2, i32 noundef %4146, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 290, ptr noundef %4149, ptr noundef %4152, ptr noundef %4155, i32 noundef %4157) #10
  br label %4176

4159:                                             ; preds = %4137, %4130
  %4160 = load i32, ptr %105, align 4, !tbaa !5
  %4161 = call ptr @__errno_location() #11
  store i32 %4160, ptr %4161, align 4, !tbaa !5
  %4162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4163 = load i32, ptr @test_count, align 4, !tbaa !5
  %4164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4165 = load i32, ptr %4164, align 4, !tbaa !5
  %4166 = call ptr @s2n_strerror(i32 noundef %4165, ptr noundef @.str.4)
  %4167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  %4169 = call ptr @s2n_strerror_debug(i32 noundef %4168, ptr noundef @.str.4)
  %4170 = call ptr @__errno_location() #11
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call ptr @strerror(i32 noundef %4171) #10
  %4173 = call ptr @__errno_location() #11
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4162, ptr noundef @.str.5, i32 noundef %4163, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 290, ptr noundef %4166, ptr noundef %4169, ptr noundef %4172, i32 noundef %4174) #10
  br label %4176

4176:                                             ; preds = %4159, %4142
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  br label %4177

4177:                                             ; preds = %4176
  br label %4178

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

4179:                                             ; No predecessors!
  br label %4180

4180:                                             ; preds = %4179
  br label %4181

4181:                                             ; preds = %4180, %4119
  br label %4182

4182:                                             ; preds = %4181
  br label %4183

4183:                                             ; preds = %4182
  br label %4184

4184:                                             ; preds = %4183
  %4185 = load i32, ptr @test_count, align 4, !tbaa !5
  %4186 = add nsw i32 %4185, 1
  store i32 %4186, ptr @test_count, align 4, !tbaa !5
  %4187 = load ptr, ptr %85, align 8, !tbaa !9
  %4188 = getelementptr inbounds %struct.s2n_connection, ptr %4187, i32 0, i32 32
  %4189 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %4188, i32 0, i32 6
  %4190 = load ptr, ptr %4189, align 8, !tbaa !65
  %4191 = load ptr, ptr %99, align 8, !tbaa !9
  %4192 = icmp eq ptr %4190, %4191
  br i1 %4192, label %4193, label %4246

4193:                                             ; preds = %4184
  br label %4194

4194:                                             ; preds = %4193
  br label %4195

4195:                                             ; preds = %4194
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %4196 = call ptr @__errno_location() #11
  %4197 = load i32, ptr %4196, align 4, !tbaa !5
  store i32 %4197, ptr %106, align 4, !tbaa !5
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = call i32 @s2n_print_stacktrace(ptr noundef %4198)
  %4200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4201 = trunc i8 %4200 to i1
  br i1 %4201, label %4202, label %4224

4202:                                             ; preds = %4195
  %4203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4204 = call i32 @fileno(ptr noundef %4203) #10
  %4205 = call i32 @isatty(i32 noundef %4204) #10
  %4206 = icmp ne i32 %4205, 0
  br i1 %4206, label %4207, label %4224

4207:                                             ; preds = %4202
  %4208 = load i32, ptr %106, align 4, !tbaa !5
  %4209 = call ptr @__errno_location() #11
  store i32 %4208, ptr %4209, align 4, !tbaa !5
  %4210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4211 = load i32, ptr @test_count, align 4, !tbaa !5
  %4212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4213 = load i32, ptr %4212, align 4, !tbaa !5
  %4214 = call ptr @s2n_strerror(i32 noundef %4213, ptr noundef @.str.4)
  %4215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4216 = load i32, ptr %4215, align 4, !tbaa !5
  %4217 = call ptr @s2n_strerror_debug(i32 noundef %4216, ptr noundef @.str.4)
  %4218 = call ptr @__errno_location() #11
  %4219 = load i32, ptr %4218, align 4, !tbaa !5
  %4220 = call ptr @strerror(i32 noundef %4219) #10
  %4221 = call ptr @__errno_location() #11
  %4222 = load i32, ptr %4221, align 4, !tbaa !5
  %4223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4210, ptr noundef @.str.2, i32 noundef %4211, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 291, ptr noundef %4214, ptr noundef %4217, ptr noundef %4220, i32 noundef %4222) #10
  br label %4241

4224:                                             ; preds = %4202, %4195
  %4225 = load i32, ptr %106, align 4, !tbaa !5
  %4226 = call ptr @__errno_location() #11
  store i32 %4225, ptr %4226, align 4, !tbaa !5
  %4227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4228 = load i32, ptr @test_count, align 4, !tbaa !5
  %4229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4230 = load i32, ptr %4229, align 4, !tbaa !5
  %4231 = call ptr @s2n_strerror(i32 noundef %4230, ptr noundef @.str.4)
  %4232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4233 = load i32, ptr %4232, align 4, !tbaa !5
  %4234 = call ptr @s2n_strerror_debug(i32 noundef %4233, ptr noundef @.str.4)
  %4235 = call ptr @__errno_location() #11
  %4236 = load i32, ptr %4235, align 4, !tbaa !5
  %4237 = call ptr @strerror(i32 noundef %4236) #10
  %4238 = call ptr @__errno_location() #11
  %4239 = load i32, ptr %4238, align 4, !tbaa !5
  %4240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4227, ptr noundef @.str.5, i32 noundef %4228, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 291, ptr noundef %4231, ptr noundef %4234, ptr noundef %4237, i32 noundef %4239) #10
  br label %4241

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

4242:                                             ; preds = %4241
  br label %4243

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

4244:                                             ; No predecessors!
  br label %4245

4245:                                             ; preds = %4244
  br label %4246

4246:                                             ; preds = %4245, %4184
  br label %4247

4247:                                             ; preds = %4246
  br label %4248

4248:                                             ; preds = %4247
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #10
  call void @llvm.lifetime.end.p0(i64 80, ptr %86) #10
  %4249 = call i32 @s2n_connection_ptr_free(ptr noundef %85)
  %4250 = getelementptr inbounds %struct.s2n_result, ptr %107, i32 0, i32 0
  store i32 %4249, ptr %4250, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #10
  %4251 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4251, ptr %108, align 8, !tbaa !9
  br label %4252

4252:                                             ; preds = %4248
  %4253 = load i32, ptr @test_count, align 4, !tbaa !5
  %4254 = add nsw i32 %4253, 1
  store i32 %4254, ptr @test_count, align 4, !tbaa !5
  %4255 = load ptr, ptr %108, align 8, !tbaa !9
  %4256 = load ptr, ptr %75, align 8, !tbaa !9
  %4257 = call i32 @s2n_connection_set_config(ptr noundef %4255, ptr noundef %4256)
  %4258 = icmp eq i32 %4257, -1
  br i1 %4258, label %4259, label %4312

4259:                                             ; preds = %4252
  br label %4260

4260:                                             ; preds = %4259
  br label %4261

4261:                                             ; preds = %4260
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #10
  %4262 = call ptr @__errno_location() #11
  %4263 = load i32, ptr %4262, align 4, !tbaa !5
  store i32 %4263, ptr %109, align 4, !tbaa !5
  %4264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4265 = call i32 @s2n_print_stacktrace(ptr noundef %4264)
  %4266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4267 = trunc i8 %4266 to i1
  br i1 %4267, label %4268, label %4290

4268:                                             ; preds = %4261
  %4269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4270 = call i32 @fileno(ptr noundef %4269) #10
  %4271 = call i32 @isatty(i32 noundef %4270) #10
  %4272 = icmp ne i32 %4271, 0
  br i1 %4272, label %4273, label %4290

4273:                                             ; preds = %4268
  %4274 = load i32, ptr %109, align 4, !tbaa !5
  %4275 = call ptr @__errno_location() #11
  store i32 %4274, ptr %4275, align 4, !tbaa !5
  %4276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4277 = load i32, ptr @test_count, align 4, !tbaa !5
  %4278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call ptr @s2n_strerror(i32 noundef %4279, ptr noundef @.str.4)
  %4281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = call ptr @s2n_strerror_debug(i32 noundef %4282, ptr noundef @.str.4)
  %4284 = call ptr @__errno_location() #11
  %4285 = load i32, ptr %4284, align 4, !tbaa !5
  %4286 = call ptr @strerror(i32 noundef %4285) #10
  %4287 = call ptr @__errno_location() #11
  %4288 = load i32, ptr %4287, align 4, !tbaa !5
  %4289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4276, ptr noundef @.str.2, i32 noundef %4277, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 299, ptr noundef %4280, ptr noundef %4283, ptr noundef %4286, i32 noundef %4288) #10
  br label %4307

4290:                                             ; preds = %4268, %4261
  %4291 = load i32, ptr %109, align 4, !tbaa !5
  %4292 = call ptr @__errno_location() #11
  store i32 %4291, ptr %4292, align 4, !tbaa !5
  %4293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4294 = load i32, ptr @test_count, align 4, !tbaa !5
  %4295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call ptr @s2n_strerror(i32 noundef %4296, ptr noundef @.str.4)
  %4298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call ptr @s2n_strerror_debug(i32 noundef %4299, ptr noundef @.str.4)
  %4301 = call ptr @__errno_location() #11
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  %4303 = call ptr @strerror(i32 noundef %4302) #10
  %4304 = call ptr @__errno_location() #11
  %4305 = load i32, ptr %4304, align 4, !tbaa !5
  %4306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4293, ptr noundef @.str.5, i32 noundef %4294, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 299, ptr noundef %4297, ptr noundef %4300, ptr noundef %4303, i32 noundef %4305) #10
  br label %4307

4307:                                             ; preds = %4290, %4273
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #10
  br label %4308

4308:                                             ; preds = %4307
  br label %4309

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

4310:                                             ; No predecessors!
  br label %4311

4311:                                             ; preds = %4310
  br label %4312

4312:                                             ; preds = %4311, %4252
  br label %4313

4313:                                             ; preds = %4312
  br label %4314

4314:                                             ; preds = %4313
  call void @llvm.lifetime.start.p0(i64 80, ptr %110) #10
  call void @llvm.memset.p0.i64(ptr align 8 %110, i8 0, i64 80, i1 false)
  br label %4315

4315:                                             ; preds = %4314
  %4316 = load i32, ptr @test_count, align 4, !tbaa !5
  %4317 = add nsw i32 %4316, 1
  store i32 %4317, ptr @test_count, align 4, !tbaa !5
  %4318 = load ptr, ptr %108, align 8, !tbaa !9
  %4319 = getelementptr inbounds [4 x ptr], ptr %84, i64 0, i64 0
  %4320 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %4318, ptr noundef %110, ptr noundef %4319, i64 noundef 4)
  %4321 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  store i32 %4320, ptr %4321, align 4
  %4322 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  %4323 = load i32, ptr %4322, align 4
  %4324 = call zeroext i1 @s2n_result_is_ok(i32 %4323)
  br i1 %4324, label %4378, label %4325

4325:                                             ; preds = %4315
  br label %4326

4326:                                             ; preds = %4325
  br label %4327

4327:                                             ; preds = %4326
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #10
  %4328 = call ptr @__errno_location() #11
  %4329 = load i32, ptr %4328, align 4, !tbaa !5
  store i32 %4329, ptr %112, align 4, !tbaa !5
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4331 = call i32 @s2n_print_stacktrace(ptr noundef %4330)
  %4332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4333 = trunc i8 %4332 to i1
  br i1 %4333, label %4334, label %4356

4334:                                             ; preds = %4327
  %4335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4336 = call i32 @fileno(ptr noundef %4335) #10
  %4337 = call i32 @isatty(i32 noundef %4336) #10
  %4338 = icmp ne i32 %4337, 0
  br i1 %4338, label %4339, label %4356

4339:                                             ; preds = %4334
  %4340 = load i32, ptr %112, align 4, !tbaa !5
  %4341 = call ptr @__errno_location() #11
  store i32 %4340, ptr %4341, align 4, !tbaa !5
  %4342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4343 = load i32, ptr @test_count, align 4, !tbaa !5
  %4344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4345 = load i32, ptr %4344, align 4, !tbaa !5
  %4346 = call ptr @s2n_strerror(i32 noundef %4345, ptr noundef @.str.4)
  %4347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4348 = load i32, ptr %4347, align 4, !tbaa !5
  %4349 = call ptr @s2n_strerror_debug(i32 noundef %4348, ptr noundef @.str.4)
  %4350 = call ptr @__errno_location() #11
  %4351 = load i32, ptr %4350, align 4, !tbaa !5
  %4352 = call ptr @strerror(i32 noundef %4351) #10
  %4353 = call ptr @__errno_location() #11
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4342, ptr noundef @.str.2, i32 noundef %4343, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4346, ptr noundef %4349, ptr noundef %4352, i32 noundef %4354) #10
  br label %4373

4356:                                             ; preds = %4334, %4327
  %4357 = load i32, ptr %112, align 4, !tbaa !5
  %4358 = call ptr @__errno_location() #11
  store i32 %4357, ptr %4358, align 4, !tbaa !5
  %4359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4360 = load i32, ptr @test_count, align 4, !tbaa !5
  %4361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4362 = load i32, ptr %4361, align 4, !tbaa !5
  %4363 = call ptr @s2n_strerror(i32 noundef %4362, ptr noundef @.str.4)
  %4364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4365 = load i32, ptr %4364, align 4, !tbaa !5
  %4366 = call ptr @s2n_strerror_debug(i32 noundef %4365, ptr noundef @.str.4)
  %4367 = call ptr @__errno_location() #11
  %4368 = load i32, ptr %4367, align 4, !tbaa !5
  %4369 = call ptr @strerror(i32 noundef %4368) #10
  %4370 = call ptr @__errno_location() #11
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  %4372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4359, ptr noundef @.str.5, i32 noundef %4360, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4363, ptr noundef %4366, ptr noundef %4369, i32 noundef %4371) #10
  br label %4373

4373:                                             ; preds = %4356, %4339
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #10
  br label %4374

4374:                                             ; preds = %4373
  br label %4375

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

4376:                                             ; No predecessors!
  br label %4377

4377:                                             ; preds = %4376
  br label %4378

4378:                                             ; preds = %4377, %4315
  br label %4379

4379:                                             ; preds = %4378
  br label %4380

4380:                                             ; preds = %4379
  br label %4381

4381:                                             ; preds = %4380
  %4382 = load i32, ptr @test_count, align 4, !tbaa !5
  %4383 = add nsw i32 %4382, 1
  store i32 %4383, ptr @test_count, align 4, !tbaa !5
  %4384 = load ptr, ptr %108, align 8, !tbaa !9
  %4385 = getelementptr inbounds %struct.s2n_connection, ptr %4384, i32 0, i32 32
  %4386 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %4385, i32 0, i32 4
  %4387 = getelementptr inbounds [4 x ptr], ptr %84, i64 0, i64 0
  %4388 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %4386, ptr noundef %4387, i64 noundef 4)
  %4389 = getelementptr inbounds %struct.s2n_result, ptr %113, i32 0, i32 0
  store i32 %4388, ptr %4389, align 4
  %4390 = getelementptr inbounds %struct.s2n_result, ptr %113, i32 0, i32 0
  %4391 = load i32, ptr %4390, align 4
  %4392 = call zeroext i1 @s2n_result_is_ok(i32 %4391)
  br i1 %4392, label %4446, label %4393

4393:                                             ; preds = %4381
  br label %4394

4394:                                             ; preds = %4393
  br label %4395

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

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

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

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

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

4442:                                             ; preds = %4441
  br label %4443

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

4444:                                             ; No predecessors!
  br label %4445

4445:                                             ; preds = %4444
  br label %4446

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

4447:                                             ; preds = %4446
  br label %4448

4448:                                             ; preds = %4447
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #10
  store ptr @s2n_ecdsa_sha1, ptr %115, align 8, !tbaa !9
  %4449 = load ptr, ptr %108, align 8, !tbaa !9
  %4450 = getelementptr inbounds %struct.s2n_connection, ptr %4449, i32 0, i32 27
  %4451 = load ptr, ptr %4450, align 8, !tbaa !66
  %4452 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4451, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %4452, align 8, !tbaa !67
  %4453 = load ptr, ptr %108, align 8, !tbaa !9
  %4454 = getelementptr inbounds %struct.s2n_connection, ptr %4453, i32 0, i32 23
  store i8 32, ptr %4454, align 4, !tbaa !50
  br label %4455

4455:                                             ; preds = %4448
  %4456 = load i32, ptr @test_count, align 4, !tbaa !5
  %4457 = add nsw i32 %4456, 1
  store i32 %4457, ptr @test_count, align 4, !tbaa !5
  %4458 = load ptr, ptr %108, align 8, !tbaa !9
  %4459 = call i32 @s2n_signature_algorithm_select(ptr noundef %4458)
  %4460 = getelementptr inbounds %struct.s2n_result, ptr %116, i32 0, i32 0
  store i32 %4459, ptr %4460, align 4
  %4461 = getelementptr inbounds %struct.s2n_result, ptr %116, i32 0, i32 0
  %4462 = load i32, ptr %4461, align 4
  %4463 = call zeroext i1 @s2n_result_is_ok(i32 %4462)
  br i1 %4463, label %4517, label %4464

4464:                                             ; preds = %4455
  br label %4465

4465:                                             ; preds = %4464
  br label %4466

4466:                                             ; preds = %4465
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #10
  %4467 = call ptr @__errno_location() #11
  %4468 = load i32, ptr %4467, align 4, !tbaa !5
  store i32 %4468, ptr %117, align 4, !tbaa !5
  %4469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4470 = call i32 @s2n_print_stacktrace(ptr noundef %4469)
  %4471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4472 = trunc i8 %4471 to i1
  br i1 %4472, label %4473, label %4495

4473:                                             ; preds = %4466
  %4474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4475 = call i32 @fileno(ptr noundef %4474) #10
  %4476 = call i32 @isatty(i32 noundef %4475) #10
  %4477 = icmp ne i32 %4476, 0
  br i1 %4477, label %4478, label %4495

4478:                                             ; preds = %4473
  %4479 = load i32, ptr %117, align 4, !tbaa !5
  %4480 = call ptr @__errno_location() #11
  store i32 %4479, ptr %4480, align 4, !tbaa !5
  %4481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4482 = load i32, ptr @test_count, align 4, !tbaa !5
  %4483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4484 = load i32, ptr %4483, align 4, !tbaa !5
  %4485 = call ptr @s2n_strerror(i32 noundef %4484, ptr noundef @.str.4)
  %4486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call ptr @s2n_strerror_debug(i32 noundef %4487, ptr noundef @.str.4)
  %4489 = call ptr @__errno_location() #11
  %4490 = load i32, ptr %4489, align 4, !tbaa !5
  %4491 = call ptr @strerror(i32 noundef %4490) #10
  %4492 = call ptr @__errno_location() #11
  %4493 = load i32, ptr %4492, align 4, !tbaa !5
  %4494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4481, ptr noundef @.str.2, i32 noundef %4482, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 314, ptr noundef %4485, ptr noundef %4488, ptr noundef %4491, i32 noundef %4493) #10
  br label %4512

4495:                                             ; preds = %4473, %4466
  %4496 = load i32, ptr %117, align 4, !tbaa !5
  %4497 = call ptr @__errno_location() #11
  store i32 %4496, ptr %4497, align 4, !tbaa !5
  %4498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4499 = load i32, ptr @test_count, align 4, !tbaa !5
  %4500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call ptr @s2n_strerror(i32 noundef %4501, ptr noundef @.str.4)
  %4503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = call ptr @s2n_strerror_debug(i32 noundef %4504, ptr noundef @.str.4)
  %4506 = call ptr @__errno_location() #11
  %4507 = load i32, ptr %4506, align 4, !tbaa !5
  %4508 = call ptr @strerror(i32 noundef %4507) #10
  %4509 = call ptr @__errno_location() #11
  %4510 = load i32, ptr %4509, align 4, !tbaa !5
  %4511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4498, ptr noundef @.str.5, i32 noundef %4499, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 314, ptr noundef %4502, ptr noundef %4505, ptr noundef %4508, i32 noundef %4510) #10
  br label %4512

4512:                                             ; preds = %4495, %4478
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %4513

4513:                                             ; preds = %4512
  br label %4514

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

4515:                                             ; No predecessors!
  br label %4516

4516:                                             ; preds = %4515
  br label %4517

4517:                                             ; preds = %4516, %4455
  br label %4518

4518:                                             ; preds = %4517
  br label %4519

4519:                                             ; preds = %4518
  br label %4520

4520:                                             ; preds = %4519
  %4521 = load i32, ptr @test_count, align 4, !tbaa !5
  %4522 = add nsw i32 %4521, 1
  store i32 %4522, ptr @test_count, align 4, !tbaa !5
  %4523 = load ptr, ptr %108, align 8, !tbaa !9
  %4524 = getelementptr inbounds %struct.s2n_connection, ptr %4523, i32 0, i32 32
  %4525 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %4524, i32 0, i32 5
  %4526 = load ptr, ptr %4525, align 8, !tbaa !72
  %4527 = load ptr, ptr %115, align 8, !tbaa !9
  %4528 = icmp eq ptr %4526, %4527
  br i1 %4528, label %4582, label %4529

4529:                                             ; preds = %4520
  br label %4530

4530:                                             ; preds = %4529
  br label %4531

4531:                                             ; preds = %4530
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #10
  %4532 = call ptr @__errno_location() #11
  %4533 = load i32, ptr %4532, align 4, !tbaa !5
  store i32 %4533, ptr %118, align 4, !tbaa !5
  %4534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4535 = call i32 @s2n_print_stacktrace(ptr noundef %4534)
  %4536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4537 = trunc i8 %4536 to i1
  br i1 %4537, label %4538, label %4560

4538:                                             ; preds = %4531
  %4539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4540 = call i32 @fileno(ptr noundef %4539) #10
  %4541 = call i32 @isatty(i32 noundef %4540) #10
  %4542 = icmp ne i32 %4541, 0
  br i1 %4542, label %4543, label %4560

4543:                                             ; preds = %4538
  %4544 = load i32, ptr %118, align 4, !tbaa !5
  %4545 = call ptr @__errno_location() #11
  store i32 %4544, ptr %4545, align 4, !tbaa !5
  %4546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4547 = load i32, ptr @test_count, align 4, !tbaa !5
  %4548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4549 = load i32, ptr %4548, align 4, !tbaa !5
  %4550 = call ptr @s2n_strerror(i32 noundef %4549, ptr noundef @.str.4)
  %4551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4552 = load i32, ptr %4551, align 4, !tbaa !5
  %4553 = call ptr @s2n_strerror_debug(i32 noundef %4552, ptr noundef @.str.4)
  %4554 = call ptr @__errno_location() #11
  %4555 = load i32, ptr %4554, align 4, !tbaa !5
  %4556 = call ptr @strerror(i32 noundef %4555) #10
  %4557 = call ptr @__errno_location() #11
  %4558 = load i32, ptr %4557, align 4, !tbaa !5
  %4559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4546, ptr noundef @.str.2, i32 noundef %4547, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 315, ptr noundef %4550, ptr noundef %4553, ptr noundef %4556, i32 noundef %4558) #10
  br label %4577

4560:                                             ; preds = %4538, %4531
  %4561 = load i32, ptr %118, align 4, !tbaa !5
  %4562 = call ptr @__errno_location() #11
  store i32 %4561, ptr %4562, align 4, !tbaa !5
  %4563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4564 = load i32, ptr @test_count, align 4, !tbaa !5
  %4565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4566 = load i32, ptr %4565, align 4, !tbaa !5
  %4567 = call ptr @s2n_strerror(i32 noundef %4566, ptr noundef @.str.4)
  %4568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4569 = load i32, ptr %4568, align 4, !tbaa !5
  %4570 = call ptr @s2n_strerror_debug(i32 noundef %4569, ptr noundef @.str.4)
  %4571 = call ptr @__errno_location() #11
  %4572 = load i32, ptr %4571, align 4, !tbaa !5
  %4573 = call ptr @strerror(i32 noundef %4572) #10
  %4574 = call ptr @__errno_location() #11
  %4575 = load i32, ptr %4574, align 4, !tbaa !5
  %4576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4563, ptr noundef @.str.5, i32 noundef %4564, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 315, ptr noundef %4567, ptr noundef %4570, ptr noundef %4573, i32 noundef %4575) #10
  br label %4577

4577:                                             ; preds = %4560, %4543
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #10
  br label %4578

4578:                                             ; preds = %4577
  br label %4579

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

4580:                                             ; No predecessors!
  br label %4581

4581:                                             ; preds = %4580
  br label %4582

4582:                                             ; preds = %4581, %4520
  br label %4583

4583:                                             ; preds = %4582
  br label %4584

4584:                                             ; preds = %4583
  %4585 = load ptr, ptr %108, align 8, !tbaa !9
  %4586 = getelementptr inbounds %struct.s2n_connection, ptr %4585, i32 0, i32 23
  store i8 33, ptr %4586, align 4, !tbaa !50
  br label %4587

4587:                                             ; preds = %4584
  %4588 = load i32, ptr @test_count, align 4, !tbaa !5
  %4589 = add nsw i32 %4588, 1
  store i32 %4589, ptr @test_count, align 4, !tbaa !5
  %4590 = load ptr, ptr %108, align 8, !tbaa !9
  %4591 = call i32 @s2n_signature_algorithm_select(ptr noundef %4590)
  %4592 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  store i32 %4591, ptr %4592, align 4
  %4593 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  %4594 = load i32, ptr %4593, align 4
  %4595 = call zeroext i1 @s2n_result_is_ok(i32 %4594)
  br i1 %4595, label %4649, label %4596

4596:                                             ; preds = %4587
  br label %4597

4597:                                             ; preds = %4596
  br label %4598

4598:                                             ; preds = %4597
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #10
  %4599 = call ptr @__errno_location() #11
  %4600 = load i32, ptr %4599, align 4, !tbaa !5
  store i32 %4600, ptr %120, align 4, !tbaa !5
  %4601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4602 = call i32 @s2n_print_stacktrace(ptr noundef %4601)
  %4603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4604 = trunc i8 %4603 to i1
  br i1 %4604, label %4605, label %4627

4605:                                             ; preds = %4598
  %4606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4607 = call i32 @fileno(ptr noundef %4606) #10
  %4608 = call i32 @isatty(i32 noundef %4607) #10
  %4609 = icmp ne i32 %4608, 0
  br i1 %4609, label %4610, label %4627

4610:                                             ; preds = %4605
  %4611 = load i32, ptr %120, align 4, !tbaa !5
  %4612 = call ptr @__errno_location() #11
  store i32 %4611, ptr %4612, align 4, !tbaa !5
  %4613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4614 = load i32, ptr @test_count, align 4, !tbaa !5
  %4615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4616 = load i32, ptr %4615, align 4, !tbaa !5
  %4617 = call ptr @s2n_strerror(i32 noundef %4616, ptr noundef @.str.4)
  %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_debug(i32 noundef %4619, ptr noundef @.str.4)
  %4621 = call ptr @__errno_location() #11
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  %4623 = call ptr @strerror(i32 noundef %4622) #10
  %4624 = call ptr @__errno_location() #11
  %4625 = load i32, ptr %4624, align 4, !tbaa !5
  %4626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4613, ptr noundef @.str.2, i32 noundef %4614, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 319, ptr noundef %4617, ptr noundef %4620, ptr noundef %4623, i32 noundef %4625) #10
  br label %4644

4627:                                             ; preds = %4605, %4598
  %4628 = load i32, ptr %120, align 4, !tbaa !5
  %4629 = call ptr @__errno_location() #11
  store i32 %4628, ptr %4629, align 4, !tbaa !5
  %4630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4631 = load i32, ptr @test_count, align 4, !tbaa !5
  %4632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4633 = load i32, ptr %4632, align 4, !tbaa !5
  %4634 = call ptr @s2n_strerror(i32 noundef %4633, ptr noundef @.str.4)
  %4635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4636 = load i32, ptr %4635, align 4, !tbaa !5
  %4637 = call ptr @s2n_strerror_debug(i32 noundef %4636, ptr noundef @.str.4)
  %4638 = call ptr @__errno_location() #11
  %4639 = load i32, ptr %4638, align 4, !tbaa !5
  %4640 = call ptr @strerror(i32 noundef %4639) #10
  %4641 = call ptr @__errno_location() #11
  %4642 = load i32, ptr %4641, align 4, !tbaa !5
  %4643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4630, ptr noundef @.str.5, i32 noundef %4631, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 319, ptr noundef %4634, ptr noundef %4637, ptr noundef %4640, i32 noundef %4642) #10
  br label %4644

4644:                                             ; preds = %4627, %4610
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #10
  br label %4645

4645:                                             ; preds = %4644
  br label %4646

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

4647:                                             ; No predecessors!
  br label %4648

4648:                                             ; preds = %4647
  br label %4649

4649:                                             ; preds = %4648, %4587
  br label %4650

4650:                                             ; preds = %4649
  br label %4651

4651:                                             ; preds = %4650
  br label %4652

4652:                                             ; preds = %4651
  %4653 = load i32, ptr @test_count, align 4, !tbaa !5
  %4654 = add nsw i32 %4653, 1
  store i32 %4654, ptr @test_count, align 4, !tbaa !5
  %4655 = load ptr, ptr %108, align 8, !tbaa !9
  %4656 = getelementptr inbounds %struct.s2n_connection, ptr %4655, i32 0, i32 32
  %4657 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %4656, i32 0, i32 5
  %4658 = load ptr, ptr %4657, align 8, !tbaa !72
  %4659 = load ptr, ptr %115, align 8, !tbaa !9
  %4660 = icmp eq ptr %4658, %4659
  br i1 %4660, label %4661, label %4714

4661:                                             ; preds = %4652
  br label %4662

4662:                                             ; preds = %4661
  br label %4663

4663:                                             ; preds = %4662
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  %4664 = call ptr @__errno_location() #11
  %4665 = load i32, ptr %4664, align 4, !tbaa !5
  store i32 %4665, ptr %121, align 4, !tbaa !5
  %4666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4667 = call i32 @s2n_print_stacktrace(ptr noundef %4666)
  %4668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4669 = trunc i8 %4668 to i1
  br i1 %4669, label %4670, label %4692

4670:                                             ; preds = %4663
  %4671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4672 = call i32 @fileno(ptr noundef %4671) #10
  %4673 = call i32 @isatty(i32 noundef %4672) #10
  %4674 = icmp ne i32 %4673, 0
  br i1 %4674, label %4675, label %4692

4675:                                             ; preds = %4670
  %4676 = load i32, ptr %121, align 4, !tbaa !5
  %4677 = call ptr @__errno_location() #11
  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() #11
  %4687 = load i32, ptr %4686, align 4, !tbaa !5
  %4688 = call ptr @strerror(i32 noundef %4687) #10
  %4689 = call ptr @__errno_location() #11
  %4690 = load i32, ptr %4689, align 4, !tbaa !5
  %4691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4678, ptr noundef @.str.2, i32 noundef %4679, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 320, ptr noundef %4682, ptr noundef %4685, ptr noundef %4688, i32 noundef %4690) #10
  br label %4709

4692:                                             ; preds = %4670, %4663
  %4693 = load i32, ptr %121, align 4, !tbaa !5
  %4694 = call ptr @__errno_location() #11
  store i32 %4693, ptr %4694, align 4, !tbaa !5
  %4695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4696 = load i32, ptr @test_count, align 4, !tbaa !5
  %4697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4698 = load i32, ptr %4697, align 4, !tbaa !5
  %4699 = call ptr @s2n_strerror(i32 noundef %4698, ptr noundef @.str.4)
  %4700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4701 = load i32, ptr %4700, align 4, !tbaa !5
  %4702 = call ptr @s2n_strerror_debug(i32 noundef %4701, ptr noundef @.str.4)
  %4703 = call ptr @__errno_location() #11
  %4704 = load i32, ptr %4703, align 4, !tbaa !5
  %4705 = call ptr @strerror(i32 noundef %4704) #10
  %4706 = call ptr @__errno_location() #11
  %4707 = load i32, ptr %4706, align 4, !tbaa !5
  %4708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4695, ptr noundef @.str.5, i32 noundef %4696, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 320, ptr noundef %4699, ptr noundef %4702, ptr noundef %4705, i32 noundef %4707) #10
  br label %4709

4709:                                             ; preds = %4692, %4675
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %4710

4710:                                             ; preds = %4709
  br label %4711

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

4712:                                             ; No predecessors!
  br label %4713

4713:                                             ; preds = %4712
  br label %4714

4714:                                             ; preds = %4713, %4652
  br label %4715

4715:                                             ; preds = %4714
  br label %4716

4716:                                             ; preds = %4715
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #10
  store ptr @s2n_rsa_pkcs1_md5_sha1, ptr %122, align 8, !tbaa !9
  %4717 = load ptr, ptr %108, align 8, !tbaa !9
  %4718 = getelementptr inbounds %struct.s2n_connection, ptr %4717, i32 0, i32 27
  %4719 = load ptr, ptr %4718, align 8, !tbaa !66
  %4720 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4719, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %4720, align 8, !tbaa !67
  %4721 = load ptr, ptr %108, align 8, !tbaa !9
  %4722 = getelementptr inbounds %struct.s2n_connection, ptr %4721, i32 0, i32 23
  store i8 32, ptr %4722, align 4, !tbaa !50
  br label %4723

4723:                                             ; preds = %4716
  %4724 = load i32, ptr @test_count, align 4, !tbaa !5
  %4725 = add nsw i32 %4724, 1
  store i32 %4725, ptr @test_count, align 4, !tbaa !5
  %4726 = load ptr, ptr %108, align 8, !tbaa !9
  %4727 = call i32 @s2n_signature_algorithm_select(ptr noundef %4726)
  %4728 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  store i32 %4727, ptr %4728, align 4
  %4729 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  %4730 = load i32, ptr %4729, align 4
  %4731 = call zeroext i1 @s2n_result_is_ok(i32 %4730)
  br i1 %4731, label %4785, label %4732

4732:                                             ; preds = %4723
  br label %4733

4733:                                             ; preds = %4732
  br label %4734

4734:                                             ; preds = %4733
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #10
  %4735 = call ptr @__errno_location() #11
  %4736 = load i32, ptr %4735, align 4, !tbaa !5
  store i32 %4736, ptr %124, align 4, !tbaa !5
  %4737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4738 = call i32 @s2n_print_stacktrace(ptr noundef %4737)
  %4739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4740 = trunc i8 %4739 to i1
  br i1 %4740, label %4741, label %4763

4741:                                             ; preds = %4734
  %4742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4743 = call i32 @fileno(ptr noundef %4742) #10
  %4744 = call i32 @isatty(i32 noundef %4743) #10
  %4745 = icmp ne i32 %4744, 0
  br i1 %4745, label %4746, label %4763

4746:                                             ; preds = %4741
  %4747 = load i32, ptr %124, align 4, !tbaa !5
  %4748 = call ptr @__errno_location() #11
  store i32 %4747, ptr %4748, align 4, !tbaa !5
  %4749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4750 = load i32, ptr @test_count, align 4, !tbaa !5
  %4751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4752 = load i32, ptr %4751, align 4, !tbaa !5
  %4753 = call ptr @s2n_strerror(i32 noundef %4752, ptr noundef @.str.4)
  %4754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4755 = load i32, ptr %4754, align 4, !tbaa !5
  %4756 = call ptr @s2n_strerror_debug(i32 noundef %4755, ptr noundef @.str.4)
  %4757 = call ptr @__errno_location() #11
  %4758 = load i32, ptr %4757, align 4, !tbaa !5
  %4759 = call ptr @strerror(i32 noundef %4758) #10
  %4760 = call ptr @__errno_location() #11
  %4761 = load i32, ptr %4760, align 4, !tbaa !5
  %4762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4749, ptr noundef @.str.2, i32 noundef %4750, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 330, ptr noundef %4753, ptr noundef %4756, ptr noundef %4759, i32 noundef %4761) #10
  br label %4780

4763:                                             ; preds = %4741, %4734
  %4764 = load i32, ptr %124, align 4, !tbaa !5
  %4765 = call ptr @__errno_location() #11
  store i32 %4764, ptr %4765, align 4, !tbaa !5
  %4766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4767 = load i32, ptr @test_count, align 4, !tbaa !5
  %4768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4769 = load i32, ptr %4768, align 4, !tbaa !5
  %4770 = call ptr @s2n_strerror(i32 noundef %4769, ptr noundef @.str.4)
  %4771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4772 = load i32, ptr %4771, align 4, !tbaa !5
  %4773 = call ptr @s2n_strerror_debug(i32 noundef %4772, ptr noundef @.str.4)
  %4774 = call ptr @__errno_location() #11
  %4775 = load i32, ptr %4774, align 4, !tbaa !5
  %4776 = call ptr @strerror(i32 noundef %4775) #10
  %4777 = call ptr @__errno_location() #11
  %4778 = load i32, ptr %4777, align 4, !tbaa !5
  %4779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4766, ptr noundef @.str.5, i32 noundef %4767, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 330, ptr noundef %4770, ptr noundef %4773, ptr noundef %4776, i32 noundef %4778) #10
  br label %4780

4780:                                             ; preds = %4763, %4746
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #10
  br label %4781

4781:                                             ; preds = %4780
  br label %4782

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

4783:                                             ; No predecessors!
  br label %4784

4784:                                             ; preds = %4783
  br label %4785

4785:                                             ; preds = %4784, %4723
  br label %4786

4786:                                             ; preds = %4785
  br label %4787

4787:                                             ; preds = %4786
  br label %4788

4788:                                             ; preds = %4787
  %4789 = load i32, ptr @test_count, align 4, !tbaa !5
  %4790 = add nsw i32 %4789, 1
  store i32 %4790, ptr @test_count, align 4, !tbaa !5
  %4791 = load ptr, ptr %108, align 8, !tbaa !9
  %4792 = getelementptr inbounds %struct.s2n_connection, ptr %4791, i32 0, i32 32
  %4793 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %4792, i32 0, i32 5
  %4794 = load ptr, ptr %4793, align 8, !tbaa !72
  %4795 = load ptr, ptr %122, align 8, !tbaa !9
  %4796 = icmp eq ptr %4794, %4795
  br i1 %4796, label %4850, label %4797

4797:                                             ; preds = %4788
  br label %4798

4798:                                             ; preds = %4797
  br label %4799

4799:                                             ; preds = %4798
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #10
  %4800 = call ptr @__errno_location() #11
  %4801 = load i32, ptr %4800, align 4, !tbaa !5
  store i32 %4801, ptr %125, align 4, !tbaa !5
  %4802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4803 = call i32 @s2n_print_stacktrace(ptr noundef %4802)
  %4804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4805 = trunc i8 %4804 to i1
  br i1 %4805, label %4806, label %4828

4806:                                             ; preds = %4799
  %4807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4808 = call i32 @fileno(ptr noundef %4807) #10
  %4809 = call i32 @isatty(i32 noundef %4808) #10
  %4810 = icmp ne i32 %4809, 0
  br i1 %4810, label %4811, label %4828

4811:                                             ; preds = %4806
  %4812 = load i32, ptr %125, align 4, !tbaa !5
  %4813 = call ptr @__errno_location() #11
  store i32 %4812, ptr %4813, align 4, !tbaa !5
  %4814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4815 = load i32, ptr @test_count, align 4, !tbaa !5
  %4816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4817 = load i32, ptr %4816, align 4, !tbaa !5
  %4818 = call ptr @s2n_strerror(i32 noundef %4817, ptr noundef @.str.4)
  %4819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4820 = load i32, ptr %4819, align 4, !tbaa !5
  %4821 = call ptr @s2n_strerror_debug(i32 noundef %4820, ptr noundef @.str.4)
  %4822 = call ptr @__errno_location() #11
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  %4824 = call ptr @strerror(i32 noundef %4823) #10
  %4825 = call ptr @__errno_location() #11
  %4826 = load i32, ptr %4825, align 4, !tbaa !5
  %4827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4814, ptr noundef @.str.2, i32 noundef %4815, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 331, ptr noundef %4818, ptr noundef %4821, ptr noundef %4824, i32 noundef %4826) #10
  br label %4845

4828:                                             ; preds = %4806, %4799
  %4829 = load i32, ptr %125, align 4, !tbaa !5
  %4830 = call ptr @__errno_location() #11
  store i32 %4829, ptr %4830, align 4, !tbaa !5
  %4831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4832 = load i32, ptr @test_count, align 4, !tbaa !5
  %4833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4834 = load i32, ptr %4833, align 4, !tbaa !5
  %4835 = call ptr @s2n_strerror(i32 noundef %4834, ptr noundef @.str.4)
  %4836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4837 = load i32, ptr %4836, align 4, !tbaa !5
  %4838 = call ptr @s2n_strerror_debug(i32 noundef %4837, ptr noundef @.str.4)
  %4839 = call ptr @__errno_location() #11
  %4840 = load i32, ptr %4839, align 4, !tbaa !5
  %4841 = call ptr @strerror(i32 noundef %4840) #10
  %4842 = call ptr @__errno_location() #11
  %4843 = load i32, ptr %4842, align 4, !tbaa !5
  %4844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4831, ptr noundef @.str.5, i32 noundef %4832, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 331, ptr noundef %4835, ptr noundef %4838, ptr noundef %4841, i32 noundef %4843) #10
  br label %4845

4845:                                             ; preds = %4828, %4811
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #10
  br label %4846

4846:                                             ; preds = %4845
  br label %4847

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

4848:                                             ; No predecessors!
  br label %4849

4849:                                             ; preds = %4848
  br label %4850

4850:                                             ; preds = %4849, %4788
  br label %4851

4851:                                             ; preds = %4850
  br label %4852

4852:                                             ; preds = %4851
  %4853 = load ptr, ptr %108, align 8, !tbaa !9
  %4854 = getelementptr inbounds %struct.s2n_connection, ptr %4853, i32 0, i32 23
  store i8 33, ptr %4854, align 4, !tbaa !50
  br label %4855

4855:                                             ; preds = %4852
  %4856 = load i32, ptr @test_count, align 4, !tbaa !5
  %4857 = add nsw i32 %4856, 1
  store i32 %4857, ptr @test_count, align 4, !tbaa !5
  %4858 = load ptr, ptr %108, align 8, !tbaa !9
  %4859 = call i32 @s2n_signature_algorithm_select(ptr noundef %4858)
  %4860 = getelementptr inbounds %struct.s2n_result, ptr %126, i32 0, i32 0
  store i32 %4859, ptr %4860, align 4
  %4861 = getelementptr inbounds %struct.s2n_result, ptr %126, i32 0, i32 0
  %4862 = load i32, ptr %4861, align 4
  %4863 = call zeroext i1 @s2n_result_is_ok(i32 %4862)
  br i1 %4863, label %4917, label %4864

4864:                                             ; preds = %4855
  br label %4865

4865:                                             ; preds = %4864
  br label %4866

4866:                                             ; preds = %4865
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #10
  %4867 = call ptr @__errno_location() #11
  %4868 = load i32, ptr %4867, align 4, !tbaa !5
  store i32 %4868, ptr %127, align 4, !tbaa !5
  %4869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4870 = call i32 @s2n_print_stacktrace(ptr noundef %4869)
  %4871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4872 = trunc i8 %4871 to i1
  br i1 %4872, label %4873, label %4895

4873:                                             ; preds = %4866
  %4874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4875 = call i32 @fileno(ptr noundef %4874) #10
  %4876 = call i32 @isatty(i32 noundef %4875) #10
  %4877 = icmp ne i32 %4876, 0
  br i1 %4877, label %4878, label %4895

4878:                                             ; preds = %4873
  %4879 = load i32, ptr %127, align 4, !tbaa !5
  %4880 = call ptr @__errno_location() #11
  store i32 %4879, ptr %4880, align 4, !tbaa !5
  %4881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4882 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4884, ptr noundef @.str.4)
  %4886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4887 = load i32, ptr %4886, align 4, !tbaa !5
  %4888 = call ptr @s2n_strerror_debug(i32 noundef %4887, ptr noundef @.str.4)
  %4889 = call ptr @__errno_location() #11
  %4890 = load i32, ptr %4889, align 4, !tbaa !5
  %4891 = call ptr @strerror(i32 noundef %4890) #10
  %4892 = call ptr @__errno_location() #11
  %4893 = load i32, ptr %4892, align 4, !tbaa !5
  %4894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4881, ptr noundef @.str.2, i32 noundef %4882, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 335, ptr noundef %4885, ptr noundef %4888, ptr noundef %4891, i32 noundef %4893) #10
  br label %4912

4895:                                             ; preds = %4873, %4866
  %4896 = load i32, ptr %127, align 4, !tbaa !5
  %4897 = call ptr @__errno_location() #11
  store i32 %4896, ptr %4897, align 4, !tbaa !5
  %4898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4899 = load i32, ptr @test_count, align 4, !tbaa !5
  %4900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4901 = load i32, ptr %4900, align 4, !tbaa !5
  %4902 = call ptr @s2n_strerror(i32 noundef %4901, ptr noundef @.str.4)
  %4903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4904 = load i32, ptr %4903, align 4, !tbaa !5
  %4905 = call ptr @s2n_strerror_debug(i32 noundef %4904, ptr noundef @.str.4)
  %4906 = call ptr @__errno_location() #11
  %4907 = load i32, ptr %4906, align 4, !tbaa !5
  %4908 = call ptr @strerror(i32 noundef %4907) #10
  %4909 = call ptr @__errno_location() #11
  %4910 = load i32, ptr %4909, align 4, !tbaa !5
  %4911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4898, ptr noundef @.str.5, i32 noundef %4899, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 335, ptr noundef %4902, ptr noundef %4905, ptr noundef %4908, i32 noundef %4910) #10
  br label %4912

4912:                                             ; preds = %4895, %4878
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %4913

4913:                                             ; preds = %4912
  br label %4914

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

4915:                                             ; No predecessors!
  br label %4916

4916:                                             ; preds = %4915
  br label %4917

4917:                                             ; preds = %4916, %4855
  br label %4918

4918:                                             ; preds = %4917
  br label %4919

4919:                                             ; preds = %4918
  br label %4920

4920:                                             ; preds = %4919
  %4921 = load i32, ptr @test_count, align 4, !tbaa !5
  %4922 = add nsw i32 %4921, 1
  store i32 %4922, ptr @test_count, align 4, !tbaa !5
  %4923 = load ptr, ptr %108, align 8, !tbaa !9
  %4924 = getelementptr inbounds %struct.s2n_connection, ptr %4923, i32 0, i32 32
  %4925 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %4924, i32 0, i32 5
  %4926 = load ptr, ptr %4925, align 8, !tbaa !72
  %4927 = load ptr, ptr %122, align 8, !tbaa !9
  %4928 = icmp eq ptr %4926, %4927
  br i1 %4928, label %4929, label %4982

4929:                                             ; preds = %4920
  br label %4930

4930:                                             ; preds = %4929
  br label %4931

4931:                                             ; preds = %4930
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #10
  %4932 = call ptr @__errno_location() #11
  %4933 = load i32, ptr %4932, align 4, !tbaa !5
  store i32 %4933, ptr %128, align 4, !tbaa !5
  %4934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4935 = call i32 @s2n_print_stacktrace(ptr noundef %4934)
  %4936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4937 = trunc i8 %4936 to i1
  br i1 %4937, label %4938, label %4960

4938:                                             ; preds = %4931
  %4939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4940 = call i32 @fileno(ptr noundef %4939) #10
  %4941 = call i32 @isatty(i32 noundef %4940) #10
  %4942 = icmp ne i32 %4941, 0
  br i1 %4942, label %4943, label %4960

4943:                                             ; preds = %4938
  %4944 = load i32, ptr %128, align 4, !tbaa !5
  %4945 = call ptr @__errno_location() #11
  store i32 %4944, ptr %4945, align 4, !tbaa !5
  %4946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4947 = load i32, ptr @test_count, align 4, !tbaa !5
  %4948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4949 = load i32, ptr %4948, align 4, !tbaa !5
  %4950 = call ptr @s2n_strerror(i32 noundef %4949, ptr noundef @.str.4)
  %4951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4952 = load i32, ptr %4951, align 4, !tbaa !5
  %4953 = call ptr @s2n_strerror_debug(i32 noundef %4952, ptr noundef @.str.4)
  %4954 = call ptr @__errno_location() #11
  %4955 = load i32, ptr %4954, align 4, !tbaa !5
  %4956 = call ptr @strerror(i32 noundef %4955) #10
  %4957 = call ptr @__errno_location() #11
  %4958 = load i32, ptr %4957, align 4, !tbaa !5
  %4959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4946, ptr noundef @.str.2, i32 noundef %4947, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 336, ptr noundef %4950, ptr noundef %4953, ptr noundef %4956, i32 noundef %4958) #10
  br label %4977

4960:                                             ; preds = %4938, %4931
  %4961 = load i32, ptr %128, align 4, !tbaa !5
  %4962 = call ptr @__errno_location() #11
  store i32 %4961, ptr %4962, align 4, !tbaa !5
  %4963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4964 = load i32, ptr @test_count, align 4, !tbaa !5
  %4965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4966 = load i32, ptr %4965, align 4, !tbaa !5
  %4967 = call ptr @s2n_strerror(i32 noundef %4966, ptr noundef @.str.4)
  %4968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4969 = load i32, ptr %4968, align 4, !tbaa !5
  %4970 = call ptr @s2n_strerror_debug(i32 noundef %4969, ptr noundef @.str.4)
  %4971 = call ptr @__errno_location() #11
  %4972 = load i32, ptr %4971, align 4, !tbaa !5
  %4973 = call ptr @strerror(i32 noundef %4972) #10
  %4974 = call ptr @__errno_location() #11
  %4975 = load i32, ptr %4974, align 4, !tbaa !5
  %4976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4963, ptr noundef @.str.5, i32 noundef %4964, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 336, ptr noundef %4967, ptr noundef %4970, ptr noundef %4973, i32 noundef %4975) #10
  br label %4977

4977:                                             ; preds = %4960, %4943
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #10
  br label %4978

4978:                                             ; preds = %4977
  br label %4979

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

4980:                                             ; No predecessors!
  br label %4981

4981:                                             ; preds = %4980
  br label %4982

4982:                                             ; preds = %4981, %4920
  br label %4983

4983:                                             ; preds = %4982
  br label %4984

4984:                                             ; preds = %4983
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  call void @llvm.lifetime.end.p0(i64 80, ptr %110) #10
  %4985 = call i32 @s2n_connection_ptr_free(ptr noundef %108)
  %4986 = getelementptr inbounds %struct.s2n_result, ptr %129, i32 0, i32 0
  store i32 %4985, ptr %4986, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #10
  store ptr @s2n_ecdsa_sha256, ptr %130, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #10
  %4987 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4987, ptr %131, align 8, !tbaa !9
  br label %4988

4988:                                             ; preds = %4984
  %4989 = load i32, ptr @test_count, align 4, !tbaa !5
  %4990 = add nsw i32 %4989, 1
  store i32 %4990, ptr @test_count, align 4, !tbaa !5
  %4991 = load ptr, ptr %131, align 8, !tbaa !9
  %4992 = load ptr, ptr %78, align 8, !tbaa !9
  %4993 = call i32 @s2n_connection_set_config(ptr noundef %4991, ptr noundef %4992)
  %4994 = icmp eq i32 %4993, -1
  br i1 %4994, label %4995, label %5048

4995:                                             ; preds = %4988
  br label %4996

4996:                                             ; preds = %4995
  br label %4997

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

5004:                                             ; preds = %4997
  %5005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5006 = call i32 @fileno(ptr noundef %5005) #10
  %5007 = call i32 @isatty(i32 noundef %5006) #10
  %5008 = icmp ne i32 %5007, 0
  br i1 %5008, label %5009, label %5026

5009:                                             ; preds = %5004
  %5010 = load i32, ptr %132, align 4, !tbaa !5
  %5011 = call ptr @__errno_location() #11
  store i32 %5010, ptr %5011, align 4, !tbaa !5
  %5012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5013 = load i32, ptr @test_count, align 4, !tbaa !5
  %5014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5015 = load i32, ptr %5014, align 4, !tbaa !5
  %5016 = call ptr @s2n_strerror(i32 noundef %5015, ptr noundef @.str.4)
  %5017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5018 = load i32, ptr %5017, align 4, !tbaa !5
  %5019 = call ptr @s2n_strerror_debug(i32 noundef %5018, ptr noundef @.str.4)
  %5020 = call ptr @__errno_location() #11
  %5021 = load i32, ptr %5020, align 4, !tbaa !5
  %5022 = call ptr @strerror(i32 noundef %5021) #10
  %5023 = call ptr @__errno_location() #11
  %5024 = load i32, ptr %5023, align 4, !tbaa !5
  %5025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5012, ptr noundef @.str.2, i32 noundef %5013, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 347, ptr noundef %5016, ptr noundef %5019, ptr noundef %5022, i32 noundef %5024) #10
  br label %5043

5026:                                             ; preds = %5004, %4997
  %5027 = load i32, ptr %132, align 4, !tbaa !5
  %5028 = call ptr @__errno_location() #11
  store i32 %5027, ptr %5028, align 4, !tbaa !5
  %5029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5030 = load i32, ptr @test_count, align 4, !tbaa !5
  %5031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5032 = load i32, ptr %5031, align 4, !tbaa !5
  %5033 = call ptr @s2n_strerror(i32 noundef %5032, ptr noundef @.str.4)
  %5034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5035 = load i32, ptr %5034, align 4, !tbaa !5
  %5036 = call ptr @s2n_strerror_debug(i32 noundef %5035, ptr noundef @.str.4)
  %5037 = call ptr @__errno_location() #11
  %5038 = load i32, ptr %5037, align 4, !tbaa !5
  %5039 = call ptr @strerror(i32 noundef %5038) #10
  %5040 = call ptr @__errno_location() #11
  %5041 = load i32, ptr %5040, align 4, !tbaa !5
  %5042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5029, ptr noundef @.str.5, i32 noundef %5030, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 347, ptr noundef %5033, ptr noundef %5036, ptr noundef %5039, i32 noundef %5041) #10
  br label %5043

5043:                                             ; preds = %5026, %5009
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  br label %5044

5044:                                             ; preds = %5043
  br label %5045

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

5046:                                             ; No predecessors!
  br label %5047

5047:                                             ; preds = %5046
  br label %5048

5048:                                             ; preds = %5047, %4988
  br label %5049

5049:                                             ; preds = %5048
  br label %5050

5050:                                             ; preds = %5049
  call void @llvm.lifetime.start.p0(i64 80, ptr %133) #10
  call void @llvm.memset.p0.i64(ptr align 8 %133, i8 0, i64 80, i1 false)
  br label %5051

5051:                                             ; preds = %5050
  %5052 = load i32, ptr @test_count, align 4, !tbaa !5
  %5053 = add nsw i32 %5052, 1
  store i32 %5053, ptr @test_count, align 4, !tbaa !5
  %5054 = load ptr, ptr %131, align 8, !tbaa !9
  %5055 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %5054, ptr noundef %133, ptr noundef %130, i64 noundef 1)
  %5056 = getelementptr inbounds %struct.s2n_result, ptr %134, i32 0, i32 0
  store i32 %5055, ptr %5056, align 4
  %5057 = getelementptr inbounds %struct.s2n_result, ptr %134, i32 0, i32 0
  %5058 = load i32, ptr %5057, align 4
  %5059 = call zeroext i1 @s2n_result_is_ok(i32 %5058)
  br i1 %5059, label %5113, label %5060

5060:                                             ; preds = %5051
  br label %5061

5061:                                             ; preds = %5060
  br label %5062

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

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

5074:                                             ; preds = %5069
  %5075 = load i32, ptr %135, align 4, !tbaa !5
  %5076 = call ptr @__errno_location() #11
  store i32 %5075, ptr %5076, align 4, !tbaa !5
  %5077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5078 = load i32, ptr @test_count, align 4, !tbaa !5
  %5079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5080 = load i32, ptr %5079, align 4, !tbaa !5
  %5081 = call ptr @s2n_strerror(i32 noundef %5080, ptr noundef @.str.4)
  %5082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  %5084 = call ptr @s2n_strerror_debug(i32 noundef %5083, ptr noundef @.str.4)
  %5085 = call ptr @__errno_location() #11
  %5086 = load i32, ptr %5085, align 4, !tbaa !5
  %5087 = call ptr @strerror(i32 noundef %5086) #10
  %5088 = call ptr @__errno_location() #11
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5077, ptr noundef @.str.2, i32 noundef %5078, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 350, ptr noundef %5081, ptr noundef %5084, ptr noundef %5087, i32 noundef %5089) #10
  br label %5108

5091:                                             ; preds = %5069, %5062
  %5092 = load i32, ptr %135, align 4, !tbaa !5
  %5093 = call ptr @__errno_location() #11
  store i32 %5092, ptr %5093, align 4, !tbaa !5
  %5094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5095 = load i32, ptr @test_count, align 4, !tbaa !5
  %5096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5097 = load i32, ptr %5096, align 4, !tbaa !5
  %5098 = call ptr @s2n_strerror(i32 noundef %5097, ptr noundef @.str.4)
  %5099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5100 = load i32, ptr %5099, align 4, !tbaa !5
  %5101 = call ptr @s2n_strerror_debug(i32 noundef %5100, ptr noundef @.str.4)
  %5102 = call ptr @__errno_location() #11
  %5103 = load i32, ptr %5102, align 4, !tbaa !5
  %5104 = call ptr @strerror(i32 noundef %5103) #10
  %5105 = call ptr @__errno_location() #11
  %5106 = load i32, ptr %5105, align 4, !tbaa !5
  %5107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5094, ptr noundef @.str.5, i32 noundef %5095, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 350, ptr noundef %5098, ptr noundef %5101, ptr noundef %5104, i32 noundef %5106) #10
  br label %5108

5108:                                             ; preds = %5091, %5074
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  br label %5109

5109:                                             ; preds = %5108
  br label %5110

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

5111:                                             ; No predecessors!
  br label %5112

5112:                                             ; preds = %5111
  br label %5113

5113:                                             ; preds = %5112, %5051
  br label %5114

5114:                                             ; preds = %5113
  br label %5115

5115:                                             ; preds = %5114
  br label %5116

5116:                                             ; preds = %5115
  %5117 = load i32, ptr @test_count, align 4, !tbaa !5
  %5118 = add nsw i32 %5117, 1
  store i32 %5118, ptr @test_count, align 4, !tbaa !5
  %5119 = load ptr, ptr %131, align 8, !tbaa !9
  %5120 = getelementptr inbounds %struct.s2n_connection, ptr %5119, i32 0, i32 32
  %5121 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5120, i32 0, i32 4
  %5122 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %5121, ptr noundef %130, i64 noundef 1)
  %5123 = getelementptr inbounds %struct.s2n_result, ptr %136, i32 0, i32 0
  store i32 %5122, ptr %5123, align 4
  %5124 = getelementptr inbounds %struct.s2n_result, ptr %136, i32 0, i32 0
  %5125 = load i32, ptr %5124, align 4
  %5126 = call zeroext i1 @s2n_result_is_ok(i32 %5125)
  br i1 %5126, label %5180, label %5127

5127:                                             ; preds = %5116
  br label %5128

5128:                                             ; preds = %5127
  br label %5129

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

5136:                                             ; preds = %5129
  %5137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5138 = call i32 @fileno(ptr noundef %5137) #10
  %5139 = call i32 @isatty(i32 noundef %5138) #10
  %5140 = icmp ne i32 %5139, 0
  br i1 %5140, label %5141, label %5158

5141:                                             ; preds = %5136
  %5142 = load i32, ptr %137, align 4, !tbaa !5
  %5143 = call ptr @__errno_location() #11
  store i32 %5142, ptr %5143, align 4, !tbaa !5
  %5144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5145 = load i32, ptr @test_count, align 4, !tbaa !5
  %5146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5147 = load i32, ptr %5146, align 4, !tbaa !5
  %5148 = call ptr @s2n_strerror(i32 noundef %5147, ptr noundef @.str.4)
  %5149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5150 = load i32, ptr %5149, align 4, !tbaa !5
  %5151 = call ptr @s2n_strerror_debug(i32 noundef %5150, ptr noundef @.str.4)
  %5152 = call ptr @__errno_location() #11
  %5153 = load i32, ptr %5152, align 4, !tbaa !5
  %5154 = call ptr @strerror(i32 noundef %5153) #10
  %5155 = call ptr @__errno_location() #11
  %5156 = load i32, ptr %5155, align 4, !tbaa !5
  %5157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5144, ptr noundef @.str.2, i32 noundef %5145, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 352, ptr noundef %5148, ptr noundef %5151, ptr noundef %5154, i32 noundef %5156) #10
  br label %5175

5158:                                             ; preds = %5136, %5129
  %5159 = load i32, ptr %137, align 4, !tbaa !5
  %5160 = call ptr @__errno_location() #11
  store i32 %5159, ptr %5160, align 4, !tbaa !5
  %5161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5162 = load i32, ptr @test_count, align 4, !tbaa !5
  %5163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5164 = load i32, ptr %5163, align 4, !tbaa !5
  %5165 = call ptr @s2n_strerror(i32 noundef %5164, ptr noundef @.str.4)
  %5166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5167 = load i32, ptr %5166, align 4, !tbaa !5
  %5168 = call ptr @s2n_strerror_debug(i32 noundef %5167, ptr noundef @.str.4)
  %5169 = call ptr @__errno_location() #11
  %5170 = load i32, ptr %5169, align 4, !tbaa !5
  %5171 = call ptr @strerror(i32 noundef %5170) #10
  %5172 = call ptr @__errno_location() #11
  %5173 = load i32, ptr %5172, align 4, !tbaa !5
  %5174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5161, ptr noundef @.str.5, i32 noundef %5162, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 352, ptr noundef %5165, ptr noundef %5168, ptr noundef %5171, i32 noundef %5173) #10
  br label %5175

5175:                                             ; preds = %5158, %5141
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #10
  br label %5176

5176:                                             ; preds = %5175
  br label %5177

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

5178:                                             ; No predecessors!
  br label %5179

5179:                                             ; preds = %5178
  br label %5180

5180:                                             ; preds = %5179, %5116
  br label %5181

5181:                                             ; preds = %5180
  br label %5182

5182:                                             ; preds = %5181
  br label %5183

5183:                                             ; preds = %5182
  %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 = load ptr, ptr %131, align 8, !tbaa !9
  %5187 = call i32 @s2n_signature_algorithm_select(ptr noundef %5186)
  %5188 = getelementptr inbounds %struct.s2n_result, ptr %138, i32 0, i32 0
  store i32 %5187, ptr %5188, align 4
  %5189 = getelementptr inbounds %struct.s2n_result, ptr %138, i32 0, i32 0
  %5190 = load i32, ptr %5189, align 4
  %5191 = call zeroext i1 @s2n_result_is_ok(i32 %5190)
  br i1 %5191, label %5245, label %5192

5192:                                             ; preds = %5183
  br label %5193

5193:                                             ; preds = %5192
  br label %5194

5194:                                             ; preds = %5193
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #10
  %5195 = call ptr @__errno_location() #11
  %5196 = load i32, ptr %5195, align 4, !tbaa !5
  store i32 %5196, ptr %139, align 4, !tbaa !5
  %5197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5198 = call i32 @s2n_print_stacktrace(ptr noundef %5197)
  %5199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5200 = trunc i8 %5199 to i1
  br i1 %5200, label %5201, label %5223

5201:                                             ; preds = %5194
  %5202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5203 = call i32 @fileno(ptr noundef %5202) #10
  %5204 = call i32 @isatty(i32 noundef %5203) #10
  %5205 = icmp ne i32 %5204, 0
  br i1 %5205, label %5206, label %5223

5206:                                             ; preds = %5201
  %5207 = load i32, ptr %139, align 4, !tbaa !5
  %5208 = call ptr @__errno_location() #11
  store i32 %5207, ptr %5208, align 4, !tbaa !5
  %5209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5210 = load i32, ptr @test_count, align 4, !tbaa !5
  %5211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5212 = load i32, ptr %5211, align 4, !tbaa !5
  %5213 = call ptr @s2n_strerror(i32 noundef %5212, ptr noundef @.str.4)
  %5214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5215 = load i32, ptr %5214, align 4, !tbaa !5
  %5216 = call ptr @s2n_strerror_debug(i32 noundef %5215, ptr noundef @.str.4)
  %5217 = call ptr @__errno_location() #11
  %5218 = load i32, ptr %5217, align 4, !tbaa !5
  %5219 = call ptr @strerror(i32 noundef %5218) #10
  %5220 = call ptr @__errno_location() #11
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5209, ptr noundef @.str.2, i32 noundef %5210, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 354, ptr noundef %5213, ptr noundef %5216, ptr noundef %5219, i32 noundef %5221) #10
  br label %5240

5223:                                             ; preds = %5201, %5194
  %5224 = load i32, ptr %139, align 4, !tbaa !5
  %5225 = call ptr @__errno_location() #11
  store i32 %5224, ptr %5225, align 4, !tbaa !5
  %5226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5227 = load i32, ptr @test_count, align 4, !tbaa !5
  %5228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5229 = load i32, ptr %5228, align 4, !tbaa !5
  %5230 = call ptr @s2n_strerror(i32 noundef %5229, ptr noundef @.str.4)
  %5231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5232 = load i32, ptr %5231, align 4, !tbaa !5
  %5233 = call ptr @s2n_strerror_debug(i32 noundef %5232, ptr noundef @.str.4)
  %5234 = call ptr @__errno_location() #11
  %5235 = load i32, ptr %5234, align 4, !tbaa !5
  %5236 = call ptr @strerror(i32 noundef %5235) #10
  %5237 = call ptr @__errno_location() #11
  %5238 = load i32, ptr %5237, align 4, !tbaa !5
  %5239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5226, ptr noundef @.str.5, i32 noundef %5227, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 354, ptr noundef %5230, ptr noundef %5233, ptr noundef %5236, i32 noundef %5238) #10
  br label %5240

5240:                                             ; preds = %5223, %5206
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #10
  br label %5241

5241:                                             ; preds = %5240
  br label %5242

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

5243:                                             ; No predecessors!
  br label %5244

5244:                                             ; preds = %5243
  br label %5245

5245:                                             ; preds = %5244, %5183
  br label %5246

5246:                                             ; preds = %5245
  br label %5247

5247:                                             ; preds = %5246
  br label %5248

5248:                                             ; preds = %5247
  %5249 = load i32, ptr @test_count, align 4, !tbaa !5
  %5250 = add nsw i32 %5249, 1
  store i32 %5250, ptr @test_count, align 4, !tbaa !5
  %5251 = load ptr, ptr %131, align 8, !tbaa !9
  %5252 = getelementptr inbounds %struct.s2n_connection, ptr %5251, i32 0, i32 32
  %5253 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5252, i32 0, i32 6
  %5254 = load ptr, ptr %5253, align 8, !tbaa !65
  %5255 = load ptr, ptr %130, align 8, !tbaa !9
  %5256 = icmp eq ptr %5254, %5255
  br i1 %5256, label %5310, label %5257

5257:                                             ; preds = %5248
  br label %5258

5258:                                             ; preds = %5257
  br label %5259

5259:                                             ; preds = %5258
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #10
  %5260 = call ptr @__errno_location() #11
  %5261 = load i32, ptr %5260, align 4, !tbaa !5
  store i32 %5261, ptr %140, align 4, !tbaa !5
  %5262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5263 = call i32 @s2n_print_stacktrace(ptr noundef %5262)
  %5264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5265 = trunc i8 %5264 to i1
  br i1 %5265, label %5266, label %5288

5266:                                             ; preds = %5259
  %5267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5268 = call i32 @fileno(ptr noundef %5267) #10
  %5269 = call i32 @isatty(i32 noundef %5268) #10
  %5270 = icmp ne i32 %5269, 0
  br i1 %5270, label %5271, label %5288

5271:                                             ; preds = %5266
  %5272 = load i32, ptr %140, align 4, !tbaa !5
  %5273 = call ptr @__errno_location() #11
  store i32 %5272, ptr %5273, align 4, !tbaa !5
  %5274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5275 = load i32, ptr @test_count, align 4, !tbaa !5
  %5276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5277 = load i32, ptr %5276, align 4, !tbaa !5
  %5278 = call ptr @s2n_strerror(i32 noundef %5277, ptr noundef @.str.4)
  %5279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5280 = load i32, ptr %5279, align 4, !tbaa !5
  %5281 = call ptr @s2n_strerror_debug(i32 noundef %5280, ptr noundef @.str.4)
  %5282 = call ptr @__errno_location() #11
  %5283 = load i32, ptr %5282, align 4, !tbaa !5
  %5284 = call ptr @strerror(i32 noundef %5283) #10
  %5285 = call ptr @__errno_location() #11
  %5286 = load i32, ptr %5285, align 4, !tbaa !5
  %5287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5274, ptr noundef @.str.2, i32 noundef %5275, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 355, ptr noundef %5278, ptr noundef %5281, ptr noundef %5284, i32 noundef %5286) #10
  br label %5305

5288:                                             ; preds = %5266, %5259
  %5289 = load i32, ptr %140, align 4, !tbaa !5
  %5290 = call ptr @__errno_location() #11
  store i32 %5289, ptr %5290, align 4, !tbaa !5
  %5291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5292 = load i32, ptr @test_count, align 4, !tbaa !5
  %5293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5294 = load i32, ptr %5293, align 4, !tbaa !5
  %5295 = call ptr @s2n_strerror(i32 noundef %5294, ptr noundef @.str.4)
  %5296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5297 = load i32, ptr %5296, align 4, !tbaa !5
  %5298 = call ptr @s2n_strerror_debug(i32 noundef %5297, ptr noundef @.str.4)
  %5299 = call ptr @__errno_location() #11
  %5300 = load i32, ptr %5299, align 4, !tbaa !5
  %5301 = call ptr @strerror(i32 noundef %5300) #10
  %5302 = call ptr @__errno_location() #11
  %5303 = load i32, ptr %5302, align 4, !tbaa !5
  %5304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5291, ptr noundef @.str.5, i32 noundef %5292, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 355, ptr noundef %5295, ptr noundef %5298, ptr noundef %5301, i32 noundef %5303) #10
  br label %5305

5305:                                             ; preds = %5288, %5271
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #10
  br label %5306

5306:                                             ; preds = %5305
  br label %5307

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

5308:                                             ; No predecessors!
  br label %5309

5309:                                             ; preds = %5308
  br label %5310

5310:                                             ; preds = %5309, %5248
  br label %5311

5311:                                             ; preds = %5310
  br label %5312

5312:                                             ; preds = %5311
  call void @llvm.lifetime.end.p0(i64 80, ptr %133) #10
  %5313 = call i32 @s2n_connection_ptr_free(ptr noundef %131)
  %5314 = getelementptr inbounds %struct.s2n_result, ptr %141, i32 0, i32 0
  store i32 %5313, ptr %5314, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #10
  store ptr @s2n_ecdsa_sha256, ptr %142, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #10
  %5315 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5315, ptr %143, align 8, !tbaa !9
  %5316 = load ptr, ptr %143, align 8, !tbaa !9
  %5317 = getelementptr inbounds %struct.s2n_connection, ptr %5316, i32 0, i32 23
  store i8 33, ptr %5317, align 4, !tbaa !50
  %5318 = load ptr, ptr %143, align 8, !tbaa !9
  %5319 = getelementptr inbounds %struct.s2n_connection, ptr %5318, i32 0, i32 27
  %5320 = load ptr, ptr %5319, align 8, !tbaa !66
  %5321 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5320, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %5321, align 8, !tbaa !67
  br label %5322

5322:                                             ; preds = %5312
  %5323 = load i32, ptr @test_count, align 4, !tbaa !5
  %5324 = add nsw i32 %5323, 1
  store i32 %5324, ptr @test_count, align 4, !tbaa !5
  %5325 = load ptr, ptr %143, align 8, !tbaa !9
  %5326 = load ptr, ptr %75, align 8, !tbaa !9
  %5327 = call i32 @s2n_connection_set_config(ptr noundef %5325, ptr noundef %5326)
  %5328 = icmp eq i32 %5327, -1
  br i1 %5328, label %5329, label %5382

5329:                                             ; preds = %5322
  br label %5330

5330:                                             ; preds = %5329
  br label %5331

5331:                                             ; preds = %5330
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #10
  %5332 = call ptr @__errno_location() #11
  %5333 = load i32, ptr %5332, align 4, !tbaa !5
  store i32 %5333, ptr %144, align 4, !tbaa !5
  %5334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5335 = call i32 @s2n_print_stacktrace(ptr noundef %5334)
  %5336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5337 = trunc i8 %5336 to i1
  br i1 %5337, label %5338, label %5360

5338:                                             ; preds = %5331
  %5339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5340 = call i32 @fileno(ptr noundef %5339) #10
  %5341 = call i32 @isatty(i32 noundef %5340) #10
  %5342 = icmp ne i32 %5341, 0
  br i1 %5342, label %5343, label %5360

5343:                                             ; preds = %5338
  %5344 = load i32, ptr %144, align 4, !tbaa !5
  %5345 = call ptr @__errno_location() #11
  store i32 %5344, ptr %5345, align 4, !tbaa !5
  %5346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5347 = load i32, ptr @test_count, align 4, !tbaa !5
  %5348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5349 = load i32, ptr %5348, align 4, !tbaa !5
  %5350 = call ptr @s2n_strerror(i32 noundef %5349, ptr noundef @.str.4)
  %5351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5352 = load i32, ptr %5351, align 4, !tbaa !5
  %5353 = call ptr @s2n_strerror_debug(i32 noundef %5352, ptr noundef @.str.4)
  %5354 = call ptr @__errno_location() #11
  %5355 = load i32, ptr %5354, align 4, !tbaa !5
  %5356 = call ptr @strerror(i32 noundef %5355) #10
  %5357 = call ptr @__errno_location() #11
  %5358 = load i32, ptr %5357, align 4, !tbaa !5
  %5359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5346, ptr noundef @.str.2, i32 noundef %5347, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 366, ptr noundef %5350, ptr noundef %5353, ptr noundef %5356, i32 noundef %5358) #10
  br label %5377

5360:                                             ; preds = %5338, %5331
  %5361 = load i32, ptr %144, align 4, !tbaa !5
  %5362 = call ptr @__errno_location() #11
  store i32 %5361, ptr %5362, align 4, !tbaa !5
  %5363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5364 = load i32, ptr @test_count, align 4, !tbaa !5
  %5365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5366 = load i32, ptr %5365, align 4, !tbaa !5
  %5367 = call ptr @s2n_strerror(i32 noundef %5366, ptr noundef @.str.4)
  %5368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5369 = load i32, ptr %5368, align 4, !tbaa !5
  %5370 = call ptr @s2n_strerror_debug(i32 noundef %5369, ptr noundef @.str.4)
  %5371 = call ptr @__errno_location() #11
  %5372 = load i32, ptr %5371, align 4, !tbaa !5
  %5373 = call ptr @strerror(i32 noundef %5372) #10
  %5374 = call ptr @__errno_location() #11
  %5375 = load i32, ptr %5374, align 4, !tbaa !5
  %5376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5363, ptr noundef @.str.5, i32 noundef %5364, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 366, ptr noundef %5367, ptr noundef %5370, ptr noundef %5373, i32 noundef %5375) #10
  br label %5377

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

5378:                                             ; preds = %5377
  br label %5379

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

5380:                                             ; No predecessors!
  br label %5381

5381:                                             ; preds = %5380
  br label %5382

5382:                                             ; preds = %5381, %5322
  br label %5383

5383:                                             ; preds = %5382
  br label %5384

5384:                                             ; preds = %5383
  call void @llvm.lifetime.start.p0(i64 80, ptr %145) #10
  call void @llvm.memset.p0.i64(ptr align 8 %145, i8 0, i64 80, i1 false)
  br label %5385

5385:                                             ; preds = %5384
  %5386 = load i32, ptr @test_count, align 4, !tbaa !5
  %5387 = add nsw i32 %5386, 1
  store i32 %5387, ptr @test_count, align 4, !tbaa !5
  %5388 = load ptr, ptr %143, align 8, !tbaa !9
  %5389 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %5388, ptr noundef %145, ptr noundef %142, i64 noundef 1)
  %5390 = getelementptr inbounds %struct.s2n_result, ptr %146, i32 0, i32 0
  store i32 %5389, ptr %5390, align 4
  %5391 = getelementptr inbounds %struct.s2n_result, ptr %146, i32 0, i32 0
  %5392 = load i32, ptr %5391, align 4
  %5393 = call zeroext i1 @s2n_result_is_ok(i32 %5392)
  br i1 %5393, label %5447, label %5394

5394:                                             ; preds = %5385
  br label %5395

5395:                                             ; preds = %5394
  br label %5396

5396:                                             ; preds = %5395
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #10
  %5397 = call ptr @__errno_location() #11
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  store i32 %5398, ptr %147, align 4, !tbaa !5
  %5399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5400 = call i32 @s2n_print_stacktrace(ptr noundef %5399)
  %5401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5402 = trunc i8 %5401 to i1
  br i1 %5402, label %5403, label %5425

5403:                                             ; preds = %5396
  %5404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5405 = call i32 @fileno(ptr noundef %5404) #10
  %5406 = call i32 @isatty(i32 noundef %5405) #10
  %5407 = icmp ne i32 %5406, 0
  br i1 %5407, label %5408, label %5425

5408:                                             ; preds = %5403
  %5409 = load i32, ptr %147, align 4, !tbaa !5
  %5410 = call ptr @__errno_location() #11
  store i32 %5409, ptr %5410, align 4, !tbaa !5
  %5411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5412 = load i32, ptr @test_count, align 4, !tbaa !5
  %5413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5414 = load i32, ptr %5413, align 4, !tbaa !5
  %5415 = call ptr @s2n_strerror(i32 noundef %5414, ptr noundef @.str.4)
  %5416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5417 = load i32, ptr %5416, align 4, !tbaa !5
  %5418 = call ptr @s2n_strerror_debug(i32 noundef %5417, ptr noundef @.str.4)
  %5419 = call ptr @__errno_location() #11
  %5420 = load i32, ptr %5419, align 4, !tbaa !5
  %5421 = call ptr @strerror(i32 noundef %5420) #10
  %5422 = call ptr @__errno_location() #11
  %5423 = load i32, ptr %5422, align 4, !tbaa !5
  %5424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5411, ptr noundef @.str.2, i32 noundef %5412, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 369, ptr noundef %5415, ptr noundef %5418, ptr noundef %5421, i32 noundef %5423) #10
  br label %5442

5425:                                             ; preds = %5403, %5396
  %5426 = load i32, ptr %147, align 4, !tbaa !5
  %5427 = call ptr @__errno_location() #11
  store i32 %5426, ptr %5427, align 4, !tbaa !5
  %5428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5429 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5431, ptr noundef @.str.4)
  %5433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5434 = load i32, ptr %5433, align 4, !tbaa !5
  %5435 = call ptr @s2n_strerror_debug(i32 noundef %5434, ptr noundef @.str.4)
  %5436 = call ptr @__errno_location() #11
  %5437 = load i32, ptr %5436, align 4, !tbaa !5
  %5438 = call ptr @strerror(i32 noundef %5437) #10
  %5439 = call ptr @__errno_location() #11
  %5440 = load i32, ptr %5439, align 4, !tbaa !5
  %5441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5428, ptr noundef @.str.5, i32 noundef %5429, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 369, ptr noundef %5432, ptr noundef %5435, ptr noundef %5438, i32 noundef %5440) #10
  br label %5442

5442:                                             ; preds = %5425, %5408
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #10
  br label %5443

5443:                                             ; preds = %5442
  br label %5444

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

5445:                                             ; No predecessors!
  br label %5446

5446:                                             ; preds = %5445
  br label %5447

5447:                                             ; preds = %5446, %5385
  br label %5448

5448:                                             ; preds = %5447
  br label %5449

5449:                                             ; preds = %5448
  br label %5450

5450:                                             ; preds = %5449
  %5451 = load i32, ptr @test_count, align 4, !tbaa !5
  %5452 = add nsw i32 %5451, 1
  store i32 %5452, ptr @test_count, align 4, !tbaa !5
  %5453 = load ptr, ptr %143, align 8, !tbaa !9
  %5454 = getelementptr inbounds %struct.s2n_connection, ptr %5453, i32 0, i32 32
  %5455 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5454, i32 0, i32 4
  %5456 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %5455, ptr noundef %142, i64 noundef 1)
  %5457 = getelementptr inbounds %struct.s2n_result, ptr %148, i32 0, i32 0
  store i32 %5456, ptr %5457, align 4
  %5458 = getelementptr inbounds %struct.s2n_result, ptr %148, i32 0, i32 0
  %5459 = load i32, ptr %5458, align 4
  %5460 = call zeroext i1 @s2n_result_is_ok(i32 %5459)
  br i1 %5460, label %5514, label %5461

5461:                                             ; preds = %5450
  br label %5462

5462:                                             ; preds = %5461
  br label %5463

5463:                                             ; preds = %5462
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #10
  %5464 = call ptr @__errno_location() #11
  %5465 = load i32, ptr %5464, align 4, !tbaa !5
  store i32 %5465, ptr %149, align 4, !tbaa !5
  %5466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5467 = call i32 @s2n_print_stacktrace(ptr noundef %5466)
  %5468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5469 = trunc i8 %5468 to i1
  br i1 %5469, label %5470, label %5492

5470:                                             ; preds = %5463
  %5471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5472 = call i32 @fileno(ptr noundef %5471) #10
  %5473 = call i32 @isatty(i32 noundef %5472) #10
  %5474 = icmp ne i32 %5473, 0
  br i1 %5474, label %5475, label %5492

5475:                                             ; preds = %5470
  %5476 = load i32, ptr %149, align 4, !tbaa !5
  %5477 = call ptr @__errno_location() #11
  store i32 %5476, ptr %5477, align 4, !tbaa !5
  %5478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5479 = load i32, ptr @test_count, align 4, !tbaa !5
  %5480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5481 = load i32, ptr %5480, align 4, !tbaa !5
  %5482 = call ptr @s2n_strerror(i32 noundef %5481, ptr noundef @.str.4)
  %5483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5484 = load i32, ptr %5483, align 4, !tbaa !5
  %5485 = call ptr @s2n_strerror_debug(i32 noundef %5484, ptr noundef @.str.4)
  %5486 = call ptr @__errno_location() #11
  %5487 = load i32, ptr %5486, align 4, !tbaa !5
  %5488 = call ptr @strerror(i32 noundef %5487) #10
  %5489 = call ptr @__errno_location() #11
  %5490 = load i32, ptr %5489, align 4, !tbaa !5
  %5491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5478, ptr noundef @.str.2, i32 noundef %5479, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 371, ptr noundef %5482, ptr noundef %5485, ptr noundef %5488, i32 noundef %5490) #10
  br label %5509

5492:                                             ; preds = %5470, %5463
  %5493 = load i32, ptr %149, align 4, !tbaa !5
  %5494 = call ptr @__errno_location() #11
  store i32 %5493, ptr %5494, align 4, !tbaa !5
  %5495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5496 = load i32, ptr @test_count, align 4, !tbaa !5
  %5497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5498 = load i32, ptr %5497, align 4, !tbaa !5
  %5499 = call ptr @s2n_strerror(i32 noundef %5498, ptr noundef @.str.4)
  %5500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5501 = load i32, ptr %5500, align 4, !tbaa !5
  %5502 = call ptr @s2n_strerror_debug(i32 noundef %5501, ptr noundef @.str.4)
  %5503 = call ptr @__errno_location() #11
  %5504 = load i32, ptr %5503, align 4, !tbaa !5
  %5505 = call ptr @strerror(i32 noundef %5504) #10
  %5506 = call ptr @__errno_location() #11
  %5507 = load i32, ptr %5506, align 4, !tbaa !5
  %5508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5495, ptr noundef @.str.5, i32 noundef %5496, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 371, ptr noundef %5499, ptr noundef %5502, ptr noundef %5505, i32 noundef %5507) #10
  br label %5509

5509:                                             ; preds = %5492, %5475
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #10
  br label %5510

5510:                                             ; preds = %5509
  br label %5511

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

5512:                                             ; No predecessors!
  br label %5513

5513:                                             ; preds = %5512
  br label %5514

5514:                                             ; preds = %5513, %5450
  br label %5515

5515:                                             ; preds = %5514
  br label %5516

5516:                                             ; preds = %5515
  br label %5517

5517:                                             ; preds = %5516
  %5518 = load i32, ptr @test_count, align 4, !tbaa !5
  %5519 = add nsw i32 %5518, 1
  store i32 %5519, ptr @test_count, align 4, !tbaa !5
  %5520 = load ptr, ptr %143, align 8, !tbaa !9
  %5521 = call i32 @s2n_signature_algorithm_select(ptr noundef %5520)
  %5522 = getelementptr inbounds %struct.s2n_result, ptr %150, i32 0, i32 0
  store i32 %5521, ptr %5522, align 4
  %5523 = getelementptr inbounds %struct.s2n_result, ptr %150, i32 0, i32 0
  %5524 = load i32, ptr %5523, align 4
  %5525 = call zeroext i1 @s2n_result_is_ok(i32 %5524)
  br i1 %5525, label %5579, label %5526

5526:                                             ; preds = %5517
  br label %5527

5527:                                             ; preds = %5526
  br label %5528

5528:                                             ; preds = %5527
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #10
  %5529 = call ptr @__errno_location() #11
  %5530 = load i32, ptr %5529, align 4, !tbaa !5
  store i32 %5530, ptr %151, align 4, !tbaa !5
  %5531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5532 = call i32 @s2n_print_stacktrace(ptr noundef %5531)
  %5533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5534 = trunc i8 %5533 to i1
  br i1 %5534, label %5535, label %5557

5535:                                             ; preds = %5528
  %5536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5537 = call i32 @fileno(ptr noundef %5536) #10
  %5538 = call i32 @isatty(i32 noundef %5537) #10
  %5539 = icmp ne i32 %5538, 0
  br i1 %5539, label %5540, label %5557

5540:                                             ; preds = %5535
  %5541 = load i32, ptr %151, align 4, !tbaa !5
  %5542 = call ptr @__errno_location() #11
  store i32 %5541, ptr %5542, align 4, !tbaa !5
  %5543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5544 = load i32, ptr @test_count, align 4, !tbaa !5
  %5545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5546 = load i32, ptr %5545, align 4, !tbaa !5
  %5547 = call ptr @s2n_strerror(i32 noundef %5546, ptr noundef @.str.4)
  %5548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5549 = load i32, ptr %5548, align 4, !tbaa !5
  %5550 = call ptr @s2n_strerror_debug(i32 noundef %5549, ptr noundef @.str.4)
  %5551 = call ptr @__errno_location() #11
  %5552 = load i32, ptr %5551, align 4, !tbaa !5
  %5553 = call ptr @strerror(i32 noundef %5552) #10
  %5554 = call ptr @__errno_location() #11
  %5555 = load i32, ptr %5554, align 4, !tbaa !5
  %5556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5543, ptr noundef @.str.2, i32 noundef %5544, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 373, ptr noundef %5547, ptr noundef %5550, ptr noundef %5553, i32 noundef %5555) #10
  br label %5574

5557:                                             ; preds = %5535, %5528
  %5558 = load i32, ptr %151, align 4, !tbaa !5
  %5559 = call ptr @__errno_location() #11
  store i32 %5558, ptr %5559, align 4, !tbaa !5
  %5560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5561 = load i32, ptr @test_count, align 4, !tbaa !5
  %5562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5563 = load i32, ptr %5562, align 4, !tbaa !5
  %5564 = call ptr @s2n_strerror(i32 noundef %5563, ptr noundef @.str.4)
  %5565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5566 = load i32, ptr %5565, align 4, !tbaa !5
  %5567 = call ptr @s2n_strerror_debug(i32 noundef %5566, ptr noundef @.str.4)
  %5568 = call ptr @__errno_location() #11
  %5569 = load i32, ptr %5568, align 4, !tbaa !5
  %5570 = call ptr @strerror(i32 noundef %5569) #10
  %5571 = call ptr @__errno_location() #11
  %5572 = load i32, ptr %5571, align 4, !tbaa !5
  %5573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5560, ptr noundef @.str.5, i32 noundef %5561, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 373, ptr noundef %5564, ptr noundef %5567, ptr noundef %5570, i32 noundef %5572) #10
  br label %5574

5574:                                             ; preds = %5557, %5540
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #10
  br label %5575

5575:                                             ; preds = %5574
  br label %5576

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

5577:                                             ; No predecessors!
  br label %5578

5578:                                             ; preds = %5577
  br label %5579

5579:                                             ; preds = %5578, %5517
  br label %5580

5580:                                             ; preds = %5579
  br label %5581

5581:                                             ; preds = %5580
  br label %5582

5582:                                             ; preds = %5581
  %5583 = load i32, ptr @test_count, align 4, !tbaa !5
  %5584 = add nsw i32 %5583, 1
  store i32 %5584, ptr @test_count, align 4, !tbaa !5
  %5585 = load ptr, ptr %143, align 8, !tbaa !9
  %5586 = getelementptr inbounds %struct.s2n_connection, ptr %5585, i32 0, i32 32
  %5587 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5586, i32 0, i32 5
  %5588 = load ptr, ptr %5587, align 8, !tbaa !72
  %5589 = load ptr, ptr %142, align 8, !tbaa !9
  %5590 = icmp eq ptr %5588, %5589
  br i1 %5590, label %5644, label %5591

5591:                                             ; preds = %5582
  br label %5592

5592:                                             ; preds = %5591
  br label %5593

5593:                                             ; preds = %5592
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #10
  %5594 = call ptr @__errno_location() #11
  %5595 = load i32, ptr %5594, align 4, !tbaa !5
  store i32 %5595, ptr %152, align 4, !tbaa !5
  %5596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5597 = call i32 @s2n_print_stacktrace(ptr noundef %5596)
  %5598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5599 = trunc i8 %5598 to i1
  br i1 %5599, label %5600, label %5622

5600:                                             ; preds = %5593
  %5601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5602 = call i32 @fileno(ptr noundef %5601) #10
  %5603 = call i32 @isatty(i32 noundef %5602) #10
  %5604 = icmp ne i32 %5603, 0
  br i1 %5604, label %5605, label %5622

5605:                                             ; preds = %5600
  %5606 = load i32, ptr %152, align 4, !tbaa !5
  %5607 = call ptr @__errno_location() #11
  store i32 %5606, ptr %5607, align 4, !tbaa !5
  %5608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5609 = load i32, ptr @test_count, align 4, !tbaa !5
  %5610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5611 = load i32, ptr %5610, align 4, !tbaa !5
  %5612 = call ptr @s2n_strerror(i32 noundef %5611, ptr noundef @.str.4)
  %5613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5614 = load i32, ptr %5613, align 4, !tbaa !5
  %5615 = call ptr @s2n_strerror_debug(i32 noundef %5614, ptr noundef @.str.4)
  %5616 = call ptr @__errno_location() #11
  %5617 = load i32, ptr %5616, align 4, !tbaa !5
  %5618 = call ptr @strerror(i32 noundef %5617) #10
  %5619 = call ptr @__errno_location() #11
  %5620 = load i32, ptr %5619, align 4, !tbaa !5
  %5621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5608, ptr noundef @.str.2, i32 noundef %5609, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 374, ptr noundef %5612, ptr noundef %5615, ptr noundef %5618, i32 noundef %5620) #10
  br label %5639

5622:                                             ; preds = %5600, %5593
  %5623 = load i32, ptr %152, align 4, !tbaa !5
  %5624 = call ptr @__errno_location() #11
  store i32 %5623, ptr %5624, align 4, !tbaa !5
  %5625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5626 = load i32, ptr @test_count, align 4, !tbaa !5
  %5627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5628 = load i32, ptr %5627, align 4, !tbaa !5
  %5629 = call ptr @s2n_strerror(i32 noundef %5628, ptr noundef @.str.4)
  %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_debug(i32 noundef %5631, ptr noundef @.str.4)
  %5633 = call ptr @__errno_location() #11
  %5634 = load i32, ptr %5633, align 4, !tbaa !5
  %5635 = call ptr @strerror(i32 noundef %5634) #10
  %5636 = call ptr @__errno_location() #11
  %5637 = load i32, ptr %5636, align 4, !tbaa !5
  %5638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5625, ptr noundef @.str.5, i32 noundef %5626, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 374, ptr noundef %5629, ptr noundef %5632, ptr noundef %5635, i32 noundef %5637) #10
  br label %5639

5639:                                             ; preds = %5622, %5605
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #10
  br label %5640

5640:                                             ; preds = %5639
  br label %5641

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

5642:                                             ; No predecessors!
  br label %5643

5643:                                             ; preds = %5642
  br label %5644

5644:                                             ; preds = %5643, %5582
  br label %5645

5645:                                             ; preds = %5644
  br label %5646

5646:                                             ; preds = %5645
  call void @llvm.lifetime.end.p0(i64 80, ptr %145) #10
  %5647 = call i32 @s2n_connection_ptr_free(ptr noundef %143)
  %5648 = getelementptr inbounds %struct.s2n_result, ptr %153, i32 0, i32 0
  store i32 %5647, ptr %5648, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %154) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %154, ptr align 16 @__const.main.order, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %155) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %155, ptr align 16 @__const.main.reversed_order, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #10
  %5649 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5649, ptr %156, align 8, !tbaa !9
  %5650 = load ptr, ptr %156, align 8, !tbaa !9
  %5651 = getelementptr inbounds %struct.s2n_connection, ptr %5650, i32 0, i32 23
  store i8 33, ptr %5651, align 4, !tbaa !50
  %5652 = load ptr, ptr %156, align 8, !tbaa !9
  %5653 = getelementptr inbounds %struct.s2n_connection, ptr %5652, i32 0, i32 27
  %5654 = load ptr, ptr %5653, align 8, !tbaa !66
  %5655 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5654, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %5655, align 8, !tbaa !67
  br label %5656

5656:                                             ; preds = %5646
  %5657 = load i32, ptr @test_count, align 4, !tbaa !5
  %5658 = add nsw i32 %5657, 1
  store i32 %5658, ptr @test_count, align 4, !tbaa !5
  %5659 = load ptr, ptr %156, align 8, !tbaa !9
  %5660 = load ptr, ptr %75, align 8, !tbaa !9
  %5661 = call i32 @s2n_connection_set_config(ptr noundef %5659, ptr noundef %5660)
  %5662 = icmp eq i32 %5661, -1
  br i1 %5662, label %5663, label %5716

5663:                                             ; preds = %5656
  br label %5664

5664:                                             ; preds = %5663
  br label %5665

5665:                                             ; preds = %5664
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  %5666 = call ptr @__errno_location() #11
  %5667 = load i32, ptr %5666, align 4, !tbaa !5
  store i32 %5667, ptr %157, align 4, !tbaa !5
  %5668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5669 = call i32 @s2n_print_stacktrace(ptr noundef %5668)
  %5670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5671 = trunc i8 %5670 to i1
  br i1 %5671, label %5672, label %5694

5672:                                             ; preds = %5665
  %5673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5674 = call i32 @fileno(ptr noundef %5673) #10
  %5675 = call i32 @isatty(i32 noundef %5674) #10
  %5676 = icmp ne i32 %5675, 0
  br i1 %5676, label %5677, label %5694

5677:                                             ; preds = %5672
  %5678 = load i32, ptr %157, align 4, !tbaa !5
  %5679 = call ptr @__errno_location() #11
  store i32 %5678, ptr %5679, align 4, !tbaa !5
  %5680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5681 = load i32, ptr @test_count, align 4, !tbaa !5
  %5682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5683 = load i32, ptr %5682, align 4, !tbaa !5
  %5684 = call ptr @s2n_strerror(i32 noundef %5683, ptr noundef @.str.4)
  %5685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5686 = load i32, ptr %5685, align 4, !tbaa !5
  %5687 = call ptr @s2n_strerror_debug(i32 noundef %5686, ptr noundef @.str.4)
  %5688 = call ptr @__errno_location() #11
  %5689 = load i32, ptr %5688, align 4, !tbaa !5
  %5690 = call ptr @strerror(i32 noundef %5689) #10
  %5691 = call ptr @__errno_location() #11
  %5692 = load i32, ptr %5691, align 4, !tbaa !5
  %5693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5680, ptr noundef @.str.2, i32 noundef %5681, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 394, ptr noundef %5684, ptr noundef %5687, ptr noundef %5690, i32 noundef %5692) #10
  br label %5711

5694:                                             ; preds = %5672, %5665
  %5695 = load i32, ptr %157, align 4, !tbaa !5
  %5696 = call ptr @__errno_location() #11
  store i32 %5695, ptr %5696, align 4, !tbaa !5
  %5697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5698 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5700, ptr noundef @.str.4)
  %5702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5703 = load i32, ptr %5702, align 4, !tbaa !5
  %5704 = call ptr @s2n_strerror_debug(i32 noundef %5703, ptr noundef @.str.4)
  %5705 = call ptr @__errno_location() #11
  %5706 = load i32, ptr %5705, align 4, !tbaa !5
  %5707 = call ptr @strerror(i32 noundef %5706) #10
  %5708 = call ptr @__errno_location() #11
  %5709 = load i32, ptr %5708, align 4, !tbaa !5
  %5710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5697, ptr noundef @.str.5, i32 noundef %5698, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 394, ptr noundef %5701, ptr noundef %5704, ptr noundef %5707, i32 noundef %5709) #10
  br label %5711

5711:                                             ; preds = %5694, %5677
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  br label %5712

5712:                                             ; preds = %5711
  br label %5713

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

5714:                                             ; No predecessors!
  br label %5715

5715:                                             ; preds = %5714
  br label %5716

5716:                                             ; preds = %5715, %5656
  br label %5717

5717:                                             ; preds = %5716
  br label %5718

5718:                                             ; preds = %5717
  call void @llvm.lifetime.start.p0(i64 80, ptr %158) #10
  call void @llvm.memset.p0.i64(ptr align 8 %158, i8 0, i64 80, i1 false)
  br label %5719

5719:                                             ; preds = %5718
  %5720 = load i32, ptr @test_count, align 4, !tbaa !5
  %5721 = add nsw i32 %5720, 1
  store i32 %5721, ptr @test_count, align 4, !tbaa !5
  %5722 = load ptr, ptr %156, align 8, !tbaa !9
  %5723 = getelementptr inbounds [3 x ptr], ptr %154, i64 0, i64 0
  %5724 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %5722, ptr noundef %158, ptr noundef %5723, i64 noundef 3)
  %5725 = getelementptr inbounds %struct.s2n_result, ptr %159, i32 0, i32 0
  store i32 %5724, ptr %5725, align 4
  %5726 = getelementptr inbounds %struct.s2n_result, ptr %159, i32 0, i32 0
  %5727 = load i32, ptr %5726, align 4
  %5728 = call zeroext i1 @s2n_result_is_ok(i32 %5727)
  br i1 %5728, label %5782, label %5729

5729:                                             ; preds = %5719
  br label %5730

5730:                                             ; preds = %5729
  br label %5731

5731:                                             ; preds = %5730
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #10
  %5732 = call ptr @__errno_location() #11
  %5733 = load i32, ptr %5732, align 4, !tbaa !5
  store i32 %5733, ptr %160, align 4, !tbaa !5
  %5734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5735 = call i32 @s2n_print_stacktrace(ptr noundef %5734)
  %5736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5737 = trunc i8 %5736 to i1
  br i1 %5737, label %5738, label %5760

5738:                                             ; preds = %5731
  %5739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5740 = call i32 @fileno(ptr noundef %5739) #10
  %5741 = call i32 @isatty(i32 noundef %5740) #10
  %5742 = icmp ne i32 %5741, 0
  br i1 %5742, label %5743, label %5760

5743:                                             ; preds = %5738
  %5744 = load i32, ptr %160, align 4, !tbaa !5
  %5745 = call ptr @__errno_location() #11
  store i32 %5744, ptr %5745, align 4, !tbaa !5
  %5746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5747 = load i32, ptr @test_count, align 4, !tbaa !5
  %5748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5749 = load i32, ptr %5748, align 4, !tbaa !5
  %5750 = call ptr @s2n_strerror(i32 noundef %5749, ptr noundef @.str.4)
  %5751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5752 = load i32, ptr %5751, align 4, !tbaa !5
  %5753 = call ptr @s2n_strerror_debug(i32 noundef %5752, ptr noundef @.str.4)
  %5754 = call ptr @__errno_location() #11
  %5755 = load i32, ptr %5754, align 4, !tbaa !5
  %5756 = call ptr @strerror(i32 noundef %5755) #10
  %5757 = call ptr @__errno_location() #11
  %5758 = load i32, ptr %5757, align 4, !tbaa !5
  %5759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5746, ptr noundef @.str.2, i32 noundef %5747, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 400, ptr noundef %5750, ptr noundef %5753, ptr noundef %5756, i32 noundef %5758) #10
  br label %5777

5760:                                             ; preds = %5738, %5731
  %5761 = load i32, ptr %160, align 4, !tbaa !5
  %5762 = call ptr @__errno_location() #11
  store i32 %5761, ptr %5762, align 4, !tbaa !5
  %5763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5764 = load i32, ptr @test_count, align 4, !tbaa !5
  %5765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5766 = load i32, ptr %5765, align 4, !tbaa !5
  %5767 = call ptr @s2n_strerror(i32 noundef %5766, ptr noundef @.str.4)
  %5768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5769 = load i32, ptr %5768, align 4, !tbaa !5
  %5770 = call ptr @s2n_strerror_debug(i32 noundef %5769, ptr noundef @.str.4)
  %5771 = call ptr @__errno_location() #11
  %5772 = load i32, ptr %5771, align 4, !tbaa !5
  %5773 = call ptr @strerror(i32 noundef %5772) #10
  %5774 = call ptr @__errno_location() #11
  %5775 = load i32, ptr %5774, align 4, !tbaa !5
  %5776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5763, ptr noundef @.str.5, i32 noundef %5764, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 400, ptr noundef %5767, ptr noundef %5770, ptr noundef %5773, i32 noundef %5775) #10
  br label %5777

5777:                                             ; preds = %5760, %5743
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #10
  br label %5778

5778:                                             ; preds = %5777
  br label %5779

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

5780:                                             ; No predecessors!
  br label %5781

5781:                                             ; preds = %5780
  br label %5782

5782:                                             ; preds = %5781, %5719
  br label %5783

5783:                                             ; preds = %5782
  br label %5784

5784:                                             ; preds = %5783
  br label %5785

5785:                                             ; preds = %5784
  %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 = load ptr, ptr %156, align 8, !tbaa !9
  %5789 = getelementptr inbounds %struct.s2n_connection, ptr %5788, i32 0, i32 32
  %5790 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5789, i32 0, i32 4
  %5791 = getelementptr inbounds [3 x ptr], ptr %155, i64 0, i64 0
  %5792 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %5790, ptr noundef %5791, i64 noundef 3)
  %5793 = getelementptr inbounds %struct.s2n_result, ptr %161, i32 0, i32 0
  store i32 %5792, ptr %5793, align 4
  %5794 = getelementptr inbounds %struct.s2n_result, ptr %161, i32 0, i32 0
  %5795 = load i32, ptr %5794, align 4
  %5796 = call zeroext i1 @s2n_result_is_ok(i32 %5795)
  br i1 %5796, label %5850, label %5797

5797:                                             ; preds = %5785
  br label %5798

5798:                                             ; preds = %5797
  br label %5799

5799:                                             ; preds = %5798
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #10
  %5800 = call ptr @__errno_location() #11
  %5801 = load i32, ptr %5800, align 4, !tbaa !5
  store i32 %5801, ptr %162, align 4, !tbaa !5
  %5802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5803 = call i32 @s2n_print_stacktrace(ptr noundef %5802)
  %5804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5805 = trunc i8 %5804 to i1
  br i1 %5805, label %5806, label %5828

5806:                                             ; preds = %5799
  %5807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5808 = call i32 @fileno(ptr noundef %5807) #10
  %5809 = call i32 @isatty(i32 noundef %5808) #10
  %5810 = icmp ne i32 %5809, 0
  br i1 %5810, label %5811, label %5828

5811:                                             ; preds = %5806
  %5812 = load i32, ptr %162, align 4, !tbaa !5
  %5813 = call ptr @__errno_location() #11
  store i32 %5812, ptr %5813, align 4, !tbaa !5
  %5814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5815 = load i32, ptr @test_count, align 4, !tbaa !5
  %5816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5817 = load i32, ptr %5816, align 4, !tbaa !5
  %5818 = call ptr @s2n_strerror(i32 noundef %5817, ptr noundef @.str.4)
  %5819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5820 = load i32, ptr %5819, align 4, !tbaa !5
  %5821 = call ptr @s2n_strerror_debug(i32 noundef %5820, ptr noundef @.str.4)
  %5822 = call ptr @__errno_location() #11
  %5823 = load i32, ptr %5822, align 4, !tbaa !5
  %5824 = call ptr @strerror(i32 noundef %5823) #10
  %5825 = call ptr @__errno_location() #11
  %5826 = load i32, ptr %5825, align 4, !tbaa !5
  %5827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5814, ptr noundef @.str.2, i32 noundef %5815, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 402, ptr noundef %5818, ptr noundef %5821, ptr noundef %5824, i32 noundef %5826) #10
  br label %5845

5828:                                             ; preds = %5806, %5799
  %5829 = load i32, ptr %162, align 4, !tbaa !5
  %5830 = call ptr @__errno_location() #11
  store i32 %5829, ptr %5830, align 4, !tbaa !5
  %5831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5832 = load i32, ptr @test_count, align 4, !tbaa !5
  %5833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5834 = load i32, ptr %5833, align 4, !tbaa !5
  %5835 = call ptr @s2n_strerror(i32 noundef %5834, ptr noundef @.str.4)
  %5836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5837 = load i32, ptr %5836, align 4, !tbaa !5
  %5838 = call ptr @s2n_strerror_debug(i32 noundef %5837, ptr noundef @.str.4)
  %5839 = call ptr @__errno_location() #11
  %5840 = load i32, ptr %5839, align 4, !tbaa !5
  %5841 = call ptr @strerror(i32 noundef %5840) #10
  %5842 = call ptr @__errno_location() #11
  %5843 = load i32, ptr %5842, align 4, !tbaa !5
  %5844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5831, ptr noundef @.str.5, i32 noundef %5832, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 402, ptr noundef %5835, ptr noundef %5838, ptr noundef %5841, i32 noundef %5843) #10
  br label %5845

5845:                                             ; preds = %5828, %5811
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #10
  br label %5846

5846:                                             ; preds = %5845
  br label %5847

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

5848:                                             ; No predecessors!
  br label %5849

5849:                                             ; preds = %5848
  br label %5850

5850:                                             ; preds = %5849, %5785
  br label %5851

5851:                                             ; preds = %5850
  br label %5852

5852:                                             ; preds = %5851
  br label %5853

5853:                                             ; preds = %5852
  %5854 = load i32, ptr @test_count, align 4, !tbaa !5
  %5855 = add nsw i32 %5854, 1
  store i32 %5855, ptr @test_count, align 4, !tbaa !5
  %5856 = load ptr, ptr %156, align 8, !tbaa !9
  %5857 = call i32 @s2n_signature_algorithm_select(ptr noundef %5856)
  %5858 = getelementptr inbounds %struct.s2n_result, ptr %163, i32 0, i32 0
  store i32 %5857, ptr %5858, align 4
  %5859 = getelementptr inbounds %struct.s2n_result, ptr %163, i32 0, i32 0
  %5860 = load i32, ptr %5859, align 4
  %5861 = call zeroext i1 @s2n_result_is_ok(i32 %5860)
  br i1 %5861, label %5915, label %5862

5862:                                             ; preds = %5853
  br label %5863

5863:                                             ; preds = %5862
  br label %5864

5864:                                             ; preds = %5863
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #10
  %5865 = call ptr @__errno_location() #11
  %5866 = load i32, ptr %5865, align 4, !tbaa !5
  store i32 %5866, ptr %164, align 4, !tbaa !5
  %5867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5868 = call i32 @s2n_print_stacktrace(ptr noundef %5867)
  %5869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5870 = trunc i8 %5869 to i1
  br i1 %5870, label %5871, label %5893

5871:                                             ; preds = %5864
  %5872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5873 = call i32 @fileno(ptr noundef %5872) #10
  %5874 = call i32 @isatty(i32 noundef %5873) #10
  %5875 = icmp ne i32 %5874, 0
  br i1 %5875, label %5876, label %5893

5876:                                             ; preds = %5871
  %5877 = load i32, ptr %164, align 4, !tbaa !5
  %5878 = call ptr @__errno_location() #11
  store i32 %5877, ptr %5878, align 4, !tbaa !5
  %5879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5880 = load i32, ptr @test_count, align 4, !tbaa !5
  %5881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5882 = load i32, ptr %5881, align 4, !tbaa !5
  %5883 = call ptr @s2n_strerror(i32 noundef %5882, ptr noundef @.str.4)
  %5884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5885 = load i32, ptr %5884, align 4, !tbaa !5
  %5886 = call ptr @s2n_strerror_debug(i32 noundef %5885, ptr noundef @.str.4)
  %5887 = call ptr @__errno_location() #11
  %5888 = load i32, ptr %5887, align 4, !tbaa !5
  %5889 = call ptr @strerror(i32 noundef %5888) #10
  %5890 = call ptr @__errno_location() #11
  %5891 = load i32, ptr %5890, align 4, !tbaa !5
  %5892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5879, ptr noundef @.str.2, i32 noundef %5880, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 404, ptr noundef %5883, ptr noundef %5886, ptr noundef %5889, i32 noundef %5891) #10
  br label %5910

5893:                                             ; preds = %5871, %5864
  %5894 = load i32, ptr %164, align 4, !tbaa !5
  %5895 = call ptr @__errno_location() #11
  store i32 %5894, ptr %5895, align 4, !tbaa !5
  %5896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5897 = load i32, ptr @test_count, align 4, !tbaa !5
  %5898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5899 = load i32, ptr %5898, align 4, !tbaa !5
  %5900 = call ptr @s2n_strerror(i32 noundef %5899, ptr noundef @.str.4)
  %5901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5902 = load i32, ptr %5901, align 4, !tbaa !5
  %5903 = call ptr @s2n_strerror_debug(i32 noundef %5902, ptr noundef @.str.4)
  %5904 = call ptr @__errno_location() #11
  %5905 = load i32, ptr %5904, align 4, !tbaa !5
  %5906 = call ptr @strerror(i32 noundef %5905) #10
  %5907 = call ptr @__errno_location() #11
  %5908 = load i32, ptr %5907, align 4, !tbaa !5
  %5909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5896, ptr noundef @.str.5, i32 noundef %5897, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 404, ptr noundef %5900, ptr noundef %5903, ptr noundef %5906, i32 noundef %5908) #10
  br label %5910

5910:                                             ; preds = %5893, %5876
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #10
  br label %5911

5911:                                             ; preds = %5910
  br label %5912

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

5913:                                             ; No predecessors!
  br label %5914

5914:                                             ; preds = %5913
  br label %5915

5915:                                             ; preds = %5914, %5853
  br label %5916

5916:                                             ; preds = %5915
  br label %5917

5917:                                             ; preds = %5916
  br label %5918

5918:                                             ; preds = %5917
  %5919 = load i32, ptr @test_count, align 4, !tbaa !5
  %5920 = add nsw i32 %5919, 1
  store i32 %5920, ptr @test_count, align 4, !tbaa !5
  %5921 = load ptr, ptr %156, align 8, !tbaa !9
  %5922 = getelementptr inbounds %struct.s2n_connection, ptr %5921, i32 0, i32 32
  %5923 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5922, i32 0, i32 5
  %5924 = load ptr, ptr %5923, align 8, !tbaa !72
  %5925 = getelementptr inbounds [3 x ptr], ptr %154, i64 0, i64 0
  %5926 = load ptr, ptr %5925, align 16, !tbaa !9
  %5927 = icmp eq ptr %5924, %5926
  br i1 %5927, label %5981, label %5928

5928:                                             ; preds = %5918
  br label %5929

5929:                                             ; preds = %5928
  br label %5930

5930:                                             ; preds = %5929
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #10
  %5931 = call ptr @__errno_location() #11
  %5932 = load i32, ptr %5931, align 4, !tbaa !5
  store i32 %5932, ptr %165, align 4, !tbaa !5
  %5933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5934 = call i32 @s2n_print_stacktrace(ptr noundef %5933)
  %5935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5936 = trunc i8 %5935 to i1
  br i1 %5936, label %5937, label %5959

5937:                                             ; preds = %5930
  %5938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5939 = call i32 @fileno(ptr noundef %5938) #10
  %5940 = call i32 @isatty(i32 noundef %5939) #10
  %5941 = icmp ne i32 %5940, 0
  br i1 %5941, label %5942, label %5959

5942:                                             ; preds = %5937
  %5943 = load i32, ptr %165, align 4, !tbaa !5
  %5944 = call ptr @__errno_location() #11
  store i32 %5943, ptr %5944, align 4, !tbaa !5
  %5945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5946 = load i32, ptr @test_count, align 4, !tbaa !5
  %5947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5948 = load i32, ptr %5947, align 4, !tbaa !5
  %5949 = call ptr @s2n_strerror(i32 noundef %5948, ptr noundef @.str.4)
  %5950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5951 = load i32, ptr %5950, align 4, !tbaa !5
  %5952 = call ptr @s2n_strerror_debug(i32 noundef %5951, ptr noundef @.str.4)
  %5953 = call ptr @__errno_location() #11
  %5954 = load i32, ptr %5953, align 4, !tbaa !5
  %5955 = call ptr @strerror(i32 noundef %5954) #10
  %5956 = call ptr @__errno_location() #11
  %5957 = load i32, ptr %5956, align 4, !tbaa !5
  %5958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5945, ptr noundef @.str.2, i32 noundef %5946, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 405, ptr noundef %5949, ptr noundef %5952, ptr noundef %5955, i32 noundef %5957) #10
  br label %5976

5959:                                             ; preds = %5937, %5930
  %5960 = load i32, ptr %165, align 4, !tbaa !5
  %5961 = call ptr @__errno_location() #11
  store i32 %5960, ptr %5961, align 4, !tbaa !5
  %5962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5963 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5965, ptr noundef @.str.4)
  %5967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5968 = load i32, ptr %5967, align 4, !tbaa !5
  %5969 = call ptr @s2n_strerror_debug(i32 noundef %5968, ptr noundef @.str.4)
  %5970 = call ptr @__errno_location() #11
  %5971 = load i32, ptr %5970, align 4, !tbaa !5
  %5972 = call ptr @strerror(i32 noundef %5971) #10
  %5973 = call ptr @__errno_location() #11
  %5974 = load i32, ptr %5973, align 4, !tbaa !5
  %5975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5962, ptr noundef @.str.5, i32 noundef %5963, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 405, ptr noundef %5966, ptr noundef %5969, ptr noundef %5972, i32 noundef %5974) #10
  br label %5976

5976:                                             ; preds = %5959, %5942
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #10
  br label %5977

5977:                                             ; preds = %5976
  br label %5978

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

5979:                                             ; No predecessors!
  br label %5980

5980:                                             ; preds = %5979
  br label %5981

5981:                                             ; preds = %5980, %5918
  br label %5982

5982:                                             ; preds = %5981
  br label %5983

5983:                                             ; preds = %5982
  br label %5984

5984:                                             ; preds = %5983
  %5985 = load i32, ptr @test_count, align 4, !tbaa !5
  %5986 = add nsw i32 %5985, 1
  store i32 %5986, ptr @test_count, align 4, !tbaa !5
  %5987 = load ptr, ptr %156, align 8, !tbaa !9
  %5988 = getelementptr inbounds [3 x ptr], ptr %155, i64 0, i64 0
  %5989 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %5987, ptr noundef %158, ptr noundef %5988, i64 noundef 3)
  %5990 = getelementptr inbounds %struct.s2n_result, ptr %166, i32 0, i32 0
  store i32 %5989, ptr %5990, align 4
  %5991 = getelementptr inbounds %struct.s2n_result, ptr %166, i32 0, i32 0
  %5992 = load i32, ptr %5991, align 4
  %5993 = call zeroext i1 @s2n_result_is_ok(i32 %5992)
  br i1 %5993, label %6047, label %5994

5994:                                             ; preds = %5984
  br label %5995

5995:                                             ; preds = %5994
  br label %5996

5996:                                             ; preds = %5995
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #10
  %5997 = call ptr @__errno_location() #11
  %5998 = load i32, ptr %5997, align 4, !tbaa !5
  store i32 %5998, ptr %167, align 4, !tbaa !5
  %5999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6000 = call i32 @s2n_print_stacktrace(ptr noundef %5999)
  %6001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6002 = trunc i8 %6001 to i1
  br i1 %6002, label %6003, label %6025

6003:                                             ; preds = %5996
  %6004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6005 = call i32 @fileno(ptr noundef %6004) #10
  %6006 = call i32 @isatty(i32 noundef %6005) #10
  %6007 = icmp ne i32 %6006, 0
  br i1 %6007, label %6008, label %6025

6008:                                             ; preds = %6003
  %6009 = load i32, ptr %167, align 4, !tbaa !5
  %6010 = call ptr @__errno_location() #11
  store i32 %6009, ptr %6010, align 4, !tbaa !5
  %6011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6012 = load i32, ptr @test_count, align 4, !tbaa !5
  %6013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6014 = load i32, ptr %6013, align 4, !tbaa !5
  %6015 = call ptr @s2n_strerror(i32 noundef %6014, ptr noundef @.str.4)
  %6016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6017 = load i32, ptr %6016, align 4, !tbaa !5
  %6018 = call ptr @s2n_strerror_debug(i32 noundef %6017, ptr noundef @.str.4)
  %6019 = call ptr @__errno_location() #11
  %6020 = load i32, ptr %6019, align 4, !tbaa !5
  %6021 = call ptr @strerror(i32 noundef %6020) #10
  %6022 = call ptr @__errno_location() #11
  %6023 = load i32, ptr %6022, align 4, !tbaa !5
  %6024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6011, ptr noundef @.str.2, i32 noundef %6012, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 411, ptr noundef %6015, ptr noundef %6018, ptr noundef %6021, i32 noundef %6023) #10
  br label %6042

6025:                                             ; preds = %6003, %5996
  %6026 = load i32, ptr %167, align 4, !tbaa !5
  %6027 = call ptr @__errno_location() #11
  store i32 %6026, ptr %6027, align 4, !tbaa !5
  %6028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6029 = load i32, ptr @test_count, align 4, !tbaa !5
  %6030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6031 = load i32, ptr %6030, align 4, !tbaa !5
  %6032 = call ptr @s2n_strerror(i32 noundef %6031, ptr noundef @.str.4)
  %6033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6034 = load i32, ptr %6033, align 4, !tbaa !5
  %6035 = call ptr @s2n_strerror_debug(i32 noundef %6034, ptr noundef @.str.4)
  %6036 = call ptr @__errno_location() #11
  %6037 = load i32, ptr %6036, align 4, !tbaa !5
  %6038 = call ptr @strerror(i32 noundef %6037) #10
  %6039 = call ptr @__errno_location() #11
  %6040 = load i32, ptr %6039, align 4, !tbaa !5
  %6041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6028, ptr noundef @.str.5, i32 noundef %6029, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 411, ptr noundef %6032, ptr noundef %6035, ptr noundef %6038, i32 noundef %6040) #10
  br label %6042

6042:                                             ; preds = %6025, %6008
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #10
  br label %6043

6043:                                             ; preds = %6042
  br label %6044

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

6045:                                             ; No predecessors!
  br label %6046

6046:                                             ; preds = %6045
  br label %6047

6047:                                             ; preds = %6046, %5984
  br label %6048

6048:                                             ; preds = %6047
  br label %6049

6049:                                             ; preds = %6048
  br label %6050

6050:                                             ; preds = %6049
  %6051 = load i32, ptr @test_count, align 4, !tbaa !5
  %6052 = add nsw i32 %6051, 1
  store i32 %6052, ptr @test_count, align 4, !tbaa !5
  %6053 = load ptr, ptr %156, align 8, !tbaa !9
  %6054 = getelementptr inbounds %struct.s2n_connection, ptr %6053, i32 0, i32 32
  %6055 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %6054, i32 0, i32 4
  %6056 = getelementptr inbounds [3 x ptr], ptr %154, i64 0, i64 0
  %6057 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %6055, ptr noundef %6056, i64 noundef 3)
  %6058 = getelementptr inbounds %struct.s2n_result, ptr %168, i32 0, i32 0
  store i32 %6057, ptr %6058, align 4
  %6059 = getelementptr inbounds %struct.s2n_result, ptr %168, i32 0, i32 0
  %6060 = load i32, ptr %6059, align 4
  %6061 = call zeroext i1 @s2n_result_is_ok(i32 %6060)
  br i1 %6061, label %6115, label %6062

6062:                                             ; preds = %6050
  br label %6063

6063:                                             ; preds = %6062
  br label %6064

6064:                                             ; preds = %6063
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #10
  %6065 = call ptr @__errno_location() #11
  %6066 = load i32, ptr %6065, align 4, !tbaa !5
  store i32 %6066, ptr %169, align 4, !tbaa !5
  %6067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6068 = call i32 @s2n_print_stacktrace(ptr noundef %6067)
  %6069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6070 = trunc i8 %6069 to i1
  br i1 %6070, label %6071, label %6093

6071:                                             ; preds = %6064
  %6072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6073 = call i32 @fileno(ptr noundef %6072) #10
  %6074 = call i32 @isatty(i32 noundef %6073) #10
  %6075 = icmp ne i32 %6074, 0
  br i1 %6075, label %6076, label %6093

6076:                                             ; preds = %6071
  %6077 = load i32, ptr %169, align 4, !tbaa !5
  %6078 = call ptr @__errno_location() #11
  store i32 %6077, ptr %6078, align 4, !tbaa !5
  %6079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6080 = load i32, ptr @test_count, align 4, !tbaa !5
  %6081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6082 = load i32, ptr %6081, align 4, !tbaa !5
  %6083 = call ptr @s2n_strerror(i32 noundef %6082, ptr noundef @.str.4)
  %6084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6085 = load i32, ptr %6084, align 4, !tbaa !5
  %6086 = call ptr @s2n_strerror_debug(i32 noundef %6085, ptr noundef @.str.4)
  %6087 = call ptr @__errno_location() #11
  %6088 = load i32, ptr %6087, align 4, !tbaa !5
  %6089 = call ptr @strerror(i32 noundef %6088) #10
  %6090 = call ptr @__errno_location() #11
  %6091 = load i32, ptr %6090, align 4, !tbaa !5
  %6092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6079, ptr noundef @.str.2, i32 noundef %6080, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 413, ptr noundef %6083, ptr noundef %6086, ptr noundef %6089, i32 noundef %6091) #10
  br label %6110

6093:                                             ; preds = %6071, %6064
  %6094 = load i32, ptr %169, align 4, !tbaa !5
  %6095 = call ptr @__errno_location() #11
  store i32 %6094, ptr %6095, align 4, !tbaa !5
  %6096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6097 = load i32, ptr @test_count, align 4, !tbaa !5
  %6098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6099 = load i32, ptr %6098, align 4, !tbaa !5
  %6100 = call ptr @s2n_strerror(i32 noundef %6099, ptr noundef @.str.4)
  %6101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6102 = load i32, ptr %6101, align 4, !tbaa !5
  %6103 = call ptr @s2n_strerror_debug(i32 noundef %6102, ptr noundef @.str.4)
  %6104 = call ptr @__errno_location() #11
  %6105 = load i32, ptr %6104, align 4, !tbaa !5
  %6106 = call ptr @strerror(i32 noundef %6105) #10
  %6107 = call ptr @__errno_location() #11
  %6108 = load i32, ptr %6107, align 4, !tbaa !5
  %6109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6096, ptr noundef @.str.5, i32 noundef %6097, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 413, ptr noundef %6100, ptr noundef %6103, ptr noundef %6106, i32 noundef %6108) #10
  br label %6110

6110:                                             ; preds = %6093, %6076
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #10
  br label %6111

6111:                                             ; preds = %6110
  br label %6112

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

6113:                                             ; No predecessors!
  br label %6114

6114:                                             ; preds = %6113
  br label %6115

6115:                                             ; preds = %6114, %6050
  br label %6116

6116:                                             ; preds = %6115
  br label %6117

6117:                                             ; preds = %6116
  br label %6118

6118:                                             ; preds = %6117
  %6119 = load i32, ptr @test_count, align 4, !tbaa !5
  %6120 = add nsw i32 %6119, 1
  store i32 %6120, ptr @test_count, align 4, !tbaa !5
  %6121 = load ptr, ptr %156, align 8, !tbaa !9
  %6122 = call i32 @s2n_signature_algorithm_select(ptr noundef %6121)
  %6123 = getelementptr inbounds %struct.s2n_result, ptr %170, i32 0, i32 0
  store i32 %6122, ptr %6123, align 4
  %6124 = getelementptr inbounds %struct.s2n_result, ptr %170, i32 0, i32 0
  %6125 = load i32, ptr %6124, align 4
  %6126 = call zeroext i1 @s2n_result_is_ok(i32 %6125)
  br i1 %6126, label %6180, label %6127

6127:                                             ; preds = %6118
  br label %6128

6128:                                             ; preds = %6127
  br label %6129

6129:                                             ; preds = %6128
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #10
  %6130 = call ptr @__errno_location() #11
  %6131 = load i32, ptr %6130, align 4, !tbaa !5
  store i32 %6131, ptr %171, align 4, !tbaa !5
  %6132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6133 = call i32 @s2n_print_stacktrace(ptr noundef %6132)
  %6134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6135 = trunc i8 %6134 to i1
  br i1 %6135, label %6136, label %6158

6136:                                             ; preds = %6129
  %6137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6138 = call i32 @fileno(ptr noundef %6137) #10
  %6139 = call i32 @isatty(i32 noundef %6138) #10
  %6140 = icmp ne i32 %6139, 0
  br i1 %6140, label %6141, label %6158

6141:                                             ; preds = %6136
  %6142 = load i32, ptr %171, align 4, !tbaa !5
  %6143 = call ptr @__errno_location() #11
  store i32 %6142, ptr %6143, align 4, !tbaa !5
  %6144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6145 = load i32, ptr @test_count, align 4, !tbaa !5
  %6146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6147 = load i32, ptr %6146, align 4, !tbaa !5
  %6148 = call ptr @s2n_strerror(i32 noundef %6147, ptr noundef @.str.4)
  %6149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6150 = load i32, ptr %6149, align 4, !tbaa !5
  %6151 = call ptr @s2n_strerror_debug(i32 noundef %6150, ptr noundef @.str.4)
  %6152 = call ptr @__errno_location() #11
  %6153 = load i32, ptr %6152, align 4, !tbaa !5
  %6154 = call ptr @strerror(i32 noundef %6153) #10
  %6155 = call ptr @__errno_location() #11
  %6156 = load i32, ptr %6155, align 4, !tbaa !5
  %6157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6144, ptr noundef @.str.2, i32 noundef %6145, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 415, ptr noundef %6148, ptr noundef %6151, ptr noundef %6154, i32 noundef %6156) #10
  br label %6175

6158:                                             ; preds = %6136, %6129
  %6159 = load i32, ptr %171, align 4, !tbaa !5
  %6160 = call ptr @__errno_location() #11
  store i32 %6159, ptr %6160, align 4, !tbaa !5
  %6161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6162 = load i32, ptr @test_count, align 4, !tbaa !5
  %6163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6164 = load i32, ptr %6163, align 4, !tbaa !5
  %6165 = call ptr @s2n_strerror(i32 noundef %6164, ptr noundef @.str.4)
  %6166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6167 = load i32, ptr %6166, align 4, !tbaa !5
  %6168 = call ptr @s2n_strerror_debug(i32 noundef %6167, ptr noundef @.str.4)
  %6169 = call ptr @__errno_location() #11
  %6170 = load i32, ptr %6169, align 4, !tbaa !5
  %6171 = call ptr @strerror(i32 noundef %6170) #10
  %6172 = call ptr @__errno_location() #11
  %6173 = load i32, ptr %6172, align 4, !tbaa !5
  %6174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6161, ptr noundef @.str.5, i32 noundef %6162, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 415, ptr noundef %6165, ptr noundef %6168, ptr noundef %6171, i32 noundef %6173) #10
  br label %6175

6175:                                             ; preds = %6158, %6141
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #10
  br label %6176

6176:                                             ; preds = %6175
  br label %6177

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

6178:                                             ; No predecessors!
  br label %6179

6179:                                             ; preds = %6178
  br label %6180

6180:                                             ; preds = %6179, %6118
  br label %6181

6181:                                             ; preds = %6180
  br label %6182

6182:                                             ; preds = %6181
  br label %6183

6183:                                             ; preds = %6182
  %6184 = load i32, ptr @test_count, align 4, !tbaa !5
  %6185 = add nsw i32 %6184, 1
  store i32 %6185, ptr @test_count, align 4, !tbaa !5
  %6186 = load ptr, ptr %156, align 8, !tbaa !9
  %6187 = getelementptr inbounds %struct.s2n_connection, ptr %6186, i32 0, i32 32
  %6188 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %6187, i32 0, i32 5
  %6189 = load ptr, ptr %6188, align 8, !tbaa !72
  %6190 = getelementptr inbounds [3 x ptr], ptr %155, i64 0, i64 0
  %6191 = load ptr, ptr %6190, align 16, !tbaa !9
  %6192 = icmp eq ptr %6189, %6191
  br i1 %6192, label %6246, label %6193

6193:                                             ; preds = %6183
  br label %6194

6194:                                             ; preds = %6193
  br label %6195

6195:                                             ; preds = %6194
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #10
  %6196 = call ptr @__errno_location() #11
  %6197 = load i32, ptr %6196, align 4, !tbaa !5
  store i32 %6197, ptr %172, 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) #10
  %6205 = call i32 @isatty(i32 noundef %6204) #10
  %6206 = icmp ne i32 %6205, 0
  br i1 %6206, label %6207, label %6224

6207:                                             ; preds = %6202
  %6208 = load i32, ptr %172, align 4, !tbaa !5
  %6209 = call ptr @__errno_location() #11
  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() #11
  %6219 = load i32, ptr %6218, align 4, !tbaa !5
  %6220 = call ptr @strerror(i32 noundef %6219) #10
  %6221 = call ptr @__errno_location() #11
  %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.47, ptr noundef @.str.1, i32 noundef 416, ptr noundef %6214, ptr noundef %6217, ptr noundef %6220, i32 noundef %6222) #10
  br label %6241

6224:                                             ; preds = %6202, %6195
  %6225 = load i32, ptr %172, align 4, !tbaa !5
  %6226 = call ptr @__errno_location() #11
  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() #11
  %6236 = load i32, ptr %6235, align 4, !tbaa !5
  %6237 = call ptr @strerror(i32 noundef %6236) #10
  %6238 = call ptr @__errno_location() #11
  %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.47, ptr noundef @.str.1, i32 noundef 416, ptr noundef %6231, ptr noundef %6234, ptr noundef %6237, i32 noundef %6239) #10
  br label %6241

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

6242:                                             ; preds = %6241
  br label %6243

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

6244:                                             ; No predecessors!
  br label %6245

6245:                                             ; preds = %6244
  br label %6246

6246:                                             ; preds = %6245, %6183
  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 %156, align 8, !tbaa !9
  %6253 = getelementptr inbounds [3 x ptr], ptr %154, i64 0, i64 0
  %6254 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %6252, ptr noundef %158, ptr noundef %6253, i64 noundef 3)
  %6255 = getelementptr inbounds %struct.s2n_result, ptr %173, i32 0, i32 0
  store i32 %6254, ptr %6255, align 4
  %6256 = getelementptr inbounds %struct.s2n_result, ptr %173, i32 0, i32 0
  %6257 = load i32, ptr %6256, align 4
  %6258 = call zeroext i1 @s2n_result_is_ok(i32 %6257)
  br i1 %6258, label %6312, label %6259

6259:                                             ; preds = %6249
  br label %6260

6260:                                             ; preds = %6259
  br label %6261

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

6268:                                             ; preds = %6261
  %6269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6270 = call i32 @fileno(ptr noundef %6269) #10
  %6271 = call i32 @isatty(i32 noundef %6270) #10
  %6272 = icmp ne i32 %6271, 0
  br i1 %6272, label %6273, label %6290

6273:                                             ; preds = %6268
  %6274 = load i32, ptr %174, align 4, !tbaa !5
  %6275 = call ptr @__errno_location() #11
  store i32 %6274, ptr %6275, align 4, !tbaa !5
  %6276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6277 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6279, ptr noundef @.str.4)
  %6281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6282 = load i32, ptr %6281, align 4, !tbaa !5
  %6283 = call ptr @s2n_strerror_debug(i32 noundef %6282, ptr noundef @.str.4)
  %6284 = call ptr @__errno_location() #11
  %6285 = load i32, ptr %6284, align 4, !tbaa !5
  %6286 = call ptr @strerror(i32 noundef %6285) #10
  %6287 = call ptr @__errno_location() #11
  %6288 = load i32, ptr %6287, align 4, !tbaa !5
  %6289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6276, ptr noundef @.str.2, i32 noundef %6277, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 424, ptr noundef %6280, ptr noundef %6283, ptr noundef %6286, i32 noundef %6288) #10
  br label %6307

6290:                                             ; preds = %6268, %6261
  %6291 = load i32, ptr %174, align 4, !tbaa !5
  %6292 = call ptr @__errno_location() #11
  store i32 %6291, ptr %6292, align 4, !tbaa !5
  %6293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6294 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6296, ptr noundef @.str.4)
  %6298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6299 = load i32, ptr %6298, align 4, !tbaa !5
  %6300 = call ptr @s2n_strerror_debug(i32 noundef %6299, ptr noundef @.str.4)
  %6301 = call ptr @__errno_location() #11
  %6302 = load i32, ptr %6301, align 4, !tbaa !5
  %6303 = call ptr @strerror(i32 noundef %6302) #10
  %6304 = call ptr @__errno_location() #11
  %6305 = load i32, ptr %6304, align 4, !tbaa !5
  %6306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6293, ptr noundef @.str.5, i32 noundef %6294, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 424, ptr noundef %6297, ptr noundef %6300, ptr noundef %6303, i32 noundef %6305) #10
  br label %6307

6307:                                             ; preds = %6290, %6273
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #10
  br label %6308

6308:                                             ; preds = %6307
  br label %6309

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

6310:                                             ; No predecessors!
  br label %6311

6311:                                             ; preds = %6310
  br label %6312

6312:                                             ; preds = %6311, %6249
  br label %6313

6313:                                             ; preds = %6312
  br label %6314

6314:                                             ; preds = %6313
  br label %6315

6315:                                             ; preds = %6314
  %6316 = load i32, ptr @test_count, align 4, !tbaa !5
  %6317 = add nsw i32 %6316, 1
  store i32 %6317, ptr @test_count, align 4, !tbaa !5
  %6318 = load ptr, ptr %156, align 8, !tbaa !9
  %6319 = getelementptr inbounds %struct.s2n_connection, ptr %6318, i32 0, i32 32
  %6320 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %6319, i32 0, i32 4
  %6321 = getelementptr inbounds [3 x ptr], ptr %154, i64 0, i64 0
  %6322 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %6320, ptr noundef %6321, i64 noundef 3)
  %6323 = getelementptr inbounds %struct.s2n_result, ptr %175, i32 0, i32 0
  store i32 %6322, ptr %6323, align 4
  %6324 = getelementptr inbounds %struct.s2n_result, ptr %175, i32 0, i32 0
  %6325 = load i32, ptr %6324, align 4
  %6326 = call zeroext i1 @s2n_result_is_ok(i32 %6325)
  br i1 %6326, label %6380, label %6327

6327:                                             ; preds = %6315
  br label %6328

6328:                                             ; preds = %6327
  br label %6329

6329:                                             ; preds = %6328
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #10
  %6330 = call ptr @__errno_location() #11
  %6331 = load i32, ptr %6330, align 4, !tbaa !5
  store i32 %6331, ptr %176, align 4, !tbaa !5
  %6332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6333 = call i32 @s2n_print_stacktrace(ptr noundef %6332)
  %6334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6335 = trunc i8 %6334 to i1
  br i1 %6335, label %6336, label %6358

6336:                                             ; preds = %6329
  %6337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6338 = call i32 @fileno(ptr noundef %6337) #10
  %6339 = call i32 @isatty(i32 noundef %6338) #10
  %6340 = icmp ne i32 %6339, 0
  br i1 %6340, label %6341, label %6358

6341:                                             ; preds = %6336
  %6342 = load i32, ptr %176, align 4, !tbaa !5
  %6343 = call ptr @__errno_location() #11
  store i32 %6342, ptr %6343, align 4, !tbaa !5
  %6344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6345 = load i32, ptr @test_count, align 4, !tbaa !5
  %6346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6347 = load i32, ptr %6346, align 4, !tbaa !5
  %6348 = call ptr @s2n_strerror(i32 noundef %6347, ptr noundef @.str.4)
  %6349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6350 = load i32, ptr %6349, align 4, !tbaa !5
  %6351 = call ptr @s2n_strerror_debug(i32 noundef %6350, ptr noundef @.str.4)
  %6352 = call ptr @__errno_location() #11
  %6353 = load i32, ptr %6352, align 4, !tbaa !5
  %6354 = call ptr @strerror(i32 noundef %6353) #10
  %6355 = call ptr @__errno_location() #11
  %6356 = load i32, ptr %6355, align 4, !tbaa !5
  %6357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6344, ptr noundef @.str.2, i32 noundef %6345, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 426, ptr noundef %6348, ptr noundef %6351, ptr noundef %6354, i32 noundef %6356) #10
  br label %6375

6358:                                             ; preds = %6336, %6329
  %6359 = load i32, ptr %176, align 4, !tbaa !5
  %6360 = call ptr @__errno_location() #11
  store i32 %6359, ptr %6360, align 4, !tbaa !5
  %6361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6362 = load i32, ptr @test_count, align 4, !tbaa !5
  %6363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6364 = load i32, ptr %6363, align 4, !tbaa !5
  %6365 = call ptr @s2n_strerror(i32 noundef %6364, ptr noundef @.str.4)
  %6366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6367 = load i32, ptr %6366, align 4, !tbaa !5
  %6368 = call ptr @s2n_strerror_debug(i32 noundef %6367, ptr noundef @.str.4)
  %6369 = call ptr @__errno_location() #11
  %6370 = load i32, ptr %6369, align 4, !tbaa !5
  %6371 = call ptr @strerror(i32 noundef %6370) #10
  %6372 = call ptr @__errno_location() #11
  %6373 = load i32, ptr %6372, align 4, !tbaa !5
  %6374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6361, ptr noundef @.str.5, i32 noundef %6362, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 426, ptr noundef %6365, ptr noundef %6368, ptr noundef %6371, i32 noundef %6373) #10
  br label %6375

6375:                                             ; preds = %6358, %6341
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #10
  br label %6376

6376:                                             ; preds = %6375
  br label %6377

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

6378:                                             ; No predecessors!
  br label %6379

6379:                                             ; preds = %6378
  br label %6380

6380:                                             ; preds = %6379, %6315
  br label %6381

6381:                                             ; preds = %6380
  br label %6382

6382:                                             ; preds = %6381
  br label %6383

6383:                                             ; preds = %6382
  %6384 = load i32, ptr @test_count, align 4, !tbaa !5
  %6385 = add nsw i32 %6384, 1
  store i32 %6385, ptr @test_count, align 4, !tbaa !5
  %6386 = load ptr, ptr %156, align 8, !tbaa !9
  %6387 = call i32 @s2n_signature_algorithm_select(ptr noundef %6386)
  %6388 = getelementptr inbounds %struct.s2n_result, ptr %177, i32 0, i32 0
  store i32 %6387, ptr %6388, align 4
  %6389 = getelementptr inbounds %struct.s2n_result, ptr %177, i32 0, i32 0
  %6390 = load i32, ptr %6389, align 4
  %6391 = call zeroext i1 @s2n_result_is_ok(i32 %6390)
  br i1 %6391, label %6445, label %6392

6392:                                             ; preds = %6383
  br label %6393

6393:                                             ; preds = %6392
  br label %6394

6394:                                             ; preds = %6393
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #10
  %6395 = call ptr @__errno_location() #11
  %6396 = load i32, ptr %6395, align 4, !tbaa !5
  store i32 %6396, ptr %178, align 4, !tbaa !5
  %6397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6398 = call i32 @s2n_print_stacktrace(ptr noundef %6397)
  %6399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6400 = trunc i8 %6399 to i1
  br i1 %6400, label %6401, label %6423

6401:                                             ; preds = %6394
  %6402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6403 = call i32 @fileno(ptr noundef %6402) #10
  %6404 = call i32 @isatty(i32 noundef %6403) #10
  %6405 = icmp ne i32 %6404, 0
  br i1 %6405, label %6406, label %6423

6406:                                             ; preds = %6401
  %6407 = load i32, ptr %178, align 4, !tbaa !5
  %6408 = call ptr @__errno_location() #11
  store i32 %6407, ptr %6408, align 4, !tbaa !5
  %6409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6410 = load i32, ptr @test_count, align 4, !tbaa !5
  %6411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6412 = load i32, ptr %6411, align 4, !tbaa !5
  %6413 = call ptr @s2n_strerror(i32 noundef %6412, ptr noundef @.str.4)
  %6414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6415 = load i32, ptr %6414, align 4, !tbaa !5
  %6416 = call ptr @s2n_strerror_debug(i32 noundef %6415, ptr noundef @.str.4)
  %6417 = call ptr @__errno_location() #11
  %6418 = load i32, ptr %6417, align 4, !tbaa !5
  %6419 = call ptr @strerror(i32 noundef %6418) #10
  %6420 = call ptr @__errno_location() #11
  %6421 = load i32, ptr %6420, align 4, !tbaa !5
  %6422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6409, ptr noundef @.str.2, i32 noundef %6410, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 428, ptr noundef %6413, ptr noundef %6416, ptr noundef %6419, i32 noundef %6421) #10
  br label %6440

6423:                                             ; preds = %6401, %6394
  %6424 = load i32, ptr %178, align 4, !tbaa !5
  %6425 = call ptr @__errno_location() #11
  store i32 %6424, ptr %6425, align 4, !tbaa !5
  %6426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6427 = load i32, ptr @test_count, align 4, !tbaa !5
  %6428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6429 = load i32, ptr %6428, align 4, !tbaa !5
  %6430 = call ptr @s2n_strerror(i32 noundef %6429, ptr noundef @.str.4)
  %6431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6432 = load i32, ptr %6431, align 4, !tbaa !5
  %6433 = call ptr @s2n_strerror_debug(i32 noundef %6432, ptr noundef @.str.4)
  %6434 = call ptr @__errno_location() #11
  %6435 = load i32, ptr %6434, align 4, !tbaa !5
  %6436 = call ptr @strerror(i32 noundef %6435) #10
  %6437 = call ptr @__errno_location() #11
  %6438 = load i32, ptr %6437, align 4, !tbaa !5
  %6439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6426, ptr noundef @.str.5, i32 noundef %6427, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 428, ptr noundef %6430, ptr noundef %6433, ptr noundef %6436, i32 noundef %6438) #10
  br label %6440

6440:                                             ; preds = %6423, %6406
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #10
  br label %6441

6441:                                             ; preds = %6440
  br label %6442

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

6443:                                             ; No predecessors!
  br label %6444

6444:                                             ; preds = %6443
  br label %6445

6445:                                             ; preds = %6444, %6383
  br label %6446

6446:                                             ; preds = %6445
  br label %6447

6447:                                             ; preds = %6446
  br label %6448

6448:                                             ; preds = %6447
  %6449 = load i32, ptr @test_count, align 4, !tbaa !5
  %6450 = add nsw i32 %6449, 1
  store i32 %6450, ptr @test_count, align 4, !tbaa !5
  %6451 = load ptr, ptr %156, align 8, !tbaa !9
  %6452 = getelementptr inbounds %struct.s2n_connection, ptr %6451, i32 0, i32 32
  %6453 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %6452, i32 0, i32 5
  %6454 = load ptr, ptr %6453, align 8, !tbaa !72
  %6455 = getelementptr inbounds [3 x ptr], ptr %154, i64 0, i64 0
  %6456 = load ptr, ptr %6455, align 16, !tbaa !9
  %6457 = icmp eq ptr %6454, %6456
  br i1 %6457, label %6511, label %6458

6458:                                             ; preds = %6448
  br label %6459

6459:                                             ; preds = %6458
  br label %6460

6460:                                             ; preds = %6459
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #10
  %6461 = call ptr @__errno_location() #11
  %6462 = load i32, ptr %6461, align 4, !tbaa !5
  store i32 %6462, ptr %179, align 4, !tbaa !5
  %6463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6464 = call i32 @s2n_print_stacktrace(ptr noundef %6463)
  %6465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6466 = trunc i8 %6465 to i1
  br i1 %6466, label %6467, label %6489

6467:                                             ; preds = %6460
  %6468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6469 = call i32 @fileno(ptr noundef %6468) #10
  %6470 = call i32 @isatty(i32 noundef %6469) #10
  %6471 = icmp ne i32 %6470, 0
  br i1 %6471, label %6472, label %6489

6472:                                             ; preds = %6467
  %6473 = load i32, ptr %179, align 4, !tbaa !5
  %6474 = call ptr @__errno_location() #11
  store i32 %6473, ptr %6474, align 4, !tbaa !5
  %6475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6476 = load i32, ptr @test_count, align 4, !tbaa !5
  %6477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6478 = load i32, ptr %6477, align 4, !tbaa !5
  %6479 = call ptr @s2n_strerror(i32 noundef %6478, ptr noundef @.str.4)
  %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_debug(i32 noundef %6481, ptr noundef @.str.4)
  %6483 = call ptr @__errno_location() #11
  %6484 = load i32, ptr %6483, align 4, !tbaa !5
  %6485 = call ptr @strerror(i32 noundef %6484) #10
  %6486 = call ptr @__errno_location() #11
  %6487 = load i32, ptr %6486, align 4, !tbaa !5
  %6488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6475, ptr noundef @.str.2, i32 noundef %6476, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 429, ptr noundef %6479, ptr noundef %6482, ptr noundef %6485, i32 noundef %6487) #10
  br label %6506

6489:                                             ; preds = %6467, %6460
  %6490 = load i32, ptr %179, align 4, !tbaa !5
  %6491 = call ptr @__errno_location() #11
  store i32 %6490, ptr %6491, align 4, !tbaa !5
  %6492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6493 = load i32, ptr @test_count, align 4, !tbaa !5
  %6494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6495 = load i32, ptr %6494, align 4, !tbaa !5
  %6496 = call ptr @s2n_strerror(i32 noundef %6495, ptr noundef @.str.4)
  %6497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6498 = load i32, ptr %6497, align 4, !tbaa !5
  %6499 = call ptr @s2n_strerror_debug(i32 noundef %6498, ptr noundef @.str.4)
  %6500 = call ptr @__errno_location() #11
  %6501 = load i32, ptr %6500, align 4, !tbaa !5
  %6502 = call ptr @strerror(i32 noundef %6501) #10
  %6503 = call ptr @__errno_location() #11
  %6504 = load i32, ptr %6503, align 4, !tbaa !5
  %6505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6492, ptr noundef @.str.5, i32 noundef %6493, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 429, ptr noundef %6496, ptr noundef %6499, ptr noundef %6502, i32 noundef %6504) #10
  br label %6506

6506:                                             ; preds = %6489, %6472
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #10
  br label %6507

6507:                                             ; preds = %6506
  br label %6508

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

6509:                                             ; No predecessors!
  br label %6510

6510:                                             ; preds = %6509
  br label %6511

6511:                                             ; preds = %6510, %6448
  br label %6512

6512:                                             ; preds = %6511
  br label %6513

6513:                                             ; preds = %6512
  call void @llvm.lifetime.end.p0(i64 80, ptr %158) #10
  %6514 = call i32 @s2n_connection_ptr_free(ptr noundef %156)
  %6515 = getelementptr inbounds %struct.s2n_result, ptr %180, i32 0, i32 0
  store i32 %6514, ptr %6515, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %155) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %154) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #10
  store ptr @s2n_ecdsa_sha224, ptr %181, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #10
  %6516 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6516, ptr %182, align 8, !tbaa !9
  br label %6517

6517:                                             ; preds = %6513
  %6518 = load i32, ptr @test_count, align 4, !tbaa !5
  %6519 = add nsw i32 %6518, 1
  store i32 %6519, ptr @test_count, align 4, !tbaa !5
  %6520 = load ptr, ptr %182, align 8, !tbaa !9
  %6521 = load ptr, ptr %75, align 8, !tbaa !9
  %6522 = call i32 @s2n_connection_set_config(ptr noundef %6520, ptr noundef %6521)
  %6523 = icmp eq i32 %6522, -1
  br i1 %6523, label %6524, label %6577

6524:                                             ; preds = %6517
  br label %6525

6525:                                             ; preds = %6524
  br label %6526

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

6533:                                             ; preds = %6526
  %6534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6535 = call i32 @fileno(ptr noundef %6534) #10
  %6536 = call i32 @isatty(i32 noundef %6535) #10
  %6537 = icmp ne i32 %6536, 0
  br i1 %6537, label %6538, label %6555

6538:                                             ; preds = %6533
  %6539 = load i32, ptr %183, align 4, !tbaa !5
  %6540 = call ptr @__errno_location() #11
  store i32 %6539, ptr %6540, align 4, !tbaa !5
  %6541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6542 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6544, ptr noundef @.str.4)
  %6546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6547 = load i32, ptr %6546, align 4, !tbaa !5
  %6548 = call ptr @s2n_strerror_debug(i32 noundef %6547, ptr noundef @.str.4)
  %6549 = call ptr @__errno_location() #11
  %6550 = load i32, ptr %6549, align 4, !tbaa !5
  %6551 = call ptr @strerror(i32 noundef %6550) #10
  %6552 = call ptr @__errno_location() #11
  %6553 = load i32, ptr %6552, align 4, !tbaa !5
  %6554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6541, ptr noundef @.str.2, i32 noundef %6542, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 442, ptr noundef %6545, ptr noundef %6548, ptr noundef %6551, i32 noundef %6553) #10
  br label %6572

6555:                                             ; preds = %6533, %6526
  %6556 = load i32, ptr %183, align 4, !tbaa !5
  %6557 = call ptr @__errno_location() #11
  store i32 %6556, ptr %6557, align 4, !tbaa !5
  %6558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6559 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6561, ptr noundef @.str.4)
  %6563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6564 = load i32, ptr %6563, align 4, !tbaa !5
  %6565 = call ptr @s2n_strerror_debug(i32 noundef %6564, ptr noundef @.str.4)
  %6566 = call ptr @__errno_location() #11
  %6567 = load i32, ptr %6566, align 4, !tbaa !5
  %6568 = call ptr @strerror(i32 noundef %6567) #10
  %6569 = call ptr @__errno_location() #11
  %6570 = load i32, ptr %6569, align 4, !tbaa !5
  %6571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6558, ptr noundef @.str.5, i32 noundef %6559, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 442, ptr noundef %6562, ptr noundef %6565, ptr noundef %6568, i32 noundef %6570) #10
  br label %6572

6572:                                             ; preds = %6555, %6538
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #10
  br label %6573

6573:                                             ; preds = %6572
  br label %6574

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

6575:                                             ; No predecessors!
  br label %6576

6576:                                             ; preds = %6575
  br label %6577

6577:                                             ; preds = %6576, %6517
  br label %6578

6578:                                             ; preds = %6577
  br label %6579

6579:                                             ; preds = %6578
  call void @llvm.lifetime.start.p0(i64 80, ptr %184) #10
  call void @llvm.memset.p0.i64(ptr align 8 %184, i8 0, i64 80, i1 false)
  br label %6580

6580:                                             ; preds = %6579
  %6581 = load i32, ptr @test_count, align 4, !tbaa !5
  %6582 = add nsw i32 %6581, 1
  store i32 %6582, ptr @test_count, align 4, !tbaa !5
  %6583 = load ptr, ptr %182, align 8, !tbaa !9
  %6584 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %6583, ptr noundef %184, ptr noundef %181, i64 noundef 1)
  %6585 = getelementptr inbounds %struct.s2n_result, ptr %185, i32 0, i32 0
  store i32 %6584, ptr %6585, align 4
  %6586 = getelementptr inbounds %struct.s2n_result, ptr %185, i32 0, i32 0
  %6587 = load i32, ptr %6586, align 4
  %6588 = call zeroext i1 @s2n_result_is_ok(i32 %6587)
  br i1 %6588, label %6642, label %6589

6589:                                             ; preds = %6580
  br label %6590

6590:                                             ; preds = %6589
  br label %6591

6591:                                             ; preds = %6590
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #10
  %6592 = call ptr @__errno_location() #11
  %6593 = load i32, ptr %6592, align 4, !tbaa !5
  store i32 %6593, ptr %186, align 4, !tbaa !5
  %6594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6595 = call i32 @s2n_print_stacktrace(ptr noundef %6594)
  %6596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6597 = trunc i8 %6596 to i1
  br i1 %6597, label %6598, label %6620

6598:                                             ; preds = %6591
  %6599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6600 = call i32 @fileno(ptr noundef %6599) #10
  %6601 = call i32 @isatty(i32 noundef %6600) #10
  %6602 = icmp ne i32 %6601, 0
  br i1 %6602, label %6603, label %6620

6603:                                             ; preds = %6598
  %6604 = load i32, ptr %186, align 4, !tbaa !5
  %6605 = call ptr @__errno_location() #11
  store i32 %6604, ptr %6605, align 4, !tbaa !5
  %6606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6607 = load i32, ptr @test_count, align 4, !tbaa !5
  %6608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6609 = load i32, ptr %6608, align 4, !tbaa !5
  %6610 = call ptr @s2n_strerror(i32 noundef %6609, ptr noundef @.str.4)
  %6611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6612 = load i32, ptr %6611, align 4, !tbaa !5
  %6613 = call ptr @s2n_strerror_debug(i32 noundef %6612, ptr noundef @.str.4)
  %6614 = call ptr @__errno_location() #11
  %6615 = load i32, ptr %6614, align 4, !tbaa !5
  %6616 = call ptr @strerror(i32 noundef %6615) #10
  %6617 = call ptr @__errno_location() #11
  %6618 = load i32, ptr %6617, align 4, !tbaa !5
  %6619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6606, ptr noundef @.str.2, i32 noundef %6607, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 446, ptr noundef %6610, ptr noundef %6613, ptr noundef %6616, i32 noundef %6618) #10
  br label %6637

6620:                                             ; preds = %6598, %6591
  %6621 = load i32, ptr %186, align 4, !tbaa !5
  %6622 = call ptr @__errno_location() #11
  store i32 %6621, ptr %6622, align 4, !tbaa !5
  %6623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6624 = load i32, ptr @test_count, align 4, !tbaa !5
  %6625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6626 = load i32, ptr %6625, align 4, !tbaa !5
  %6627 = call ptr @s2n_strerror(i32 noundef %6626, ptr noundef @.str.4)
  %6628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6629 = load i32, ptr %6628, align 4, !tbaa !5
  %6630 = call ptr @s2n_strerror_debug(i32 noundef %6629, ptr noundef @.str.4)
  %6631 = call ptr @__errno_location() #11
  %6632 = load i32, ptr %6631, align 4, !tbaa !5
  %6633 = call ptr @strerror(i32 noundef %6632) #10
  %6634 = call ptr @__errno_location() #11
  %6635 = load i32, ptr %6634, align 4, !tbaa !5
  %6636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6623, ptr noundef @.str.5, i32 noundef %6624, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 446, ptr noundef %6627, ptr noundef %6630, ptr noundef %6633, i32 noundef %6635) #10
  br label %6637

6637:                                             ; preds = %6620, %6603
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #10
  br label %6638

6638:                                             ; preds = %6637
  br label %6639

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

6640:                                             ; No predecessors!
  br label %6641

6641:                                             ; preds = %6640
  br label %6642

6642:                                             ; preds = %6641, %6580
  br label %6643

6643:                                             ; preds = %6642
  br label %6644

6644:                                             ; preds = %6643
  br label %6645

6645:                                             ; preds = %6644
  %6646 = load i32, ptr @test_count, align 4, !tbaa !5
  %6647 = add nsw i32 %6646, 1
  store i32 %6647, ptr @test_count, align 4, !tbaa !5
  %6648 = load ptr, ptr %182, align 8, !tbaa !9
  %6649 = getelementptr inbounds %struct.s2n_connection, ptr %6648, i32 0, i32 32
  %6650 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %6649, i32 0, i32 4
  %6651 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %6650, ptr noundef %181, i64 noundef 1)
  %6652 = getelementptr inbounds %struct.s2n_result, ptr %187, i32 0, i32 0
  store i32 %6651, ptr %6652, align 4
  %6653 = getelementptr inbounds %struct.s2n_result, ptr %187, i32 0, i32 0
  %6654 = load i32, ptr %6653, align 4
  %6655 = call zeroext i1 @s2n_result_is_ok(i32 %6654)
  br i1 %6655, label %6709, label %6656

6656:                                             ; preds = %6645
  br label %6657

6657:                                             ; preds = %6656
  br label %6658

6658:                                             ; preds = %6657
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #10
  %6659 = call ptr @__errno_location() #11
  %6660 = load i32, ptr %6659, align 4, !tbaa !5
  store i32 %6660, ptr %188, align 4, !tbaa !5
  %6661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6662 = call i32 @s2n_print_stacktrace(ptr noundef %6661)
  %6663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6664 = trunc i8 %6663 to i1
  br i1 %6664, label %6665, label %6687

6665:                                             ; preds = %6658
  %6666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6667 = call i32 @fileno(ptr noundef %6666) #10
  %6668 = call i32 @isatty(i32 noundef %6667) #10
  %6669 = icmp ne i32 %6668, 0
  br i1 %6669, label %6670, label %6687

6670:                                             ; preds = %6665
  %6671 = load i32, ptr %188, align 4, !tbaa !5
  %6672 = call ptr @__errno_location() #11
  store i32 %6671, ptr %6672, align 4, !tbaa !5
  %6673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6674 = load i32, ptr @test_count, align 4, !tbaa !5
  %6675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6676 = load i32, ptr %6675, align 4, !tbaa !5
  %6677 = call ptr @s2n_strerror(i32 noundef %6676, ptr noundef @.str.4)
  %6678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6679 = load i32, ptr %6678, align 4, !tbaa !5
  %6680 = call ptr @s2n_strerror_debug(i32 noundef %6679, ptr noundef @.str.4)
  %6681 = call ptr @__errno_location() #11
  %6682 = load i32, ptr %6681, align 4, !tbaa !5
  %6683 = call ptr @strerror(i32 noundef %6682) #10
  %6684 = call ptr @__errno_location() #11
  %6685 = load i32, ptr %6684, align 4, !tbaa !5
  %6686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6673, ptr noundef @.str.2, i32 noundef %6674, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 448, ptr noundef %6677, ptr noundef %6680, ptr noundef %6683, i32 noundef %6685) #10
  br label %6704

6687:                                             ; preds = %6665, %6658
  %6688 = load i32, ptr %188, align 4, !tbaa !5
  %6689 = call ptr @__errno_location() #11
  store i32 %6688, ptr %6689, align 4, !tbaa !5
  %6690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6691 = load i32, ptr @test_count, align 4, !tbaa !5
  %6692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6693 = load i32, ptr %6692, align 4, !tbaa !5
  %6694 = call ptr @s2n_strerror(i32 noundef %6693, ptr noundef @.str.4)
  %6695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6696 = load i32, ptr %6695, align 4, !tbaa !5
  %6697 = call ptr @s2n_strerror_debug(i32 noundef %6696, ptr noundef @.str.4)
  %6698 = call ptr @__errno_location() #11
  %6699 = load i32, ptr %6698, align 4, !tbaa !5
  %6700 = call ptr @strerror(i32 noundef %6699) #10
  %6701 = call ptr @__errno_location() #11
  %6702 = load i32, ptr %6701, align 4, !tbaa !5
  %6703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6690, ptr noundef @.str.5, i32 noundef %6691, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 448, ptr noundef %6694, ptr noundef %6697, ptr noundef %6700, i32 noundef %6702) #10
  br label %6704

6704:                                             ; preds = %6687, %6670
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #10
  br label %6705

6705:                                             ; preds = %6704
  br label %6706

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

6707:                                             ; No predecessors!
  br label %6708

6708:                                             ; preds = %6707
  br label %6709

6709:                                             ; preds = %6708, %6645
  br label %6710

6710:                                             ; preds = %6709
  br label %6711

6711:                                             ; preds = %6710
  %6712 = load ptr, ptr %182, align 8, !tbaa !9
  %6713 = getelementptr inbounds %struct.s2n_connection, ptr %6712, i32 0, i32 23
  store i8 34, ptr %6713, align 4, !tbaa !50
  %6714 = load ptr, ptr %182, align 8, !tbaa !9
  %6715 = getelementptr inbounds %struct.s2n_connection, ptr %6714, i32 0, i32 27
  %6716 = load ptr, ptr %6715, align 8, !tbaa !66
  %6717 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6716, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %6717, align 8, !tbaa !67
  br label %6718

6718:                                             ; preds = %6711
  br label %6719

6719:                                             ; preds = %6718
  br label %6720

6720:                                             ; preds = %6719
  %6721 = load i32, ptr @test_count, align 4, !tbaa !5
  %6722 = add nsw i32 %6721, 1
  store i32 %6722, ptr @test_count, align 4, !tbaa !5
  %6723 = load ptr, ptr %182, align 8, !tbaa !9
  %6724 = call i32 @s2n_signature_algorithm_select(ptr noundef %6723)
  %6725 = getelementptr inbounds %struct.s2n_result, ptr %189, i32 0, i32 0
  store i32 %6724, ptr %6725, align 4
  %6726 = getelementptr inbounds %struct.s2n_result, ptr %189, i32 0, i32 0
  %6727 = load i32, ptr %6726, align 4
  %6728 = call zeroext i1 @s2n_result_is_error(i32 %6727)
  br i1 %6728, label %6782, label %6729

6729:                                             ; preds = %6720
  br label %6730

6730:                                             ; preds = %6729
  br label %6731

6731:                                             ; preds = %6730
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #10
  %6732 = call ptr @__errno_location() #11
  %6733 = load i32, ptr %6732, align 4, !tbaa !5
  store i32 %6733, ptr %190, align 4, !tbaa !5
  %6734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6735 = call i32 @s2n_print_stacktrace(ptr noundef %6734)
  %6736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6737 = trunc i8 %6736 to i1
  br i1 %6737, label %6738, label %6760

6738:                                             ; preds = %6731
  %6739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6740 = call i32 @fileno(ptr noundef %6739) #10
  %6741 = call i32 @isatty(i32 noundef %6740) #10
  %6742 = icmp ne i32 %6741, 0
  br i1 %6742, label %6743, label %6760

6743:                                             ; preds = %6738
  %6744 = load i32, ptr %190, align 4, !tbaa !5
  %6745 = call ptr @__errno_location() #11
  store i32 %6744, ptr %6745, align 4, !tbaa !5
  %6746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6747 = load i32, ptr @test_count, align 4, !tbaa !5
  %6748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6749 = load i32, ptr %6748, align 4, !tbaa !5
  %6750 = call ptr @s2n_strerror(i32 noundef %6749, ptr noundef @.str.4)
  %6751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6752 = load i32, ptr %6751, align 4, !tbaa !5
  %6753 = call ptr @s2n_strerror_debug(i32 noundef %6752, ptr noundef @.str.4)
  %6754 = call ptr @__errno_location() #11
  %6755 = load i32, ptr %6754, align 4, !tbaa !5
  %6756 = call ptr @strerror(i32 noundef %6755) #10
  %6757 = call ptr @__errno_location() #11
  %6758 = load i32, ptr %6757, align 4, !tbaa !5
  %6759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6746, ptr noundef @.str.2, i32 noundef %6747, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 455, ptr noundef %6750, ptr noundef %6753, ptr noundef %6756, i32 noundef %6758) #10
  br label %6777

6760:                                             ; preds = %6738, %6731
  %6761 = load i32, ptr %190, align 4, !tbaa !5
  %6762 = call ptr @__errno_location() #11
  store i32 %6761, ptr %6762, align 4, !tbaa !5
  %6763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6764 = load i32, ptr @test_count, align 4, !tbaa !5
  %6765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6766 = load i32, ptr %6765, align 4, !tbaa !5
  %6767 = call ptr @s2n_strerror(i32 noundef %6766, ptr noundef @.str.4)
  %6768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6769 = load i32, ptr %6768, align 4, !tbaa !5
  %6770 = call ptr @s2n_strerror_debug(i32 noundef %6769, ptr noundef @.str.4)
  %6771 = call ptr @__errno_location() #11
  %6772 = load i32, ptr %6771, align 4, !tbaa !5
  %6773 = call ptr @strerror(i32 noundef %6772) #10
  %6774 = call ptr @__errno_location() #11
  %6775 = load i32, ptr %6774, align 4, !tbaa !5
  %6776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6763, ptr noundef @.str.5, i32 noundef %6764, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 455, ptr noundef %6767, ptr noundef %6770, ptr noundef %6773, i32 noundef %6775) #10
  br label %6777

6777:                                             ; preds = %6760, %6743
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #10
  br label %6778

6778:                                             ; preds = %6777
  br label %6779

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

6780:                                             ; No predecessors!
  br label %6781

6781:                                             ; preds = %6780
  br label %6782

6782:                                             ; preds = %6781, %6720
  br label %6783

6783:                                             ; preds = %6782
  br label %6784

6784:                                             ; preds = %6783
  br label %6785

6785:                                             ; preds = %6784
  %6786 = load i32, ptr @test_count, align 4, !tbaa !5
  %6787 = add nsw i32 %6786, 1
  store i32 %6787, ptr @test_count, align 4, !tbaa !5
  %6788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6789 = load i32, ptr %6788, align 4, !tbaa !5
  %6790 = icmp eq i32 %6789, 335544349
  br i1 %6790, label %6844, label %6791

6791:                                             ; preds = %6785
  br label %6792

6792:                                             ; preds = %6791
  br label %6793

6793:                                             ; preds = %6792
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #10
  %6794 = call ptr @__errno_location() #11
  %6795 = load i32, ptr %6794, align 4, !tbaa !5
  store i32 %6795, ptr %191, align 4, !tbaa !5
  %6796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6797 = call i32 @s2n_print_stacktrace(ptr noundef %6796)
  %6798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6799 = trunc i8 %6798 to i1
  br i1 %6799, label %6800, label %6822

6800:                                             ; preds = %6793
  %6801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6802 = call i32 @fileno(ptr noundef %6801) #10
  %6803 = call i32 @isatty(i32 noundef %6802) #10
  %6804 = icmp ne i32 %6803, 0
  br i1 %6804, label %6805, label %6822

6805:                                             ; preds = %6800
  %6806 = load i32, ptr %191, align 4, !tbaa !5
  %6807 = call ptr @__errno_location() #11
  store i32 %6806, ptr %6807, align 4, !tbaa !5
  %6808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6809 = load i32, ptr @test_count, align 4, !tbaa !5
  %6810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6811 = load i32, ptr %6810, align 4, !tbaa !5
  %6812 = call ptr @s2n_strerror(i32 noundef %6811, ptr noundef @.str.4)
  %6813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6814 = load i32, ptr %6813, align 4, !tbaa !5
  %6815 = call ptr @s2n_strerror_debug(i32 noundef %6814, ptr noundef @.str.4)
  %6816 = call ptr @__errno_location() #11
  %6817 = load i32, ptr %6816, align 4, !tbaa !5
  %6818 = call ptr @strerror(i32 noundef %6817) #10
  %6819 = call ptr @__errno_location() #11
  %6820 = load i32, ptr %6819, align 4, !tbaa !5
  %6821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6808, ptr noundef @.str.2, i32 noundef %6809, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 455, ptr noundef %6812, ptr noundef %6815, ptr noundef %6818, i32 noundef %6820) #10
  br label %6839

6822:                                             ; preds = %6800, %6793
  %6823 = load i32, ptr %191, align 4, !tbaa !5
  %6824 = call ptr @__errno_location() #11
  store i32 %6823, ptr %6824, align 4, !tbaa !5
  %6825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6826 = load i32, ptr @test_count, align 4, !tbaa !5
  %6827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6828 = load i32, ptr %6827, align 4, !tbaa !5
  %6829 = call ptr @s2n_strerror(i32 noundef %6828, ptr noundef @.str.4)
  %6830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6831 = load i32, ptr %6830, align 4, !tbaa !5
  %6832 = call ptr @s2n_strerror_debug(i32 noundef %6831, ptr noundef @.str.4)
  %6833 = call ptr @__errno_location() #11
  %6834 = load i32, ptr %6833, align 4, !tbaa !5
  %6835 = call ptr @strerror(i32 noundef %6834) #10
  %6836 = call ptr @__errno_location() #11
  %6837 = load i32, ptr %6836, align 4, !tbaa !5
  %6838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6825, ptr noundef @.str.5, i32 noundef %6826, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 455, ptr noundef %6829, ptr noundef %6832, ptr noundef %6835, i32 noundef %6837) #10
  br label %6839

6839:                                             ; preds = %6822, %6805
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #10
  br label %6840

6840:                                             ; preds = %6839
  br label %6841

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

6842:                                             ; No predecessors!
  br label %6843

6843:                                             ; preds = %6842
  br label %6844

6844:                                             ; preds = %6843, %6785
  br label %6845

6845:                                             ; preds = %6844
  br label %6846

6846:                                             ; preds = %6845
  br label %6847

6847:                                             ; preds = %6846
  %6848 = load i32, ptr @test_count, align 4, !tbaa !5
  %6849 = add nsw i32 %6848, 1
  store i32 %6849, ptr @test_count, align 4, !tbaa !5
  %6850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6851 = load i32, ptr %6850, align 4, !tbaa !5
  %6852 = call ptr @s2n_strerror_debug(i32 noundef %6851, ptr noundef @.str.4)
  %6853 = icmp eq ptr %6852, null
  br i1 %6853, label %6854, label %6907

6854:                                             ; preds = %6847
  br label %6855

6855:                                             ; preds = %6854
  br label %6856

6856:                                             ; preds = %6855
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #10
  %6857 = call ptr @__errno_location() #11
  %6858 = load i32, ptr %6857, align 4, !tbaa !5
  store i32 %6858, ptr %192, align 4, !tbaa !5
  %6859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6860 = call i32 @s2n_print_stacktrace(ptr noundef %6859)
  %6861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6862 = trunc i8 %6861 to i1
  br i1 %6862, label %6863, label %6885

6863:                                             ; preds = %6856
  %6864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6865 = call i32 @fileno(ptr noundef %6864) #10
  %6866 = call i32 @isatty(i32 noundef %6865) #10
  %6867 = icmp ne i32 %6866, 0
  br i1 %6867, label %6868, label %6885

6868:                                             ; preds = %6863
  %6869 = load i32, ptr %192, align 4, !tbaa !5
  %6870 = call ptr @__errno_location() #11
  store i32 %6869, ptr %6870, align 4, !tbaa !5
  %6871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6872 = load i32, ptr @test_count, align 4, !tbaa !5
  %6873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6874 = load i32, ptr %6873, align 4, !tbaa !5
  %6875 = call ptr @s2n_strerror(i32 noundef %6874, ptr noundef @.str.4)
  %6876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6877 = load i32, ptr %6876, align 4, !tbaa !5
  %6878 = call ptr @s2n_strerror_debug(i32 noundef %6877, ptr noundef @.str.4)
  %6879 = call ptr @__errno_location() #11
  %6880 = load i32, ptr %6879, align 4, !tbaa !5
  %6881 = call ptr @strerror(i32 noundef %6880) #10
  %6882 = call ptr @__errno_location() #11
  %6883 = load i32, ptr %6882, align 4, !tbaa !5
  %6884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6871, ptr noundef @.str.2, i32 noundef %6872, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 455, ptr noundef %6875, ptr noundef %6878, ptr noundef %6881, i32 noundef %6883) #10
  br label %6902

6885:                                             ; preds = %6863, %6856
  %6886 = load i32, ptr %192, align 4, !tbaa !5
  %6887 = call ptr @__errno_location() #11
  store i32 %6886, ptr %6887, align 4, !tbaa !5
  %6888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6889 = load i32, ptr @test_count, align 4, !tbaa !5
  %6890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6891 = load i32, ptr %6890, align 4, !tbaa !5
  %6892 = call ptr @s2n_strerror(i32 noundef %6891, ptr noundef @.str.4)
  %6893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6894 = load i32, ptr %6893, align 4, !tbaa !5
  %6895 = call ptr @s2n_strerror_debug(i32 noundef %6894, ptr noundef @.str.4)
  %6896 = call ptr @__errno_location() #11
  %6897 = load i32, ptr %6896, align 4, !tbaa !5
  %6898 = call ptr @strerror(i32 noundef %6897) #10
  %6899 = call ptr @__errno_location() #11
  %6900 = load i32, ptr %6899, align 4, !tbaa !5
  %6901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6888, ptr noundef @.str.5, i32 noundef %6889, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 455, ptr noundef %6892, ptr noundef %6895, ptr noundef %6898, i32 noundef %6900) #10
  br label %6902

6902:                                             ; preds = %6885, %6868
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #10
  br label %6903

6903:                                             ; preds = %6902
  br label %6904

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

6905:                                             ; No predecessors!
  br label %6906

6906:                                             ; preds = %6905
  br label %6907

6907:                                             ; preds = %6906, %6847
  br label %6908

6908:                                             ; preds = %6907
  br label %6909

6909:                                             ; preds = %6908
  br label %6910

6910:                                             ; preds = %6909
  br label %6911

6911:                                             ; preds = %6910
  br label %6912

6912:                                             ; preds = %6911
  %6913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6913, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6914 = call ptr @__errno_location() #11
  store i32 0, ptr %6914, align 4, !tbaa !5
  br label %6915

6915:                                             ; preds = %6912
  br label %6916

6916:                                             ; preds = %6915
  br label %6917

6917:                                             ; preds = %6916
  br label %6918

6918:                                             ; preds = %6917
  %6919 = load ptr, ptr %182, align 8, !tbaa !9
  %6920 = getelementptr inbounds %struct.s2n_connection, ptr %6919, i32 0, i32 23
  store i8 33, ptr %6920, align 4, !tbaa !50
  %6921 = load ptr, ptr %182, align 8, !tbaa !9
  %6922 = getelementptr inbounds %struct.s2n_connection, ptr %6921, i32 0, i32 27
  %6923 = load ptr, ptr %6922, align 8, !tbaa !66
  %6924 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6923, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %6924, align 8, !tbaa !67
  br label %6925

6925:                                             ; preds = %6918
  %6926 = load i32, ptr @test_count, align 4, !tbaa !5
  %6927 = add nsw i32 %6926, 1
  store i32 %6927, ptr @test_count, align 4, !tbaa !5
  %6928 = load ptr, ptr %182, align 8, !tbaa !9
  %6929 = call i32 @s2n_signature_algorithm_select(ptr noundef %6928)
  %6930 = getelementptr inbounds %struct.s2n_result, ptr %193, i32 0, i32 0
  store i32 %6929, ptr %6930, align 4
  %6931 = getelementptr inbounds %struct.s2n_result, ptr %193, i32 0, i32 0
  %6932 = load i32, ptr %6931, align 4
  %6933 = call zeroext i1 @s2n_result_is_ok(i32 %6932)
  br i1 %6933, label %6987, label %6934

6934:                                             ; preds = %6925
  br label %6935

6935:                                             ; preds = %6934
  br label %6936

6936:                                             ; preds = %6935
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #10
  %6937 = call ptr @__errno_location() #11
  %6938 = load i32, ptr %6937, align 4, !tbaa !5
  store i32 %6938, ptr %194, align 4, !tbaa !5
  %6939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6940 = call i32 @s2n_print_stacktrace(ptr noundef %6939)
  %6941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6942 = trunc i8 %6941 to i1
  br i1 %6942, label %6943, label %6965

6943:                                             ; preds = %6936
  %6944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6945 = call i32 @fileno(ptr noundef %6944) #10
  %6946 = call i32 @isatty(i32 noundef %6945) #10
  %6947 = icmp ne i32 %6946, 0
  br i1 %6947, label %6948, label %6965

6948:                                             ; preds = %6943
  %6949 = load i32, ptr %194, align 4, !tbaa !5
  %6950 = call ptr @__errno_location() #11
  store i32 %6949, ptr %6950, align 4, !tbaa !5
  %6951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6952 = load i32, ptr @test_count, align 4, !tbaa !5
  %6953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6954 = load i32, ptr %6953, align 4, !tbaa !5
  %6955 = call ptr @s2n_strerror(i32 noundef %6954, ptr noundef @.str.4)
  %6956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6957 = load i32, ptr %6956, align 4, !tbaa !5
  %6958 = call ptr @s2n_strerror_debug(i32 noundef %6957, ptr noundef @.str.4)
  %6959 = call ptr @__errno_location() #11
  %6960 = load i32, ptr %6959, align 4, !tbaa !5
  %6961 = call ptr @strerror(i32 noundef %6960) #10
  %6962 = call ptr @__errno_location() #11
  %6963 = load i32, ptr %6962, align 4, !tbaa !5
  %6964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6951, ptr noundef @.str.2, i32 noundef %6952, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 460, ptr noundef %6955, ptr noundef %6958, ptr noundef %6961, i32 noundef %6963) #10
  br label %6982

6965:                                             ; preds = %6943, %6936
  %6966 = load i32, ptr %194, align 4, !tbaa !5
  %6967 = call ptr @__errno_location() #11
  store i32 %6966, ptr %6967, align 4, !tbaa !5
  %6968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6969 = load i32, ptr @test_count, align 4, !tbaa !5
  %6970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6971 = load i32, ptr %6970, align 4, !tbaa !5
  %6972 = call ptr @s2n_strerror(i32 noundef %6971, ptr noundef @.str.4)
  %6973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6974 = load i32, ptr %6973, align 4, !tbaa !5
  %6975 = call ptr @s2n_strerror_debug(i32 noundef %6974, ptr noundef @.str.4)
  %6976 = call ptr @__errno_location() #11
  %6977 = load i32, ptr %6976, align 4, !tbaa !5
  %6978 = call ptr @strerror(i32 noundef %6977) #10
  %6979 = call ptr @__errno_location() #11
  %6980 = load i32, ptr %6979, align 4, !tbaa !5
  %6981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6968, ptr noundef @.str.5, i32 noundef %6969, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 460, ptr noundef %6972, ptr noundef %6975, ptr noundef %6978, i32 noundef %6980) #10
  br label %6982

6982:                                             ; preds = %6965, %6948
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #10
  br label %6983

6983:                                             ; preds = %6982
  br label %6984

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

6985:                                             ; No predecessors!
  br label %6986

6986:                                             ; preds = %6985
  br label %6987

6987:                                             ; preds = %6986, %6925
  br label %6988

6988:                                             ; preds = %6987
  br label %6989

6989:                                             ; preds = %6988
  call void @llvm.lifetime.end.p0(i64 80, ptr %184) #10
  %6990 = call i32 @s2n_connection_ptr_free(ptr noundef %182)
  %6991 = getelementptr inbounds %struct.s2n_result, ptr %195, i32 0, i32 0
  store i32 %6990, ptr %6991, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #10
  store ptr @s2n_test_tls13_ecdsa_sha384, ptr %196, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #10
  %6992 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6992, ptr %197, align 8, !tbaa !9
  br label %6993

6993:                                             ; preds = %6989
  %6994 = load i32, ptr @test_count, align 4, !tbaa !5
  %6995 = add nsw i32 %6994, 1
  store i32 %6995, ptr @test_count, align 4, !tbaa !5
  %6996 = load ptr, ptr %197, align 8, !tbaa !9
  %6997 = load ptr, ptr %75, align 8, !tbaa !9
  %6998 = call i32 @s2n_connection_set_config(ptr noundef %6996, ptr noundef %6997)
  %6999 = icmp eq i32 %6998, -1
  br i1 %6999, label %7000, label %7053

7000:                                             ; preds = %6993
  br label %7001

7001:                                             ; preds = %7000
  br label %7002

7002:                                             ; preds = %7001
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #10
  %7003 = call ptr @__errno_location() #11
  %7004 = load i32, ptr %7003, align 4, !tbaa !5
  store i32 %7004, ptr %198, align 4, !tbaa !5
  %7005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7006 = call i32 @s2n_print_stacktrace(ptr noundef %7005)
  %7007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7008 = trunc i8 %7007 to i1
  br i1 %7008, label %7009, label %7031

7009:                                             ; preds = %7002
  %7010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7011 = call i32 @fileno(ptr noundef %7010) #10
  %7012 = call i32 @isatty(i32 noundef %7011) #10
  %7013 = icmp ne i32 %7012, 0
  br i1 %7013, label %7014, label %7031

7014:                                             ; preds = %7009
  %7015 = load i32, ptr %198, align 4, !tbaa !5
  %7016 = call ptr @__errno_location() #11
  store i32 %7015, ptr %7016, align 4, !tbaa !5
  %7017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7018 = load i32, ptr @test_count, align 4, !tbaa !5
  %7019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7020 = load i32, ptr %7019, align 4, !tbaa !5
  %7021 = call ptr @s2n_strerror(i32 noundef %7020, ptr noundef @.str.4)
  %7022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7023 = load i32, ptr %7022, align 4, !tbaa !5
  %7024 = call ptr @s2n_strerror_debug(i32 noundef %7023, ptr noundef @.str.4)
  %7025 = call ptr @__errno_location() #11
  %7026 = load i32, ptr %7025, align 4, !tbaa !5
  %7027 = call ptr @strerror(i32 noundef %7026) #10
  %7028 = call ptr @__errno_location() #11
  %7029 = load i32, ptr %7028, align 4, !tbaa !5
  %7030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7017, ptr noundef @.str.2, i32 noundef %7018, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 469, ptr noundef %7021, ptr noundef %7024, ptr noundef %7027, i32 noundef %7029) #10
  br label %7048

7031:                                             ; preds = %7009, %7002
  %7032 = load i32, ptr %198, align 4, !tbaa !5
  %7033 = call ptr @__errno_location() #11
  store i32 %7032, ptr %7033, align 4, !tbaa !5
  %7034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7035 = load i32, ptr @test_count, align 4, !tbaa !5
  %7036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7037 = load i32, ptr %7036, align 4, !tbaa !5
  %7038 = call ptr @s2n_strerror(i32 noundef %7037, ptr noundef @.str.4)
  %7039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7040 = load i32, ptr %7039, align 4, !tbaa !5
  %7041 = call ptr @s2n_strerror_debug(i32 noundef %7040, ptr noundef @.str.4)
  %7042 = call ptr @__errno_location() #11
  %7043 = load i32, ptr %7042, align 4, !tbaa !5
  %7044 = call ptr @strerror(i32 noundef %7043) #10
  %7045 = call ptr @__errno_location() #11
  %7046 = load i32, ptr %7045, align 4, !tbaa !5
  %7047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7034, ptr noundef @.str.5, i32 noundef %7035, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 469, ptr noundef %7038, ptr noundef %7041, ptr noundef %7044, i32 noundef %7046) #10
  br label %7048

7048:                                             ; preds = %7031, %7014
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #10
  br label %7049

7049:                                             ; preds = %7048
  br label %7050

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

7051:                                             ; No predecessors!
  br label %7052

7052:                                             ; preds = %7051
  br label %7053

7053:                                             ; preds = %7052, %6993
  br label %7054

7054:                                             ; preds = %7053
  br label %7055

7055:                                             ; preds = %7054
  call void @llvm.lifetime.start.p0(i64 80, ptr %199) #10
  call void @llvm.memset.p0.i64(ptr align 8 %199, i8 0, i64 80, i1 false)
  br label %7056

7056:                                             ; preds = %7055
  %7057 = load i32, ptr @test_count, align 4, !tbaa !5
  %7058 = add nsw i32 %7057, 1
  store i32 %7058, ptr @test_count, align 4, !tbaa !5
  %7059 = load ptr, ptr %197, align 8, !tbaa !9
  %7060 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %7059, ptr noundef %199, ptr noundef %196, i64 noundef 1)
  %7061 = getelementptr inbounds %struct.s2n_result, ptr %200, i32 0, i32 0
  store i32 %7060, ptr %7061, align 4
  %7062 = getelementptr inbounds %struct.s2n_result, ptr %200, i32 0, i32 0
  %7063 = load i32, ptr %7062, align 4
  %7064 = call zeroext i1 @s2n_result_is_ok(i32 %7063)
  br i1 %7064, label %7118, label %7065

7065:                                             ; preds = %7056
  br label %7066

7066:                                             ; preds = %7065
  br label %7067

7067:                                             ; preds = %7066
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #10
  %7068 = call ptr @__errno_location() #11
  %7069 = load i32, ptr %7068, align 4, !tbaa !5
  store i32 %7069, ptr %201, align 4, !tbaa !5
  %7070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7071 = call i32 @s2n_print_stacktrace(ptr noundef %7070)
  %7072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7073 = trunc i8 %7072 to i1
  br i1 %7073, label %7074, label %7096

7074:                                             ; preds = %7067
  %7075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7076 = call i32 @fileno(ptr noundef %7075) #10
  %7077 = call i32 @isatty(i32 noundef %7076) #10
  %7078 = icmp ne i32 %7077, 0
  br i1 %7078, label %7079, label %7096

7079:                                             ; preds = %7074
  %7080 = load i32, ptr %201, align 4, !tbaa !5
  %7081 = call ptr @__errno_location() #11
  store i32 %7080, ptr %7081, align 4, !tbaa !5
  %7082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7083 = load i32, ptr @test_count, align 4, !tbaa !5
  %7084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7085 = load i32, ptr %7084, align 4, !tbaa !5
  %7086 = call ptr @s2n_strerror(i32 noundef %7085, ptr noundef @.str.4)
  %7087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7088 = load i32, ptr %7087, align 4, !tbaa !5
  %7089 = call ptr @s2n_strerror_debug(i32 noundef %7088, ptr noundef @.str.4)
  %7090 = call ptr @__errno_location() #11
  %7091 = load i32, ptr %7090, align 4, !tbaa !5
  %7092 = call ptr @strerror(i32 noundef %7091) #10
  %7093 = call ptr @__errno_location() #11
  %7094 = load i32, ptr %7093, align 4, !tbaa !5
  %7095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7082, ptr noundef @.str.2, i32 noundef %7083, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 473, ptr noundef %7086, ptr noundef %7089, ptr noundef %7092, i32 noundef %7094) #10
  br label %7113

7096:                                             ; preds = %7074, %7067
  %7097 = load i32, ptr %201, align 4, !tbaa !5
  %7098 = call ptr @__errno_location() #11
  store i32 %7097, ptr %7098, align 4, !tbaa !5
  %7099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7100 = load i32, ptr @test_count, align 4, !tbaa !5
  %7101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7102 = load i32, ptr %7101, align 4, !tbaa !5
  %7103 = call ptr @s2n_strerror(i32 noundef %7102, ptr noundef @.str.4)
  %7104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7105 = load i32, ptr %7104, align 4, !tbaa !5
  %7106 = call ptr @s2n_strerror_debug(i32 noundef %7105, ptr noundef @.str.4)
  %7107 = call ptr @__errno_location() #11
  %7108 = load i32, ptr %7107, align 4, !tbaa !5
  %7109 = call ptr @strerror(i32 noundef %7108) #10
  %7110 = call ptr @__errno_location() #11
  %7111 = load i32, ptr %7110, align 4, !tbaa !5
  %7112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7099, ptr noundef @.str.5, i32 noundef %7100, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 473, ptr noundef %7103, ptr noundef %7106, ptr noundef %7109, i32 noundef %7111) #10
  br label %7113

7113:                                             ; preds = %7096, %7079
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #10
  br label %7114

7114:                                             ; preds = %7113
  br label %7115

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

7116:                                             ; No predecessors!
  br label %7117

7117:                                             ; preds = %7116
  br label %7118

7118:                                             ; preds = %7117, %7056
  br label %7119

7119:                                             ; preds = %7118
  br label %7120

7120:                                             ; preds = %7119
  br label %7121

7121:                                             ; preds = %7120
  %7122 = load i32, ptr @test_count, align 4, !tbaa !5
  %7123 = add nsw i32 %7122, 1
  store i32 %7123, ptr @test_count, align 4, !tbaa !5
  %7124 = load ptr, ptr %197, align 8, !tbaa !9
  %7125 = getelementptr inbounds %struct.s2n_connection, ptr %7124, i32 0, i32 32
  %7126 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %7125, i32 0, i32 4
  %7127 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %7126, ptr noundef %196, i64 noundef 1)
  %7128 = getelementptr inbounds %struct.s2n_result, ptr %202, i32 0, i32 0
  store i32 %7127, ptr %7128, align 4
  %7129 = getelementptr inbounds %struct.s2n_result, ptr %202, i32 0, i32 0
  %7130 = load i32, ptr %7129, align 4
  %7131 = call zeroext i1 @s2n_result_is_ok(i32 %7130)
  br i1 %7131, label %7185, label %7132

7132:                                             ; preds = %7121
  br label %7133

7133:                                             ; preds = %7132
  br label %7134

7134:                                             ; preds = %7133
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #10
  %7135 = call ptr @__errno_location() #11
  %7136 = load i32, ptr %7135, align 4, !tbaa !5
  store i32 %7136, ptr %203, align 4, !tbaa !5
  %7137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7138 = call i32 @s2n_print_stacktrace(ptr noundef %7137)
  %7139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7140 = trunc i8 %7139 to i1
  br i1 %7140, label %7141, label %7163

7141:                                             ; preds = %7134
  %7142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7143 = call i32 @fileno(ptr noundef %7142) #10
  %7144 = call i32 @isatty(i32 noundef %7143) #10
  %7145 = icmp ne i32 %7144, 0
  br i1 %7145, label %7146, label %7163

7146:                                             ; preds = %7141
  %7147 = load i32, ptr %203, align 4, !tbaa !5
  %7148 = call ptr @__errno_location() #11
  store i32 %7147, ptr %7148, align 4, !tbaa !5
  %7149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7150 = load i32, ptr @test_count, align 4, !tbaa !5
  %7151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7152 = load i32, ptr %7151, align 4, !tbaa !5
  %7153 = call ptr @s2n_strerror(i32 noundef %7152, ptr noundef @.str.4)
  %7154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7155 = load i32, ptr %7154, align 4, !tbaa !5
  %7156 = call ptr @s2n_strerror_debug(i32 noundef %7155, ptr noundef @.str.4)
  %7157 = call ptr @__errno_location() #11
  %7158 = load i32, ptr %7157, align 4, !tbaa !5
  %7159 = call ptr @strerror(i32 noundef %7158) #10
  %7160 = call ptr @__errno_location() #11
  %7161 = load i32, ptr %7160, align 4, !tbaa !5
  %7162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7149, ptr noundef @.str.2, i32 noundef %7150, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 475, ptr noundef %7153, ptr noundef %7156, ptr noundef %7159, i32 noundef %7161) #10
  br label %7180

7163:                                             ; preds = %7141, %7134
  %7164 = load i32, ptr %203, align 4, !tbaa !5
  %7165 = call ptr @__errno_location() #11
  store i32 %7164, ptr %7165, align 4, !tbaa !5
  %7166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7167 = load i32, ptr @test_count, align 4, !tbaa !5
  %7168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7169 = load i32, ptr %7168, align 4, !tbaa !5
  %7170 = call ptr @s2n_strerror(i32 noundef %7169, ptr noundef @.str.4)
  %7171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7172 = load i32, ptr %7171, align 4, !tbaa !5
  %7173 = call ptr @s2n_strerror_debug(i32 noundef %7172, ptr noundef @.str.4)
  %7174 = call ptr @__errno_location() #11
  %7175 = load i32, ptr %7174, align 4, !tbaa !5
  %7176 = call ptr @strerror(i32 noundef %7175) #10
  %7177 = call ptr @__errno_location() #11
  %7178 = load i32, ptr %7177, align 4, !tbaa !5
  %7179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7166, ptr noundef @.str.5, i32 noundef %7167, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 475, ptr noundef %7170, ptr noundef %7173, ptr noundef %7176, i32 noundef %7178) #10
  br label %7180

7180:                                             ; preds = %7163, %7146
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #10
  br label %7181

7181:                                             ; preds = %7180
  br label %7182

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

7183:                                             ; No predecessors!
  br label %7184

7184:                                             ; preds = %7183
  br label %7185

7185:                                             ; preds = %7184, %7121
  br label %7186

7186:                                             ; preds = %7185
  br label %7187

7187:                                             ; preds = %7186
  %7188 = load ptr, ptr %197, align 8, !tbaa !9
  %7189 = getelementptr inbounds %struct.s2n_connection, ptr %7188, i32 0, i32 23
  store i8 33, ptr %7189, align 4, !tbaa !50
  %7190 = load ptr, ptr %197, align 8, !tbaa !9
  %7191 = getelementptr inbounds %struct.s2n_connection, ptr %7190, i32 0, i32 27
  %7192 = load ptr, ptr %7191, align 8, !tbaa !66
  %7193 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7192, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %7193, align 8, !tbaa !67
  br label %7194

7194:                                             ; preds = %7187
  br label %7195

7195:                                             ; preds = %7194
  br label %7196

7196:                                             ; preds = %7195
  %7197 = load i32, ptr @test_count, align 4, !tbaa !5
  %7198 = add nsw i32 %7197, 1
  store i32 %7198, ptr @test_count, align 4, !tbaa !5
  %7199 = load ptr, ptr %197, align 8, !tbaa !9
  %7200 = call i32 @s2n_signature_algorithm_select(ptr noundef %7199)
  %7201 = getelementptr inbounds %struct.s2n_result, ptr %204, i32 0, i32 0
  store i32 %7200, ptr %7201, align 4
  %7202 = getelementptr inbounds %struct.s2n_result, ptr %204, i32 0, i32 0
  %7203 = load i32, ptr %7202, align 4
  %7204 = call zeroext i1 @s2n_result_is_error(i32 %7203)
  br i1 %7204, label %7258, label %7205

7205:                                             ; preds = %7196
  br label %7206

7206:                                             ; preds = %7205
  br label %7207

7207:                                             ; preds = %7206
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #10
  %7208 = call ptr @__errno_location() #11
  %7209 = load i32, ptr %7208, align 4, !tbaa !5
  store i32 %7209, ptr %205, align 4, !tbaa !5
  %7210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7211 = call i32 @s2n_print_stacktrace(ptr noundef %7210)
  %7212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7213 = trunc i8 %7212 to i1
  br i1 %7213, label %7214, label %7236

7214:                                             ; preds = %7207
  %7215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7216 = call i32 @fileno(ptr noundef %7215) #10
  %7217 = call i32 @isatty(i32 noundef %7216) #10
  %7218 = icmp ne i32 %7217, 0
  br i1 %7218, label %7219, label %7236

7219:                                             ; preds = %7214
  %7220 = load i32, ptr %205, align 4, !tbaa !5
  %7221 = call ptr @__errno_location() #11
  store i32 %7220, ptr %7221, align 4, !tbaa !5
  %7222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7223 = load i32, ptr @test_count, align 4, !tbaa !5
  %7224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7225 = load i32, ptr %7224, align 4, !tbaa !5
  %7226 = call ptr @s2n_strerror(i32 noundef %7225, ptr noundef @.str.4)
  %7227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7228 = load i32, ptr %7227, align 4, !tbaa !5
  %7229 = call ptr @s2n_strerror_debug(i32 noundef %7228, ptr noundef @.str.4)
  %7230 = call ptr @__errno_location() #11
  %7231 = load i32, ptr %7230, align 4, !tbaa !5
  %7232 = call ptr @strerror(i32 noundef %7231) #10
  %7233 = call ptr @__errno_location() #11
  %7234 = load i32, ptr %7233, align 4, !tbaa !5
  %7235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7222, ptr noundef @.str.2, i32 noundef %7223, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 482, ptr noundef %7226, ptr noundef %7229, ptr noundef %7232, i32 noundef %7234) #10
  br label %7253

7236:                                             ; preds = %7214, %7207
  %7237 = load i32, ptr %205, align 4, !tbaa !5
  %7238 = call ptr @__errno_location() #11
  store i32 %7237, ptr %7238, align 4, !tbaa !5
  %7239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7240 = load i32, ptr @test_count, align 4, !tbaa !5
  %7241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7242 = load i32, ptr %7241, align 4, !tbaa !5
  %7243 = call ptr @s2n_strerror(i32 noundef %7242, ptr noundef @.str.4)
  %7244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7245 = load i32, ptr %7244, align 4, !tbaa !5
  %7246 = call ptr @s2n_strerror_debug(i32 noundef %7245, ptr noundef @.str.4)
  %7247 = call ptr @__errno_location() #11
  %7248 = load i32, ptr %7247, align 4, !tbaa !5
  %7249 = call ptr @strerror(i32 noundef %7248) #10
  %7250 = call ptr @__errno_location() #11
  %7251 = load i32, ptr %7250, align 4, !tbaa !5
  %7252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7239, ptr noundef @.str.5, i32 noundef %7240, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 482, ptr noundef %7243, ptr noundef %7246, ptr noundef %7249, i32 noundef %7251) #10
  br label %7253

7253:                                             ; preds = %7236, %7219
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #10
  br label %7254

7254:                                             ; preds = %7253
  br label %7255

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

7256:                                             ; No predecessors!
  br label %7257

7257:                                             ; preds = %7256
  br label %7258

7258:                                             ; preds = %7257, %7196
  br label %7259

7259:                                             ; preds = %7258
  br label %7260

7260:                                             ; preds = %7259
  br label %7261

7261:                                             ; preds = %7260
  %7262 = load i32, ptr @test_count, align 4, !tbaa !5
  %7263 = add nsw i32 %7262, 1
  store i32 %7263, ptr @test_count, align 4, !tbaa !5
  %7264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7265 = load i32, ptr %7264, align 4, !tbaa !5
  %7266 = icmp eq i32 %7265, 335544349
  br i1 %7266, label %7320, label %7267

7267:                                             ; preds = %7261
  br label %7268

7268:                                             ; preds = %7267
  br label %7269

7269:                                             ; preds = %7268
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #10
  %7270 = call ptr @__errno_location() #11
  %7271 = load i32, ptr %7270, align 4, !tbaa !5
  store i32 %7271, ptr %206, align 4, !tbaa !5
  %7272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7273 = call i32 @s2n_print_stacktrace(ptr noundef %7272)
  %7274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7275 = trunc i8 %7274 to i1
  br i1 %7275, label %7276, label %7298

7276:                                             ; preds = %7269
  %7277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7278 = call i32 @fileno(ptr noundef %7277) #10
  %7279 = call i32 @isatty(i32 noundef %7278) #10
  %7280 = icmp ne i32 %7279, 0
  br i1 %7280, label %7281, label %7298

7281:                                             ; preds = %7276
  %7282 = load i32, ptr %206, align 4, !tbaa !5
  %7283 = call ptr @__errno_location() #11
  store i32 %7282, ptr %7283, align 4, !tbaa !5
  %7284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7285 = load i32, ptr @test_count, align 4, !tbaa !5
  %7286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7287 = load i32, ptr %7286, align 4, !tbaa !5
  %7288 = call ptr @s2n_strerror(i32 noundef %7287, ptr noundef @.str.4)
  %7289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7290 = load i32, ptr %7289, align 4, !tbaa !5
  %7291 = call ptr @s2n_strerror_debug(i32 noundef %7290, ptr noundef @.str.4)
  %7292 = call ptr @__errno_location() #11
  %7293 = load i32, ptr %7292, align 4, !tbaa !5
  %7294 = call ptr @strerror(i32 noundef %7293) #10
  %7295 = call ptr @__errno_location() #11
  %7296 = load i32, ptr %7295, align 4, !tbaa !5
  %7297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7284, ptr noundef @.str.2, i32 noundef %7285, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 482, ptr noundef %7288, ptr noundef %7291, ptr noundef %7294, i32 noundef %7296) #10
  br label %7315

7298:                                             ; preds = %7276, %7269
  %7299 = load i32, ptr %206, align 4, !tbaa !5
  %7300 = call ptr @__errno_location() #11
  store i32 %7299, ptr %7300, align 4, !tbaa !5
  %7301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7302 = load i32, ptr @test_count, align 4, !tbaa !5
  %7303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7304 = load i32, ptr %7303, align 4, !tbaa !5
  %7305 = call ptr @s2n_strerror(i32 noundef %7304, ptr noundef @.str.4)
  %7306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7307 = load i32, ptr %7306, align 4, !tbaa !5
  %7308 = call ptr @s2n_strerror_debug(i32 noundef %7307, ptr noundef @.str.4)
  %7309 = call ptr @__errno_location() #11
  %7310 = load i32, ptr %7309, align 4, !tbaa !5
  %7311 = call ptr @strerror(i32 noundef %7310) #10
  %7312 = call ptr @__errno_location() #11
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  %7314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7301, ptr noundef @.str.5, i32 noundef %7302, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 482, ptr noundef %7305, ptr noundef %7308, ptr noundef %7311, i32 noundef %7313) #10
  br label %7315

7315:                                             ; preds = %7298, %7281
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #10
  br label %7316

7316:                                             ; preds = %7315
  br label %7317

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

7318:                                             ; No predecessors!
  br label %7319

7319:                                             ; preds = %7318
  br label %7320

7320:                                             ; preds = %7319, %7261
  br label %7321

7321:                                             ; preds = %7320
  br label %7322

7322:                                             ; preds = %7321
  br label %7323

7323:                                             ; preds = %7322
  %7324 = load i32, ptr @test_count, align 4, !tbaa !5
  %7325 = add nsw i32 %7324, 1
  store i32 %7325, ptr @test_count, align 4, !tbaa !5
  %7326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7327 = load i32, ptr %7326, align 4, !tbaa !5
  %7328 = call ptr @s2n_strerror_debug(i32 noundef %7327, ptr noundef @.str.4)
  %7329 = icmp eq ptr %7328, null
  br i1 %7329, label %7330, label %7383

7330:                                             ; preds = %7323
  br label %7331

7331:                                             ; preds = %7330
  br label %7332

7332:                                             ; preds = %7331
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #10
  %7333 = call ptr @__errno_location() #11
  %7334 = load i32, ptr %7333, align 4, !tbaa !5
  store i32 %7334, ptr %207, align 4, !tbaa !5
  %7335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7336 = call i32 @s2n_print_stacktrace(ptr noundef %7335)
  %7337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7338 = trunc i8 %7337 to i1
  br i1 %7338, label %7339, label %7361

7339:                                             ; preds = %7332
  %7340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7341 = call i32 @fileno(ptr noundef %7340) #10
  %7342 = call i32 @isatty(i32 noundef %7341) #10
  %7343 = icmp ne i32 %7342, 0
  br i1 %7343, label %7344, label %7361

7344:                                             ; preds = %7339
  %7345 = load i32, ptr %207, align 4, !tbaa !5
  %7346 = call ptr @__errno_location() #11
  store i32 %7345, ptr %7346, align 4, !tbaa !5
  %7347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7348 = load i32, ptr @test_count, align 4, !tbaa !5
  %7349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7350 = load i32, ptr %7349, align 4, !tbaa !5
  %7351 = call ptr @s2n_strerror(i32 noundef %7350, ptr noundef @.str.4)
  %7352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7353 = load i32, ptr %7352, align 4, !tbaa !5
  %7354 = call ptr @s2n_strerror_debug(i32 noundef %7353, ptr noundef @.str.4)
  %7355 = call ptr @__errno_location() #11
  %7356 = load i32, ptr %7355, align 4, !tbaa !5
  %7357 = call ptr @strerror(i32 noundef %7356) #10
  %7358 = call ptr @__errno_location() #11
  %7359 = load i32, ptr %7358, align 4, !tbaa !5
  %7360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7347, ptr noundef @.str.2, i32 noundef %7348, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 482, ptr noundef %7351, ptr noundef %7354, ptr noundef %7357, i32 noundef %7359) #10
  br label %7378

7361:                                             ; preds = %7339, %7332
  %7362 = load i32, ptr %207, align 4, !tbaa !5
  %7363 = call ptr @__errno_location() #11
  store i32 %7362, ptr %7363, align 4, !tbaa !5
  %7364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7365 = load i32, ptr @test_count, align 4, !tbaa !5
  %7366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7367 = load i32, ptr %7366, align 4, !tbaa !5
  %7368 = call ptr @s2n_strerror(i32 noundef %7367, ptr noundef @.str.4)
  %7369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7370 = load i32, ptr %7369, align 4, !tbaa !5
  %7371 = call ptr @s2n_strerror_debug(i32 noundef %7370, ptr noundef @.str.4)
  %7372 = call ptr @__errno_location() #11
  %7373 = load i32, ptr %7372, align 4, !tbaa !5
  %7374 = call ptr @strerror(i32 noundef %7373) #10
  %7375 = call ptr @__errno_location() #11
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  %7377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7364, ptr noundef @.str.5, i32 noundef %7365, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 482, ptr noundef %7368, ptr noundef %7371, ptr noundef %7374, i32 noundef %7376) #10
  br label %7378

7378:                                             ; preds = %7361, %7344
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #10
  br label %7379

7379:                                             ; preds = %7378
  br label %7380

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

7381:                                             ; No predecessors!
  br label %7382

7382:                                             ; preds = %7381
  br label %7383

7383:                                             ; preds = %7382, %7323
  br label %7384

7384:                                             ; preds = %7383
  br label %7385

7385:                                             ; preds = %7384
  br label %7386

7386:                                             ; preds = %7385
  br label %7387

7387:                                             ; preds = %7386
  br label %7388

7388:                                             ; preds = %7387
  %7389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7389, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7390 = call ptr @__errno_location() #11
  store i32 0, ptr %7390, align 4, !tbaa !5
  br label %7391

7391:                                             ; preds = %7388
  br label %7392

7392:                                             ; preds = %7391
  br label %7393

7393:                                             ; preds = %7392
  br label %7394

7394:                                             ; preds = %7393
  %7395 = load ptr, ptr %197, align 8, !tbaa !9
  %7396 = getelementptr inbounds %struct.s2n_connection, ptr %7395, i32 0, i32 23
  store i8 34, ptr %7396, align 4, !tbaa !50
  %7397 = load ptr, ptr %197, align 8, !tbaa !9
  %7398 = getelementptr inbounds %struct.s2n_connection, ptr %7397, i32 0, i32 27
  %7399 = load ptr, ptr %7398, align 8, !tbaa !66
  %7400 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7399, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %7400, align 8, !tbaa !67
  br label %7401

7401:                                             ; preds = %7394
  %7402 = load i32, ptr @test_count, align 4, !tbaa !5
  %7403 = add nsw i32 %7402, 1
  store i32 %7403, ptr @test_count, align 4, !tbaa !5
  %7404 = load ptr, ptr %197, align 8, !tbaa !9
  %7405 = call i32 @s2n_signature_algorithm_select(ptr noundef %7404)
  %7406 = getelementptr inbounds %struct.s2n_result, ptr %208, i32 0, i32 0
  store i32 %7405, ptr %7406, align 4
  %7407 = getelementptr inbounds %struct.s2n_result, ptr %208, i32 0, i32 0
  %7408 = load i32, ptr %7407, align 4
  %7409 = call zeroext i1 @s2n_result_is_ok(i32 %7408)
  br i1 %7409, label %7463, label %7410

7410:                                             ; preds = %7401
  br label %7411

7411:                                             ; preds = %7410
  br label %7412

7412:                                             ; preds = %7411
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #10
  %7413 = call ptr @__errno_location() #11
  %7414 = load i32, ptr %7413, align 4, !tbaa !5
  store i32 %7414, ptr %209, align 4, !tbaa !5
  %7415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7416 = call i32 @s2n_print_stacktrace(ptr noundef %7415)
  %7417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7418 = trunc i8 %7417 to i1
  br i1 %7418, label %7419, label %7441

7419:                                             ; preds = %7412
  %7420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7421 = call i32 @fileno(ptr noundef %7420) #10
  %7422 = call i32 @isatty(i32 noundef %7421) #10
  %7423 = icmp ne i32 %7422, 0
  br i1 %7423, label %7424, label %7441

7424:                                             ; preds = %7419
  %7425 = load i32, ptr %209, align 4, !tbaa !5
  %7426 = call ptr @__errno_location() #11
  store i32 %7425, ptr %7426, align 4, !tbaa !5
  %7427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7428 = load i32, ptr @test_count, align 4, !tbaa !5
  %7429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7430 = load i32, ptr %7429, align 4, !tbaa !5
  %7431 = call ptr @s2n_strerror(i32 noundef %7430, ptr noundef @.str.4)
  %7432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7433 = load i32, ptr %7432, align 4, !tbaa !5
  %7434 = call ptr @s2n_strerror_debug(i32 noundef %7433, ptr noundef @.str.4)
  %7435 = call ptr @__errno_location() #11
  %7436 = load i32, ptr %7435, align 4, !tbaa !5
  %7437 = call ptr @strerror(i32 noundef %7436) #10
  %7438 = call ptr @__errno_location() #11
  %7439 = load i32, ptr %7438, align 4, !tbaa !5
  %7440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7427, ptr noundef @.str.2, i32 noundef %7428, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 487, ptr noundef %7431, ptr noundef %7434, ptr noundef %7437, i32 noundef %7439) #10
  br label %7458

7441:                                             ; preds = %7419, %7412
  %7442 = load i32, ptr %209, align 4, !tbaa !5
  %7443 = call ptr @__errno_location() #11
  store i32 %7442, ptr %7443, align 4, !tbaa !5
  %7444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7445 = load i32, ptr @test_count, align 4, !tbaa !5
  %7446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7447 = load i32, ptr %7446, align 4, !tbaa !5
  %7448 = call ptr @s2n_strerror(i32 noundef %7447, ptr noundef @.str.4)
  %7449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7450 = load i32, ptr %7449, align 4, !tbaa !5
  %7451 = call ptr @s2n_strerror_debug(i32 noundef %7450, ptr noundef @.str.4)
  %7452 = call ptr @__errno_location() #11
  %7453 = load i32, ptr %7452, align 4, !tbaa !5
  %7454 = call ptr @strerror(i32 noundef %7453) #10
  %7455 = call ptr @__errno_location() #11
  %7456 = load i32, ptr %7455, align 4, !tbaa !5
  %7457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7444, ptr noundef @.str.5, i32 noundef %7445, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 487, ptr noundef %7448, ptr noundef %7451, ptr noundef %7454, i32 noundef %7456) #10
  br label %7458

7458:                                             ; preds = %7441, %7424
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #10
  br label %7459

7459:                                             ; preds = %7458
  br label %7460

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

7461:                                             ; No predecessors!
  br label %7462

7462:                                             ; preds = %7461
  br label %7463

7463:                                             ; preds = %7462, %7401
  br label %7464

7464:                                             ; preds = %7463
  br label %7465

7465:                                             ; preds = %7464
  call void @llvm.lifetime.end.p0(i64 80, ptr %199) #10
  %7466 = call i32 @s2n_connection_ptr_free(ptr noundef %197)
  %7467 = getelementptr inbounds %struct.s2n_result, ptr %210, i32 0, i32 0
  store i32 %7466, ptr %7467, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %211) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %211, ptr align 8 @s2n_ecdsa_sha384, i64 40, i1 false), !tbaa.struct !73
  %7468 = load i32, ptr getelementptr inbounds (%struct.s2n_signature_scheme, ptr @s2n_ecdsa_sha1, i32 0, i32 2), align 8, !tbaa !74
  %7469 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %211, i32 0, i32 2
  store i32 %7468, ptr %7469, align 8, !tbaa !74
  call void @llvm.lifetime.start.p0(i64 8, ptr %212) #10
  store ptr %211, ptr %212, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #10
  %7470 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7470, ptr %213, align 8, !tbaa !9
  %7471 = load ptr, ptr %213, align 8, !tbaa !9
  %7472 = getelementptr inbounds %struct.s2n_connection, ptr %7471, i32 0, i32 23
  store i8 34, ptr %7472, align 4, !tbaa !50
  %7473 = load ptr, ptr %213, align 8, !tbaa !9
  %7474 = getelementptr inbounds %struct.s2n_connection, ptr %7473, i32 0, i32 27
  %7475 = load ptr, ptr %7474, align 8, !tbaa !66
  %7476 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7475, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %7476, align 8, !tbaa !67
  br label %7477

7477:                                             ; preds = %7465
  %7478 = load i32, ptr @test_count, align 4, !tbaa !5
  %7479 = add nsw i32 %7478, 1
  store i32 %7479, ptr @test_count, align 4, !tbaa !5
  %7480 = load ptr, ptr %213, align 8, !tbaa !9
  %7481 = load ptr, ptr %75, align 8, !tbaa !9
  %7482 = call i32 @s2n_connection_set_config(ptr noundef %7480, ptr noundef %7481)
  %7483 = icmp eq i32 %7482, -1
  br i1 %7483, label %7484, label %7537

7484:                                             ; preds = %7477
  br label %7485

7485:                                             ; preds = %7484
  br label %7486

7486:                                             ; preds = %7485
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #10
  %7487 = call ptr @__errno_location() #11
  %7488 = load i32, ptr %7487, align 4, !tbaa !5
  store i32 %7488, ptr %214, align 4, !tbaa !5
  %7489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7490 = call i32 @s2n_print_stacktrace(ptr noundef %7489)
  %7491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7492 = trunc i8 %7491 to i1
  br i1 %7492, label %7493, label %7515

7493:                                             ; preds = %7486
  %7494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7495 = call i32 @fileno(ptr noundef %7494) #10
  %7496 = call i32 @isatty(i32 noundef %7495) #10
  %7497 = icmp ne i32 %7496, 0
  br i1 %7497, label %7498, label %7515

7498:                                             ; preds = %7493
  %7499 = load i32, ptr %214, align 4, !tbaa !5
  %7500 = call ptr @__errno_location() #11
  store i32 %7499, ptr %7500, align 4, !tbaa !5
  %7501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7502 = load i32, ptr @test_count, align 4, !tbaa !5
  %7503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7504 = load i32, ptr %7503, align 4, !tbaa !5
  %7505 = call ptr @s2n_strerror(i32 noundef %7504, ptr noundef @.str.4)
  %7506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  %7508 = call ptr @s2n_strerror_debug(i32 noundef %7507, ptr noundef @.str.4)
  %7509 = call ptr @__errno_location() #11
  %7510 = load i32, ptr %7509, align 4, !tbaa !5
  %7511 = call ptr @strerror(i32 noundef %7510) #10
  %7512 = call ptr @__errno_location() #11
  %7513 = load i32, ptr %7512, align 4, !tbaa !5
  %7514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7501, ptr noundef @.str.2, i32 noundef %7502, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 503, ptr noundef %7505, ptr noundef %7508, ptr noundef %7511, i32 noundef %7513) #10
  br label %7532

7515:                                             ; preds = %7493, %7486
  %7516 = load i32, ptr %214, align 4, !tbaa !5
  %7517 = call ptr @__errno_location() #11
  store i32 %7516, ptr %7517, align 4, !tbaa !5
  %7518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7519 = load i32, ptr @test_count, align 4, !tbaa !5
  %7520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7521 = load i32, ptr %7520, align 4, !tbaa !5
  %7522 = call ptr @s2n_strerror(i32 noundef %7521, ptr noundef @.str.4)
  %7523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7524 = load i32, ptr %7523, align 4, !tbaa !5
  %7525 = call ptr @s2n_strerror_debug(i32 noundef %7524, ptr noundef @.str.4)
  %7526 = call ptr @__errno_location() #11
  %7527 = load i32, ptr %7526, align 4, !tbaa !5
  %7528 = call ptr @strerror(i32 noundef %7527) #10
  %7529 = call ptr @__errno_location() #11
  %7530 = load i32, ptr %7529, align 4, !tbaa !5
  %7531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7518, ptr noundef @.str.5, i32 noundef %7519, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 503, ptr noundef %7522, ptr noundef %7525, ptr noundef %7528, i32 noundef %7530) #10
  br label %7532

7532:                                             ; preds = %7515, %7498
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #10
  br label %7533

7533:                                             ; preds = %7532
  br label %7534

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

7535:                                             ; No predecessors!
  br label %7536

7536:                                             ; preds = %7535
  br label %7537

7537:                                             ; preds = %7536, %7477
  br label %7538

7538:                                             ; preds = %7537
  br label %7539

7539:                                             ; preds = %7538
  call void @llvm.lifetime.start.p0(i64 80, ptr %215) #10
  call void @llvm.memset.p0.i64(ptr align 8 %215, i8 0, i64 80, i1 false)
  br label %7540

7540:                                             ; preds = %7539
  %7541 = load i32, ptr @test_count, align 4, !tbaa !5
  %7542 = add nsw i32 %7541, 1
  store i32 %7542, ptr @test_count, align 4, !tbaa !5
  %7543 = load ptr, ptr %213, align 8, !tbaa !9
  %7544 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %7543, ptr noundef %215, ptr noundef %212, i64 noundef 1)
  %7545 = getelementptr inbounds %struct.s2n_result, ptr %216, i32 0, i32 0
  store i32 %7544, ptr %7545, align 4
  %7546 = getelementptr inbounds %struct.s2n_result, ptr %216, i32 0, i32 0
  %7547 = load i32, ptr %7546, align 4
  %7548 = call zeroext i1 @s2n_result_is_ok(i32 %7547)
  br i1 %7548, label %7602, label %7549

7549:                                             ; preds = %7540
  br label %7550

7550:                                             ; preds = %7549
  br label %7551

7551:                                             ; preds = %7550
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #10
  %7552 = call ptr @__errno_location() #11
  %7553 = load i32, ptr %7552, align 4, !tbaa !5
  store i32 %7553, ptr %217, align 4, !tbaa !5
  %7554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7555 = call i32 @s2n_print_stacktrace(ptr noundef %7554)
  %7556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7557 = trunc i8 %7556 to i1
  br i1 %7557, label %7558, label %7580

7558:                                             ; preds = %7551
  %7559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7560 = call i32 @fileno(ptr noundef %7559) #10
  %7561 = call i32 @isatty(i32 noundef %7560) #10
  %7562 = icmp ne i32 %7561, 0
  br i1 %7562, label %7563, label %7580

7563:                                             ; preds = %7558
  %7564 = load i32, ptr %217, align 4, !tbaa !5
  %7565 = call ptr @__errno_location() #11
  store i32 %7564, ptr %7565, align 4, !tbaa !5
  %7566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7567 = load i32, ptr @test_count, align 4, !tbaa !5
  %7568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7569 = load i32, ptr %7568, align 4, !tbaa !5
  %7570 = call ptr @s2n_strerror(i32 noundef %7569, ptr noundef @.str.4)
  %7571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7572 = load i32, ptr %7571, align 4, !tbaa !5
  %7573 = call ptr @s2n_strerror_debug(i32 noundef %7572, ptr noundef @.str.4)
  %7574 = call ptr @__errno_location() #11
  %7575 = load i32, ptr %7574, align 4, !tbaa !5
  %7576 = call ptr @strerror(i32 noundef %7575) #10
  %7577 = call ptr @__errno_location() #11
  %7578 = load i32, ptr %7577, align 4, !tbaa !5
  %7579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7566, ptr noundef @.str.2, i32 noundef %7567, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 507, ptr noundef %7570, ptr noundef %7573, ptr noundef %7576, i32 noundef %7578) #10
  br label %7597

7580:                                             ; preds = %7558, %7551
  %7581 = load i32, ptr %217, align 4, !tbaa !5
  %7582 = call ptr @__errno_location() #11
  store i32 %7581, ptr %7582, align 4, !tbaa !5
  %7583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7584 = load i32, ptr @test_count, align 4, !tbaa !5
  %7585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7586 = load i32, ptr %7585, align 4, !tbaa !5
  %7587 = call ptr @s2n_strerror(i32 noundef %7586, ptr noundef @.str.4)
  %7588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7589 = load i32, ptr %7588, align 4, !tbaa !5
  %7590 = call ptr @s2n_strerror_debug(i32 noundef %7589, ptr noundef @.str.4)
  %7591 = call ptr @__errno_location() #11
  %7592 = load i32, ptr %7591, align 4, !tbaa !5
  %7593 = call ptr @strerror(i32 noundef %7592) #10
  %7594 = call ptr @__errno_location() #11
  %7595 = load i32, ptr %7594, align 4, !tbaa !5
  %7596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7583, ptr noundef @.str.5, i32 noundef %7584, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 507, ptr noundef %7587, ptr noundef %7590, ptr noundef %7593, i32 noundef %7595) #10
  br label %7597

7597:                                             ; preds = %7580, %7563
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #10
  br label %7598

7598:                                             ; preds = %7597
  br label %7599

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

7600:                                             ; No predecessors!
  br label %7601

7601:                                             ; preds = %7600
  br label %7602

7602:                                             ; preds = %7601, %7540
  br label %7603

7603:                                             ; preds = %7602
  br label %7604

7604:                                             ; preds = %7603
  br label %7605

7605:                                             ; preds = %7604
  %7606 = load i32, ptr @test_count, align 4, !tbaa !5
  %7607 = add nsw i32 %7606, 1
  store i32 %7607, ptr @test_count, align 4, !tbaa !5
  %7608 = load ptr, ptr %213, align 8, !tbaa !9
  %7609 = getelementptr inbounds %struct.s2n_connection, ptr %7608, i32 0, i32 32
  %7610 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %7609, i32 0, i32 4
  %7611 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %7610, ptr noundef %212, i64 noundef 1)
  %7612 = getelementptr inbounds %struct.s2n_result, ptr %218, i32 0, i32 0
  store i32 %7611, ptr %7612, align 4
  %7613 = getelementptr inbounds %struct.s2n_result, ptr %218, i32 0, i32 0
  %7614 = load i32, ptr %7613, align 4
  %7615 = call zeroext i1 @s2n_result_is_ok(i32 %7614)
  br i1 %7615, label %7669, label %7616

7616:                                             ; preds = %7605
  br label %7617

7617:                                             ; preds = %7616
  br label %7618

7618:                                             ; preds = %7617
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #10
  %7619 = call ptr @__errno_location() #11
  %7620 = load i32, ptr %7619, align 4, !tbaa !5
  store i32 %7620, ptr %219, align 4, !tbaa !5
  %7621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7622 = call i32 @s2n_print_stacktrace(ptr noundef %7621)
  %7623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7624 = trunc i8 %7623 to i1
  br i1 %7624, label %7625, label %7647

7625:                                             ; preds = %7618
  %7626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7627 = call i32 @fileno(ptr noundef %7626) #10
  %7628 = call i32 @isatty(i32 noundef %7627) #10
  %7629 = icmp ne i32 %7628, 0
  br i1 %7629, label %7630, label %7647

7630:                                             ; preds = %7625
  %7631 = load i32, ptr %219, align 4, !tbaa !5
  %7632 = call ptr @__errno_location() #11
  store i32 %7631, ptr %7632, align 4, !tbaa !5
  %7633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7634 = load i32, ptr @test_count, align 4, !tbaa !5
  %7635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7636 = load i32, ptr %7635, align 4, !tbaa !5
  %7637 = call ptr @s2n_strerror(i32 noundef %7636, ptr noundef @.str.4)
  %7638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7639 = load i32, ptr %7638, align 4, !tbaa !5
  %7640 = call ptr @s2n_strerror_debug(i32 noundef %7639, ptr noundef @.str.4)
  %7641 = call ptr @__errno_location() #11
  %7642 = load i32, ptr %7641, align 4, !tbaa !5
  %7643 = call ptr @strerror(i32 noundef %7642) #10
  %7644 = call ptr @__errno_location() #11
  %7645 = load i32, ptr %7644, align 4, !tbaa !5
  %7646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7633, ptr noundef @.str.2, i32 noundef %7634, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 509, ptr noundef %7637, ptr noundef %7640, ptr noundef %7643, i32 noundef %7645) #10
  br label %7664

7647:                                             ; preds = %7625, %7618
  %7648 = load i32, ptr %219, align 4, !tbaa !5
  %7649 = call ptr @__errno_location() #11
  store i32 %7648, ptr %7649, align 4, !tbaa !5
  %7650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7651 = load i32, ptr @test_count, align 4, !tbaa !5
  %7652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7653 = load i32, ptr %7652, align 4, !tbaa !5
  %7654 = call ptr @s2n_strerror(i32 noundef %7653, ptr noundef @.str.4)
  %7655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7656 = load i32, ptr %7655, align 4, !tbaa !5
  %7657 = call ptr @s2n_strerror_debug(i32 noundef %7656, ptr noundef @.str.4)
  %7658 = call ptr @__errno_location() #11
  %7659 = load i32, ptr %7658, align 4, !tbaa !5
  %7660 = call ptr @strerror(i32 noundef %7659) #10
  %7661 = call ptr @__errno_location() #11
  %7662 = load i32, ptr %7661, align 4, !tbaa !5
  %7663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7650, ptr noundef @.str.5, i32 noundef %7651, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 509, ptr noundef %7654, ptr noundef %7657, ptr noundef %7660, i32 noundef %7662) #10
  br label %7664

7664:                                             ; preds = %7647, %7630
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #10
  br label %7665

7665:                                             ; preds = %7664
  br label %7666

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

7667:                                             ; No predecessors!
  br label %7668

7668:                                             ; preds = %7667
  br label %7669

7669:                                             ; preds = %7668, %7605
  br label %7670

7670:                                             ; preds = %7669
  br label %7671

7671:                                             ; preds = %7670
  br label %7672

7672:                                             ; preds = %7671
  br label %7673

7673:                                             ; preds = %7672
  br label %7674

7674:                                             ; preds = %7673
  %7675 = load i32, ptr @test_count, align 4, !tbaa !5
  %7676 = add nsw i32 %7675, 1
  store i32 %7676, ptr @test_count, align 4, !tbaa !5
  %7677 = load ptr, ptr %213, align 8, !tbaa !9
  %7678 = call i32 @s2n_signature_algorithm_select(ptr noundef %7677)
  %7679 = getelementptr inbounds %struct.s2n_result, ptr %220, i32 0, i32 0
  store i32 %7678, ptr %7679, align 4
  %7680 = getelementptr inbounds %struct.s2n_result, ptr %220, i32 0, i32 0
  %7681 = load i32, ptr %7680, align 4
  %7682 = call zeroext i1 @s2n_result_is_error(i32 %7681)
  br i1 %7682, label %7736, label %7683

7683:                                             ; preds = %7674
  br label %7684

7684:                                             ; preds = %7683
  br label %7685

7685:                                             ; preds = %7684
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #10
  %7686 = call ptr @__errno_location() #11
  %7687 = load i32, ptr %7686, align 4, !tbaa !5
  store i32 %7687, ptr %221, align 4, !tbaa !5
  %7688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7689 = call i32 @s2n_print_stacktrace(ptr noundef %7688)
  %7690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7691 = trunc i8 %7690 to i1
  br i1 %7691, label %7692, label %7714

7692:                                             ; preds = %7685
  %7693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7694 = call i32 @fileno(ptr noundef %7693) #10
  %7695 = call i32 @isatty(i32 noundef %7694) #10
  %7696 = icmp ne i32 %7695, 0
  br i1 %7696, label %7697, label %7714

7697:                                             ; preds = %7692
  %7698 = load i32, ptr %221, align 4, !tbaa !5
  %7699 = call ptr @__errno_location() #11
  store i32 %7698, ptr %7699, align 4, !tbaa !5
  %7700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7701 = load i32, ptr @test_count, align 4, !tbaa !5
  %7702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7703 = load i32, ptr %7702, align 4, !tbaa !5
  %7704 = call ptr @s2n_strerror(i32 noundef %7703, ptr noundef @.str.4)
  %7705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7706 = load i32, ptr %7705, align 4, !tbaa !5
  %7707 = call ptr @s2n_strerror_debug(i32 noundef %7706, ptr noundef @.str.4)
  %7708 = call ptr @__errno_location() #11
  %7709 = load i32, ptr %7708, align 4, !tbaa !5
  %7710 = call ptr @strerror(i32 noundef %7709) #10
  %7711 = call ptr @__errno_location() #11
  %7712 = load i32, ptr %7711, align 4, !tbaa !5
  %7713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7700, ptr noundef @.str.2, i32 noundef %7701, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 514, ptr noundef %7704, ptr noundef %7707, ptr noundef %7710, i32 noundef %7712) #10
  br label %7731

7714:                                             ; preds = %7692, %7685
  %7715 = load i32, ptr %221, align 4, !tbaa !5
  %7716 = call ptr @__errno_location() #11
  store i32 %7715, ptr %7716, align 4, !tbaa !5
  %7717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7718 = load i32, ptr @test_count, align 4, !tbaa !5
  %7719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7720 = load i32, ptr %7719, align 4, !tbaa !5
  %7721 = call ptr @s2n_strerror(i32 noundef %7720, ptr noundef @.str.4)
  %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_debug(i32 noundef %7723, ptr noundef @.str.4)
  %7725 = call ptr @__errno_location() #11
  %7726 = load i32, ptr %7725, align 4, !tbaa !5
  %7727 = call ptr @strerror(i32 noundef %7726) #10
  %7728 = call ptr @__errno_location() #11
  %7729 = load i32, ptr %7728, align 4, !tbaa !5
  %7730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7717, ptr noundef @.str.5, i32 noundef %7718, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 514, ptr noundef %7721, ptr noundef %7724, ptr noundef %7727, i32 noundef %7729) #10
  br label %7731

7731:                                             ; preds = %7714, %7697
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #10
  br label %7732

7732:                                             ; preds = %7731
  br label %7733

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

7734:                                             ; No predecessors!
  br label %7735

7735:                                             ; preds = %7734
  br label %7736

7736:                                             ; preds = %7735, %7674
  br label %7737

7737:                                             ; preds = %7736
  br label %7738

7738:                                             ; preds = %7737
  br label %7739

7739:                                             ; preds = %7738
  %7740 = load i32, ptr @test_count, align 4, !tbaa !5
  %7741 = add nsw i32 %7740, 1
  store i32 %7741, ptr @test_count, align 4, !tbaa !5
  %7742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7743 = load i32, ptr %7742, align 4, !tbaa !5
  %7744 = icmp eq i32 %7743, 335544349
  br i1 %7744, label %7798, label %7745

7745:                                             ; preds = %7739
  br label %7746

7746:                                             ; preds = %7745
  br label %7747

7747:                                             ; preds = %7746
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #10
  %7748 = call ptr @__errno_location() #11
  %7749 = load i32, ptr %7748, align 4, !tbaa !5
  store i32 %7749, ptr %222, align 4, !tbaa !5
  %7750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7751 = call i32 @s2n_print_stacktrace(ptr noundef %7750)
  %7752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7753 = trunc i8 %7752 to i1
  br i1 %7753, label %7754, label %7776

7754:                                             ; preds = %7747
  %7755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7756 = call i32 @fileno(ptr noundef %7755) #10
  %7757 = call i32 @isatty(i32 noundef %7756) #10
  %7758 = icmp ne i32 %7757, 0
  br i1 %7758, label %7759, label %7776

7759:                                             ; preds = %7754
  %7760 = load i32, ptr %222, align 4, !tbaa !5
  %7761 = call ptr @__errno_location() #11
  store i32 %7760, ptr %7761, align 4, !tbaa !5
  %7762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7763 = load i32, ptr @test_count, align 4, !tbaa !5
  %7764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7765 = load i32, ptr %7764, align 4, !tbaa !5
  %7766 = call ptr @s2n_strerror(i32 noundef %7765, ptr noundef @.str.4)
  %7767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7768 = load i32, ptr %7767, align 4, !tbaa !5
  %7769 = call ptr @s2n_strerror_debug(i32 noundef %7768, ptr noundef @.str.4)
  %7770 = call ptr @__errno_location() #11
  %7771 = load i32, ptr %7770, align 4, !tbaa !5
  %7772 = call ptr @strerror(i32 noundef %7771) #10
  %7773 = call ptr @__errno_location() #11
  %7774 = load i32, ptr %7773, align 4, !tbaa !5
  %7775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7762, ptr noundef @.str.2, i32 noundef %7763, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 514, ptr noundef %7766, ptr noundef %7769, ptr noundef %7772, i32 noundef %7774) #10
  br label %7793

7776:                                             ; preds = %7754, %7747
  %7777 = load i32, ptr %222, align 4, !tbaa !5
  %7778 = call ptr @__errno_location() #11
  store i32 %7777, ptr %7778, align 4, !tbaa !5
  %7779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7780 = load i32, ptr @test_count, align 4, !tbaa !5
  %7781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7782 = load i32, ptr %7781, align 4, !tbaa !5
  %7783 = call ptr @s2n_strerror(i32 noundef %7782, ptr noundef @.str.4)
  %7784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7785 = load i32, ptr %7784, align 4, !tbaa !5
  %7786 = call ptr @s2n_strerror_debug(i32 noundef %7785, ptr noundef @.str.4)
  %7787 = call ptr @__errno_location() #11
  %7788 = load i32, ptr %7787, align 4, !tbaa !5
  %7789 = call ptr @strerror(i32 noundef %7788) #10
  %7790 = call ptr @__errno_location() #11
  %7791 = load i32, ptr %7790, align 4, !tbaa !5
  %7792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7779, ptr noundef @.str.5, i32 noundef %7780, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 514, ptr noundef %7783, ptr noundef %7786, ptr noundef %7789, i32 noundef %7791) #10
  br label %7793

7793:                                             ; preds = %7776, %7759
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #10
  br label %7794

7794:                                             ; preds = %7793
  br label %7795

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

7796:                                             ; No predecessors!
  br label %7797

7797:                                             ; preds = %7796
  br label %7798

7798:                                             ; preds = %7797, %7739
  br label %7799

7799:                                             ; preds = %7798
  br label %7800

7800:                                             ; preds = %7799
  br label %7801

7801:                                             ; preds = %7800
  %7802 = load i32, ptr @test_count, align 4, !tbaa !5
  %7803 = add nsw i32 %7802, 1
  store i32 %7803, ptr @test_count, align 4, !tbaa !5
  %7804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7805 = load i32, ptr %7804, align 4, !tbaa !5
  %7806 = call ptr @s2n_strerror_debug(i32 noundef %7805, ptr noundef @.str.4)
  %7807 = icmp eq ptr %7806, null
  br i1 %7807, label %7808, label %7861

7808:                                             ; preds = %7801
  br label %7809

7809:                                             ; preds = %7808
  br label %7810

7810:                                             ; preds = %7809
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #10
  %7811 = call ptr @__errno_location() #11
  %7812 = load i32, ptr %7811, align 4, !tbaa !5
  store i32 %7812, ptr %223, align 4, !tbaa !5
  %7813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7814 = call i32 @s2n_print_stacktrace(ptr noundef %7813)
  %7815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7816 = trunc i8 %7815 to i1
  br i1 %7816, label %7817, label %7839

7817:                                             ; preds = %7810
  %7818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7819 = call i32 @fileno(ptr noundef %7818) #10
  %7820 = call i32 @isatty(i32 noundef %7819) #10
  %7821 = icmp ne i32 %7820, 0
  br i1 %7821, label %7822, label %7839

7822:                                             ; preds = %7817
  %7823 = load i32, ptr %223, align 4, !tbaa !5
  %7824 = call ptr @__errno_location() #11
  store i32 %7823, ptr %7824, align 4, !tbaa !5
  %7825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7826 = load i32, ptr @test_count, align 4, !tbaa !5
  %7827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7828 = load i32, ptr %7827, align 4, !tbaa !5
  %7829 = call ptr @s2n_strerror(i32 noundef %7828, ptr noundef @.str.4)
  %7830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7831 = load i32, ptr %7830, align 4, !tbaa !5
  %7832 = call ptr @s2n_strerror_debug(i32 noundef %7831, ptr noundef @.str.4)
  %7833 = call ptr @__errno_location() #11
  %7834 = load i32, ptr %7833, align 4, !tbaa !5
  %7835 = call ptr @strerror(i32 noundef %7834) #10
  %7836 = call ptr @__errno_location() #11
  %7837 = load i32, ptr %7836, align 4, !tbaa !5
  %7838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7825, ptr noundef @.str.2, i32 noundef %7826, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 514, ptr noundef %7829, ptr noundef %7832, ptr noundef %7835, i32 noundef %7837) #10
  br label %7856

7839:                                             ; preds = %7817, %7810
  %7840 = load i32, ptr %223, align 4, !tbaa !5
  %7841 = call ptr @__errno_location() #11
  store i32 %7840, ptr %7841, align 4, !tbaa !5
  %7842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7843 = load i32, ptr @test_count, align 4, !tbaa !5
  %7844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7845 = load i32, ptr %7844, align 4, !tbaa !5
  %7846 = call ptr @s2n_strerror(i32 noundef %7845, ptr noundef @.str.4)
  %7847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7848 = load i32, ptr %7847, align 4, !tbaa !5
  %7849 = call ptr @s2n_strerror_debug(i32 noundef %7848, ptr noundef @.str.4)
  %7850 = call ptr @__errno_location() #11
  %7851 = load i32, ptr %7850, align 4, !tbaa !5
  %7852 = call ptr @strerror(i32 noundef %7851) #10
  %7853 = call ptr @__errno_location() #11
  %7854 = load i32, ptr %7853, align 4, !tbaa !5
  %7855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7842, ptr noundef @.str.5, i32 noundef %7843, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 514, ptr noundef %7846, ptr noundef %7849, ptr noundef %7852, i32 noundef %7854) #10
  br label %7856

7856:                                             ; preds = %7839, %7822
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #10
  br label %7857

7857:                                             ; preds = %7856
  br label %7858

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

7859:                                             ; No predecessors!
  br label %7860

7860:                                             ; preds = %7859
  br label %7861

7861:                                             ; preds = %7860, %7801
  br label %7862

7862:                                             ; preds = %7861
  br label %7863

7863:                                             ; preds = %7862
  br label %7864

7864:                                             ; preds = %7863
  br label %7865

7865:                                             ; preds = %7864
  br label %7866

7866:                                             ; preds = %7865
  %7867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7867, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7868 = call ptr @__errno_location() #11
  store i32 0, ptr %7868, align 4, !tbaa !5
  br label %7869

7869:                                             ; preds = %7866
  br label %7870

7870:                                             ; preds = %7869
  br label %7871

7871:                                             ; preds = %7870
  br label %7872

7872:                                             ; preds = %7871
  %7873 = load i32, ptr getelementptr inbounds (%struct.s2n_signature_scheme, ptr @s2n_ecdsa_sha384, i32 0, i32 2), align 8, !tbaa !74
  %7874 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %211, i32 0, i32 2
  store i32 %7873, ptr %7874, align 8, !tbaa !74
  br label %7875

7875:                                             ; preds = %7872
  %7876 = load i32, ptr @test_count, align 4, !tbaa !5
  %7877 = add nsw i32 %7876, 1
  store i32 %7877, ptr @test_count, align 4, !tbaa !5
  %7878 = load ptr, ptr %213, align 8, !tbaa !9
  %7879 = call i32 @s2n_signature_algorithm_select(ptr noundef %7878)
  %7880 = getelementptr inbounds %struct.s2n_result, ptr %224, i32 0, i32 0
  store i32 %7879, ptr %7880, align 4
  %7881 = getelementptr inbounds %struct.s2n_result, ptr %224, i32 0, i32 0
  %7882 = load i32, ptr %7881, align 4
  %7883 = call zeroext i1 @s2n_result_is_ok(i32 %7882)
  br i1 %7883, label %7937, label %7884

7884:                                             ; preds = %7875
  br label %7885

7885:                                             ; preds = %7884
  br label %7886

7886:                                             ; preds = %7885
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #10
  %7887 = call ptr @__errno_location() #11
  %7888 = load i32, ptr %7887, align 4, !tbaa !5
  store i32 %7888, ptr %225, align 4, !tbaa !5
  %7889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7890 = call i32 @s2n_print_stacktrace(ptr noundef %7889)
  %7891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7892 = trunc i8 %7891 to i1
  br i1 %7892, label %7893, label %7915

7893:                                             ; preds = %7886
  %7894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7895 = call i32 @fileno(ptr noundef %7894) #10
  %7896 = call i32 @isatty(i32 noundef %7895) #10
  %7897 = icmp ne i32 %7896, 0
  br i1 %7897, label %7898, label %7915

7898:                                             ; preds = %7893
  %7899 = load i32, ptr %225, align 4, !tbaa !5
  %7900 = call ptr @__errno_location() #11
  store i32 %7899, ptr %7900, align 4, !tbaa !5
  %7901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7902 = load i32, ptr @test_count, align 4, !tbaa !5
  %7903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7904 = load i32, ptr %7903, align 4, !tbaa !5
  %7905 = call ptr @s2n_strerror(i32 noundef %7904, ptr noundef @.str.4)
  %7906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7907 = load i32, ptr %7906, align 4, !tbaa !5
  %7908 = call ptr @s2n_strerror_debug(i32 noundef %7907, ptr noundef @.str.4)
  %7909 = call ptr @__errno_location() #11
  %7910 = load i32, ptr %7909, align 4, !tbaa !5
  %7911 = call ptr @strerror(i32 noundef %7910) #10
  %7912 = call ptr @__errno_location() #11
  %7913 = load i32, ptr %7912, align 4, !tbaa !5
  %7914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7901, ptr noundef @.str.2, i32 noundef %7902, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 518, ptr noundef %7905, ptr noundef %7908, ptr noundef %7911, i32 noundef %7913) #10
  br label %7932

7915:                                             ; preds = %7893, %7886
  %7916 = load i32, ptr %225, align 4, !tbaa !5
  %7917 = call ptr @__errno_location() #11
  store i32 %7916, ptr %7917, align 4, !tbaa !5
  %7918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7919 = load i32, ptr @test_count, align 4, !tbaa !5
  %7920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7921 = load i32, ptr %7920, align 4, !tbaa !5
  %7922 = call ptr @s2n_strerror(i32 noundef %7921, ptr noundef @.str.4)
  %7923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7924 = load i32, ptr %7923, align 4, !tbaa !5
  %7925 = call ptr @s2n_strerror_debug(i32 noundef %7924, ptr noundef @.str.4)
  %7926 = call ptr @__errno_location() #11
  %7927 = load i32, ptr %7926, align 4, !tbaa !5
  %7928 = call ptr @strerror(i32 noundef %7927) #10
  %7929 = call ptr @__errno_location() #11
  %7930 = load i32, ptr %7929, align 4, !tbaa !5
  %7931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7918, ptr noundef @.str.5, i32 noundef %7919, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 518, ptr noundef %7922, ptr noundef %7925, ptr noundef %7928, i32 noundef %7930) #10
  br label %7932

7932:                                             ; preds = %7915, %7898
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #10
  br label %7933

7933:                                             ; preds = %7932
  br label %7934

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

7935:                                             ; No predecessors!
  br label %7936

7936:                                             ; preds = %7935
  br label %7937

7937:                                             ; preds = %7936, %7875
  br label %7938

7938:                                             ; preds = %7937
  br label %7939

7939:                                             ; preds = %7938
  call void @llvm.lifetime.end.p0(i64 80, ptr %215) #10
  %7940 = call i32 @s2n_connection_ptr_free(ptr noundef %213)
  %7941 = getelementptr inbounds %struct.s2n_result, ptr %226, i32 0, i32 0
  store i32 %7940, ptr %7941, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %212) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %211) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %227) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %227, ptr align 8 @s2n_rsa_pss_rsae_sha256, i64 40, i1 false), !tbaa.struct !73
  %7942 = load i32, ptr getelementptr inbounds (%struct.s2n_signature_scheme, ptr @s2n_rsa_pkcs1_sha256, i32 0, i32 3), align 4, !tbaa !75
  %7943 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %227, i32 0, i32 3
  store i32 %7942, ptr %7943, align 4, !tbaa !75
  call void @llvm.lifetime.start.p0(i64 8, ptr %228) #10
  store ptr %227, ptr %228, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %229) #10
  %7944 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7944, ptr %229, align 8, !tbaa !9
  %7945 = load ptr, ptr %229, align 8, !tbaa !9
  %7946 = getelementptr inbounds %struct.s2n_connection, ptr %7945, i32 0, i32 23
  store i8 34, ptr %7946, align 4, !tbaa !50
  %7947 = load ptr, ptr %229, align 8, !tbaa !9
  %7948 = getelementptr inbounds %struct.s2n_connection, ptr %7947, i32 0, i32 27
  %7949 = load ptr, ptr %7948, align 8, !tbaa !66
  %7950 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7949, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %7950, align 8, !tbaa !67
  br label %7951

7951:                                             ; preds = %7939
  %7952 = load i32, ptr @test_count, align 4, !tbaa !5
  %7953 = add nsw i32 %7952, 1
  store i32 %7953, ptr @test_count, align 4, !tbaa !5
  %7954 = load ptr, ptr %229, align 8, !tbaa !9
  %7955 = load ptr, ptr %75, align 8, !tbaa !9
  %7956 = call i32 @s2n_connection_set_config(ptr noundef %7954, ptr noundef %7955)
  %7957 = icmp eq i32 %7956, -1
  br i1 %7957, label %7958, label %8011

7958:                                             ; preds = %7951
  br label %7959

7959:                                             ; preds = %7958
  br label %7960

7960:                                             ; preds = %7959
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #10
  %7961 = call ptr @__errno_location() #11
  %7962 = load i32, ptr %7961, align 4, !tbaa !5
  store i32 %7962, ptr %230, 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) #10
  %7970 = call i32 @isatty(i32 noundef %7969) #10
  %7971 = icmp ne i32 %7970, 0
  br i1 %7971, label %7972, label %7989

7972:                                             ; preds = %7967
  %7973 = load i32, ptr %230, align 4, !tbaa !5
  %7974 = call ptr @__errno_location() #11
  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() #11
  %7984 = load i32, ptr %7983, align 4, !tbaa !5
  %7985 = call ptr @strerror(i32 noundef %7984) #10
  %7986 = call ptr @__errno_location() #11
  %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.37, ptr noundef @.str.1, i32 noundef 534, ptr noundef %7979, ptr noundef %7982, ptr noundef %7985, i32 noundef %7987) #10
  br label %8006

7989:                                             ; preds = %7967, %7960
  %7990 = load i32, ptr %230, align 4, !tbaa !5
  %7991 = call ptr @__errno_location() #11
  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() #11
  %8001 = load i32, ptr %8000, align 4, !tbaa !5
  %8002 = call ptr @strerror(i32 noundef %8001) #10
  %8003 = call ptr @__errno_location() #11
  %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.37, ptr noundef @.str.1, i32 noundef 534, ptr noundef %7996, ptr noundef %7999, ptr noundef %8002, i32 noundef %8004) #10
  br label %8006

8006:                                             ; preds = %7989, %7972
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #10
  br label %8007

8007:                                             ; preds = %8006
  br label %8008

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

8009:                                             ; No predecessors!
  br label %8010

8010:                                             ; preds = %8009
  br label %8011

8011:                                             ; preds = %8010, %7951
  br label %8012

8012:                                             ; preds = %8011
  br label %8013

8013:                                             ; preds = %8012
  call void @llvm.lifetime.start.p0(i64 80, ptr %231) #10
  call void @llvm.memset.p0.i64(ptr align 8 %231, i8 0, i64 80, i1 false)
  br label %8014

8014:                                             ; preds = %8013
  %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 %229, align 8, !tbaa !9
  %8018 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %8017, ptr noundef %231, ptr noundef %228, i64 noundef 1)
  %8019 = getelementptr inbounds %struct.s2n_result, ptr %232, i32 0, i32 0
  store i32 %8018, ptr %8019, align 4
  %8020 = getelementptr inbounds %struct.s2n_result, ptr %232, i32 0, i32 0
  %8021 = load i32, ptr %8020, align 4
  %8022 = call zeroext i1 @s2n_result_is_ok(i32 %8021)
  br i1 %8022, label %8076, label %8023

8023:                                             ; preds = %8014
  br label %8024

8024:                                             ; preds = %8023
  br label %8025

8025:                                             ; preds = %8024
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #10
  %8026 = call ptr @__errno_location() #11
  %8027 = load i32, ptr %8026, align 4, !tbaa !5
  store i32 %8027, ptr %233, align 4, !tbaa !5
  %8028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8029 = call i32 @s2n_print_stacktrace(ptr noundef %8028)
  %8030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8031 = trunc i8 %8030 to i1
  br i1 %8031, label %8032, label %8054

8032:                                             ; preds = %8025
  %8033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8034 = call i32 @fileno(ptr noundef %8033) #10
  %8035 = call i32 @isatty(i32 noundef %8034) #10
  %8036 = icmp ne i32 %8035, 0
  br i1 %8036, label %8037, label %8054

8037:                                             ; preds = %8032
  %8038 = load i32, ptr %233, align 4, !tbaa !5
  %8039 = call ptr @__errno_location() #11
  store i32 %8038, ptr %8039, align 4, !tbaa !5
  %8040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8041 = load i32, ptr @test_count, align 4, !tbaa !5
  %8042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8043 = load i32, ptr %8042, align 4, !tbaa !5
  %8044 = call ptr @s2n_strerror(i32 noundef %8043, ptr noundef @.str.4)
  %8045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8046 = load i32, ptr %8045, align 4, !tbaa !5
  %8047 = call ptr @s2n_strerror_debug(i32 noundef %8046, ptr noundef @.str.4)
  %8048 = call ptr @__errno_location() #11
  %8049 = load i32, ptr %8048, align 4, !tbaa !5
  %8050 = call ptr @strerror(i32 noundef %8049) #10
  %8051 = call ptr @__errno_location() #11
  %8052 = load i32, ptr %8051, align 4, !tbaa !5
  %8053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8040, ptr noundef @.str.2, i32 noundef %8041, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 538, ptr noundef %8044, ptr noundef %8047, ptr noundef %8050, i32 noundef %8052) #10
  br label %8071

8054:                                             ; preds = %8032, %8025
  %8055 = load i32, ptr %233, align 4, !tbaa !5
  %8056 = call ptr @__errno_location() #11
  store i32 %8055, ptr %8056, align 4, !tbaa !5
  %8057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8058 = load i32, ptr @test_count, align 4, !tbaa !5
  %8059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8060 = load i32, ptr %8059, align 4, !tbaa !5
  %8061 = call ptr @s2n_strerror(i32 noundef %8060, ptr noundef @.str.4)
  %8062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8063 = load i32, ptr %8062, align 4, !tbaa !5
  %8064 = call ptr @s2n_strerror_debug(i32 noundef %8063, ptr noundef @.str.4)
  %8065 = call ptr @__errno_location() #11
  %8066 = load i32, ptr %8065, align 4, !tbaa !5
  %8067 = call ptr @strerror(i32 noundef %8066) #10
  %8068 = call ptr @__errno_location() #11
  %8069 = load i32, ptr %8068, align 4, !tbaa !5
  %8070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8057, ptr noundef @.str.5, i32 noundef %8058, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 538, ptr noundef %8061, ptr noundef %8064, ptr noundef %8067, i32 noundef %8069) #10
  br label %8071

8071:                                             ; preds = %8054, %8037
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #10
  br label %8072

8072:                                             ; preds = %8071
  br label %8073

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

8074:                                             ; No predecessors!
  br label %8075

8075:                                             ; preds = %8074
  br label %8076

8076:                                             ; preds = %8075, %8014
  br label %8077

8077:                                             ; preds = %8076
  br label %8078

8078:                                             ; preds = %8077
  br label %8079

8079:                                             ; preds = %8078
  %8080 = load i32, ptr @test_count, align 4, !tbaa !5
  %8081 = add nsw i32 %8080, 1
  store i32 %8081, ptr @test_count, align 4, !tbaa !5
  %8082 = load ptr, ptr %229, align 8, !tbaa !9
  %8083 = getelementptr inbounds %struct.s2n_connection, ptr %8082, i32 0, i32 32
  %8084 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %8083, i32 0, i32 4
  %8085 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %8084, ptr noundef %228, i64 noundef 1)
  %8086 = getelementptr inbounds %struct.s2n_result, ptr %234, i32 0, i32 0
  store i32 %8085, ptr %8086, align 4
  %8087 = getelementptr inbounds %struct.s2n_result, ptr %234, i32 0, i32 0
  %8088 = load i32, ptr %8087, align 4
  %8089 = call zeroext i1 @s2n_result_is_ok(i32 %8088)
  br i1 %8089, label %8143, label %8090

8090:                                             ; preds = %8079
  br label %8091

8091:                                             ; preds = %8090
  br label %8092

8092:                                             ; preds = %8091
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #10
  %8093 = call ptr @__errno_location() #11
  %8094 = load i32, ptr %8093, align 4, !tbaa !5
  store i32 %8094, ptr %235, align 4, !tbaa !5
  %8095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8096 = call i32 @s2n_print_stacktrace(ptr noundef %8095)
  %8097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8098 = trunc i8 %8097 to i1
  br i1 %8098, label %8099, label %8121

8099:                                             ; preds = %8092
  %8100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8101 = call i32 @fileno(ptr noundef %8100) #10
  %8102 = call i32 @isatty(i32 noundef %8101) #10
  %8103 = icmp ne i32 %8102, 0
  br i1 %8103, label %8104, label %8121

8104:                                             ; preds = %8099
  %8105 = load i32, ptr %235, align 4, !tbaa !5
  %8106 = call ptr @__errno_location() #11
  store i32 %8105, ptr %8106, align 4, !tbaa !5
  %8107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8108 = load i32, ptr @test_count, align 4, !tbaa !5
  %8109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8110 = load i32, ptr %8109, align 4, !tbaa !5
  %8111 = call ptr @s2n_strerror(i32 noundef %8110, ptr noundef @.str.4)
  %8112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8113 = load i32, ptr %8112, align 4, !tbaa !5
  %8114 = call ptr @s2n_strerror_debug(i32 noundef %8113, ptr noundef @.str.4)
  %8115 = call ptr @__errno_location() #11
  %8116 = load i32, ptr %8115, align 4, !tbaa !5
  %8117 = call ptr @strerror(i32 noundef %8116) #10
  %8118 = call ptr @__errno_location() #11
  %8119 = load i32, ptr %8118, align 4, !tbaa !5
  %8120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8107, ptr noundef @.str.2, i32 noundef %8108, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 540, ptr noundef %8111, ptr noundef %8114, ptr noundef %8117, i32 noundef %8119) #10
  br label %8138

8121:                                             ; preds = %8099, %8092
  %8122 = load i32, ptr %235, align 4, !tbaa !5
  %8123 = call ptr @__errno_location() #11
  store i32 %8122, ptr %8123, align 4, !tbaa !5
  %8124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8125 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8127, ptr noundef @.str.4)
  %8129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8130 = load i32, ptr %8129, align 4, !tbaa !5
  %8131 = call ptr @s2n_strerror_debug(i32 noundef %8130, ptr noundef @.str.4)
  %8132 = call ptr @__errno_location() #11
  %8133 = load i32, ptr %8132, align 4, !tbaa !5
  %8134 = call ptr @strerror(i32 noundef %8133) #10
  %8135 = call ptr @__errno_location() #11
  %8136 = load i32, ptr %8135, align 4, !tbaa !5
  %8137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8124, ptr noundef @.str.5, i32 noundef %8125, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 540, ptr noundef %8128, ptr noundef %8131, ptr noundef %8134, i32 noundef %8136) #10
  br label %8138

8138:                                             ; preds = %8121, %8104
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #10
  br label %8139

8139:                                             ; preds = %8138
  br label %8140

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

8141:                                             ; No predecessors!
  br label %8142

8142:                                             ; preds = %8141
  br label %8143

8143:                                             ; preds = %8142, %8079
  br label %8144

8144:                                             ; preds = %8143
  br label %8145

8145:                                             ; preds = %8144
  br label %8146

8146:                                             ; preds = %8145
  br label %8147

8147:                                             ; preds = %8146
  br label %8148

8148:                                             ; preds = %8147
  %8149 = load i32, ptr @test_count, align 4, !tbaa !5
  %8150 = add nsw i32 %8149, 1
  store i32 %8150, ptr @test_count, align 4, !tbaa !5
  %8151 = load ptr, ptr %229, align 8, !tbaa !9
  %8152 = call i32 @s2n_signature_algorithm_select(ptr noundef %8151)
  %8153 = getelementptr inbounds %struct.s2n_result, ptr %236, i32 0, i32 0
  store i32 %8152, ptr %8153, align 4
  %8154 = getelementptr inbounds %struct.s2n_result, ptr %236, i32 0, i32 0
  %8155 = load i32, ptr %8154, align 4
  %8156 = call zeroext i1 @s2n_result_is_error(i32 %8155)
  br i1 %8156, label %8210, label %8157

8157:                                             ; preds = %8148
  br label %8158

8158:                                             ; preds = %8157
  br label %8159

8159:                                             ; preds = %8158
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #10
  %8160 = call ptr @__errno_location() #11
  %8161 = load i32, ptr %8160, align 4, !tbaa !5
  store i32 %8161, ptr %237, align 4, !tbaa !5
  %8162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8163 = call i32 @s2n_print_stacktrace(ptr noundef %8162)
  %8164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8165 = trunc i8 %8164 to i1
  br i1 %8165, label %8166, label %8188

8166:                                             ; preds = %8159
  %8167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8168 = call i32 @fileno(ptr noundef %8167) #10
  %8169 = call i32 @isatty(i32 noundef %8168) #10
  %8170 = icmp ne i32 %8169, 0
  br i1 %8170, label %8171, label %8188

8171:                                             ; preds = %8166
  %8172 = load i32, ptr %237, align 4, !tbaa !5
  %8173 = call ptr @__errno_location() #11
  store i32 %8172, ptr %8173, align 4, !tbaa !5
  %8174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8175 = load i32, ptr @test_count, align 4, !tbaa !5
  %8176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8177 = load i32, ptr %8176, align 4, !tbaa !5
  %8178 = call ptr @s2n_strerror(i32 noundef %8177, ptr noundef @.str.4)
  %8179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8180 = load i32, ptr %8179, align 4, !tbaa !5
  %8181 = call ptr @s2n_strerror_debug(i32 noundef %8180, ptr noundef @.str.4)
  %8182 = call ptr @__errno_location() #11
  %8183 = load i32, ptr %8182, align 4, !tbaa !5
  %8184 = call ptr @strerror(i32 noundef %8183) #10
  %8185 = call ptr @__errno_location() #11
  %8186 = load i32, ptr %8185, align 4, !tbaa !5
  %8187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8174, ptr noundef @.str.2, i32 noundef %8175, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 545, ptr noundef %8178, ptr noundef %8181, ptr noundef %8184, i32 noundef %8186) #10
  br label %8205

8188:                                             ; preds = %8166, %8159
  %8189 = load i32, ptr %237, align 4, !tbaa !5
  %8190 = call ptr @__errno_location() #11
  store i32 %8189, ptr %8190, align 4, !tbaa !5
  %8191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8192 = load i32, ptr @test_count, align 4, !tbaa !5
  %8193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8194 = load i32, ptr %8193, align 4, !tbaa !5
  %8195 = call ptr @s2n_strerror(i32 noundef %8194, ptr noundef @.str.4)
  %8196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8197 = load i32, ptr %8196, align 4, !tbaa !5
  %8198 = call ptr @s2n_strerror_debug(i32 noundef %8197, ptr noundef @.str.4)
  %8199 = call ptr @__errno_location() #11
  %8200 = load i32, ptr %8199, align 4, !tbaa !5
  %8201 = call ptr @strerror(i32 noundef %8200) #10
  %8202 = call ptr @__errno_location() #11
  %8203 = load i32, ptr %8202, align 4, !tbaa !5
  %8204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8191, ptr noundef @.str.5, i32 noundef %8192, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 545, ptr noundef %8195, ptr noundef %8198, ptr noundef %8201, i32 noundef %8203) #10
  br label %8205

8205:                                             ; preds = %8188, %8171
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #10
  br label %8206

8206:                                             ; preds = %8205
  br label %8207

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

8208:                                             ; No predecessors!
  br label %8209

8209:                                             ; preds = %8208
  br label %8210

8210:                                             ; preds = %8209, %8148
  br label %8211

8211:                                             ; preds = %8210
  br label %8212

8212:                                             ; preds = %8211
  br label %8213

8213:                                             ; preds = %8212
  %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8217 = load i32, ptr %8216, align 4, !tbaa !5
  %8218 = icmp eq i32 %8217, 335544349
  br i1 %8218, label %8272, label %8219

8219:                                             ; preds = %8213
  br label %8220

8220:                                             ; preds = %8219
  br label %8221

8221:                                             ; preds = %8220
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #10
  %8222 = call ptr @__errno_location() #11
  %8223 = load i32, ptr %8222, align 4, !tbaa !5
  store i32 %8223, ptr %238, align 4, !tbaa !5
  %8224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8225 = call i32 @s2n_print_stacktrace(ptr noundef %8224)
  %8226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8227 = trunc i8 %8226 to i1
  br i1 %8227, label %8228, label %8250

8228:                                             ; preds = %8221
  %8229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8230 = call i32 @fileno(ptr noundef %8229) #10
  %8231 = call i32 @isatty(i32 noundef %8230) #10
  %8232 = icmp ne i32 %8231, 0
  br i1 %8232, label %8233, label %8250

8233:                                             ; preds = %8228
  %8234 = load i32, ptr %238, align 4, !tbaa !5
  %8235 = call ptr @__errno_location() #11
  store i32 %8234, ptr %8235, align 4, !tbaa !5
  %8236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8237 = load i32, ptr @test_count, align 4, !tbaa !5
  %8238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8239 = load i32, ptr %8238, align 4, !tbaa !5
  %8240 = call ptr @s2n_strerror(i32 noundef %8239, ptr noundef @.str.4)
  %8241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8242 = load i32, ptr %8241, align 4, !tbaa !5
  %8243 = call ptr @s2n_strerror_debug(i32 noundef %8242, ptr noundef @.str.4)
  %8244 = call ptr @__errno_location() #11
  %8245 = load i32, ptr %8244, align 4, !tbaa !5
  %8246 = call ptr @strerror(i32 noundef %8245) #10
  %8247 = call ptr @__errno_location() #11
  %8248 = load i32, ptr %8247, align 4, !tbaa !5
  %8249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8236, ptr noundef @.str.2, i32 noundef %8237, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 545, ptr noundef %8240, ptr noundef %8243, ptr noundef %8246, i32 noundef %8248) #10
  br label %8267

8250:                                             ; preds = %8228, %8221
  %8251 = load i32, ptr %238, align 4, !tbaa !5
  %8252 = call ptr @__errno_location() #11
  store i32 %8251, ptr %8252, align 4, !tbaa !5
  %8253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8254 = load i32, ptr @test_count, align 4, !tbaa !5
  %8255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8256 = load i32, ptr %8255, align 4, !tbaa !5
  %8257 = call ptr @s2n_strerror(i32 noundef %8256, ptr noundef @.str.4)
  %8258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8259 = load i32, ptr %8258, align 4, !tbaa !5
  %8260 = call ptr @s2n_strerror_debug(i32 noundef %8259, ptr noundef @.str.4)
  %8261 = call ptr @__errno_location() #11
  %8262 = load i32, ptr %8261, align 4, !tbaa !5
  %8263 = call ptr @strerror(i32 noundef %8262) #10
  %8264 = call ptr @__errno_location() #11
  %8265 = load i32, ptr %8264, align 4, !tbaa !5
  %8266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8253, ptr noundef @.str.5, i32 noundef %8254, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 545, ptr noundef %8257, ptr noundef %8260, ptr noundef %8263, i32 noundef %8265) #10
  br label %8267

8267:                                             ; preds = %8250, %8233
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #10
  br label %8268

8268:                                             ; preds = %8267
  br label %8269

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

8270:                                             ; No predecessors!
  br label %8271

8271:                                             ; preds = %8270
  br label %8272

8272:                                             ; preds = %8271, %8213
  br label %8273

8273:                                             ; preds = %8272
  br label %8274

8274:                                             ; preds = %8273
  br label %8275

8275:                                             ; preds = %8274
  %8276 = load i32, ptr @test_count, align 4, !tbaa !5
  %8277 = add nsw i32 %8276, 1
  store i32 %8277, ptr @test_count, align 4, !tbaa !5
  %8278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8279 = load i32, ptr %8278, align 4, !tbaa !5
  %8280 = call ptr @s2n_strerror_debug(i32 noundef %8279, ptr noundef @.str.4)
  %8281 = icmp eq ptr %8280, null
  br i1 %8281, label %8282, label %8335

8282:                                             ; preds = %8275
  br label %8283

8283:                                             ; preds = %8282
  br label %8284

8284:                                             ; preds = %8283
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #10
  %8285 = call ptr @__errno_location() #11
  %8286 = load i32, ptr %8285, align 4, !tbaa !5
  store i32 %8286, ptr %239, align 4, !tbaa !5
  %8287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8288 = call i32 @s2n_print_stacktrace(ptr noundef %8287)
  %8289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8290 = trunc i8 %8289 to i1
  br i1 %8290, label %8291, label %8313

8291:                                             ; preds = %8284
  %8292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8293 = call i32 @fileno(ptr noundef %8292) #10
  %8294 = call i32 @isatty(i32 noundef %8293) #10
  %8295 = icmp ne i32 %8294, 0
  br i1 %8295, label %8296, label %8313

8296:                                             ; preds = %8291
  %8297 = load i32, ptr %239, align 4, !tbaa !5
  %8298 = call ptr @__errno_location() #11
  store i32 %8297, ptr %8298, align 4, !tbaa !5
  %8299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8300 = load i32, ptr @test_count, align 4, !tbaa !5
  %8301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8302 = load i32, ptr %8301, align 4, !tbaa !5
  %8303 = call ptr @s2n_strerror(i32 noundef %8302, ptr noundef @.str.4)
  %8304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8305 = load i32, ptr %8304, align 4, !tbaa !5
  %8306 = call ptr @s2n_strerror_debug(i32 noundef %8305, ptr noundef @.str.4)
  %8307 = call ptr @__errno_location() #11
  %8308 = load i32, ptr %8307, align 4, !tbaa !5
  %8309 = call ptr @strerror(i32 noundef %8308) #10
  %8310 = call ptr @__errno_location() #11
  %8311 = load i32, ptr %8310, align 4, !tbaa !5
  %8312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8299, ptr noundef @.str.2, i32 noundef %8300, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 545, ptr noundef %8303, ptr noundef %8306, ptr noundef %8309, i32 noundef %8311) #10
  br label %8330

8313:                                             ; preds = %8291, %8284
  %8314 = load i32, ptr %239, align 4, !tbaa !5
  %8315 = call ptr @__errno_location() #11
  store i32 %8314, ptr %8315, align 4, !tbaa !5
  %8316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8317 = load i32, ptr @test_count, align 4, !tbaa !5
  %8318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8319 = load i32, ptr %8318, align 4, !tbaa !5
  %8320 = call ptr @s2n_strerror(i32 noundef %8319, ptr noundef @.str.4)
  %8321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8322 = load i32, ptr %8321, align 4, !tbaa !5
  %8323 = call ptr @s2n_strerror_debug(i32 noundef %8322, ptr noundef @.str.4)
  %8324 = call ptr @__errno_location() #11
  %8325 = load i32, ptr %8324, align 4, !tbaa !5
  %8326 = call ptr @strerror(i32 noundef %8325) #10
  %8327 = call ptr @__errno_location() #11
  %8328 = load i32, ptr %8327, align 4, !tbaa !5
  %8329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8316, ptr noundef @.str.5, i32 noundef %8317, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 545, ptr noundef %8320, ptr noundef %8323, ptr noundef %8326, i32 noundef %8328) #10
  br label %8330

8330:                                             ; preds = %8313, %8296
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #10
  br label %8331

8331:                                             ; preds = %8330
  br label %8332

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

8333:                                             ; No predecessors!
  br label %8334

8334:                                             ; preds = %8333
  br label %8335

8335:                                             ; preds = %8334, %8275
  br label %8336

8336:                                             ; preds = %8335
  br label %8337

8337:                                             ; preds = %8336
  br label %8338

8338:                                             ; preds = %8337
  br label %8339

8339:                                             ; preds = %8338
  br label %8340

8340:                                             ; preds = %8339
  %8341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8341, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8342 = call ptr @__errno_location() #11
  store i32 0, ptr %8342, align 4, !tbaa !5
  br label %8343

8343:                                             ; preds = %8340
  br label %8344

8344:                                             ; preds = %8343
  br label %8345

8345:                                             ; preds = %8344
  br label %8346

8346:                                             ; preds = %8345
  %8347 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported()
  br i1 %8347, label %8348, label %8416

8348:                                             ; preds = %8346
  %8349 = load i32, ptr getelementptr inbounds (%struct.s2n_signature_scheme, ptr @s2n_rsa_pss_rsae_sha256, i32 0, i32 3), align 4, !tbaa !75
  %8350 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %227, i32 0, i32 3
  store i32 %8349, ptr %8350, align 4, !tbaa !75
  br label %8351

8351:                                             ; preds = %8348
  %8352 = load i32, ptr @test_count, align 4, !tbaa !5
  %8353 = add nsw i32 %8352, 1
  store i32 %8353, ptr @test_count, align 4, !tbaa !5
  %8354 = load ptr, ptr %229, align 8, !tbaa !9
  %8355 = call i32 @s2n_signature_algorithm_select(ptr noundef %8354)
  %8356 = getelementptr inbounds %struct.s2n_result, ptr %240, i32 0, i32 0
  store i32 %8355, ptr %8356, align 4
  %8357 = getelementptr inbounds %struct.s2n_result, ptr %240, i32 0, i32 0
  %8358 = load i32, ptr %8357, align 4
  %8359 = call zeroext i1 @s2n_result_is_ok(i32 %8358)
  br i1 %8359, label %8413, label %8360

8360:                                             ; preds = %8351
  br label %8361

8361:                                             ; preds = %8360
  br label %8362

8362:                                             ; preds = %8361
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #10
  %8363 = call ptr @__errno_location() #11
  %8364 = load i32, ptr %8363, align 4, !tbaa !5
  store i32 %8364, ptr %241, align 4, !tbaa !5
  %8365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8366 = call i32 @s2n_print_stacktrace(ptr noundef %8365)
  %8367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8368 = trunc i8 %8367 to i1
  br i1 %8368, label %8369, label %8391

8369:                                             ; preds = %8362
  %8370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8371 = call i32 @fileno(ptr noundef %8370) #10
  %8372 = call i32 @isatty(i32 noundef %8371) #10
  %8373 = icmp ne i32 %8372, 0
  br i1 %8373, label %8374, label %8391

8374:                                             ; preds = %8369
  %8375 = load i32, ptr %241, align 4, !tbaa !5
  %8376 = call ptr @__errno_location() #11
  store i32 %8375, ptr %8376, align 4, !tbaa !5
  %8377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8378 = load i32, ptr @test_count, align 4, !tbaa !5
  %8379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8380 = load i32, ptr %8379, align 4, !tbaa !5
  %8381 = call ptr @s2n_strerror(i32 noundef %8380, ptr noundef @.str.4)
  %8382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8383 = load i32, ptr %8382, align 4, !tbaa !5
  %8384 = call ptr @s2n_strerror_debug(i32 noundef %8383, ptr noundef @.str.4)
  %8385 = call ptr @__errno_location() #11
  %8386 = load i32, ptr %8385, align 4, !tbaa !5
  %8387 = call ptr @strerror(i32 noundef %8386) #10
  %8388 = call ptr @__errno_location() #11
  %8389 = load i32, ptr %8388, align 4, !tbaa !5
  %8390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8377, ptr noundef @.str.2, i32 noundef %8378, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 550, ptr noundef %8381, ptr noundef %8384, ptr noundef %8387, i32 noundef %8389) #10
  br label %8408

8391:                                             ; preds = %8369, %8362
  %8392 = load i32, ptr %241, align 4, !tbaa !5
  %8393 = call ptr @__errno_location() #11
  store i32 %8392, ptr %8393, align 4, !tbaa !5
  %8394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8395 = load i32, ptr @test_count, align 4, !tbaa !5
  %8396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8397 = load i32, ptr %8396, align 4, !tbaa !5
  %8398 = call ptr @s2n_strerror(i32 noundef %8397, ptr noundef @.str.4)
  %8399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8400 = load i32, ptr %8399, align 4, !tbaa !5
  %8401 = call ptr @s2n_strerror_debug(i32 noundef %8400, ptr noundef @.str.4)
  %8402 = call ptr @__errno_location() #11
  %8403 = load i32, ptr %8402, align 4, !tbaa !5
  %8404 = call ptr @strerror(i32 noundef %8403) #10
  %8405 = call ptr @__errno_location() #11
  %8406 = load i32, ptr %8405, align 4, !tbaa !5
  %8407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8394, ptr noundef @.str.5, i32 noundef %8395, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 550, ptr noundef %8398, ptr noundef %8401, ptr noundef %8404, i32 noundef %8406) #10
  br label %8408

8408:                                             ; preds = %8391, %8374
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #10
  br label %8409

8409:                                             ; preds = %8408
  br label %8410

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

8411:                                             ; No predecessors!
  br label %8412

8412:                                             ; preds = %8411
  br label %8413

8413:                                             ; preds = %8412, %8351
  br label %8414

8414:                                             ; preds = %8413
  br label %8415

8415:                                             ; preds = %8414
  br label %8416

8416:                                             ; preds = %8415, %8346
  call void @llvm.lifetime.end.p0(i64 80, ptr %231) #10
  %8417 = call i32 @s2n_connection_ptr_free(ptr noundef %229)
  %8418 = getelementptr inbounds %struct.s2n_result, ptr %242, i32 0, i32 0
  store i32 %8417, ptr %8418, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %229) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %227) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %243) #10
  store ptr @s2n_rsa_pkcs1_sha256, ptr %243, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #10
  %8419 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8419, ptr %244, align 8, !tbaa !9
  %8420 = load ptr, ptr %244, align 8, !tbaa !9
  %8421 = getelementptr inbounds %struct.s2n_connection, ptr %8420, i32 0, i32 23
  store i8 33, ptr %8421, align 4, !tbaa !50
  %8422 = load ptr, ptr %244, align 8, !tbaa !9
  %8423 = getelementptr inbounds %struct.s2n_connection, ptr %8422, i32 0, i32 27
  %8424 = load ptr, ptr %8423, align 8, !tbaa !66
  %8425 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8424, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %8425, align 8, !tbaa !67
  call void @llvm.lifetime.start.p0(i64 80, ptr %245) #10
  call void @llvm.memset.p0.i64(ptr align 8 %245, i8 0, i64 80, i1 false)
  br label %8426

8426:                                             ; preds = %8416
  %8427 = load i32, ptr @test_count, align 4, !tbaa !5
  %8428 = add nsw i32 %8427, 1
  store i32 %8428, ptr @test_count, align 4, !tbaa !5
  %8429 = load ptr, ptr %244, align 8, !tbaa !9
  %8430 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %8429, ptr noundef %245, ptr noundef %243, i64 noundef 1)
  %8431 = getelementptr inbounds %struct.s2n_result, ptr %246, i32 0, i32 0
  store i32 %8430, ptr %8431, align 4
  %8432 = getelementptr inbounds %struct.s2n_result, ptr %246, i32 0, i32 0
  %8433 = load i32, ptr %8432, align 4
  %8434 = call zeroext i1 @s2n_result_is_ok(i32 %8433)
  br i1 %8434, label %8488, label %8435

8435:                                             ; preds = %8426
  br label %8436

8436:                                             ; preds = %8435
  br label %8437

8437:                                             ; preds = %8436
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #10
  %8438 = call ptr @__errno_location() #11
  %8439 = load i32, ptr %8438, align 4, !tbaa !5
  store i32 %8439, ptr %247, align 4, !tbaa !5
  %8440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8441 = call i32 @s2n_print_stacktrace(ptr noundef %8440)
  %8442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8443 = trunc i8 %8442 to i1
  br i1 %8443, label %8444, label %8466

8444:                                             ; preds = %8437
  %8445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8446 = call i32 @fileno(ptr noundef %8445) #10
  %8447 = call i32 @isatty(i32 noundef %8446) #10
  %8448 = icmp ne i32 %8447, 0
  br i1 %8448, label %8449, label %8466

8449:                                             ; preds = %8444
  %8450 = load i32, ptr %247, align 4, !tbaa !5
  %8451 = call ptr @__errno_location() #11
  store i32 %8450, ptr %8451, align 4, !tbaa !5
  %8452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8453 = load i32, ptr @test_count, align 4, !tbaa !5
  %8454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8455 = load i32, ptr %8454, align 4, !tbaa !5
  %8456 = call ptr @s2n_strerror(i32 noundef %8455, ptr noundef @.str.4)
  %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_debug(i32 noundef %8458, ptr noundef @.str.4)
  %8460 = call ptr @__errno_location() #11
  %8461 = load i32, ptr %8460, align 4, !tbaa !5
  %8462 = call ptr @strerror(i32 noundef %8461) #10
  %8463 = call ptr @__errno_location() #11
  %8464 = load i32, ptr %8463, align 4, !tbaa !5
  %8465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8452, ptr noundef @.str.2, i32 noundef %8453, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 565, ptr noundef %8456, ptr noundef %8459, ptr noundef %8462, i32 noundef %8464) #10
  br label %8483

8466:                                             ; preds = %8444, %8437
  %8467 = load i32, ptr %247, align 4, !tbaa !5
  %8468 = call ptr @__errno_location() #11
  store i32 %8467, ptr %8468, align 4, !tbaa !5
  %8469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8470 = load i32, ptr @test_count, align 4, !tbaa !5
  %8471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8472 = load i32, ptr %8471, align 4, !tbaa !5
  %8473 = call ptr @s2n_strerror(i32 noundef %8472, ptr noundef @.str.4)
  %8474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8475 = load i32, ptr %8474, align 4, !tbaa !5
  %8476 = call ptr @s2n_strerror_debug(i32 noundef %8475, ptr noundef @.str.4)
  %8477 = call ptr @__errno_location() #11
  %8478 = load i32, ptr %8477, align 4, !tbaa !5
  %8479 = call ptr @strerror(i32 noundef %8478) #10
  %8480 = call ptr @__errno_location() #11
  %8481 = load i32, ptr %8480, align 4, !tbaa !5
  %8482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8469, ptr noundef @.str.5, i32 noundef %8470, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 565, ptr noundef %8473, ptr noundef %8476, ptr noundef %8479, i32 noundef %8481) #10
  br label %8483

8483:                                             ; preds = %8466, %8449
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #10
  br label %8484

8484:                                             ; preds = %8483
  br label %8485

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

8486:                                             ; No predecessors!
  br label %8487

8487:                                             ; preds = %8486
  br label %8488

8488:                                             ; preds = %8487, %8426
  br label %8489

8489:                                             ; preds = %8488
  br label %8490

8490:                                             ; preds = %8489
  br label %8491

8491:                                             ; preds = %8490
  %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 %244, align 8, !tbaa !9
  %8495 = getelementptr inbounds %struct.s2n_connection, ptr %8494, i32 0, i32 32
  %8496 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %8495, i32 0, i32 4
  %8497 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %8496, ptr noundef %243, i64 noundef 1)
  %8498 = getelementptr inbounds %struct.s2n_result, ptr %248, i32 0, i32 0
  store i32 %8497, ptr %8498, align 4
  %8499 = getelementptr inbounds %struct.s2n_result, ptr %248, i32 0, i32 0
  %8500 = load i32, ptr %8499, align 4
  %8501 = call zeroext i1 @s2n_result_is_ok(i32 %8500)
  br i1 %8501, label %8555, label %8502

8502:                                             ; preds = %8491
  br label %8503

8503:                                             ; preds = %8502
  br label %8504

8504:                                             ; preds = %8503
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #10
  %8505 = call ptr @__errno_location() #11
  %8506 = load i32, ptr %8505, align 4, !tbaa !5
  store i32 %8506, ptr %249, align 4, !tbaa !5
  %8507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8508 = call i32 @s2n_print_stacktrace(ptr noundef %8507)
  %8509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8510 = trunc i8 %8509 to i1
  br i1 %8510, label %8511, label %8533

8511:                                             ; preds = %8504
  %8512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8513 = call i32 @fileno(ptr noundef %8512) #10
  %8514 = call i32 @isatty(i32 noundef %8513) #10
  %8515 = icmp ne i32 %8514, 0
  br i1 %8515, label %8516, label %8533

8516:                                             ; preds = %8511
  %8517 = load i32, ptr %249, align 4, !tbaa !5
  %8518 = call ptr @__errno_location() #11
  store i32 %8517, ptr %8518, align 4, !tbaa !5
  %8519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8520 = load i32, ptr @test_count, align 4, !tbaa !5
  %8521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8522 = load i32, ptr %8521, align 4, !tbaa !5
  %8523 = call ptr @s2n_strerror(i32 noundef %8522, ptr noundef @.str.4)
  %8524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8525 = load i32, ptr %8524, align 4, !tbaa !5
  %8526 = call ptr @s2n_strerror_debug(i32 noundef %8525, ptr noundef @.str.4)
  %8527 = call ptr @__errno_location() #11
  %8528 = load i32, ptr %8527, align 4, !tbaa !5
  %8529 = call ptr @strerror(i32 noundef %8528) #10
  %8530 = call ptr @__errno_location() #11
  %8531 = load i32, ptr %8530, align 4, !tbaa !5
  %8532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8519, ptr noundef @.str.2, i32 noundef %8520, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 567, ptr noundef %8523, ptr noundef %8526, ptr noundef %8529, i32 noundef %8531) #10
  br label %8550

8533:                                             ; preds = %8511, %8504
  %8534 = load i32, ptr %249, align 4, !tbaa !5
  %8535 = call ptr @__errno_location() #11
  store i32 %8534, ptr %8535, align 4, !tbaa !5
  %8536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8537 = load i32, ptr @test_count, align 4, !tbaa !5
  %8538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8539 = load i32, ptr %8538, align 4, !tbaa !5
  %8540 = call ptr @s2n_strerror(i32 noundef %8539, ptr noundef @.str.4)
  %8541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8542 = load i32, ptr %8541, align 4, !tbaa !5
  %8543 = call ptr @s2n_strerror_debug(i32 noundef %8542, ptr noundef @.str.4)
  %8544 = call ptr @__errno_location() #11
  %8545 = load i32, ptr %8544, align 4, !tbaa !5
  %8546 = call ptr @strerror(i32 noundef %8545) #10
  %8547 = call ptr @__errno_location() #11
  %8548 = load i32, ptr %8547, align 4, !tbaa !5
  %8549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8536, ptr noundef @.str.5, i32 noundef %8537, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 567, ptr noundef %8540, ptr noundef %8543, ptr noundef %8546, i32 noundef %8548) #10
  br label %8550

8550:                                             ; preds = %8533, %8516
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #10
  br label %8551

8551:                                             ; preds = %8550
  br label %8552

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

8553:                                             ; No predecessors!
  br label %8554

8554:                                             ; preds = %8553
  br label %8555

8555:                                             ; preds = %8554, %8491
  br label %8556

8556:                                             ; preds = %8555
  br label %8557

8557:                                             ; preds = %8556
  br label %8558

8558:                                             ; preds = %8557
  br label %8559

8559:                                             ; preds = %8558
  br label %8560

8560:                                             ; preds = %8559
  %8561 = load i32, ptr @test_count, align 4, !tbaa !5
  %8562 = add nsw i32 %8561, 1
  store i32 %8562, ptr @test_count, align 4, !tbaa !5
  %8563 = load ptr, ptr %244, align 8, !tbaa !9
  %8564 = call i32 @s2n_signature_algorithm_select(ptr noundef %8563)
  %8565 = getelementptr inbounds %struct.s2n_result, ptr %250, i32 0, i32 0
  store i32 %8564, ptr %8565, align 4
  %8566 = getelementptr inbounds %struct.s2n_result, ptr %250, i32 0, i32 0
  %8567 = load i32, ptr %8566, align 4
  %8568 = call zeroext i1 @s2n_result_is_error(i32 %8567)
  br i1 %8568, label %8622, label %8569

8569:                                             ; preds = %8560
  br label %8570

8570:                                             ; preds = %8569
  br label %8571

8571:                                             ; preds = %8570
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #10
  %8572 = call ptr @__errno_location() #11
  %8573 = load i32, ptr %8572, align 4, !tbaa !5
  store i32 %8573, ptr %251, align 4, !tbaa !5
  %8574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8575 = call i32 @s2n_print_stacktrace(ptr noundef %8574)
  %8576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8577 = trunc i8 %8576 to i1
  br i1 %8577, label %8578, label %8600

8578:                                             ; preds = %8571
  %8579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8580 = call i32 @fileno(ptr noundef %8579) #10
  %8581 = call i32 @isatty(i32 noundef %8580) #10
  %8582 = icmp ne i32 %8581, 0
  br i1 %8582, label %8583, label %8600

8583:                                             ; preds = %8578
  %8584 = load i32, ptr %251, align 4, !tbaa !5
  %8585 = call ptr @__errno_location() #11
  store i32 %8584, ptr %8585, align 4, !tbaa !5
  %8586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8587 = load i32, ptr @test_count, align 4, !tbaa !5
  %8588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8589 = load i32, ptr %8588, align 4, !tbaa !5
  %8590 = call ptr @s2n_strerror(i32 noundef %8589, ptr noundef @.str.4)
  %8591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8592 = load i32, ptr %8591, align 4, !tbaa !5
  %8593 = call ptr @s2n_strerror_debug(i32 noundef %8592, ptr noundef @.str.4)
  %8594 = call ptr @__errno_location() #11
  %8595 = load i32, ptr %8594, align 4, !tbaa !5
  %8596 = call ptr @strerror(i32 noundef %8595) #10
  %8597 = call ptr @__errno_location() #11
  %8598 = load i32, ptr %8597, align 4, !tbaa !5
  %8599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8586, ptr noundef @.str.2, i32 noundef %8587, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 572, ptr noundef %8590, ptr noundef %8593, ptr noundef %8596, i32 noundef %8598) #10
  br label %8617

8600:                                             ; preds = %8578, %8571
  %8601 = load i32, ptr %251, align 4, !tbaa !5
  %8602 = call ptr @__errno_location() #11
  store i32 %8601, ptr %8602, align 4, !tbaa !5
  %8603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8604 = load i32, ptr @test_count, align 4, !tbaa !5
  %8605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8606 = load i32, ptr %8605, align 4, !tbaa !5
  %8607 = call ptr @s2n_strerror(i32 noundef %8606, ptr noundef @.str.4)
  %8608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8609 = load i32, ptr %8608, align 4, !tbaa !5
  %8610 = call ptr @s2n_strerror_debug(i32 noundef %8609, ptr noundef @.str.4)
  %8611 = call ptr @__errno_location() #11
  %8612 = load i32, ptr %8611, align 4, !tbaa !5
  %8613 = call ptr @strerror(i32 noundef %8612) #10
  %8614 = call ptr @__errno_location() #11
  %8615 = load i32, ptr %8614, align 4, !tbaa !5
  %8616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8603, ptr noundef @.str.5, i32 noundef %8604, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 572, ptr noundef %8607, ptr noundef %8610, ptr noundef %8613, i32 noundef %8615) #10
  br label %8617

8617:                                             ; preds = %8600, %8583
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #10
  br label %8618

8618:                                             ; preds = %8617
  br label %8619

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

8620:                                             ; No predecessors!
  br label %8621

8621:                                             ; preds = %8620
  br label %8622

8622:                                             ; preds = %8621, %8560
  br label %8623

8623:                                             ; preds = %8622
  br label %8624

8624:                                             ; preds = %8623
  br label %8625

8625:                                             ; preds = %8624
  %8626 = load i32, ptr @test_count, align 4, !tbaa !5
  %8627 = add nsw i32 %8626, 1
  store i32 %8627, ptr @test_count, align 4, !tbaa !5
  %8628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8629 = load i32, ptr %8628, align 4, !tbaa !5
  %8630 = icmp eq i32 %8629, 335544349
  br i1 %8630, label %8684, label %8631

8631:                                             ; preds = %8625
  br label %8632

8632:                                             ; preds = %8631
  br label %8633

8633:                                             ; preds = %8632
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #10
  %8634 = call ptr @__errno_location() #11
  %8635 = load i32, ptr %8634, align 4, !tbaa !5
  store i32 %8635, ptr %252, align 4, !tbaa !5
  %8636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8637 = call i32 @s2n_print_stacktrace(ptr noundef %8636)
  %8638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8639 = trunc i8 %8638 to i1
  br i1 %8639, label %8640, label %8662

8640:                                             ; preds = %8633
  %8641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8642 = call i32 @fileno(ptr noundef %8641) #10
  %8643 = call i32 @isatty(i32 noundef %8642) #10
  %8644 = icmp ne i32 %8643, 0
  br i1 %8644, label %8645, label %8662

8645:                                             ; preds = %8640
  %8646 = load i32, ptr %252, align 4, !tbaa !5
  %8647 = call ptr @__errno_location() #11
  store i32 %8646, ptr %8647, align 4, !tbaa !5
  %8648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8649 = load i32, ptr @test_count, align 4, !tbaa !5
  %8650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8651 = load i32, ptr %8650, align 4, !tbaa !5
  %8652 = call ptr @s2n_strerror(i32 noundef %8651, ptr noundef @.str.4)
  %8653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8654 = load i32, ptr %8653, align 4, !tbaa !5
  %8655 = call ptr @s2n_strerror_debug(i32 noundef %8654, ptr noundef @.str.4)
  %8656 = call ptr @__errno_location() #11
  %8657 = load i32, ptr %8656, align 4, !tbaa !5
  %8658 = call ptr @strerror(i32 noundef %8657) #10
  %8659 = call ptr @__errno_location() #11
  %8660 = load i32, ptr %8659, align 4, !tbaa !5
  %8661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8648, ptr noundef @.str.2, i32 noundef %8649, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 572, ptr noundef %8652, ptr noundef %8655, ptr noundef %8658, i32 noundef %8660) #10
  br label %8679

8662:                                             ; preds = %8640, %8633
  %8663 = load i32, ptr %252, align 4, !tbaa !5
  %8664 = call ptr @__errno_location() #11
  store i32 %8663, ptr %8664, align 4, !tbaa !5
  %8665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8666 = load i32, ptr @test_count, align 4, !tbaa !5
  %8667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8668 = load i32, ptr %8667, align 4, !tbaa !5
  %8669 = call ptr @s2n_strerror(i32 noundef %8668, ptr noundef @.str.4)
  %8670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8671 = load i32, ptr %8670, align 4, !tbaa !5
  %8672 = call ptr @s2n_strerror_debug(i32 noundef %8671, ptr noundef @.str.4)
  %8673 = call ptr @__errno_location() #11
  %8674 = load i32, ptr %8673, align 4, !tbaa !5
  %8675 = call ptr @strerror(i32 noundef %8674) #10
  %8676 = call ptr @__errno_location() #11
  %8677 = load i32, ptr %8676, align 4, !tbaa !5
  %8678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8665, ptr noundef @.str.5, i32 noundef %8666, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 572, ptr noundef %8669, ptr noundef %8672, ptr noundef %8675, i32 noundef %8677) #10
  br label %8679

8679:                                             ; preds = %8662, %8645
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #10
  br label %8680

8680:                                             ; preds = %8679
  br label %8681

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

8682:                                             ; No predecessors!
  br label %8683

8683:                                             ; preds = %8682
  br label %8684

8684:                                             ; preds = %8683, %8625
  br label %8685

8685:                                             ; preds = %8684
  br label %8686

8686:                                             ; preds = %8685
  br label %8687

8687:                                             ; preds = %8686
  %8688 = load i32, ptr @test_count, align 4, !tbaa !5
  %8689 = add nsw i32 %8688, 1
  store i32 %8689, ptr @test_count, align 4, !tbaa !5
  %8690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8691 = load i32, ptr %8690, align 4, !tbaa !5
  %8692 = call ptr @s2n_strerror_debug(i32 noundef %8691, ptr noundef @.str.4)
  %8693 = icmp eq ptr %8692, null
  br i1 %8693, label %8694, label %8747

8694:                                             ; preds = %8687
  br label %8695

8695:                                             ; preds = %8694
  br label %8696

8696:                                             ; preds = %8695
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #10
  %8697 = call ptr @__errno_location() #11
  %8698 = load i32, ptr %8697, align 4, !tbaa !5
  store i32 %8698, ptr %253, align 4, !tbaa !5
  %8699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8700 = call i32 @s2n_print_stacktrace(ptr noundef %8699)
  %8701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8702 = trunc i8 %8701 to i1
  br i1 %8702, label %8703, label %8725

8703:                                             ; preds = %8696
  %8704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8705 = call i32 @fileno(ptr noundef %8704) #10
  %8706 = call i32 @isatty(i32 noundef %8705) #10
  %8707 = icmp ne i32 %8706, 0
  br i1 %8707, label %8708, label %8725

8708:                                             ; preds = %8703
  %8709 = load i32, ptr %253, align 4, !tbaa !5
  %8710 = call ptr @__errno_location() #11
  store i32 %8709, ptr %8710, align 4, !tbaa !5
  %8711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8712 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8714, ptr noundef @.str.4)
  %8716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8717 = load i32, ptr %8716, align 4, !tbaa !5
  %8718 = call ptr @s2n_strerror_debug(i32 noundef %8717, ptr noundef @.str.4)
  %8719 = call ptr @__errno_location() #11
  %8720 = load i32, ptr %8719, align 4, !tbaa !5
  %8721 = call ptr @strerror(i32 noundef %8720) #10
  %8722 = call ptr @__errno_location() #11
  %8723 = load i32, ptr %8722, align 4, !tbaa !5
  %8724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8711, ptr noundef @.str.2, i32 noundef %8712, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 572, ptr noundef %8715, ptr noundef %8718, ptr noundef %8721, i32 noundef %8723) #10
  br label %8742

8725:                                             ; preds = %8703, %8696
  %8726 = load i32, ptr %253, align 4, !tbaa !5
  %8727 = call ptr @__errno_location() #11
  store i32 %8726, ptr %8727, align 4, !tbaa !5
  %8728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8729 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8731, ptr noundef @.str.4)
  %8733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8734 = load i32, ptr %8733, align 4, !tbaa !5
  %8735 = call ptr @s2n_strerror_debug(i32 noundef %8734, ptr noundef @.str.4)
  %8736 = call ptr @__errno_location() #11
  %8737 = load i32, ptr %8736, align 4, !tbaa !5
  %8738 = call ptr @strerror(i32 noundef %8737) #10
  %8739 = call ptr @__errno_location() #11
  %8740 = load i32, ptr %8739, align 4, !tbaa !5
  %8741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8728, ptr noundef @.str.5, i32 noundef %8729, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 572, ptr noundef %8732, ptr noundef %8735, ptr noundef %8738, i32 noundef %8740) #10
  br label %8742

8742:                                             ; preds = %8725, %8708
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #10
  br label %8743

8743:                                             ; preds = %8742
  br label %8744

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

8745:                                             ; No predecessors!
  br label %8746

8746:                                             ; preds = %8745
  br label %8747

8747:                                             ; preds = %8746, %8687
  br label %8748

8748:                                             ; preds = %8747
  br label %8749

8749:                                             ; preds = %8748
  br label %8750

8750:                                             ; preds = %8749
  br label %8751

8751:                                             ; preds = %8750
  br label %8752

8752:                                             ; preds = %8751
  %8753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8753, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8754 = call ptr @__errno_location() #11
  store i32 0, ptr %8754, align 4, !tbaa !5
  br label %8755

8755:                                             ; preds = %8752
  br label %8756

8756:                                             ; preds = %8755
  br label %8757

8757:                                             ; preds = %8756
  br label %8758

8758:                                             ; preds = %8757
  br label %8759

8759:                                             ; preds = %8758
  %8760 = load i32, ptr @test_count, align 4, !tbaa !5
  %8761 = add nsw i32 %8760, 1
  store i32 %8761, ptr @test_count, align 4, !tbaa !5
  %8762 = load ptr, ptr %244, align 8, !tbaa !9
  %8763 = load ptr, ptr %78, align 8, !tbaa !9
  %8764 = call i32 @s2n_connection_set_config(ptr noundef %8762, ptr noundef %8763)
  %8765 = icmp eq i32 %8764, -1
  br i1 %8765, label %8766, label %8819

8766:                                             ; preds = %8759
  br label %8767

8767:                                             ; preds = %8766
  br label %8768

8768:                                             ; preds = %8767
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #10
  %8769 = call ptr @__errno_location() #11
  %8770 = load i32, ptr %8769, align 4, !tbaa !5
  store i32 %8770, ptr %254, align 4, !tbaa !5
  %8771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8772 = call i32 @s2n_print_stacktrace(ptr noundef %8771)
  %8773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8774 = trunc i8 %8773 to i1
  br i1 %8774, label %8775, label %8797

8775:                                             ; preds = %8768
  %8776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8777 = call i32 @fileno(ptr noundef %8776) #10
  %8778 = call i32 @isatty(i32 noundef %8777) #10
  %8779 = icmp ne i32 %8778, 0
  br i1 %8779, label %8780, label %8797

8780:                                             ; preds = %8775
  %8781 = load i32, ptr %254, align 4, !tbaa !5
  %8782 = call ptr @__errno_location() #11
  store i32 %8781, ptr %8782, align 4, !tbaa !5
  %8783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8784 = load i32, ptr @test_count, align 4, !tbaa !5
  %8785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8786 = load i32, ptr %8785, align 4, !tbaa !5
  %8787 = call ptr @s2n_strerror(i32 noundef %8786, ptr noundef @.str.4)
  %8788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8789 = load i32, ptr %8788, align 4, !tbaa !5
  %8790 = call ptr @s2n_strerror_debug(i32 noundef %8789, ptr noundef @.str.4)
  %8791 = call ptr @__errno_location() #11
  %8792 = load i32, ptr %8791, align 4, !tbaa !5
  %8793 = call ptr @strerror(i32 noundef %8792) #10
  %8794 = call ptr @__errno_location() #11
  %8795 = load i32, ptr %8794, align 4, !tbaa !5
  %8796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8783, ptr noundef @.str.2, i32 noundef %8784, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 575, ptr noundef %8787, ptr noundef %8790, ptr noundef %8793, i32 noundef %8795) #10
  br label %8814

8797:                                             ; preds = %8775, %8768
  %8798 = load i32, ptr %254, align 4, !tbaa !5
  %8799 = call ptr @__errno_location() #11
  store i32 %8798, ptr %8799, align 4, !tbaa !5
  %8800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8801 = load i32, ptr @test_count, align 4, !tbaa !5
  %8802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8803 = load i32, ptr %8802, align 4, !tbaa !5
  %8804 = call ptr @s2n_strerror(i32 noundef %8803, ptr noundef @.str.4)
  %8805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8806 = load i32, ptr %8805, align 4, !tbaa !5
  %8807 = call ptr @s2n_strerror_debug(i32 noundef %8806, ptr noundef @.str.4)
  %8808 = call ptr @__errno_location() #11
  %8809 = load i32, ptr %8808, align 4, !tbaa !5
  %8810 = call ptr @strerror(i32 noundef %8809) #10
  %8811 = call ptr @__errno_location() #11
  %8812 = load i32, ptr %8811, align 4, !tbaa !5
  %8813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8800, ptr noundef @.str.5, i32 noundef %8801, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 575, ptr noundef %8804, ptr noundef %8807, ptr noundef %8810, i32 noundef %8812) #10
  br label %8814

8814:                                             ; preds = %8797, %8780
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #10
  br label %8815

8815:                                             ; preds = %8814
  br label %8816

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

8817:                                             ; No predecessors!
  br label %8818

8818:                                             ; preds = %8817
  br label %8819

8819:                                             ; preds = %8818, %8759
  br label %8820

8820:                                             ; preds = %8819
  br label %8821

8821:                                             ; preds = %8820
  br label %8822

8822:                                             ; preds = %8821
  br label %8823

8823:                                             ; preds = %8822
  br label %8824

8824:                                             ; preds = %8823
  %8825 = load i32, ptr @test_count, align 4, !tbaa !5
  %8826 = add nsw i32 %8825, 1
  store i32 %8826, ptr @test_count, align 4, !tbaa !5
  %8827 = load ptr, ptr %244, align 8, !tbaa !9
  %8828 = call i32 @s2n_signature_algorithm_select(ptr noundef %8827)
  %8829 = getelementptr inbounds %struct.s2n_result, ptr %255, i32 0, i32 0
  store i32 %8828, ptr %8829, align 4
  %8830 = getelementptr inbounds %struct.s2n_result, ptr %255, i32 0, i32 0
  %8831 = load i32, ptr %8830, align 4
  %8832 = call zeroext i1 @s2n_result_is_error(i32 %8831)
  br i1 %8832, label %8886, label %8833

8833:                                             ; preds = %8824
  br label %8834

8834:                                             ; preds = %8833
  br label %8835

8835:                                             ; preds = %8834
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #10
  %8836 = call ptr @__errno_location() #11
  %8837 = load i32, ptr %8836, align 4, !tbaa !5
  store i32 %8837, ptr %256, align 4, !tbaa !5
  %8838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8839 = call i32 @s2n_print_stacktrace(ptr noundef %8838)
  %8840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8841 = trunc i8 %8840 to i1
  br i1 %8841, label %8842, label %8864

8842:                                             ; preds = %8835
  %8843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8844 = call i32 @fileno(ptr noundef %8843) #10
  %8845 = call i32 @isatty(i32 noundef %8844) #10
  %8846 = icmp ne i32 %8845, 0
  br i1 %8846, label %8847, label %8864

8847:                                             ; preds = %8842
  %8848 = load i32, ptr %256, align 4, !tbaa !5
  %8849 = call ptr @__errno_location() #11
  store i32 %8848, ptr %8849, align 4, !tbaa !5
  %8850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8851 = load i32, ptr @test_count, align 4, !tbaa !5
  %8852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8853 = load i32, ptr %8852, align 4, !tbaa !5
  %8854 = call ptr @s2n_strerror(i32 noundef %8853, ptr noundef @.str.4)
  %8855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8856 = load i32, ptr %8855, align 4, !tbaa !5
  %8857 = call ptr @s2n_strerror_debug(i32 noundef %8856, ptr noundef @.str.4)
  %8858 = call ptr @__errno_location() #11
  %8859 = load i32, ptr %8858, align 4, !tbaa !5
  %8860 = call ptr @strerror(i32 noundef %8859) #10
  %8861 = call ptr @__errno_location() #11
  %8862 = load i32, ptr %8861, align 4, !tbaa !5
  %8863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8850, ptr noundef @.str.2, i32 noundef %8851, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 578, ptr noundef %8854, ptr noundef %8857, ptr noundef %8860, i32 noundef %8862) #10
  br label %8881

8864:                                             ; preds = %8842, %8835
  %8865 = load i32, ptr %256, align 4, !tbaa !5
  %8866 = call ptr @__errno_location() #11
  store i32 %8865, ptr %8866, align 4, !tbaa !5
  %8867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8868 = load i32, ptr @test_count, align 4, !tbaa !5
  %8869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8870 = load i32, ptr %8869, align 4, !tbaa !5
  %8871 = call ptr @s2n_strerror(i32 noundef %8870, ptr noundef @.str.4)
  %8872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8873 = load i32, ptr %8872, align 4, !tbaa !5
  %8874 = call ptr @s2n_strerror_debug(i32 noundef %8873, ptr noundef @.str.4)
  %8875 = call ptr @__errno_location() #11
  %8876 = load i32, ptr %8875, align 4, !tbaa !5
  %8877 = call ptr @strerror(i32 noundef %8876) #10
  %8878 = call ptr @__errno_location() #11
  %8879 = load i32, ptr %8878, align 4, !tbaa !5
  %8880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8867, ptr noundef @.str.5, i32 noundef %8868, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 578, ptr noundef %8871, ptr noundef %8874, ptr noundef %8877, i32 noundef %8879) #10
  br label %8881

8881:                                             ; preds = %8864, %8847
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #10
  br label %8882

8882:                                             ; preds = %8881
  br label %8883

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

8884:                                             ; No predecessors!
  br label %8885

8885:                                             ; preds = %8884
  br label %8886

8886:                                             ; preds = %8885, %8824
  br label %8887

8887:                                             ; preds = %8886
  br label %8888

8888:                                             ; preds = %8887
  br label %8889

8889:                                             ; preds = %8888
  %8890 = load i32, ptr @test_count, align 4, !tbaa !5
  %8891 = add nsw i32 %8890, 1
  store i32 %8891, ptr @test_count, align 4, !tbaa !5
  %8892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8893 = load i32, ptr %8892, align 4, !tbaa !5
  %8894 = icmp eq i32 %8893, 335544349
  br i1 %8894, label %8948, label %8895

8895:                                             ; preds = %8889
  br label %8896

8896:                                             ; preds = %8895
  br label %8897

8897:                                             ; preds = %8896
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #10
  %8898 = call ptr @__errno_location() #11
  %8899 = load i32, ptr %8898, align 4, !tbaa !5
  store i32 %8899, ptr %257, align 4, !tbaa !5
  %8900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8901 = call i32 @s2n_print_stacktrace(ptr noundef %8900)
  %8902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8903 = trunc i8 %8902 to i1
  br i1 %8903, label %8904, label %8926

8904:                                             ; preds = %8897
  %8905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8906 = call i32 @fileno(ptr noundef %8905) #10
  %8907 = call i32 @isatty(i32 noundef %8906) #10
  %8908 = icmp ne i32 %8907, 0
  br i1 %8908, label %8909, label %8926

8909:                                             ; preds = %8904
  %8910 = load i32, ptr %257, align 4, !tbaa !5
  %8911 = call ptr @__errno_location() #11
  store i32 %8910, ptr %8911, align 4, !tbaa !5
  %8912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8913 = load i32, ptr @test_count, align 4, !tbaa !5
  %8914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8915 = load i32, ptr %8914, align 4, !tbaa !5
  %8916 = call ptr @s2n_strerror(i32 noundef %8915, ptr noundef @.str.4)
  %8917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8918 = load i32, ptr %8917, align 4, !tbaa !5
  %8919 = call ptr @s2n_strerror_debug(i32 noundef %8918, ptr noundef @.str.4)
  %8920 = call ptr @__errno_location() #11
  %8921 = load i32, ptr %8920, align 4, !tbaa !5
  %8922 = call ptr @strerror(i32 noundef %8921) #10
  %8923 = call ptr @__errno_location() #11
  %8924 = load i32, ptr %8923, align 4, !tbaa !5
  %8925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8912, ptr noundef @.str.2, i32 noundef %8913, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 578, ptr noundef %8916, ptr noundef %8919, ptr noundef %8922, i32 noundef %8924) #10
  br label %8943

8926:                                             ; preds = %8904, %8897
  %8927 = load i32, ptr %257, align 4, !tbaa !5
  %8928 = call ptr @__errno_location() #11
  store i32 %8927, ptr %8928, align 4, !tbaa !5
  %8929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8930 = load i32, ptr @test_count, align 4, !tbaa !5
  %8931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8932 = load i32, ptr %8931, align 4, !tbaa !5
  %8933 = call ptr @s2n_strerror(i32 noundef %8932, ptr noundef @.str.4)
  %8934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8935 = load i32, ptr %8934, align 4, !tbaa !5
  %8936 = call ptr @s2n_strerror_debug(i32 noundef %8935, ptr noundef @.str.4)
  %8937 = call ptr @__errno_location() #11
  %8938 = load i32, ptr %8937, align 4, !tbaa !5
  %8939 = call ptr @strerror(i32 noundef %8938) #10
  %8940 = call ptr @__errno_location() #11
  %8941 = load i32, ptr %8940, align 4, !tbaa !5
  %8942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8929, ptr noundef @.str.5, i32 noundef %8930, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 578, ptr noundef %8933, ptr noundef %8936, ptr noundef %8939, i32 noundef %8941) #10
  br label %8943

8943:                                             ; preds = %8926, %8909
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #10
  br label %8944

8944:                                             ; preds = %8943
  br label %8945

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

8946:                                             ; No predecessors!
  br label %8947

8947:                                             ; preds = %8946
  br label %8948

8948:                                             ; preds = %8947, %8889
  br label %8949

8949:                                             ; preds = %8948
  br label %8950

8950:                                             ; preds = %8949
  br label %8951

8951:                                             ; preds = %8950
  %8952 = load i32, ptr @test_count, align 4, !tbaa !5
  %8953 = add nsw i32 %8952, 1
  store i32 %8953, ptr @test_count, align 4, !tbaa !5
  %8954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8955 = load i32, ptr %8954, align 4, !tbaa !5
  %8956 = call ptr @s2n_strerror_debug(i32 noundef %8955, ptr noundef @.str.4)
  %8957 = icmp eq ptr %8956, null
  br i1 %8957, label %8958, label %9011

8958:                                             ; preds = %8951
  br label %8959

8959:                                             ; preds = %8958
  br label %8960

8960:                                             ; preds = %8959
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #10
  %8961 = call ptr @__errno_location() #11
  %8962 = load i32, ptr %8961, align 4, !tbaa !5
  store i32 %8962, ptr %258, align 4, !tbaa !5
  %8963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8964 = call i32 @s2n_print_stacktrace(ptr noundef %8963)
  %8965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8966 = trunc i8 %8965 to i1
  br i1 %8966, label %8967, label %8989

8967:                                             ; preds = %8960
  %8968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8969 = call i32 @fileno(ptr noundef %8968) #10
  %8970 = call i32 @isatty(i32 noundef %8969) #10
  %8971 = icmp ne i32 %8970, 0
  br i1 %8971, label %8972, label %8989

8972:                                             ; preds = %8967
  %8973 = load i32, ptr %258, align 4, !tbaa !5
  %8974 = call ptr @__errno_location() #11
  store i32 %8973, ptr %8974, align 4, !tbaa !5
  %8975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8976 = load i32, ptr @test_count, align 4, !tbaa !5
  %8977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8978 = load i32, ptr %8977, align 4, !tbaa !5
  %8979 = call ptr @s2n_strerror(i32 noundef %8978, ptr noundef @.str.4)
  %8980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8981 = load i32, ptr %8980, align 4, !tbaa !5
  %8982 = call ptr @s2n_strerror_debug(i32 noundef %8981, ptr noundef @.str.4)
  %8983 = call ptr @__errno_location() #11
  %8984 = load i32, ptr %8983, align 4, !tbaa !5
  %8985 = call ptr @strerror(i32 noundef %8984) #10
  %8986 = call ptr @__errno_location() #11
  %8987 = load i32, ptr %8986, align 4, !tbaa !5
  %8988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8975, ptr noundef @.str.2, i32 noundef %8976, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 578, ptr noundef %8979, ptr noundef %8982, ptr noundef %8985, i32 noundef %8987) #10
  br label %9006

8989:                                             ; preds = %8967, %8960
  %8990 = load i32, ptr %258, align 4, !tbaa !5
  %8991 = call ptr @__errno_location() #11
  store i32 %8990, ptr %8991, align 4, !tbaa !5
  %8992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8993 = load i32, ptr @test_count, align 4, !tbaa !5
  %8994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8995 = load i32, ptr %8994, align 4, !tbaa !5
  %8996 = call ptr @s2n_strerror(i32 noundef %8995, ptr noundef @.str.4)
  %8997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8998 = load i32, ptr %8997, align 4, !tbaa !5
  %8999 = call ptr @s2n_strerror_debug(i32 noundef %8998, ptr noundef @.str.4)
  %9000 = call ptr @__errno_location() #11
  %9001 = load i32, ptr %9000, align 4, !tbaa !5
  %9002 = call ptr @strerror(i32 noundef %9001) #10
  %9003 = call ptr @__errno_location() #11
  %9004 = load i32, ptr %9003, align 4, !tbaa !5
  %9005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8992, ptr noundef @.str.5, i32 noundef %8993, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 578, ptr noundef %8996, ptr noundef %8999, ptr noundef %9002, i32 noundef %9004) #10
  br label %9006

9006:                                             ; preds = %8989, %8972
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #10
  br label %9007

9007:                                             ; preds = %9006
  br label %9008

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

9009:                                             ; No predecessors!
  br label %9010

9010:                                             ; preds = %9009
  br label %9011

9011:                                             ; preds = %9010, %8951
  br label %9012

9012:                                             ; preds = %9011
  br label %9013

9013:                                             ; preds = %9012
  br label %9014

9014:                                             ; preds = %9013
  br label %9015

9015:                                             ; preds = %9014
  br label %9016

9016:                                             ; preds = %9015
  %9017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9017, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9018 = call ptr @__errno_location() #11
  store i32 0, ptr %9018, align 4, !tbaa !5
  br label %9019

9019:                                             ; preds = %9016
  br label %9020

9020:                                             ; preds = %9019
  br label %9021

9021:                                             ; preds = %9020
  br label %9022

9022:                                             ; preds = %9021
  br label %9023

9023:                                             ; preds = %9022
  %9024 = load i32, ptr @test_count, align 4, !tbaa !5
  %9025 = add nsw i32 %9024, 1
  store i32 %9025, ptr @test_count, align 4, !tbaa !5
  %9026 = load ptr, ptr %244, align 8, !tbaa !9
  %9027 = load ptr, ptr %80, align 8, !tbaa !9
  %9028 = call i32 @s2n_connection_set_config(ptr noundef %9026, ptr noundef %9027)
  %9029 = icmp eq i32 %9028, -1
  br i1 %9029, label %9030, label %9083

9030:                                             ; preds = %9023
  br label %9031

9031:                                             ; preds = %9030
  br label %9032

9032:                                             ; preds = %9031
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #10
  %9033 = call ptr @__errno_location() #11
  %9034 = load i32, ptr %9033, align 4, !tbaa !5
  store i32 %9034, ptr %259, align 4, !tbaa !5
  %9035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9036 = call i32 @s2n_print_stacktrace(ptr noundef %9035)
  %9037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9038 = trunc i8 %9037 to i1
  br i1 %9038, label %9039, label %9061

9039:                                             ; preds = %9032
  %9040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9041 = call i32 @fileno(ptr noundef %9040) #10
  %9042 = call i32 @isatty(i32 noundef %9041) #10
  %9043 = icmp ne i32 %9042, 0
  br i1 %9043, label %9044, label %9061

9044:                                             ; preds = %9039
  %9045 = load i32, ptr %259, align 4, !tbaa !5
  %9046 = call ptr @__errno_location() #11
  store i32 %9045, ptr %9046, align 4, !tbaa !5
  %9047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9048 = load i32, ptr @test_count, align 4, !tbaa !5
  %9049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9050 = load i32, ptr %9049, align 4, !tbaa !5
  %9051 = call ptr @s2n_strerror(i32 noundef %9050, ptr noundef @.str.4)
  %9052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9053 = load i32, ptr %9052, align 4, !tbaa !5
  %9054 = call ptr @s2n_strerror_debug(i32 noundef %9053, ptr noundef @.str.4)
  %9055 = call ptr @__errno_location() #11
  %9056 = load i32, ptr %9055, align 4, !tbaa !5
  %9057 = call ptr @strerror(i32 noundef %9056) #10
  %9058 = call ptr @__errno_location() #11
  %9059 = load i32, ptr %9058, align 4, !tbaa !5
  %9060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9047, ptr noundef @.str.2, i32 noundef %9048, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 581, ptr noundef %9051, ptr noundef %9054, ptr noundef %9057, i32 noundef %9059) #10
  br label %9078

9061:                                             ; preds = %9039, %9032
  %9062 = load i32, ptr %259, align 4, !tbaa !5
  %9063 = call ptr @__errno_location() #11
  store i32 %9062, ptr %9063, align 4, !tbaa !5
  %9064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9065 = load i32, ptr @test_count, align 4, !tbaa !5
  %9066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9067 = load i32, ptr %9066, align 4, !tbaa !5
  %9068 = call ptr @s2n_strerror(i32 noundef %9067, ptr noundef @.str.4)
  %9069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9070 = load i32, ptr %9069, align 4, !tbaa !5
  %9071 = call ptr @s2n_strerror_debug(i32 noundef %9070, ptr noundef @.str.4)
  %9072 = call ptr @__errno_location() #11
  %9073 = load i32, ptr %9072, align 4, !tbaa !5
  %9074 = call ptr @strerror(i32 noundef %9073) #10
  %9075 = call ptr @__errno_location() #11
  %9076 = load i32, ptr %9075, align 4, !tbaa !5
  %9077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9064, ptr noundef @.str.5, i32 noundef %9065, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 581, ptr noundef %9068, ptr noundef %9071, ptr noundef %9074, i32 noundef %9076) #10
  br label %9078

9078:                                             ; preds = %9061, %9044
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #10
  br label %9079

9079:                                             ; preds = %9078
  br label %9080

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

9081:                                             ; No predecessors!
  br label %9082

9082:                                             ; preds = %9081
  br label %9083

9083:                                             ; preds = %9082, %9023
  br label %9084

9084:                                             ; preds = %9083
  br label %9085

9085:                                             ; preds = %9084
  br label %9086

9086:                                             ; preds = %9085
  %9087 = load i32, ptr @test_count, align 4, !tbaa !5
  %9088 = add nsw i32 %9087, 1
  store i32 %9088, ptr @test_count, align 4, !tbaa !5
  %9089 = load ptr, ptr %244, align 8, !tbaa !9
  %9090 = call i32 @s2n_signature_algorithm_select(ptr noundef %9089)
  %9091 = getelementptr inbounds %struct.s2n_result, ptr %260, i32 0, i32 0
  store i32 %9090, ptr %9091, align 4
  %9092 = getelementptr inbounds %struct.s2n_result, ptr %260, i32 0, i32 0
  %9093 = load i32, ptr %9092, align 4
  %9094 = call zeroext i1 @s2n_result_is_ok(i32 %9093)
  br i1 %9094, label %9148, label %9095

9095:                                             ; preds = %9086
  br label %9096

9096:                                             ; preds = %9095
  br label %9097

9097:                                             ; preds = %9096
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #10
  %9098 = call ptr @__errno_location() #11
  %9099 = load i32, ptr %9098, align 4, !tbaa !5
  store i32 %9099, ptr %261, align 4, !tbaa !5
  %9100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9101 = call i32 @s2n_print_stacktrace(ptr noundef %9100)
  %9102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9103 = trunc i8 %9102 to i1
  br i1 %9103, label %9104, label %9126

9104:                                             ; preds = %9097
  %9105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9106 = call i32 @fileno(ptr noundef %9105) #10
  %9107 = call i32 @isatty(i32 noundef %9106) #10
  %9108 = icmp ne i32 %9107, 0
  br i1 %9108, label %9109, label %9126

9109:                                             ; preds = %9104
  %9110 = load i32, ptr %261, align 4, !tbaa !5
  %9111 = call ptr @__errno_location() #11
  store i32 %9110, ptr %9111, align 4, !tbaa !5
  %9112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9113 = load i32, ptr @test_count, align 4, !tbaa !5
  %9114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9115 = load i32, ptr %9114, align 4, !tbaa !5
  %9116 = call ptr @s2n_strerror(i32 noundef %9115, ptr noundef @.str.4)
  %9117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9118 = load i32, ptr %9117, align 4, !tbaa !5
  %9119 = call ptr @s2n_strerror_debug(i32 noundef %9118, ptr noundef @.str.4)
  %9120 = call ptr @__errno_location() #11
  %9121 = load i32, ptr %9120, align 4, !tbaa !5
  %9122 = call ptr @strerror(i32 noundef %9121) #10
  %9123 = call ptr @__errno_location() #11
  %9124 = load i32, ptr %9123, align 4, !tbaa !5
  %9125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9112, ptr noundef @.str.2, i32 noundef %9113, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 582, ptr noundef %9116, ptr noundef %9119, ptr noundef %9122, i32 noundef %9124) #10
  br label %9143

9126:                                             ; preds = %9104, %9097
  %9127 = load i32, ptr %261, align 4, !tbaa !5
  %9128 = call ptr @__errno_location() #11
  store i32 %9127, ptr %9128, align 4, !tbaa !5
  %9129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9130 = load i32, ptr @test_count, align 4, !tbaa !5
  %9131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9132 = load i32, ptr %9131, align 4, !tbaa !5
  %9133 = call ptr @s2n_strerror(i32 noundef %9132, ptr noundef @.str.4)
  %9134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9135 = load i32, ptr %9134, align 4, !tbaa !5
  %9136 = call ptr @s2n_strerror_debug(i32 noundef %9135, ptr noundef @.str.4)
  %9137 = call ptr @__errno_location() #11
  %9138 = load i32, ptr %9137, align 4, !tbaa !5
  %9139 = call ptr @strerror(i32 noundef %9138) #10
  %9140 = call ptr @__errno_location() #11
  %9141 = load i32, ptr %9140, align 4, !tbaa !5
  %9142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9129, ptr noundef @.str.5, i32 noundef %9130, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 582, ptr noundef %9133, ptr noundef %9136, ptr noundef %9139, i32 noundef %9141) #10
  br label %9143

9143:                                             ; preds = %9126, %9109
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #10
  br label %9144

9144:                                             ; preds = %9143
  br label %9145

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

9146:                                             ; No predecessors!
  br label %9147

9147:                                             ; preds = %9146
  br label %9148

9148:                                             ; preds = %9147, %9086
  br label %9149

9149:                                             ; preds = %9148
  br label %9150

9150:                                             ; preds = %9149
  call void @llvm.lifetime.end.p0(i64 80, ptr %245) #10
  %9151 = call i32 @s2n_connection_ptr_free(ptr noundef %244)
  %9152 = getelementptr inbounds %struct.s2n_result, ptr %262, i32 0, i32 0
  store i32 %9151, ptr %9152, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %243) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %263) #10
  store ptr @s2n_ecdsa_sha384, ptr %263, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %264) #10
  %9153 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9153, ptr %264, align 8, !tbaa !9
  %9154 = load ptr, ptr %264, align 8, !tbaa !9
  %9155 = getelementptr inbounds %struct.s2n_connection, ptr %9154, i32 0, i32 23
  store i8 33, ptr %9155, align 4, !tbaa !50
  %9156 = load ptr, ptr %264, align 8, !tbaa !9
  %9157 = getelementptr inbounds %struct.s2n_connection, ptr %9156, i32 0, i32 27
  %9158 = load ptr, ptr %9157, align 8, !tbaa !66
  %9159 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9158, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %9159, align 8, !tbaa !67
  call void @llvm.lifetime.start.p0(i64 80, ptr %265) #10
  call void @llvm.memset.p0.i64(ptr align 8 %265, i8 0, i64 80, i1 false)
  br label %9160

9160:                                             ; preds = %9150
  %9161 = load i32, ptr @test_count, align 4, !tbaa !5
  %9162 = add nsw i32 %9161, 1
  store i32 %9162, ptr @test_count, align 4, !tbaa !5
  %9163 = load ptr, ptr %264, align 8, !tbaa !9
  %9164 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %9163, ptr noundef %265, ptr noundef %263, i64 noundef 1)
  %9165 = getelementptr inbounds %struct.s2n_result, ptr %266, i32 0, i32 0
  store i32 %9164, ptr %9165, align 4
  %9166 = getelementptr inbounds %struct.s2n_result, ptr %266, i32 0, i32 0
  %9167 = load i32, ptr %9166, align 4
  %9168 = call zeroext i1 @s2n_result_is_ok(i32 %9167)
  br i1 %9168, label %9222, label %9169

9169:                                             ; preds = %9160
  br label %9170

9170:                                             ; preds = %9169
  br label %9171

9171:                                             ; preds = %9170
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #10
  %9172 = call ptr @__errno_location() #11
  %9173 = load i32, ptr %9172, align 4, !tbaa !5
  store i32 %9173, ptr %267, align 4, !tbaa !5
  %9174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9175 = call i32 @s2n_print_stacktrace(ptr noundef %9174)
  %9176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9177 = trunc i8 %9176 to i1
  br i1 %9177, label %9178, label %9200

9178:                                             ; preds = %9171
  %9179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9180 = call i32 @fileno(ptr noundef %9179) #10
  %9181 = call i32 @isatty(i32 noundef %9180) #10
  %9182 = icmp ne i32 %9181, 0
  br i1 %9182, label %9183, label %9200

9183:                                             ; preds = %9178
  %9184 = load i32, ptr %267, align 4, !tbaa !5
  %9185 = call ptr @__errno_location() #11
  store i32 %9184, ptr %9185, align 4, !tbaa !5
  %9186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9187 = load i32, ptr @test_count, align 4, !tbaa !5
  %9188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9189 = load i32, ptr %9188, align 4, !tbaa !5
  %9190 = call ptr @s2n_strerror(i32 noundef %9189, ptr noundef @.str.4)
  %9191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9192 = load i32, ptr %9191, align 4, !tbaa !5
  %9193 = call ptr @s2n_strerror_debug(i32 noundef %9192, ptr noundef @.str.4)
  %9194 = call ptr @__errno_location() #11
  %9195 = load i32, ptr %9194, align 4, !tbaa !5
  %9196 = call ptr @strerror(i32 noundef %9195) #10
  %9197 = call ptr @__errno_location() #11
  %9198 = load i32, ptr %9197, align 4, !tbaa !5
  %9199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9186, ptr noundef @.str.2, i32 noundef %9187, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 596, ptr noundef %9190, ptr noundef %9193, ptr noundef %9196, i32 noundef %9198) #10
  br label %9217

9200:                                             ; preds = %9178, %9171
  %9201 = load i32, ptr %267, align 4, !tbaa !5
  %9202 = call ptr @__errno_location() #11
  store i32 %9201, ptr %9202, align 4, !tbaa !5
  %9203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9204 = load i32, ptr @test_count, align 4, !tbaa !5
  %9205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9206 = load i32, ptr %9205, align 4, !tbaa !5
  %9207 = call ptr @s2n_strerror(i32 noundef %9206, ptr noundef @.str.4)
  %9208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9209 = load i32, ptr %9208, align 4, !tbaa !5
  %9210 = call ptr @s2n_strerror_debug(i32 noundef %9209, ptr noundef @.str.4)
  %9211 = call ptr @__errno_location() #11
  %9212 = load i32, ptr %9211, align 4, !tbaa !5
  %9213 = call ptr @strerror(i32 noundef %9212) #10
  %9214 = call ptr @__errno_location() #11
  %9215 = load i32, ptr %9214, align 4, !tbaa !5
  %9216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9203, ptr noundef @.str.5, i32 noundef %9204, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 596, ptr noundef %9207, ptr noundef %9210, ptr noundef %9213, i32 noundef %9215) #10
  br label %9217

9217:                                             ; preds = %9200, %9183
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #10
  br label %9218

9218:                                             ; preds = %9217
  br label %9219

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

9220:                                             ; No predecessors!
  br label %9221

9221:                                             ; preds = %9220
  br label %9222

9222:                                             ; preds = %9221, %9160
  br label %9223

9223:                                             ; preds = %9222
  br label %9224

9224:                                             ; preds = %9223
  br label %9225

9225:                                             ; preds = %9224
  %9226 = load i32, ptr @test_count, align 4, !tbaa !5
  %9227 = add nsw i32 %9226, 1
  store i32 %9227, ptr @test_count, align 4, !tbaa !5
  %9228 = load ptr, ptr %264, align 8, !tbaa !9
  %9229 = getelementptr inbounds %struct.s2n_connection, ptr %9228, i32 0, i32 32
  %9230 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %9229, i32 0, i32 4
  %9231 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %9230, ptr noundef %263, i64 noundef 1)
  %9232 = getelementptr inbounds %struct.s2n_result, ptr %268, i32 0, i32 0
  store i32 %9231, ptr %9232, align 4
  %9233 = getelementptr inbounds %struct.s2n_result, ptr %268, i32 0, i32 0
  %9234 = load i32, ptr %9233, align 4
  %9235 = call zeroext i1 @s2n_result_is_ok(i32 %9234)
  br i1 %9235, label %9289, label %9236

9236:                                             ; preds = %9225
  br label %9237

9237:                                             ; preds = %9236
  br label %9238

9238:                                             ; preds = %9237
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #10
  %9239 = call ptr @__errno_location() #11
  %9240 = load i32, ptr %9239, align 4, !tbaa !5
  store i32 %9240, ptr %269, align 4, !tbaa !5
  %9241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9242 = call i32 @s2n_print_stacktrace(ptr noundef %9241)
  %9243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9244 = trunc i8 %9243 to i1
  br i1 %9244, label %9245, label %9267

9245:                                             ; preds = %9238
  %9246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9247 = call i32 @fileno(ptr noundef %9246) #10
  %9248 = call i32 @isatty(i32 noundef %9247) #10
  %9249 = icmp ne i32 %9248, 0
  br i1 %9249, label %9250, label %9267

9250:                                             ; preds = %9245
  %9251 = load i32, ptr %269, align 4, !tbaa !5
  %9252 = call ptr @__errno_location() #11
  store i32 %9251, ptr %9252, align 4, !tbaa !5
  %9253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9254 = load i32, ptr @test_count, align 4, !tbaa !5
  %9255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9256 = load i32, ptr %9255, align 4, !tbaa !5
  %9257 = call ptr @s2n_strerror(i32 noundef %9256, ptr noundef @.str.4)
  %9258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9259 = load i32, ptr %9258, align 4, !tbaa !5
  %9260 = call ptr @s2n_strerror_debug(i32 noundef %9259, ptr noundef @.str.4)
  %9261 = call ptr @__errno_location() #11
  %9262 = load i32, ptr %9261, align 4, !tbaa !5
  %9263 = call ptr @strerror(i32 noundef %9262) #10
  %9264 = call ptr @__errno_location() #11
  %9265 = load i32, ptr %9264, align 4, !tbaa !5
  %9266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9253, ptr noundef @.str.2, i32 noundef %9254, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 598, ptr noundef %9257, ptr noundef %9260, ptr noundef %9263, i32 noundef %9265) #10
  br label %9284

9267:                                             ; preds = %9245, %9238
  %9268 = load i32, ptr %269, align 4, !tbaa !5
  %9269 = call ptr @__errno_location() #11
  store i32 %9268, ptr %9269, align 4, !tbaa !5
  %9270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9271 = load i32, ptr @test_count, align 4, !tbaa !5
  %9272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9273 = load i32, ptr %9272, align 4, !tbaa !5
  %9274 = call ptr @s2n_strerror(i32 noundef %9273, ptr noundef @.str.4)
  %9275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9276 = load i32, ptr %9275, align 4, !tbaa !5
  %9277 = call ptr @s2n_strerror_debug(i32 noundef %9276, ptr noundef @.str.4)
  %9278 = call ptr @__errno_location() #11
  %9279 = load i32, ptr %9278, align 4, !tbaa !5
  %9280 = call ptr @strerror(i32 noundef %9279) #10
  %9281 = call ptr @__errno_location() #11
  %9282 = load i32, ptr %9281, align 4, !tbaa !5
  %9283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9270, ptr noundef @.str.5, i32 noundef %9271, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 598, ptr noundef %9274, ptr noundef %9277, ptr noundef %9280, i32 noundef %9282) #10
  br label %9284

9284:                                             ; preds = %9267, %9250
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #10
  br label %9285

9285:                                             ; preds = %9284
  br label %9286

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

9287:                                             ; No predecessors!
  br label %9288

9288:                                             ; preds = %9287
  br label %9289

9289:                                             ; preds = %9288, %9225
  br label %9290

9290:                                             ; preds = %9289
  br label %9291

9291:                                             ; preds = %9290
  br label %9292

9292:                                             ; preds = %9291
  br label %9293

9293:                                             ; preds = %9292
  br label %9294

9294:                                             ; preds = %9293
  %9295 = load i32, ptr @test_count, align 4, !tbaa !5
  %9296 = add nsw i32 %9295, 1
  store i32 %9296, ptr @test_count, align 4, !tbaa !5
  %9297 = load ptr, ptr %264, align 8, !tbaa !9
  %9298 = call i32 @s2n_signature_algorithm_select(ptr noundef %9297)
  %9299 = getelementptr inbounds %struct.s2n_result, ptr %270, i32 0, i32 0
  store i32 %9298, ptr %9299, align 4
  %9300 = getelementptr inbounds %struct.s2n_result, ptr %270, i32 0, i32 0
  %9301 = load i32, ptr %9300, align 4
  %9302 = call zeroext i1 @s2n_result_is_error(i32 %9301)
  br i1 %9302, label %9356, label %9303

9303:                                             ; preds = %9294
  br label %9304

9304:                                             ; preds = %9303
  br label %9305

9305:                                             ; preds = %9304
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #10
  %9306 = call ptr @__errno_location() #11
  %9307 = load i32, ptr %9306, align 4, !tbaa !5
  store i32 %9307, ptr %271, align 4, !tbaa !5
  %9308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9309 = call i32 @s2n_print_stacktrace(ptr noundef %9308)
  %9310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9311 = trunc i8 %9310 to i1
  br i1 %9311, label %9312, label %9334

9312:                                             ; preds = %9305
  %9313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9314 = call i32 @fileno(ptr noundef %9313) #10
  %9315 = call i32 @isatty(i32 noundef %9314) #10
  %9316 = icmp ne i32 %9315, 0
  br i1 %9316, label %9317, label %9334

9317:                                             ; preds = %9312
  %9318 = load i32, ptr %271, align 4, !tbaa !5
  %9319 = call ptr @__errno_location() #11
  store i32 %9318, ptr %9319, align 4, !tbaa !5
  %9320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9321 = load i32, ptr @test_count, align 4, !tbaa !5
  %9322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9323 = load i32, ptr %9322, align 4, !tbaa !5
  %9324 = call ptr @s2n_strerror(i32 noundef %9323, ptr noundef @.str.4)
  %9325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9326 = load i32, ptr %9325, align 4, !tbaa !5
  %9327 = call ptr @s2n_strerror_debug(i32 noundef %9326, ptr noundef @.str.4)
  %9328 = call ptr @__errno_location() #11
  %9329 = load i32, ptr %9328, align 4, !tbaa !5
  %9330 = call ptr @strerror(i32 noundef %9329) #10
  %9331 = call ptr @__errno_location() #11
  %9332 = load i32, ptr %9331, align 4, !tbaa !5
  %9333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9320, ptr noundef @.str.2, i32 noundef %9321, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 603, ptr noundef %9324, ptr noundef %9327, ptr noundef %9330, i32 noundef %9332) #10
  br label %9351

9334:                                             ; preds = %9312, %9305
  %9335 = load i32, ptr %271, align 4, !tbaa !5
  %9336 = call ptr @__errno_location() #11
  store i32 %9335, ptr %9336, align 4, !tbaa !5
  %9337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9338 = load i32, ptr @test_count, align 4, !tbaa !5
  %9339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9340 = load i32, ptr %9339, align 4, !tbaa !5
  %9341 = call ptr @s2n_strerror(i32 noundef %9340, ptr noundef @.str.4)
  %9342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9343 = load i32, ptr %9342, align 4, !tbaa !5
  %9344 = call ptr @s2n_strerror_debug(i32 noundef %9343, ptr noundef @.str.4)
  %9345 = call ptr @__errno_location() #11
  %9346 = load i32, ptr %9345, align 4, !tbaa !5
  %9347 = call ptr @strerror(i32 noundef %9346) #10
  %9348 = call ptr @__errno_location() #11
  %9349 = load i32, ptr %9348, align 4, !tbaa !5
  %9350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9337, ptr noundef @.str.5, i32 noundef %9338, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 603, ptr noundef %9341, ptr noundef %9344, ptr noundef %9347, i32 noundef %9349) #10
  br label %9351

9351:                                             ; preds = %9334, %9317
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #10
  br label %9352

9352:                                             ; preds = %9351
  br label %9353

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

9354:                                             ; No predecessors!
  br label %9355

9355:                                             ; preds = %9354
  br label %9356

9356:                                             ; preds = %9355, %9294
  br label %9357

9357:                                             ; preds = %9356
  br label %9358

9358:                                             ; preds = %9357
  br label %9359

9359:                                             ; preds = %9358
  %9360 = load i32, ptr @test_count, align 4, !tbaa !5
  %9361 = add nsw i32 %9360, 1
  store i32 %9361, ptr @test_count, align 4, !tbaa !5
  %9362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9363 = load i32, ptr %9362, align 4, !tbaa !5
  %9364 = icmp eq i32 %9363, 335544349
  br i1 %9364, label %9418, label %9365

9365:                                             ; preds = %9359
  br label %9366

9366:                                             ; preds = %9365
  br label %9367

9367:                                             ; preds = %9366
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #10
  %9368 = call ptr @__errno_location() #11
  %9369 = load i32, ptr %9368, align 4, !tbaa !5
  store i32 %9369, ptr %272, align 4, !tbaa !5
  %9370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9371 = call i32 @s2n_print_stacktrace(ptr noundef %9370)
  %9372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9373 = trunc i8 %9372 to i1
  br i1 %9373, label %9374, label %9396

9374:                                             ; preds = %9367
  %9375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9376 = call i32 @fileno(ptr noundef %9375) #10
  %9377 = call i32 @isatty(i32 noundef %9376) #10
  %9378 = icmp ne i32 %9377, 0
  br i1 %9378, label %9379, label %9396

9379:                                             ; preds = %9374
  %9380 = load i32, ptr %272, align 4, !tbaa !5
  %9381 = call ptr @__errno_location() #11
  store i32 %9380, ptr %9381, align 4, !tbaa !5
  %9382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9383 = load i32, ptr @test_count, align 4, !tbaa !5
  %9384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9385 = load i32, ptr %9384, align 4, !tbaa !5
  %9386 = call ptr @s2n_strerror(i32 noundef %9385, ptr noundef @.str.4)
  %9387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9388 = load i32, ptr %9387, align 4, !tbaa !5
  %9389 = call ptr @s2n_strerror_debug(i32 noundef %9388, ptr noundef @.str.4)
  %9390 = call ptr @__errno_location() #11
  %9391 = load i32, ptr %9390, align 4, !tbaa !5
  %9392 = call ptr @strerror(i32 noundef %9391) #10
  %9393 = call ptr @__errno_location() #11
  %9394 = load i32, ptr %9393, align 4, !tbaa !5
  %9395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9382, ptr noundef @.str.2, i32 noundef %9383, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 603, ptr noundef %9386, ptr noundef %9389, ptr noundef %9392, i32 noundef %9394) #10
  br label %9413

9396:                                             ; preds = %9374, %9367
  %9397 = load i32, ptr %272, align 4, !tbaa !5
  %9398 = call ptr @__errno_location() #11
  store i32 %9397, ptr %9398, align 4, !tbaa !5
  %9399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9400 = load i32, ptr @test_count, align 4, !tbaa !5
  %9401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9402 = load i32, ptr %9401, align 4, !tbaa !5
  %9403 = call ptr @s2n_strerror(i32 noundef %9402, ptr noundef @.str.4)
  %9404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9405 = load i32, ptr %9404, align 4, !tbaa !5
  %9406 = call ptr @s2n_strerror_debug(i32 noundef %9405, ptr noundef @.str.4)
  %9407 = call ptr @__errno_location() #11
  %9408 = load i32, ptr %9407, align 4, !tbaa !5
  %9409 = call ptr @strerror(i32 noundef %9408) #10
  %9410 = call ptr @__errno_location() #11
  %9411 = load i32, ptr %9410, align 4, !tbaa !5
  %9412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9399, ptr noundef @.str.5, i32 noundef %9400, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 603, ptr noundef %9403, ptr noundef %9406, ptr noundef %9409, i32 noundef %9411) #10
  br label %9413

9413:                                             ; preds = %9396, %9379
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #10
  br label %9414

9414:                                             ; preds = %9413
  br label %9415

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

9416:                                             ; No predecessors!
  br label %9417

9417:                                             ; preds = %9416
  br label %9418

9418:                                             ; preds = %9417, %9359
  br label %9419

9419:                                             ; preds = %9418
  br label %9420

9420:                                             ; preds = %9419
  br label %9421

9421:                                             ; preds = %9420
  %9422 = load i32, ptr @test_count, align 4, !tbaa !5
  %9423 = add nsw i32 %9422, 1
  store i32 %9423, ptr @test_count, align 4, !tbaa !5
  %9424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9425 = load i32, ptr %9424, align 4, !tbaa !5
  %9426 = call ptr @s2n_strerror_debug(i32 noundef %9425, ptr noundef @.str.4)
  %9427 = icmp eq ptr %9426, null
  br i1 %9427, label %9428, label %9481

9428:                                             ; preds = %9421
  br label %9429

9429:                                             ; preds = %9428
  br label %9430

9430:                                             ; preds = %9429
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #10
  %9431 = call ptr @__errno_location() #11
  %9432 = load i32, ptr %9431, align 4, !tbaa !5
  store i32 %9432, ptr %273, align 4, !tbaa !5
  %9433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9434 = call i32 @s2n_print_stacktrace(ptr noundef %9433)
  %9435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9436 = trunc i8 %9435 to i1
  br i1 %9436, label %9437, label %9459

9437:                                             ; preds = %9430
  %9438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9439 = call i32 @fileno(ptr noundef %9438) #10
  %9440 = call i32 @isatty(i32 noundef %9439) #10
  %9441 = icmp ne i32 %9440, 0
  br i1 %9441, label %9442, label %9459

9442:                                             ; preds = %9437
  %9443 = load i32, ptr %273, align 4, !tbaa !5
  %9444 = call ptr @__errno_location() #11
  store i32 %9443, ptr %9444, align 4, !tbaa !5
  %9445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9446 = load i32, ptr @test_count, align 4, !tbaa !5
  %9447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9448 = load i32, ptr %9447, align 4, !tbaa !5
  %9449 = call ptr @s2n_strerror(i32 noundef %9448, ptr noundef @.str.4)
  %9450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9451 = load i32, ptr %9450, align 4, !tbaa !5
  %9452 = call ptr @s2n_strerror_debug(i32 noundef %9451, ptr noundef @.str.4)
  %9453 = call ptr @__errno_location() #11
  %9454 = load i32, ptr %9453, align 4, !tbaa !5
  %9455 = call ptr @strerror(i32 noundef %9454) #10
  %9456 = call ptr @__errno_location() #11
  %9457 = load i32, ptr %9456, align 4, !tbaa !5
  %9458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9445, ptr noundef @.str.2, i32 noundef %9446, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 603, ptr noundef %9449, ptr noundef %9452, ptr noundef %9455, i32 noundef %9457) #10
  br label %9476

9459:                                             ; preds = %9437, %9430
  %9460 = load i32, ptr %273, align 4, !tbaa !5
  %9461 = call ptr @__errno_location() #11
  store i32 %9460, ptr %9461, align 4, !tbaa !5
  %9462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9463 = load i32, ptr @test_count, align 4, !tbaa !5
  %9464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9465 = load i32, ptr %9464, align 4, !tbaa !5
  %9466 = call ptr @s2n_strerror(i32 noundef %9465, ptr noundef @.str.4)
  %9467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9468 = load i32, ptr %9467, align 4, !tbaa !5
  %9469 = call ptr @s2n_strerror_debug(i32 noundef %9468, ptr noundef @.str.4)
  %9470 = call ptr @__errno_location() #11
  %9471 = load i32, ptr %9470, align 4, !tbaa !5
  %9472 = call ptr @strerror(i32 noundef %9471) #10
  %9473 = call ptr @__errno_location() #11
  %9474 = load i32, ptr %9473, align 4, !tbaa !5
  %9475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9462, ptr noundef @.str.5, i32 noundef %9463, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 603, ptr noundef %9466, ptr noundef %9469, ptr noundef %9472, i32 noundef %9474) #10
  br label %9476

9476:                                             ; preds = %9459, %9442
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #10
  br label %9477

9477:                                             ; preds = %9476
  br label %9478

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

9479:                                             ; No predecessors!
  br label %9480

9480:                                             ; preds = %9479
  br label %9481

9481:                                             ; preds = %9480, %9421
  br label %9482

9482:                                             ; preds = %9481
  br label %9483

9483:                                             ; preds = %9482
  br label %9484

9484:                                             ; preds = %9483
  br label %9485

9485:                                             ; preds = %9484
  br label %9486

9486:                                             ; preds = %9485
  %9487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9487, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9488 = call ptr @__errno_location() #11
  store i32 0, ptr %9488, align 4, !tbaa !5
  br label %9489

9489:                                             ; preds = %9486
  br label %9490

9490:                                             ; preds = %9489
  br label %9491

9491:                                             ; preds = %9490
  br label %9492

9492:                                             ; preds = %9491
  br label %9493

9493:                                             ; preds = %9492
  %9494 = load i32, ptr @test_count, align 4, !tbaa !5
  %9495 = add nsw i32 %9494, 1
  store i32 %9495, ptr @test_count, align 4, !tbaa !5
  %9496 = load ptr, ptr %264, align 8, !tbaa !9
  %9497 = load ptr, ptr %80, align 8, !tbaa !9
  %9498 = call i32 @s2n_connection_set_config(ptr noundef %9496, ptr noundef %9497)
  %9499 = icmp eq i32 %9498, -1
  br i1 %9499, label %9500, label %9553

9500:                                             ; preds = %9493
  br label %9501

9501:                                             ; preds = %9500
  br label %9502

9502:                                             ; preds = %9501
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #10
  %9503 = call ptr @__errno_location() #11
  %9504 = load i32, ptr %9503, align 4, !tbaa !5
  store i32 %9504, ptr %274, align 4, !tbaa !5
  %9505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9506 = call i32 @s2n_print_stacktrace(ptr noundef %9505)
  %9507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9508 = trunc i8 %9507 to i1
  br i1 %9508, label %9509, label %9531

9509:                                             ; preds = %9502
  %9510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9511 = call i32 @fileno(ptr noundef %9510) #10
  %9512 = call i32 @isatty(i32 noundef %9511) #10
  %9513 = icmp ne i32 %9512, 0
  br i1 %9513, label %9514, label %9531

9514:                                             ; preds = %9509
  %9515 = load i32, ptr %274, align 4, !tbaa !5
  %9516 = call ptr @__errno_location() #11
  store i32 %9515, ptr %9516, align 4, !tbaa !5
  %9517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9518 = load i32, ptr @test_count, align 4, !tbaa !5
  %9519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9520 = load i32, ptr %9519, align 4, !tbaa !5
  %9521 = call ptr @s2n_strerror(i32 noundef %9520, ptr noundef @.str.4)
  %9522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9523 = load i32, ptr %9522, align 4, !tbaa !5
  %9524 = call ptr @s2n_strerror_debug(i32 noundef %9523, ptr noundef @.str.4)
  %9525 = call ptr @__errno_location() #11
  %9526 = load i32, ptr %9525, align 4, !tbaa !5
  %9527 = call ptr @strerror(i32 noundef %9526) #10
  %9528 = call ptr @__errno_location() #11
  %9529 = load i32, ptr %9528, align 4, !tbaa !5
  %9530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9517, ptr noundef @.str.2, i32 noundef %9518, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 606, ptr noundef %9521, ptr noundef %9524, ptr noundef %9527, i32 noundef %9529) #10
  br label %9548

9531:                                             ; preds = %9509, %9502
  %9532 = load i32, ptr %274, align 4, !tbaa !5
  %9533 = call ptr @__errno_location() #11
  store i32 %9532, ptr %9533, align 4, !tbaa !5
  %9534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9535 = load i32, ptr @test_count, align 4, !tbaa !5
  %9536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9537 = load i32, ptr %9536, align 4, !tbaa !5
  %9538 = call ptr @s2n_strerror(i32 noundef %9537, ptr noundef @.str.4)
  %9539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9540 = load i32, ptr %9539, align 4, !tbaa !5
  %9541 = call ptr @s2n_strerror_debug(i32 noundef %9540, ptr noundef @.str.4)
  %9542 = call ptr @__errno_location() #11
  %9543 = load i32, ptr %9542, align 4, !tbaa !5
  %9544 = call ptr @strerror(i32 noundef %9543) #10
  %9545 = call ptr @__errno_location() #11
  %9546 = load i32, ptr %9545, align 4, !tbaa !5
  %9547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9534, ptr noundef @.str.5, i32 noundef %9535, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 606, ptr noundef %9538, ptr noundef %9541, ptr noundef %9544, i32 noundef %9546) #10
  br label %9548

9548:                                             ; preds = %9531, %9514
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #10
  br label %9549

9549:                                             ; preds = %9548
  br label %9550

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

9551:                                             ; No predecessors!
  br label %9552

9552:                                             ; preds = %9551
  br label %9553

9553:                                             ; preds = %9552, %9493
  br label %9554

9554:                                             ; preds = %9553
  br label %9555

9555:                                             ; preds = %9554
  br label %9556

9556:                                             ; preds = %9555
  br label %9557

9557:                                             ; preds = %9556
  br label %9558

9558:                                             ; preds = %9557
  %9559 = load i32, ptr @test_count, align 4, !tbaa !5
  %9560 = add nsw i32 %9559, 1
  store i32 %9560, ptr @test_count, align 4, !tbaa !5
  %9561 = load ptr, ptr %264, align 8, !tbaa !9
  %9562 = call i32 @s2n_signature_algorithm_select(ptr noundef %9561)
  %9563 = getelementptr inbounds %struct.s2n_result, ptr %275, i32 0, i32 0
  store i32 %9562, ptr %9563, align 4
  %9564 = getelementptr inbounds %struct.s2n_result, ptr %275, i32 0, i32 0
  %9565 = load i32, ptr %9564, align 4
  %9566 = call zeroext i1 @s2n_result_is_error(i32 %9565)
  br i1 %9566, label %9620, label %9567

9567:                                             ; preds = %9558
  br label %9568

9568:                                             ; preds = %9567
  br label %9569

9569:                                             ; preds = %9568
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #10
  %9570 = call ptr @__errno_location() #11
  %9571 = load i32, ptr %9570, align 4, !tbaa !5
  store i32 %9571, ptr %276, align 4, !tbaa !5
  %9572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9573 = call i32 @s2n_print_stacktrace(ptr noundef %9572)
  %9574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9575 = trunc i8 %9574 to i1
  br i1 %9575, label %9576, label %9598

9576:                                             ; preds = %9569
  %9577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9578 = call i32 @fileno(ptr noundef %9577) #10
  %9579 = call i32 @isatty(i32 noundef %9578) #10
  %9580 = icmp ne i32 %9579, 0
  br i1 %9580, label %9581, label %9598

9581:                                             ; preds = %9576
  %9582 = load i32, ptr %276, align 4, !tbaa !5
  %9583 = call ptr @__errno_location() #11
  store i32 %9582, ptr %9583, align 4, !tbaa !5
  %9584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9585 = load i32, ptr @test_count, align 4, !tbaa !5
  %9586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9587 = load i32, ptr %9586, align 4, !tbaa !5
  %9588 = call ptr @s2n_strerror(i32 noundef %9587, ptr noundef @.str.4)
  %9589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9590 = load i32, ptr %9589, align 4, !tbaa !5
  %9591 = call ptr @s2n_strerror_debug(i32 noundef %9590, ptr noundef @.str.4)
  %9592 = call ptr @__errno_location() #11
  %9593 = load i32, ptr %9592, align 4, !tbaa !5
  %9594 = call ptr @strerror(i32 noundef %9593) #10
  %9595 = call ptr @__errno_location() #11
  %9596 = load i32, ptr %9595, align 4, !tbaa !5
  %9597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9584, ptr noundef @.str.2, i32 noundef %9585, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 609, ptr noundef %9588, ptr noundef %9591, ptr noundef %9594, i32 noundef %9596) #10
  br label %9615

9598:                                             ; preds = %9576, %9569
  %9599 = load i32, ptr %276, align 4, !tbaa !5
  %9600 = call ptr @__errno_location() #11
  store i32 %9599, ptr %9600, align 4, !tbaa !5
  %9601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9602 = load i32, ptr @test_count, align 4, !tbaa !5
  %9603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9604 = load i32, ptr %9603, align 4, !tbaa !5
  %9605 = call ptr @s2n_strerror(i32 noundef %9604, ptr noundef @.str.4)
  %9606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9607 = load i32, ptr %9606, align 4, !tbaa !5
  %9608 = call ptr @s2n_strerror_debug(i32 noundef %9607, ptr noundef @.str.4)
  %9609 = call ptr @__errno_location() #11
  %9610 = load i32, ptr %9609, align 4, !tbaa !5
  %9611 = call ptr @strerror(i32 noundef %9610) #10
  %9612 = call ptr @__errno_location() #11
  %9613 = load i32, ptr %9612, align 4, !tbaa !5
  %9614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9601, ptr noundef @.str.5, i32 noundef %9602, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 609, ptr noundef %9605, ptr noundef %9608, ptr noundef %9611, i32 noundef %9613) #10
  br label %9615

9615:                                             ; preds = %9598, %9581
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #10
  br label %9616

9616:                                             ; preds = %9615
  br label %9617

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

9618:                                             ; No predecessors!
  br label %9619

9619:                                             ; preds = %9618
  br label %9620

9620:                                             ; preds = %9619, %9558
  br label %9621

9621:                                             ; preds = %9620
  br label %9622

9622:                                             ; preds = %9621
  br label %9623

9623:                                             ; preds = %9622
  %9624 = load i32, ptr @test_count, align 4, !tbaa !5
  %9625 = add nsw i32 %9624, 1
  store i32 %9625, ptr @test_count, align 4, !tbaa !5
  %9626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9627 = load i32, ptr %9626, align 4, !tbaa !5
  %9628 = icmp eq i32 %9627, 335544349
  br i1 %9628, label %9682, label %9629

9629:                                             ; preds = %9623
  br label %9630

9630:                                             ; preds = %9629
  br label %9631

9631:                                             ; preds = %9630
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #10
  %9632 = call ptr @__errno_location() #11
  %9633 = load i32, ptr %9632, align 4, !tbaa !5
  store i32 %9633, ptr %277, align 4, !tbaa !5
  %9634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9635 = call i32 @s2n_print_stacktrace(ptr noundef %9634)
  %9636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9637 = trunc i8 %9636 to i1
  br i1 %9637, label %9638, label %9660

9638:                                             ; preds = %9631
  %9639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9640 = call i32 @fileno(ptr noundef %9639) #10
  %9641 = call i32 @isatty(i32 noundef %9640) #10
  %9642 = icmp ne i32 %9641, 0
  br i1 %9642, label %9643, label %9660

9643:                                             ; preds = %9638
  %9644 = load i32, ptr %277, align 4, !tbaa !5
  %9645 = call ptr @__errno_location() #11
  store i32 %9644, ptr %9645, align 4, !tbaa !5
  %9646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9647 = load i32, ptr @test_count, align 4, !tbaa !5
  %9648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9649 = load i32, ptr %9648, align 4, !tbaa !5
  %9650 = call ptr @s2n_strerror(i32 noundef %9649, ptr noundef @.str.4)
  %9651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9652 = load i32, ptr %9651, align 4, !tbaa !5
  %9653 = call ptr @s2n_strerror_debug(i32 noundef %9652, ptr noundef @.str.4)
  %9654 = call ptr @__errno_location() #11
  %9655 = load i32, ptr %9654, align 4, !tbaa !5
  %9656 = call ptr @strerror(i32 noundef %9655) #10
  %9657 = call ptr @__errno_location() #11
  %9658 = load i32, ptr %9657, align 4, !tbaa !5
  %9659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9646, ptr noundef @.str.2, i32 noundef %9647, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 609, ptr noundef %9650, ptr noundef %9653, ptr noundef %9656, i32 noundef %9658) #10
  br label %9677

9660:                                             ; preds = %9638, %9631
  %9661 = load i32, ptr %277, align 4, !tbaa !5
  %9662 = call ptr @__errno_location() #11
  store i32 %9661, ptr %9662, align 4, !tbaa !5
  %9663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9664 = load i32, ptr @test_count, align 4, !tbaa !5
  %9665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9666 = load i32, ptr %9665, align 4, !tbaa !5
  %9667 = call ptr @s2n_strerror(i32 noundef %9666, ptr noundef @.str.4)
  %9668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9669 = load i32, ptr %9668, align 4, !tbaa !5
  %9670 = call ptr @s2n_strerror_debug(i32 noundef %9669, ptr noundef @.str.4)
  %9671 = call ptr @__errno_location() #11
  %9672 = load i32, ptr %9671, align 4, !tbaa !5
  %9673 = call ptr @strerror(i32 noundef %9672) #10
  %9674 = call ptr @__errno_location() #11
  %9675 = load i32, ptr %9674, align 4, !tbaa !5
  %9676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9663, ptr noundef @.str.5, i32 noundef %9664, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 609, ptr noundef %9667, ptr noundef %9670, ptr noundef %9673, i32 noundef %9675) #10
  br label %9677

9677:                                             ; preds = %9660, %9643
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #10
  br label %9678

9678:                                             ; preds = %9677
  br label %9679

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

9680:                                             ; No predecessors!
  br label %9681

9681:                                             ; preds = %9680
  br label %9682

9682:                                             ; preds = %9681, %9623
  br label %9683

9683:                                             ; preds = %9682
  br label %9684

9684:                                             ; preds = %9683
  br label %9685

9685:                                             ; preds = %9684
  %9686 = load i32, ptr @test_count, align 4, !tbaa !5
  %9687 = add nsw i32 %9686, 1
  store i32 %9687, ptr @test_count, align 4, !tbaa !5
  %9688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9689 = load i32, ptr %9688, align 4, !tbaa !5
  %9690 = call ptr @s2n_strerror_debug(i32 noundef %9689, ptr noundef @.str.4)
  %9691 = icmp eq ptr %9690, null
  br i1 %9691, label %9692, label %9745

9692:                                             ; preds = %9685
  br label %9693

9693:                                             ; preds = %9692
  br label %9694

9694:                                             ; preds = %9693
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #10
  %9695 = call ptr @__errno_location() #11
  %9696 = load i32, ptr %9695, align 4, !tbaa !5
  store i32 %9696, ptr %278, align 4, !tbaa !5
  %9697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9698 = call i32 @s2n_print_stacktrace(ptr noundef %9697)
  %9699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9700 = trunc i8 %9699 to i1
  br i1 %9700, label %9701, label %9723

9701:                                             ; preds = %9694
  %9702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9703 = call i32 @fileno(ptr noundef %9702) #10
  %9704 = call i32 @isatty(i32 noundef %9703) #10
  %9705 = icmp ne i32 %9704, 0
  br i1 %9705, label %9706, label %9723

9706:                                             ; preds = %9701
  %9707 = load i32, ptr %278, align 4, !tbaa !5
  %9708 = call ptr @__errno_location() #11
  store i32 %9707, ptr %9708, align 4, !tbaa !5
  %9709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9710 = load i32, ptr @test_count, align 4, !tbaa !5
  %9711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9712 = load i32, ptr %9711, align 4, !tbaa !5
  %9713 = call ptr @s2n_strerror(i32 noundef %9712, ptr noundef @.str.4)
  %9714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9715 = load i32, ptr %9714, align 4, !tbaa !5
  %9716 = call ptr @s2n_strerror_debug(i32 noundef %9715, ptr noundef @.str.4)
  %9717 = call ptr @__errno_location() #11
  %9718 = load i32, ptr %9717, align 4, !tbaa !5
  %9719 = call ptr @strerror(i32 noundef %9718) #10
  %9720 = call ptr @__errno_location() #11
  %9721 = load i32, ptr %9720, align 4, !tbaa !5
  %9722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9709, ptr noundef @.str.2, i32 noundef %9710, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 609, ptr noundef %9713, ptr noundef %9716, ptr noundef %9719, i32 noundef %9721) #10
  br label %9740

9723:                                             ; preds = %9701, %9694
  %9724 = load i32, ptr %278, align 4, !tbaa !5
  %9725 = call ptr @__errno_location() #11
  store i32 %9724, ptr %9725, align 4, !tbaa !5
  %9726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9727 = load i32, ptr @test_count, align 4, !tbaa !5
  %9728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9729 = load i32, ptr %9728, align 4, !tbaa !5
  %9730 = call ptr @s2n_strerror(i32 noundef %9729, ptr noundef @.str.4)
  %9731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9732 = load i32, ptr %9731, align 4, !tbaa !5
  %9733 = call ptr @s2n_strerror_debug(i32 noundef %9732, ptr noundef @.str.4)
  %9734 = call ptr @__errno_location() #11
  %9735 = load i32, ptr %9734, align 4, !tbaa !5
  %9736 = call ptr @strerror(i32 noundef %9735) #10
  %9737 = call ptr @__errno_location() #11
  %9738 = load i32, ptr %9737, align 4, !tbaa !5
  %9739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9726, ptr noundef @.str.5, i32 noundef %9727, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 609, ptr noundef %9730, ptr noundef %9733, ptr noundef %9736, i32 noundef %9738) #10
  br label %9740

9740:                                             ; preds = %9723, %9706
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #10
  br label %9741

9741:                                             ; preds = %9740
  br label %9742

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

9743:                                             ; No predecessors!
  br label %9744

9744:                                             ; preds = %9743
  br label %9745

9745:                                             ; preds = %9744, %9685
  br label %9746

9746:                                             ; preds = %9745
  br label %9747

9747:                                             ; preds = %9746
  br label %9748

9748:                                             ; preds = %9747
  br label %9749

9749:                                             ; preds = %9748
  br label %9750

9750:                                             ; preds = %9749
  %9751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9751, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9752 = call ptr @__errno_location() #11
  store i32 0, ptr %9752, align 4, !tbaa !5
  br label %9753

9753:                                             ; preds = %9750
  br label %9754

9754:                                             ; preds = %9753
  br label %9755

9755:                                             ; preds = %9754
  br label %9756

9756:                                             ; preds = %9755
  br label %9757

9757:                                             ; preds = %9756
  %9758 = load i32, ptr @test_count, align 4, !tbaa !5
  %9759 = add nsw i32 %9758, 1
  store i32 %9759, ptr @test_count, align 4, !tbaa !5
  %9760 = load ptr, ptr %264, align 8, !tbaa !9
  %9761 = load ptr, ptr %78, align 8, !tbaa !9
  %9762 = call i32 @s2n_connection_set_config(ptr noundef %9760, ptr noundef %9761)
  %9763 = icmp eq i32 %9762, -1
  br i1 %9763, label %9764, label %9817

9764:                                             ; preds = %9757
  br label %9765

9765:                                             ; preds = %9764
  br label %9766

9766:                                             ; preds = %9765
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #10
  %9767 = call ptr @__errno_location() #11
  %9768 = load i32, ptr %9767, align 4, !tbaa !5
  store i32 %9768, ptr %279, align 4, !tbaa !5
  %9769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9770 = call i32 @s2n_print_stacktrace(ptr noundef %9769)
  %9771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9772 = trunc i8 %9771 to i1
  br i1 %9772, label %9773, label %9795

9773:                                             ; preds = %9766
  %9774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9775 = call i32 @fileno(ptr noundef %9774) #10
  %9776 = call i32 @isatty(i32 noundef %9775) #10
  %9777 = icmp ne i32 %9776, 0
  br i1 %9777, label %9778, label %9795

9778:                                             ; preds = %9773
  %9779 = load i32, ptr %279, align 4, !tbaa !5
  %9780 = call ptr @__errno_location() #11
  store i32 %9779, ptr %9780, align 4, !tbaa !5
  %9781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9782 = load i32, ptr @test_count, align 4, !tbaa !5
  %9783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9784 = load i32, ptr %9783, align 4, !tbaa !5
  %9785 = call ptr @s2n_strerror(i32 noundef %9784, ptr noundef @.str.4)
  %9786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9787 = load i32, ptr %9786, align 4, !tbaa !5
  %9788 = call ptr @s2n_strerror_debug(i32 noundef %9787, ptr noundef @.str.4)
  %9789 = call ptr @__errno_location() #11
  %9790 = load i32, ptr %9789, align 4, !tbaa !5
  %9791 = call ptr @strerror(i32 noundef %9790) #10
  %9792 = call ptr @__errno_location() #11
  %9793 = load i32, ptr %9792, align 4, !tbaa !5
  %9794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9781, ptr noundef @.str.2, i32 noundef %9782, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 612, ptr noundef %9785, ptr noundef %9788, ptr noundef %9791, i32 noundef %9793) #10
  br label %9812

9795:                                             ; preds = %9773, %9766
  %9796 = load i32, ptr %279, align 4, !tbaa !5
  %9797 = call ptr @__errno_location() #11
  store i32 %9796, ptr %9797, align 4, !tbaa !5
  %9798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9799 = load i32, ptr @test_count, align 4, !tbaa !5
  %9800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9801 = load i32, ptr %9800, align 4, !tbaa !5
  %9802 = call ptr @s2n_strerror(i32 noundef %9801, ptr noundef @.str.4)
  %9803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9804 = load i32, ptr %9803, align 4, !tbaa !5
  %9805 = call ptr @s2n_strerror_debug(i32 noundef %9804, ptr noundef @.str.4)
  %9806 = call ptr @__errno_location() #11
  %9807 = load i32, ptr %9806, align 4, !tbaa !5
  %9808 = call ptr @strerror(i32 noundef %9807) #10
  %9809 = call ptr @__errno_location() #11
  %9810 = load i32, ptr %9809, align 4, !tbaa !5
  %9811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9798, ptr noundef @.str.5, i32 noundef %9799, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 612, ptr noundef %9802, ptr noundef %9805, ptr noundef %9808, i32 noundef %9810) #10
  br label %9812

9812:                                             ; preds = %9795, %9778
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #10
  br label %9813

9813:                                             ; preds = %9812
  br label %9814

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

9815:                                             ; No predecessors!
  br label %9816

9816:                                             ; preds = %9815
  br label %9817

9817:                                             ; preds = %9816, %9757
  br label %9818

9818:                                             ; preds = %9817
  br label %9819

9819:                                             ; preds = %9818
  br label %9820

9820:                                             ; preds = %9819
  %9821 = load i32, ptr @test_count, align 4, !tbaa !5
  %9822 = add nsw i32 %9821, 1
  store i32 %9822, ptr @test_count, align 4, !tbaa !5
  %9823 = load ptr, ptr %264, align 8, !tbaa !9
  %9824 = call i32 @s2n_signature_algorithm_select(ptr noundef %9823)
  %9825 = getelementptr inbounds %struct.s2n_result, ptr %280, i32 0, i32 0
  store i32 %9824, ptr %9825, align 4
  %9826 = getelementptr inbounds %struct.s2n_result, ptr %280, i32 0, i32 0
  %9827 = load i32, ptr %9826, align 4
  %9828 = call zeroext i1 @s2n_result_is_ok(i32 %9827)
  br i1 %9828, label %9882, label %9829

9829:                                             ; preds = %9820
  br label %9830

9830:                                             ; preds = %9829
  br label %9831

9831:                                             ; preds = %9830
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #10
  %9832 = call ptr @__errno_location() #11
  %9833 = load i32, ptr %9832, align 4, !tbaa !5
  store i32 %9833, ptr %281, align 4, !tbaa !5
  %9834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9835 = call i32 @s2n_print_stacktrace(ptr noundef %9834)
  %9836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9837 = trunc i8 %9836 to i1
  br i1 %9837, label %9838, label %9860

9838:                                             ; preds = %9831
  %9839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9840 = call i32 @fileno(ptr noundef %9839) #10
  %9841 = call i32 @isatty(i32 noundef %9840) #10
  %9842 = icmp ne i32 %9841, 0
  br i1 %9842, label %9843, label %9860

9843:                                             ; preds = %9838
  %9844 = load i32, ptr %281, align 4, !tbaa !5
  %9845 = call ptr @__errno_location() #11
  store i32 %9844, ptr %9845, align 4, !tbaa !5
  %9846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9847 = load i32, ptr @test_count, align 4, !tbaa !5
  %9848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9849 = load i32, ptr %9848, align 4, !tbaa !5
  %9850 = call ptr @s2n_strerror(i32 noundef %9849, ptr noundef @.str.4)
  %9851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9852 = load i32, ptr %9851, align 4, !tbaa !5
  %9853 = call ptr @s2n_strerror_debug(i32 noundef %9852, ptr noundef @.str.4)
  %9854 = call ptr @__errno_location() #11
  %9855 = load i32, ptr %9854, align 4, !tbaa !5
  %9856 = call ptr @strerror(i32 noundef %9855) #10
  %9857 = call ptr @__errno_location() #11
  %9858 = load i32, ptr %9857, align 4, !tbaa !5
  %9859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9846, ptr noundef @.str.2, i32 noundef %9847, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 613, ptr noundef %9850, ptr noundef %9853, ptr noundef %9856, i32 noundef %9858) #10
  br label %9877

9860:                                             ; preds = %9838, %9831
  %9861 = load i32, ptr %281, align 4, !tbaa !5
  %9862 = call ptr @__errno_location() #11
  store i32 %9861, ptr %9862, align 4, !tbaa !5
  %9863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9864 = load i32, ptr @test_count, align 4, !tbaa !5
  %9865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9866 = load i32, ptr %9865, align 4, !tbaa !5
  %9867 = call ptr @s2n_strerror(i32 noundef %9866, ptr noundef @.str.4)
  %9868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9869 = load i32, ptr %9868, align 4, !tbaa !5
  %9870 = call ptr @s2n_strerror_debug(i32 noundef %9869, ptr noundef @.str.4)
  %9871 = call ptr @__errno_location() #11
  %9872 = load i32, ptr %9871, align 4, !tbaa !5
  %9873 = call ptr @strerror(i32 noundef %9872) #10
  %9874 = call ptr @__errno_location() #11
  %9875 = load i32, ptr %9874, align 4, !tbaa !5
  %9876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9863, ptr noundef @.str.5, i32 noundef %9864, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 613, ptr noundef %9867, ptr noundef %9870, ptr noundef %9873, i32 noundef %9875) #10
  br label %9877

9877:                                             ; preds = %9860, %9843
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #10
  br label %9878

9878:                                             ; preds = %9877
  br label %9879

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

9880:                                             ; No predecessors!
  br label %9881

9881:                                             ; preds = %9880
  br label %9882

9882:                                             ; preds = %9881, %9820
  br label %9883

9883:                                             ; preds = %9882
  br label %9884

9884:                                             ; preds = %9883
  call void @llvm.lifetime.end.p0(i64 80, ptr %265) #10
  %9885 = call i32 @s2n_connection_ptr_free(ptr noundef %264)
  %9886 = getelementptr inbounds %struct.s2n_result, ptr %282, i32 0, i32 0
  store i32 %9885, ptr %9886, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %283) #10
  store ptr @s2n_ecdsa_sha384, ptr %283, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %284) #10
  store ptr @s2n_ecdsa_sha256, ptr %284, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %285) #10
  %9887 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9887, ptr %285, align 8, !tbaa !9
  %9888 = load ptr, ptr %285, align 8, !tbaa !9
  %9889 = getelementptr inbounds %struct.s2n_connection, ptr %9888, i32 0, i32 23
  store i8 34, ptr %9889, align 4, !tbaa !50
  %9890 = load ptr, ptr %285, align 8, !tbaa !9
  %9891 = getelementptr inbounds %struct.s2n_connection, ptr %9890, i32 0, i32 27
  %9892 = load ptr, ptr %9891, align 8, !tbaa !66
  %9893 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9892, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %9893, align 8, !tbaa !67
  br label %9894

9894:                                             ; preds = %9884
  %9895 = load i32, ptr @test_count, align 4, !tbaa !5
  %9896 = add nsw i32 %9895, 1
  store i32 %9896, ptr @test_count, align 4, !tbaa !5
  %9897 = load ptr, ptr %285, align 8, !tbaa !9
  %9898 = load ptr, ptr %75, align 8, !tbaa !9
  %9899 = call i32 @s2n_connection_set_config(ptr noundef %9897, ptr noundef %9898)
  %9900 = icmp eq i32 %9899, -1
  br i1 %9900, label %9901, label %9954

9901:                                             ; preds = %9894
  br label %9902

9902:                                             ; preds = %9901
  br label %9903

9903:                                             ; preds = %9902
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #10
  %9904 = call ptr @__errno_location() #11
  %9905 = load i32, ptr %9904, align 4, !tbaa !5
  store i32 %9905, ptr %286, align 4, !tbaa !5
  %9906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9907 = call i32 @s2n_print_stacktrace(ptr noundef %9906)
  %9908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9909 = trunc i8 %9908 to i1
  br i1 %9909, label %9910, label %9932

9910:                                             ; preds = %9903
  %9911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9912 = call i32 @fileno(ptr noundef %9911) #10
  %9913 = call i32 @isatty(i32 noundef %9912) #10
  %9914 = icmp ne i32 %9913, 0
  br i1 %9914, label %9915, label %9932

9915:                                             ; preds = %9910
  %9916 = load i32, ptr %286, align 4, !tbaa !5
  %9917 = call ptr @__errno_location() #11
  store i32 %9916, ptr %9917, align 4, !tbaa !5
  %9918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9919 = load i32, ptr @test_count, align 4, !tbaa !5
  %9920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9921 = load i32, ptr %9920, align 4, !tbaa !5
  %9922 = call ptr @s2n_strerror(i32 noundef %9921, ptr noundef @.str.4)
  %9923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9924 = load i32, ptr %9923, align 4, !tbaa !5
  %9925 = call ptr @s2n_strerror_debug(i32 noundef %9924, ptr noundef @.str.4)
  %9926 = call ptr @__errno_location() #11
  %9927 = load i32, ptr %9926, align 4, !tbaa !5
  %9928 = call ptr @strerror(i32 noundef %9927) #10
  %9929 = call ptr @__errno_location() #11
  %9930 = load i32, ptr %9929, align 4, !tbaa !5
  %9931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9918, ptr noundef @.str.2, i32 noundef %9919, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 630, ptr noundef %9922, ptr noundef %9925, ptr noundef %9928, i32 noundef %9930) #10
  br label %9949

9932:                                             ; preds = %9910, %9903
  %9933 = load i32, ptr %286, align 4, !tbaa !5
  %9934 = call ptr @__errno_location() #11
  store i32 %9933, ptr %9934, align 4, !tbaa !5
  %9935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9936 = load i32, ptr @test_count, align 4, !tbaa !5
  %9937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9938 = load i32, ptr %9937, align 4, !tbaa !5
  %9939 = call ptr @s2n_strerror(i32 noundef %9938, ptr noundef @.str.4)
  %9940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9941 = load i32, ptr %9940, align 4, !tbaa !5
  %9942 = call ptr @s2n_strerror_debug(i32 noundef %9941, ptr noundef @.str.4)
  %9943 = call ptr @__errno_location() #11
  %9944 = load i32, ptr %9943, align 4, !tbaa !5
  %9945 = call ptr @strerror(i32 noundef %9944) #10
  %9946 = call ptr @__errno_location() #11
  %9947 = load i32, ptr %9946, align 4, !tbaa !5
  %9948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9935, ptr noundef @.str.5, i32 noundef %9936, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 630, ptr noundef %9939, ptr noundef %9942, ptr noundef %9945, i32 noundef %9947) #10
  br label %9949

9949:                                             ; preds = %9932, %9915
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #10
  br label %9950

9950:                                             ; preds = %9949
  br label %9951

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

9952:                                             ; No predecessors!
  br label %9953

9953:                                             ; preds = %9952
  br label %9954

9954:                                             ; preds = %9953, %9894
  br label %9955

9955:                                             ; preds = %9954
  br label %9956

9956:                                             ; preds = %9955
  call void @llvm.lifetime.start.p0(i64 80, ptr %287) #10
  call void @llvm.memset.p0.i64(ptr align 8 %287, i8 0, i64 80, i1 false)
  br label %9957

9957:                                             ; preds = %9956
  %9958 = load i32, ptr @test_count, align 4, !tbaa !5
  %9959 = add nsw i32 %9958, 1
  store i32 %9959, ptr @test_count, align 4, !tbaa !5
  %9960 = load ptr, ptr %285, align 8, !tbaa !9
  %9961 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %9960, ptr noundef %287, ptr noundef %284, i64 noundef 1)
  %9962 = getelementptr inbounds %struct.s2n_result, ptr %288, i32 0, i32 0
  store i32 %9961, ptr %9962, align 4
  %9963 = getelementptr inbounds %struct.s2n_result, ptr %288, i32 0, i32 0
  %9964 = load i32, ptr %9963, align 4
  %9965 = call zeroext i1 @s2n_result_is_ok(i32 %9964)
  br i1 %9965, label %10019, label %9966

9966:                                             ; preds = %9957
  br label %9967

9967:                                             ; preds = %9966
  br label %9968

9968:                                             ; preds = %9967
  call void @llvm.lifetime.start.p0(i64 4, ptr %289) #10
  %9969 = call ptr @__errno_location() #11
  %9970 = load i32, ptr %9969, align 4, !tbaa !5
  store i32 %9970, ptr %289, align 4, !tbaa !5
  %9971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9972 = call i32 @s2n_print_stacktrace(ptr noundef %9971)
  %9973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9974 = trunc i8 %9973 to i1
  br i1 %9974, label %9975, label %9997

9975:                                             ; preds = %9968
  %9976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9977 = call i32 @fileno(ptr noundef %9976) #10
  %9978 = call i32 @isatty(i32 noundef %9977) #10
  %9979 = icmp ne i32 %9978, 0
  br i1 %9979, label %9980, label %9997

9980:                                             ; preds = %9975
  %9981 = load i32, ptr %289, align 4, !tbaa !5
  %9982 = call ptr @__errno_location() #11
  store i32 %9981, ptr %9982, align 4, !tbaa !5
  %9983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9984 = load i32, ptr @test_count, align 4, !tbaa !5
  %9985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9986 = load i32, ptr %9985, align 4, !tbaa !5
  %9987 = call ptr @s2n_strerror(i32 noundef %9986, ptr noundef @.str.4)
  %9988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9989 = load i32, ptr %9988, align 4, !tbaa !5
  %9990 = call ptr @s2n_strerror_debug(i32 noundef %9989, ptr noundef @.str.4)
  %9991 = call ptr @__errno_location() #11
  %9992 = load i32, ptr %9991, align 4, !tbaa !5
  %9993 = call ptr @strerror(i32 noundef %9992) #10
  %9994 = call ptr @__errno_location() #11
  %9995 = load i32, ptr %9994, align 4, !tbaa !5
  %9996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9983, ptr noundef @.str.2, i32 noundef %9984, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 636, ptr noundef %9987, ptr noundef %9990, ptr noundef %9993, i32 noundef %9995) #10
  br label %10014

9997:                                             ; preds = %9975, %9968
  %9998 = load i32, ptr %289, align 4, !tbaa !5
  %9999 = call ptr @__errno_location() #11
  store i32 %9998, ptr %9999, align 4, !tbaa !5
  %10000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10001 = load i32, ptr @test_count, align 4, !tbaa !5
  %10002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10003 = load i32, ptr %10002, align 4, !tbaa !5
  %10004 = call ptr @s2n_strerror(i32 noundef %10003, ptr noundef @.str.4)
  %10005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10006 = load i32, ptr %10005, align 4, !tbaa !5
  %10007 = call ptr @s2n_strerror_debug(i32 noundef %10006, ptr noundef @.str.4)
  %10008 = call ptr @__errno_location() #11
  %10009 = load i32, ptr %10008, align 4, !tbaa !5
  %10010 = call ptr @strerror(i32 noundef %10009) #10
  %10011 = call ptr @__errno_location() #11
  %10012 = load i32, ptr %10011, align 4, !tbaa !5
  %10013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10000, ptr noundef @.str.5, i32 noundef %10001, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 636, ptr noundef %10004, ptr noundef %10007, ptr noundef %10010, i32 noundef %10012) #10
  br label %10014

10014:                                            ; preds = %9997, %9980
  call void @llvm.lifetime.end.p0(i64 4, ptr %289) #10
  br label %10015

10015:                                            ; preds = %10014
  br label %10016

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

10017:                                            ; No predecessors!
  br label %10018

10018:                                            ; preds = %10017
  br label %10019

10019:                                            ; preds = %10018, %9957
  br label %10020

10020:                                            ; preds = %10019
  br label %10021

10021:                                            ; preds = %10020
  br label %10022

10022:                                            ; preds = %10021
  %10023 = load i32, ptr @test_count, align 4, !tbaa !5
  %10024 = add nsw i32 %10023, 1
  store i32 %10024, ptr @test_count, align 4, !tbaa !5
  %10025 = load ptr, ptr %285, align 8, !tbaa !9
  %10026 = getelementptr inbounds %struct.s2n_connection, ptr %10025, i32 0, i32 32
  %10027 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %10026, i32 0, i32 4
  %10028 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %10027, ptr noundef %284, i64 noundef 1)
  %10029 = getelementptr inbounds %struct.s2n_result, ptr %290, i32 0, i32 0
  store i32 %10028, ptr %10029, align 4
  %10030 = getelementptr inbounds %struct.s2n_result, ptr %290, i32 0, i32 0
  %10031 = load i32, ptr %10030, align 4
  %10032 = call zeroext i1 @s2n_result_is_ok(i32 %10031)
  br i1 %10032, label %10086, label %10033

10033:                                            ; preds = %10022
  br label %10034

10034:                                            ; preds = %10033
  br label %10035

10035:                                            ; preds = %10034
  call void @llvm.lifetime.start.p0(i64 4, ptr %291) #10
  %10036 = call ptr @__errno_location() #11
  %10037 = load i32, ptr %10036, align 4, !tbaa !5
  store i32 %10037, ptr %291, align 4, !tbaa !5
  %10038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10039 = call i32 @s2n_print_stacktrace(ptr noundef %10038)
  %10040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10041 = trunc i8 %10040 to i1
  br i1 %10041, label %10042, label %10064

10042:                                            ; preds = %10035
  %10043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10044 = call i32 @fileno(ptr noundef %10043) #10
  %10045 = call i32 @isatty(i32 noundef %10044) #10
  %10046 = icmp ne i32 %10045, 0
  br i1 %10046, label %10047, label %10064

10047:                                            ; preds = %10042
  %10048 = load i32, ptr %291, align 4, !tbaa !5
  %10049 = call ptr @__errno_location() #11
  store i32 %10048, ptr %10049, align 4, !tbaa !5
  %10050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10051 = load i32, ptr @test_count, align 4, !tbaa !5
  %10052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10053 = load i32, ptr %10052, align 4, !tbaa !5
  %10054 = call ptr @s2n_strerror(i32 noundef %10053, ptr noundef @.str.4)
  %10055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10056 = load i32, ptr %10055, align 4, !tbaa !5
  %10057 = call ptr @s2n_strerror_debug(i32 noundef %10056, ptr noundef @.str.4)
  %10058 = call ptr @__errno_location() #11
  %10059 = load i32, ptr %10058, align 4, !tbaa !5
  %10060 = call ptr @strerror(i32 noundef %10059) #10
  %10061 = call ptr @__errno_location() #11
  %10062 = load i32, ptr %10061, align 4, !tbaa !5
  %10063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10050, ptr noundef @.str.2, i32 noundef %10051, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 638, ptr noundef %10054, ptr noundef %10057, ptr noundef %10060, i32 noundef %10062) #10
  br label %10081

10064:                                            ; preds = %10042, %10035
  %10065 = load i32, ptr %291, align 4, !tbaa !5
  %10066 = call ptr @__errno_location() #11
  store i32 %10065, ptr %10066, align 4, !tbaa !5
  %10067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10068 = load i32, ptr @test_count, align 4, !tbaa !5
  %10069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10070 = load i32, ptr %10069, align 4, !tbaa !5
  %10071 = call ptr @s2n_strerror(i32 noundef %10070, ptr noundef @.str.4)
  %10072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10073 = load i32, ptr %10072, align 4, !tbaa !5
  %10074 = call ptr @s2n_strerror_debug(i32 noundef %10073, ptr noundef @.str.4)
  %10075 = call ptr @__errno_location() #11
  %10076 = load i32, ptr %10075, align 4, !tbaa !5
  %10077 = call ptr @strerror(i32 noundef %10076) #10
  %10078 = call ptr @__errno_location() #11
  %10079 = load i32, ptr %10078, align 4, !tbaa !5
  %10080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10067, ptr noundef @.str.5, i32 noundef %10068, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 638, ptr noundef %10071, ptr noundef %10074, ptr noundef %10077, i32 noundef %10079) #10
  br label %10081

10081:                                            ; preds = %10064, %10047
  call void @llvm.lifetime.end.p0(i64 4, ptr %291) #10
  br label %10082

10082:                                            ; preds = %10081
  br label %10083

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

10084:                                            ; No predecessors!
  br label %10085

10085:                                            ; preds = %10084
  br label %10086

10086:                                            ; preds = %10085, %10022
  br label %10087

10087:                                            ; preds = %10086
  br label %10088

10088:                                            ; preds = %10087
  br label %10089

10089:                                            ; preds = %10088
  br label %10090

10090:                                            ; preds = %10089
  br label %10091

10091:                                            ; preds = %10090
  %10092 = load i32, ptr @test_count, align 4, !tbaa !5
  %10093 = add nsw i32 %10092, 1
  store i32 %10093, ptr @test_count, align 4, !tbaa !5
  %10094 = load ptr, ptr %285, align 8, !tbaa !9
  %10095 = call i32 @s2n_signature_algorithm_select(ptr noundef %10094)
  %10096 = getelementptr inbounds %struct.s2n_result, ptr %292, i32 0, i32 0
  store i32 %10095, ptr %10096, align 4
  %10097 = getelementptr inbounds %struct.s2n_result, ptr %292, i32 0, i32 0
  %10098 = load i32, ptr %10097, align 4
  %10099 = call zeroext i1 @s2n_result_is_error(i32 %10098)
  br i1 %10099, label %10153, label %10100

10100:                                            ; preds = %10091
  br label %10101

10101:                                            ; preds = %10100
  br label %10102

10102:                                            ; preds = %10101
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #10
  %10103 = call ptr @__errno_location() #11
  %10104 = load i32, ptr %10103, align 4, !tbaa !5
  store i32 %10104, ptr %293, align 4, !tbaa !5
  %10105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10106 = call i32 @s2n_print_stacktrace(ptr noundef %10105)
  %10107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10108 = trunc i8 %10107 to i1
  br i1 %10108, label %10109, label %10131

10109:                                            ; preds = %10102
  %10110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10111 = call i32 @fileno(ptr noundef %10110) #10
  %10112 = call i32 @isatty(i32 noundef %10111) #10
  %10113 = icmp ne i32 %10112, 0
  br i1 %10113, label %10114, label %10131

10114:                                            ; preds = %10109
  %10115 = load i32, ptr %293, align 4, !tbaa !5
  %10116 = call ptr @__errno_location() #11
  store i32 %10115, ptr %10116, align 4, !tbaa !5
  %10117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10118 = load i32, ptr @test_count, align 4, !tbaa !5
  %10119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10120 = load i32, ptr %10119, align 4, !tbaa !5
  %10121 = call ptr @s2n_strerror(i32 noundef %10120, ptr noundef @.str.4)
  %10122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10123 = load i32, ptr %10122, align 4, !tbaa !5
  %10124 = call ptr @s2n_strerror_debug(i32 noundef %10123, ptr noundef @.str.4)
  %10125 = call ptr @__errno_location() #11
  %10126 = load i32, ptr %10125, align 4, !tbaa !5
  %10127 = call ptr @strerror(i32 noundef %10126) #10
  %10128 = call ptr @__errno_location() #11
  %10129 = load i32, ptr %10128, align 4, !tbaa !5
  %10130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10117, ptr noundef @.str.2, i32 noundef %10118, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 641, ptr noundef %10121, ptr noundef %10124, ptr noundef %10127, i32 noundef %10129) #10
  br label %10148

10131:                                            ; preds = %10109, %10102
  %10132 = load i32, ptr %293, align 4, !tbaa !5
  %10133 = call ptr @__errno_location() #11
  store i32 %10132, ptr %10133, align 4, !tbaa !5
  %10134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10135 = load i32, ptr @test_count, align 4, !tbaa !5
  %10136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10137 = load i32, ptr %10136, align 4, !tbaa !5
  %10138 = call ptr @s2n_strerror(i32 noundef %10137, ptr noundef @.str.4)
  %10139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10140 = load i32, ptr %10139, align 4, !tbaa !5
  %10141 = call ptr @s2n_strerror_debug(i32 noundef %10140, ptr noundef @.str.4)
  %10142 = call ptr @__errno_location() #11
  %10143 = load i32, ptr %10142, align 4, !tbaa !5
  %10144 = call ptr @strerror(i32 noundef %10143) #10
  %10145 = call ptr @__errno_location() #11
  %10146 = load i32, ptr %10145, align 4, !tbaa !5
  %10147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10134, ptr noundef @.str.5, i32 noundef %10135, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 641, ptr noundef %10138, ptr noundef %10141, ptr noundef %10144, i32 noundef %10146) #10
  br label %10148

10148:                                            ; preds = %10131, %10114
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #10
  br label %10149

10149:                                            ; preds = %10148
  br label %10150

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

10151:                                            ; No predecessors!
  br label %10152

10152:                                            ; preds = %10151
  br label %10153

10153:                                            ; preds = %10152, %10091
  br label %10154

10154:                                            ; preds = %10153
  br label %10155

10155:                                            ; preds = %10154
  br label %10156

10156:                                            ; preds = %10155
  %10157 = load i32, ptr @test_count, align 4, !tbaa !5
  %10158 = add nsw i32 %10157, 1
  store i32 %10158, ptr @test_count, align 4, !tbaa !5
  %10159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10160 = load i32, ptr %10159, align 4, !tbaa !5
  %10161 = icmp eq i32 %10160, 335544349
  br i1 %10161, label %10215, label %10162

10162:                                            ; preds = %10156
  br label %10163

10163:                                            ; preds = %10162
  br label %10164

10164:                                            ; preds = %10163
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #10
  %10165 = call ptr @__errno_location() #11
  %10166 = load i32, ptr %10165, align 4, !tbaa !5
  store i32 %10166, ptr %294, align 4, !tbaa !5
  %10167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10168 = call i32 @s2n_print_stacktrace(ptr noundef %10167)
  %10169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10170 = trunc i8 %10169 to i1
  br i1 %10170, label %10171, label %10193

10171:                                            ; preds = %10164
  %10172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10173 = call i32 @fileno(ptr noundef %10172) #10
  %10174 = call i32 @isatty(i32 noundef %10173) #10
  %10175 = icmp ne i32 %10174, 0
  br i1 %10175, label %10176, label %10193

10176:                                            ; preds = %10171
  %10177 = load i32, ptr %294, align 4, !tbaa !5
  %10178 = call ptr @__errno_location() #11
  store i32 %10177, ptr %10178, align 4, !tbaa !5
  %10179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10180 = load i32, ptr @test_count, align 4, !tbaa !5
  %10181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10182 = load i32, ptr %10181, align 4, !tbaa !5
  %10183 = call ptr @s2n_strerror(i32 noundef %10182, ptr noundef @.str.4)
  %10184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10185 = load i32, ptr %10184, align 4, !tbaa !5
  %10186 = call ptr @s2n_strerror_debug(i32 noundef %10185, ptr noundef @.str.4)
  %10187 = call ptr @__errno_location() #11
  %10188 = load i32, ptr %10187, align 4, !tbaa !5
  %10189 = call ptr @strerror(i32 noundef %10188) #10
  %10190 = call ptr @__errno_location() #11
  %10191 = load i32, ptr %10190, align 4, !tbaa !5
  %10192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10179, ptr noundef @.str.2, i32 noundef %10180, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 641, ptr noundef %10183, ptr noundef %10186, ptr noundef %10189, i32 noundef %10191) #10
  br label %10210

10193:                                            ; preds = %10171, %10164
  %10194 = load i32, ptr %294, align 4, !tbaa !5
  %10195 = call ptr @__errno_location() #11
  store i32 %10194, ptr %10195, align 4, !tbaa !5
  %10196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10197 = load i32, ptr @test_count, align 4, !tbaa !5
  %10198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10199 = load i32, ptr %10198, align 4, !tbaa !5
  %10200 = call ptr @s2n_strerror(i32 noundef %10199, ptr noundef @.str.4)
  %10201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10202 = load i32, ptr %10201, align 4, !tbaa !5
  %10203 = call ptr @s2n_strerror_debug(i32 noundef %10202, ptr noundef @.str.4)
  %10204 = call ptr @__errno_location() #11
  %10205 = load i32, ptr %10204, align 4, !tbaa !5
  %10206 = call ptr @strerror(i32 noundef %10205) #10
  %10207 = call ptr @__errno_location() #11
  %10208 = load i32, ptr %10207, align 4, !tbaa !5
  %10209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10196, ptr noundef @.str.5, i32 noundef %10197, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 641, ptr noundef %10200, ptr noundef %10203, ptr noundef %10206, i32 noundef %10208) #10
  br label %10210

10210:                                            ; preds = %10193, %10176
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #10
  br label %10211

10211:                                            ; preds = %10210
  br label %10212

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

10213:                                            ; No predecessors!
  br label %10214

10214:                                            ; preds = %10213
  br label %10215

10215:                                            ; preds = %10214, %10156
  br label %10216

10216:                                            ; preds = %10215
  br label %10217

10217:                                            ; preds = %10216
  br label %10218

10218:                                            ; preds = %10217
  %10219 = load i32, ptr @test_count, align 4, !tbaa !5
  %10220 = add nsw i32 %10219, 1
  store i32 %10220, ptr @test_count, align 4, !tbaa !5
  %10221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10222 = load i32, ptr %10221, align 4, !tbaa !5
  %10223 = call ptr @s2n_strerror_debug(i32 noundef %10222, ptr noundef @.str.4)
  %10224 = icmp eq ptr %10223, null
  br i1 %10224, label %10225, label %10278

10225:                                            ; preds = %10218
  br label %10226

10226:                                            ; preds = %10225
  br label %10227

10227:                                            ; preds = %10226
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #10
  %10228 = call ptr @__errno_location() #11
  %10229 = load i32, ptr %10228, align 4, !tbaa !5
  store i32 %10229, ptr %295, align 4, !tbaa !5
  %10230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10231 = call i32 @s2n_print_stacktrace(ptr noundef %10230)
  %10232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10233 = trunc i8 %10232 to i1
  br i1 %10233, label %10234, label %10256

10234:                                            ; preds = %10227
  %10235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10236 = call i32 @fileno(ptr noundef %10235) #10
  %10237 = call i32 @isatty(i32 noundef %10236) #10
  %10238 = icmp ne i32 %10237, 0
  br i1 %10238, label %10239, label %10256

10239:                                            ; preds = %10234
  %10240 = load i32, ptr %295, align 4, !tbaa !5
  %10241 = call ptr @__errno_location() #11
  store i32 %10240, ptr %10241, align 4, !tbaa !5
  %10242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10243 = load i32, ptr @test_count, align 4, !tbaa !5
  %10244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10245 = load i32, ptr %10244, align 4, !tbaa !5
  %10246 = call ptr @s2n_strerror(i32 noundef %10245, ptr noundef @.str.4)
  %10247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10248 = load i32, ptr %10247, align 4, !tbaa !5
  %10249 = call ptr @s2n_strerror_debug(i32 noundef %10248, ptr noundef @.str.4)
  %10250 = call ptr @__errno_location() #11
  %10251 = load i32, ptr %10250, align 4, !tbaa !5
  %10252 = call ptr @strerror(i32 noundef %10251) #10
  %10253 = call ptr @__errno_location() #11
  %10254 = load i32, ptr %10253, align 4, !tbaa !5
  %10255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10242, ptr noundef @.str.2, i32 noundef %10243, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 641, ptr noundef %10246, ptr noundef %10249, ptr noundef %10252, i32 noundef %10254) #10
  br label %10273

10256:                                            ; preds = %10234, %10227
  %10257 = load i32, ptr %295, align 4, !tbaa !5
  %10258 = call ptr @__errno_location() #11
  store i32 %10257, ptr %10258, align 4, !tbaa !5
  %10259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10260 = load i32, ptr @test_count, align 4, !tbaa !5
  %10261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10262 = load i32, ptr %10261, align 4, !tbaa !5
  %10263 = call ptr @s2n_strerror(i32 noundef %10262, ptr noundef @.str.4)
  %10264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10265 = load i32, ptr %10264, align 4, !tbaa !5
  %10266 = call ptr @s2n_strerror_debug(i32 noundef %10265, ptr noundef @.str.4)
  %10267 = call ptr @__errno_location() #11
  %10268 = load i32, ptr %10267, align 4, !tbaa !5
  %10269 = call ptr @strerror(i32 noundef %10268) #10
  %10270 = call ptr @__errno_location() #11
  %10271 = load i32, ptr %10270, align 4, !tbaa !5
  %10272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10259, ptr noundef @.str.5, i32 noundef %10260, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 641, ptr noundef %10263, ptr noundef %10266, ptr noundef %10269, i32 noundef %10271) #10
  br label %10273

10273:                                            ; preds = %10256, %10239
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #10
  br label %10274

10274:                                            ; preds = %10273
  br label %10275

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

10276:                                            ; No predecessors!
  br label %10277

10277:                                            ; preds = %10276
  br label %10278

10278:                                            ; preds = %10277, %10218
  br label %10279

10279:                                            ; preds = %10278
  br label %10280

10280:                                            ; preds = %10279
  br label %10281

10281:                                            ; preds = %10280
  br label %10282

10282:                                            ; preds = %10281
  br label %10283

10283:                                            ; preds = %10282
  %10284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %10284, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %10285 = call ptr @__errno_location() #11
  store i32 0, ptr %10285, align 4, !tbaa !5
  br label %10286

10286:                                            ; preds = %10283
  br label %10287

10287:                                            ; preds = %10286
  br label %10288

10288:                                            ; preds = %10287
  br label %10289

10289:                                            ; preds = %10288
  br label %10290

10290:                                            ; preds = %10289
  %10291 = load i32, ptr @test_count, align 4, !tbaa !5
  %10292 = add nsw i32 %10291, 1
  store i32 %10292, ptr @test_count, align 4, !tbaa !5
  %10293 = load ptr, ptr %285, align 8, !tbaa !9
  %10294 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %10293, ptr noundef %287, ptr noundef %283, i64 noundef 1)
  %10295 = getelementptr inbounds %struct.s2n_result, ptr %296, i32 0, i32 0
  store i32 %10294, ptr %10295, align 4
  %10296 = getelementptr inbounds %struct.s2n_result, ptr %296, i32 0, i32 0
  %10297 = load i32, ptr %10296, align 4
  %10298 = call zeroext i1 @s2n_result_is_ok(i32 %10297)
  br i1 %10298, label %10352, label %10299

10299:                                            ; preds = %10290
  br label %10300

10300:                                            ; preds = %10299
  br label %10301

10301:                                            ; preds = %10300
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #10
  %10302 = call ptr @__errno_location() #11
  %10303 = load i32, ptr %10302, align 4, !tbaa !5
  store i32 %10303, ptr %297, align 4, !tbaa !5
  %10304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10305 = call i32 @s2n_print_stacktrace(ptr noundef %10304)
  %10306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10307 = trunc i8 %10306 to i1
  br i1 %10307, label %10308, label %10330

10308:                                            ; preds = %10301
  %10309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10310 = call i32 @fileno(ptr noundef %10309) #10
  %10311 = call i32 @isatty(i32 noundef %10310) #10
  %10312 = icmp ne i32 %10311, 0
  br i1 %10312, label %10313, label %10330

10313:                                            ; preds = %10308
  %10314 = load i32, ptr %297, align 4, !tbaa !5
  %10315 = call ptr @__errno_location() #11
  store i32 %10314, ptr %10315, align 4, !tbaa !5
  %10316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10317 = load i32, ptr @test_count, align 4, !tbaa !5
  %10318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10319 = load i32, ptr %10318, align 4, !tbaa !5
  %10320 = call ptr @s2n_strerror(i32 noundef %10319, ptr noundef @.str.4)
  %10321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10322 = load i32, ptr %10321, align 4, !tbaa !5
  %10323 = call ptr @s2n_strerror_debug(i32 noundef %10322, ptr noundef @.str.4)
  %10324 = call ptr @__errno_location() #11
  %10325 = load i32, ptr %10324, align 4, !tbaa !5
  %10326 = call ptr @strerror(i32 noundef %10325) #10
  %10327 = call ptr @__errno_location() #11
  %10328 = load i32, ptr %10327, align 4, !tbaa !5
  %10329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10316, ptr noundef @.str.2, i32 noundef %10317, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 645, ptr noundef %10320, ptr noundef %10323, ptr noundef %10326, i32 noundef %10328) #10
  br label %10347

10330:                                            ; preds = %10308, %10301
  %10331 = load i32, ptr %297, align 4, !tbaa !5
  %10332 = call ptr @__errno_location() #11
  store i32 %10331, ptr %10332, align 4, !tbaa !5
  %10333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10334 = load i32, ptr @test_count, align 4, !tbaa !5
  %10335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10336 = load i32, ptr %10335, align 4, !tbaa !5
  %10337 = call ptr @s2n_strerror(i32 noundef %10336, ptr noundef @.str.4)
  %10338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10339 = load i32, ptr %10338, align 4, !tbaa !5
  %10340 = call ptr @s2n_strerror_debug(i32 noundef %10339, ptr noundef @.str.4)
  %10341 = call ptr @__errno_location() #11
  %10342 = load i32, ptr %10341, align 4, !tbaa !5
  %10343 = call ptr @strerror(i32 noundef %10342) #10
  %10344 = call ptr @__errno_location() #11
  %10345 = load i32, ptr %10344, align 4, !tbaa !5
  %10346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10333, ptr noundef @.str.5, i32 noundef %10334, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 645, ptr noundef %10337, ptr noundef %10340, ptr noundef %10343, i32 noundef %10345) #10
  br label %10347

10347:                                            ; preds = %10330, %10313
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #10
  br label %10348

10348:                                            ; preds = %10347
  br label %10349

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

10350:                                            ; No predecessors!
  br label %10351

10351:                                            ; preds = %10350
  br label %10352

10352:                                            ; preds = %10351, %10290
  br label %10353

10353:                                            ; preds = %10352
  br label %10354

10354:                                            ; preds = %10353
  br label %10355

10355:                                            ; preds = %10354
  %10356 = load i32, ptr @test_count, align 4, !tbaa !5
  %10357 = add nsw i32 %10356, 1
  store i32 %10357, ptr @test_count, align 4, !tbaa !5
  %10358 = load ptr, ptr %285, align 8, !tbaa !9
  %10359 = getelementptr inbounds %struct.s2n_connection, ptr %10358, i32 0, i32 32
  %10360 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %10359, i32 0, i32 4
  %10361 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %10360, ptr noundef %283, i64 noundef 1)
  %10362 = getelementptr inbounds %struct.s2n_result, ptr %298, i32 0, i32 0
  store i32 %10361, ptr %10362, align 4
  %10363 = getelementptr inbounds %struct.s2n_result, ptr %298, i32 0, i32 0
  %10364 = load i32, ptr %10363, align 4
  %10365 = call zeroext i1 @s2n_result_is_ok(i32 %10364)
  br i1 %10365, label %10419, label %10366

10366:                                            ; preds = %10355
  br label %10367

10367:                                            ; preds = %10366
  br label %10368

10368:                                            ; preds = %10367
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #10
  %10369 = call ptr @__errno_location() #11
  %10370 = load i32, ptr %10369, align 4, !tbaa !5
  store i32 %10370, ptr %299, 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) #10
  %10378 = call i32 @isatty(i32 noundef %10377) #10
  %10379 = icmp ne i32 %10378, 0
  br i1 %10379, label %10380, label %10397

10380:                                            ; preds = %10375
  %10381 = load i32, ptr %299, align 4, !tbaa !5
  %10382 = call ptr @__errno_location() #11
  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() #11
  %10392 = load i32, ptr %10391, align 4, !tbaa !5
  %10393 = call ptr @strerror(i32 noundef %10392) #10
  %10394 = call ptr @__errno_location() #11
  %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.58, ptr noundef @.str.1, i32 noundef 647, ptr noundef %10387, ptr noundef %10390, ptr noundef %10393, i32 noundef %10395) #10
  br label %10414

10397:                                            ; preds = %10375, %10368
  %10398 = load i32, ptr %299, align 4, !tbaa !5
  %10399 = call ptr @__errno_location() #11
  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() #11
  %10409 = load i32, ptr %10408, align 4, !tbaa !5
  %10410 = call ptr @strerror(i32 noundef %10409) #10
  %10411 = call ptr @__errno_location() #11
  %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.58, ptr noundef @.str.1, i32 noundef 647, ptr noundef %10404, ptr noundef %10407, ptr noundef %10410, i32 noundef %10412) #10
  br label %10414

10414:                                            ; preds = %10397, %10380
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #10
  br label %10415

10415:                                            ; preds = %10414
  br label %10416

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

10417:                                            ; No predecessors!
  br label %10418

10418:                                            ; preds = %10417
  br label %10419

10419:                                            ; preds = %10418, %10355
  br label %10420

10420:                                            ; preds = %10419
  br label %10421

10421:                                            ; preds = %10420
  br label %10422

10422:                                            ; preds = %10421
  %10423 = load i32, ptr @test_count, align 4, !tbaa !5
  %10424 = add nsw i32 %10423, 1
  store i32 %10424, ptr @test_count, align 4, !tbaa !5
  %10425 = load ptr, ptr %285, align 8, !tbaa !9
  %10426 = call i32 @s2n_signature_algorithm_select(ptr noundef %10425)
  %10427 = getelementptr inbounds %struct.s2n_result, ptr %300, i32 0, i32 0
  store i32 %10426, ptr %10427, align 4
  %10428 = getelementptr inbounds %struct.s2n_result, ptr %300, i32 0, i32 0
  %10429 = load i32, ptr %10428, align 4
  %10430 = call zeroext i1 @s2n_result_is_ok(i32 %10429)
  br i1 %10430, label %10484, label %10431

10431:                                            ; preds = %10422
  br label %10432

10432:                                            ; preds = %10431
  br label %10433

10433:                                            ; preds = %10432
  call void @llvm.lifetime.start.p0(i64 4, ptr %301) #10
  %10434 = call ptr @__errno_location() #11
  %10435 = load i32, ptr %10434, align 4, !tbaa !5
  store i32 %10435, ptr %301, align 4, !tbaa !5
  %10436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10437 = call i32 @s2n_print_stacktrace(ptr noundef %10436)
  %10438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10439 = trunc i8 %10438 to i1
  br i1 %10439, label %10440, label %10462

10440:                                            ; preds = %10433
  %10441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10442 = call i32 @fileno(ptr noundef %10441) #10
  %10443 = call i32 @isatty(i32 noundef %10442) #10
  %10444 = icmp ne i32 %10443, 0
  br i1 %10444, label %10445, label %10462

10445:                                            ; preds = %10440
  %10446 = load i32, ptr %301, align 4, !tbaa !5
  %10447 = call ptr @__errno_location() #11
  store i32 %10446, ptr %10447, align 4, !tbaa !5
  %10448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10449 = load i32, ptr @test_count, align 4, !tbaa !5
  %10450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10451 = load i32, ptr %10450, align 4, !tbaa !5
  %10452 = call ptr @s2n_strerror(i32 noundef %10451, ptr noundef @.str.4)
  %10453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10454 = load i32, ptr %10453, align 4, !tbaa !5
  %10455 = call ptr @s2n_strerror_debug(i32 noundef %10454, ptr noundef @.str.4)
  %10456 = call ptr @__errno_location() #11
  %10457 = load i32, ptr %10456, align 4, !tbaa !5
  %10458 = call ptr @strerror(i32 noundef %10457) #10
  %10459 = call ptr @__errno_location() #11
  %10460 = load i32, ptr %10459, align 4, !tbaa !5
  %10461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10448, ptr noundef @.str.2, i32 noundef %10449, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 648, ptr noundef %10452, ptr noundef %10455, ptr noundef %10458, i32 noundef %10460) #10
  br label %10479

10462:                                            ; preds = %10440, %10433
  %10463 = load i32, ptr %301, align 4, !tbaa !5
  %10464 = call ptr @__errno_location() #11
  store i32 %10463, ptr %10464, align 4, !tbaa !5
  %10465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10466 = load i32, ptr @test_count, align 4, !tbaa !5
  %10467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10468 = load i32, ptr %10467, align 4, !tbaa !5
  %10469 = call ptr @s2n_strerror(i32 noundef %10468, ptr noundef @.str.4)
  %10470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10471 = load i32, ptr %10470, align 4, !tbaa !5
  %10472 = call ptr @s2n_strerror_debug(i32 noundef %10471, ptr noundef @.str.4)
  %10473 = call ptr @__errno_location() #11
  %10474 = load i32, ptr %10473, align 4, !tbaa !5
  %10475 = call ptr @strerror(i32 noundef %10474) #10
  %10476 = call ptr @__errno_location() #11
  %10477 = load i32, ptr %10476, align 4, !tbaa !5
  %10478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10465, ptr noundef @.str.5, i32 noundef %10466, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 648, ptr noundef %10469, ptr noundef %10472, ptr noundef %10475, i32 noundef %10477) #10
  br label %10479

10479:                                            ; preds = %10462, %10445
  call void @llvm.lifetime.end.p0(i64 4, ptr %301) #10
  br label %10480

10480:                                            ; preds = %10479
  br label %10481

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

10482:                                            ; No predecessors!
  br label %10483

10483:                                            ; preds = %10482
  br label %10484

10484:                                            ; preds = %10483, %10422
  br label %10485

10485:                                            ; preds = %10484
  br label %10486

10486:                                            ; preds = %10485
  call void @llvm.lifetime.end.p0(i64 80, ptr %287) #10
  %10487 = call i32 @s2n_connection_ptr_free(ptr noundef %285)
  %10488 = getelementptr inbounds %struct.s2n_result, ptr %302, i32 0, i32 0
  store i32 %10487, ptr %10488, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %285) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %284) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %303) #10
  %10489 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %10489, ptr %303, align 8, !tbaa !9
  %10490 = load ptr, ptr %303, align 8, !tbaa !9
  %10491 = getelementptr inbounds %struct.s2n_connection, ptr %10490, i32 0, i32 23
  store i8 34, ptr %10491, align 4, !tbaa !50
  %10492 = load ptr, ptr %303, align 8, !tbaa !9
  %10493 = getelementptr inbounds %struct.s2n_connection, ptr %10492, i32 0, i32 27
  %10494 = load ptr, ptr %10493, align 8, !tbaa !66
  %10495 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %10494, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %10495, align 8, !tbaa !67
  br label %10496

10496:                                            ; preds = %10486
  %10497 = load i32, ptr @test_count, align 4, !tbaa !5
  %10498 = add nsw i32 %10497, 1
  store i32 %10498, ptr @test_count, align 4, !tbaa !5
  %10499 = load ptr, ptr %303, align 8, !tbaa !9
  %10500 = load ptr, ptr %78, align 8, !tbaa !9
  %10501 = call i32 @s2n_connection_set_config(ptr noundef %10499, ptr noundef %10500)
  %10502 = icmp eq i32 %10501, -1
  br i1 %10502, label %10503, label %10556

10503:                                            ; preds = %10496
  br label %10504

10504:                                            ; preds = %10503
  br label %10505

10505:                                            ; preds = %10504
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #10
  %10506 = call ptr @__errno_location() #11
  %10507 = load i32, ptr %10506, align 4, !tbaa !5
  store i32 %10507, ptr %304, align 4, !tbaa !5
  %10508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10509 = call i32 @s2n_print_stacktrace(ptr noundef %10508)
  %10510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10511 = trunc i8 %10510 to i1
  br i1 %10511, label %10512, label %10534

10512:                                            ; preds = %10505
  %10513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10514 = call i32 @fileno(ptr noundef %10513) #10
  %10515 = call i32 @isatty(i32 noundef %10514) #10
  %10516 = icmp ne i32 %10515, 0
  br i1 %10516, label %10517, label %10534

10517:                                            ; preds = %10512
  %10518 = load i32, ptr %304, align 4, !tbaa !5
  %10519 = call ptr @__errno_location() #11
  store i32 %10518, ptr %10519, align 4, !tbaa !5
  %10520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10521 = load i32, ptr @test_count, align 4, !tbaa !5
  %10522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10523 = load i32, ptr %10522, align 4, !tbaa !5
  %10524 = call ptr @s2n_strerror(i32 noundef %10523, ptr noundef @.str.4)
  %10525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10526 = load i32, ptr %10525, align 4, !tbaa !5
  %10527 = call ptr @s2n_strerror_debug(i32 noundef %10526, ptr noundef @.str.4)
  %10528 = call ptr @__errno_location() #11
  %10529 = load i32, ptr %10528, align 4, !tbaa !5
  %10530 = call ptr @strerror(i32 noundef %10529) #10
  %10531 = call ptr @__errno_location() #11
  %10532 = load i32, ptr %10531, align 4, !tbaa !5
  %10533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10520, ptr noundef @.str.2, i32 noundef %10521, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 658, ptr noundef %10524, ptr noundef %10527, ptr noundef %10530, i32 noundef %10532) #10
  br label %10551

10534:                                            ; preds = %10512, %10505
  %10535 = load i32, ptr %304, align 4, !tbaa !5
  %10536 = call ptr @__errno_location() #11
  store i32 %10535, ptr %10536, align 4, !tbaa !5
  %10537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10538 = load i32, ptr @test_count, align 4, !tbaa !5
  %10539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10540 = load i32, ptr %10539, align 4, !tbaa !5
  %10541 = call ptr @s2n_strerror(i32 noundef %10540, ptr noundef @.str.4)
  %10542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10543 = load i32, ptr %10542, align 4, !tbaa !5
  %10544 = call ptr @s2n_strerror_debug(i32 noundef %10543, ptr noundef @.str.4)
  %10545 = call ptr @__errno_location() #11
  %10546 = load i32, ptr %10545, align 4, !tbaa !5
  %10547 = call ptr @strerror(i32 noundef %10546) #10
  %10548 = call ptr @__errno_location() #11
  %10549 = load i32, ptr %10548, align 4, !tbaa !5
  %10550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10537, ptr noundef @.str.5, i32 noundef %10538, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 658, ptr noundef %10541, ptr noundef %10544, ptr noundef %10547, i32 noundef %10549) #10
  br label %10551

10551:                                            ; preds = %10534, %10517
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #10
  br label %10552

10552:                                            ; preds = %10551
  br label %10553

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

10554:                                            ; No predecessors!
  br label %10555

10555:                                            ; preds = %10554
  br label %10556

10556:                                            ; preds = %10555, %10496
  br label %10557

10557:                                            ; preds = %10556
  br label %10558

10558:                                            ; preds = %10557
  call void @llvm.lifetime.start.p0(i64 8, ptr %305) #10
  store ptr @s2n_ecdsa_sha384, ptr %305, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %306) #10
  store ptr @s2n_rsa_pss_rsae_sha256, ptr %306, align 8, !tbaa !9
  %10559 = getelementptr inbounds ptr, ptr %306, i64 1
  store ptr @s2n_rsa_pss_pss_sha256, ptr %10559, align 8, !tbaa !9
  %10560 = getelementptr inbounds ptr, ptr %306, i64 2
  store ptr @s2n_rsa_pkcs1_sha256, ptr %10560, align 8, !tbaa !9
  %10561 = getelementptr inbounds ptr, ptr %306, i64 3
  store ptr @s2n_ecdsa_sha224, ptr %10561, align 8, !tbaa !9
  %10562 = getelementptr inbounds ptr, ptr %306, i64 4
  store ptr @s2n_ecdsa_sha256, ptr %10562, align 8, !tbaa !9
  %10563 = getelementptr inbounds ptr, ptr %306, i64 5
  %10564 = load ptr, ptr %305, align 8, !tbaa !9
  store ptr %10564, ptr %10563, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %307) #10
  call void @llvm.memset.p0.i64(ptr align 8 %307, i8 0, i64 80, i1 false)
  br label %10565

10565:                                            ; preds = %10558
  %10566 = load i32, ptr @test_count, align 4, !tbaa !5
  %10567 = add nsw i32 %10566, 1
  store i32 %10567, ptr @test_count, align 4, !tbaa !5
  %10568 = load ptr, ptr %303, align 8, !tbaa !9
  %10569 = getelementptr inbounds [6 x ptr], ptr %306, i64 0, i64 0
  %10570 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %10568, ptr noundef %307, ptr noundef %10569, i64 noundef 6)
  %10571 = getelementptr inbounds %struct.s2n_result, ptr %308, i32 0, i32 0
  store i32 %10570, ptr %10571, align 4
  %10572 = getelementptr inbounds %struct.s2n_result, ptr %308, i32 0, i32 0
  %10573 = load i32, ptr %10572, align 4
  %10574 = call zeroext i1 @s2n_result_is_ok(i32 %10573)
  br i1 %10574, label %10628, label %10575

10575:                                            ; preds = %10565
  br label %10576

10576:                                            ; preds = %10575
  br label %10577

10577:                                            ; preds = %10576
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #10
  %10578 = call ptr @__errno_location() #11
  %10579 = load i32, ptr %10578, align 4, !tbaa !5
  store i32 %10579, ptr %309, align 4, !tbaa !5
  %10580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10581 = call i32 @s2n_print_stacktrace(ptr noundef %10580)
  %10582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10583 = trunc i8 %10582 to i1
  br i1 %10583, label %10584, label %10606

10584:                                            ; preds = %10577
  %10585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10586 = call i32 @fileno(ptr noundef %10585) #10
  %10587 = call i32 @isatty(i32 noundef %10586) #10
  %10588 = icmp ne i32 %10587, 0
  br i1 %10588, label %10589, label %10606

10589:                                            ; preds = %10584
  %10590 = load i32, ptr %309, align 4, !tbaa !5
  %10591 = call ptr @__errno_location() #11
  store i32 %10590, ptr %10591, align 4, !tbaa !5
  %10592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10593 = load i32, ptr @test_count, align 4, !tbaa !5
  %10594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10595 = load i32, ptr %10594, align 4, !tbaa !5
  %10596 = call ptr @s2n_strerror(i32 noundef %10595, ptr noundef @.str.4)
  %10597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10598 = load i32, ptr %10597, align 4, !tbaa !5
  %10599 = call ptr @s2n_strerror_debug(i32 noundef %10598, ptr noundef @.str.4)
  %10600 = call ptr @__errno_location() #11
  %10601 = load i32, ptr %10600, align 4, !tbaa !5
  %10602 = call ptr @strerror(i32 noundef %10601) #10
  %10603 = call ptr @__errno_location() #11
  %10604 = load i32, ptr %10603, align 4, !tbaa !5
  %10605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10592, ptr noundef @.str.2, i32 noundef %10593, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 675, ptr noundef %10596, ptr noundef %10599, ptr noundef %10602, i32 noundef %10604) #10
  br label %10623

10606:                                            ; preds = %10584, %10577
  %10607 = load i32, ptr %309, align 4, !tbaa !5
  %10608 = call ptr @__errno_location() #11
  store i32 %10607, ptr %10608, align 4, !tbaa !5
  %10609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10610 = load i32, ptr @test_count, align 4, !tbaa !5
  %10611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10612 = load i32, ptr %10611, align 4, !tbaa !5
  %10613 = call ptr @s2n_strerror(i32 noundef %10612, ptr noundef @.str.4)
  %10614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10615 = load i32, ptr %10614, align 4, !tbaa !5
  %10616 = call ptr @s2n_strerror_debug(i32 noundef %10615, ptr noundef @.str.4)
  %10617 = call ptr @__errno_location() #11
  %10618 = load i32, ptr %10617, align 4, !tbaa !5
  %10619 = call ptr @strerror(i32 noundef %10618) #10
  %10620 = call ptr @__errno_location() #11
  %10621 = load i32, ptr %10620, align 4, !tbaa !5
  %10622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10609, ptr noundef @.str.5, i32 noundef %10610, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 675, ptr noundef %10613, ptr noundef %10616, ptr noundef %10619, i32 noundef %10621) #10
  br label %10623

10623:                                            ; preds = %10606, %10589
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #10
  br label %10624

10624:                                            ; preds = %10623
  br label %10625

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

10626:                                            ; No predecessors!
  br label %10627

10627:                                            ; preds = %10626
  br label %10628

10628:                                            ; preds = %10627, %10565
  br label %10629

10629:                                            ; preds = %10628
  br label %10630

10630:                                            ; preds = %10629
  br label %10631

10631:                                            ; preds = %10630
  %10632 = load i32, ptr @test_count, align 4, !tbaa !5
  %10633 = add nsw i32 %10632, 1
  store i32 %10633, ptr @test_count, align 4, !tbaa !5
  %10634 = load ptr, ptr %303, align 8, !tbaa !9
  %10635 = getelementptr inbounds %struct.s2n_connection, ptr %10634, i32 0, i32 32
  %10636 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %10635, i32 0, i32 4
  %10637 = getelementptr inbounds [6 x ptr], ptr %306, i64 0, i64 0
  %10638 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %10636, ptr noundef %10637, i64 noundef 6)
  %10639 = getelementptr inbounds %struct.s2n_result, ptr %310, i32 0, i32 0
  store i32 %10638, ptr %10639, align 4
  %10640 = getelementptr inbounds %struct.s2n_result, ptr %310, i32 0, i32 0
  %10641 = load i32, ptr %10640, align 4
  %10642 = call zeroext i1 @s2n_result_is_ok(i32 %10641)
  br i1 %10642, label %10696, label %10643

10643:                                            ; preds = %10631
  br label %10644

10644:                                            ; preds = %10643
  br label %10645

10645:                                            ; preds = %10644
  call void @llvm.lifetime.start.p0(i64 4, ptr %311) #10
  %10646 = call ptr @__errno_location() #11
  %10647 = load i32, ptr %10646, align 4, !tbaa !5
  store i32 %10647, ptr %311, align 4, !tbaa !5
  %10648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10649 = call i32 @s2n_print_stacktrace(ptr noundef %10648)
  %10650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10651 = trunc i8 %10650 to i1
  br i1 %10651, label %10652, label %10674

10652:                                            ; preds = %10645
  %10653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10654 = call i32 @fileno(ptr noundef %10653) #10
  %10655 = call i32 @isatty(i32 noundef %10654) #10
  %10656 = icmp ne i32 %10655, 0
  br i1 %10656, label %10657, label %10674

10657:                                            ; preds = %10652
  %10658 = load i32, ptr %311, align 4, !tbaa !5
  %10659 = call ptr @__errno_location() #11
  store i32 %10658, ptr %10659, align 4, !tbaa !5
  %10660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10661 = load i32, ptr @test_count, align 4, !tbaa !5
  %10662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10663 = load i32, ptr %10662, align 4, !tbaa !5
  %10664 = call ptr @s2n_strerror(i32 noundef %10663, ptr noundef @.str.4)
  %10665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10666 = load i32, ptr %10665, align 4, !tbaa !5
  %10667 = call ptr @s2n_strerror_debug(i32 noundef %10666, ptr noundef @.str.4)
  %10668 = call ptr @__errno_location() #11
  %10669 = load i32, ptr %10668, align 4, !tbaa !5
  %10670 = call ptr @strerror(i32 noundef %10669) #10
  %10671 = call ptr @__errno_location() #11
  %10672 = load i32, ptr %10671, align 4, !tbaa !5
  %10673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10660, ptr noundef @.str.2, i32 noundef %10661, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 677, ptr noundef %10664, ptr noundef %10667, ptr noundef %10670, i32 noundef %10672) #10
  br label %10691

10674:                                            ; preds = %10652, %10645
  %10675 = load i32, ptr %311, align 4, !tbaa !5
  %10676 = call ptr @__errno_location() #11
  store i32 %10675, ptr %10676, align 4, !tbaa !5
  %10677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10678 = load i32, ptr @test_count, align 4, !tbaa !5
  %10679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10680 = load i32, ptr %10679, align 4, !tbaa !5
  %10681 = call ptr @s2n_strerror(i32 noundef %10680, ptr noundef @.str.4)
  %10682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10683 = load i32, ptr %10682, align 4, !tbaa !5
  %10684 = call ptr @s2n_strerror_debug(i32 noundef %10683, ptr noundef @.str.4)
  %10685 = call ptr @__errno_location() #11
  %10686 = load i32, ptr %10685, align 4, !tbaa !5
  %10687 = call ptr @strerror(i32 noundef %10686) #10
  %10688 = call ptr @__errno_location() #11
  %10689 = load i32, ptr %10688, align 4, !tbaa !5
  %10690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10677, ptr noundef @.str.5, i32 noundef %10678, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 677, ptr noundef %10681, ptr noundef %10684, ptr noundef %10687, i32 noundef %10689) #10
  br label %10691

10691:                                            ; preds = %10674, %10657
  call void @llvm.lifetime.end.p0(i64 4, ptr %311) #10
  br label %10692

10692:                                            ; preds = %10691
  br label %10693

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

10694:                                            ; No predecessors!
  br label %10695

10695:                                            ; preds = %10694
  br label %10696

10696:                                            ; preds = %10695, %10631
  br label %10697

10697:                                            ; preds = %10696
  br label %10698

10698:                                            ; preds = %10697
  br label %10699

10699:                                            ; preds = %10698
  %10700 = load i32, ptr @test_count, align 4, !tbaa !5
  %10701 = add nsw i32 %10700, 1
  store i32 %10701, ptr @test_count, align 4, !tbaa !5
  %10702 = load ptr, ptr %303, align 8, !tbaa !9
  %10703 = call i32 @s2n_signature_algorithm_select(ptr noundef %10702)
  %10704 = getelementptr inbounds %struct.s2n_result, ptr %312, i32 0, i32 0
  store i32 %10703, ptr %10704, align 4
  %10705 = getelementptr inbounds %struct.s2n_result, ptr %312, i32 0, i32 0
  %10706 = load i32, ptr %10705, align 4
  %10707 = call zeroext i1 @s2n_result_is_ok(i32 %10706)
  br i1 %10707, label %10761, label %10708

10708:                                            ; preds = %10699
  br label %10709

10709:                                            ; preds = %10708
  br label %10710

10710:                                            ; preds = %10709
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #10
  %10711 = call ptr @__errno_location() #11
  %10712 = load i32, ptr %10711, align 4, !tbaa !5
  store i32 %10712, ptr %313, align 4, !tbaa !5
  %10713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10714 = call i32 @s2n_print_stacktrace(ptr noundef %10713)
  %10715 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10716 = trunc i8 %10715 to i1
  br i1 %10716, label %10717, label %10739

10717:                                            ; preds = %10710
  %10718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10719 = call i32 @fileno(ptr noundef %10718) #10
  %10720 = call i32 @isatty(i32 noundef %10719) #10
  %10721 = icmp ne i32 %10720, 0
  br i1 %10721, label %10722, label %10739

10722:                                            ; preds = %10717
  %10723 = load i32, ptr %313, align 4, !tbaa !5
  %10724 = call ptr @__errno_location() #11
  store i32 %10723, ptr %10724, align 4, !tbaa !5
  %10725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10726 = load i32, ptr @test_count, align 4, !tbaa !5
  %10727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10728 = load i32, ptr %10727, align 4, !tbaa !5
  %10729 = call ptr @s2n_strerror(i32 noundef %10728, ptr noundef @.str.4)
  %10730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10731 = load i32, ptr %10730, align 4, !tbaa !5
  %10732 = call ptr @s2n_strerror_debug(i32 noundef %10731, ptr noundef @.str.4)
  %10733 = call ptr @__errno_location() #11
  %10734 = load i32, ptr %10733, align 4, !tbaa !5
  %10735 = call ptr @strerror(i32 noundef %10734) #10
  %10736 = call ptr @__errno_location() #11
  %10737 = load i32, ptr %10736, align 4, !tbaa !5
  %10738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10725, ptr noundef @.str.2, i32 noundef %10726, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 679, ptr noundef %10729, ptr noundef %10732, ptr noundef %10735, i32 noundef %10737) #10
  br label %10756

10739:                                            ; preds = %10717, %10710
  %10740 = load i32, ptr %313, align 4, !tbaa !5
  %10741 = call ptr @__errno_location() #11
  store i32 %10740, ptr %10741, align 4, !tbaa !5
  %10742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10743 = load i32, ptr @test_count, align 4, !tbaa !5
  %10744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10745 = load i32, ptr %10744, align 4, !tbaa !5
  %10746 = call ptr @s2n_strerror(i32 noundef %10745, ptr noundef @.str.4)
  %10747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10748 = load i32, ptr %10747, align 4, !tbaa !5
  %10749 = call ptr @s2n_strerror_debug(i32 noundef %10748, ptr noundef @.str.4)
  %10750 = call ptr @__errno_location() #11
  %10751 = load i32, ptr %10750, align 4, !tbaa !5
  %10752 = call ptr @strerror(i32 noundef %10751) #10
  %10753 = call ptr @__errno_location() #11
  %10754 = load i32, ptr %10753, align 4, !tbaa !5
  %10755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10742, ptr noundef @.str.5, i32 noundef %10743, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 679, ptr noundef %10746, ptr noundef %10749, ptr noundef %10752, i32 noundef %10754) #10
  br label %10756

10756:                                            ; preds = %10739, %10722
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #10
  br label %10757

10757:                                            ; preds = %10756
  br label %10758

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

10759:                                            ; No predecessors!
  br label %10760

10760:                                            ; preds = %10759
  br label %10761

10761:                                            ; preds = %10760, %10699
  br label %10762

10762:                                            ; preds = %10761
  br label %10763

10763:                                            ; preds = %10762
  br label %10764

10764:                                            ; preds = %10763
  %10765 = load i32, ptr @test_count, align 4, !tbaa !5
  %10766 = add nsw i32 %10765, 1
  store i32 %10766, ptr @test_count, align 4, !tbaa !5
  %10767 = load ptr, ptr %303, align 8, !tbaa !9
  %10768 = getelementptr inbounds %struct.s2n_connection, ptr %10767, i32 0, i32 32
  %10769 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %10768, i32 0, i32 6
  %10770 = load ptr, ptr %10769, align 8, !tbaa !65
  %10771 = load ptr, ptr %305, align 8, !tbaa !9
  %10772 = icmp eq ptr %10770, %10771
  br i1 %10772, label %10826, label %10773

10773:                                            ; preds = %10764
  br label %10774

10774:                                            ; preds = %10773
  br label %10775

10775:                                            ; preds = %10774
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #10
  %10776 = call ptr @__errno_location() #11
  %10777 = load i32, ptr %10776, align 4, !tbaa !5
  store i32 %10777, ptr %314, align 4, !tbaa !5
  %10778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10779 = call i32 @s2n_print_stacktrace(ptr noundef %10778)
  %10780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10781 = trunc i8 %10780 to i1
  br i1 %10781, label %10782, label %10804

10782:                                            ; preds = %10775
  %10783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10784 = call i32 @fileno(ptr noundef %10783) #10
  %10785 = call i32 @isatty(i32 noundef %10784) #10
  %10786 = icmp ne i32 %10785, 0
  br i1 %10786, label %10787, label %10804

10787:                                            ; preds = %10782
  %10788 = load i32, ptr %314, align 4, !tbaa !5
  %10789 = call ptr @__errno_location() #11
  store i32 %10788, ptr %10789, align 4, !tbaa !5
  %10790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10791 = load i32, ptr @test_count, align 4, !tbaa !5
  %10792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10793 = load i32, ptr %10792, align 4, !tbaa !5
  %10794 = call ptr @s2n_strerror(i32 noundef %10793, ptr noundef @.str.4)
  %10795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10796 = load i32, ptr %10795, align 4, !tbaa !5
  %10797 = call ptr @s2n_strerror_debug(i32 noundef %10796, ptr noundef @.str.4)
  %10798 = call ptr @__errno_location() #11
  %10799 = load i32, ptr %10798, align 4, !tbaa !5
  %10800 = call ptr @strerror(i32 noundef %10799) #10
  %10801 = call ptr @__errno_location() #11
  %10802 = load i32, ptr %10801, align 4, !tbaa !5
  %10803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10790, ptr noundef @.str.2, i32 noundef %10791, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 680, ptr noundef %10794, ptr noundef %10797, ptr noundef %10800, i32 noundef %10802) #10
  br label %10821

10804:                                            ; preds = %10782, %10775
  %10805 = load i32, ptr %314, align 4, !tbaa !5
  %10806 = call ptr @__errno_location() #11
  store i32 %10805, ptr %10806, align 4, !tbaa !5
  %10807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10808 = load i32, ptr @test_count, align 4, !tbaa !5
  %10809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10810 = load i32, ptr %10809, align 4, !tbaa !5
  %10811 = call ptr @s2n_strerror(i32 noundef %10810, ptr noundef @.str.4)
  %10812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10813 = load i32, ptr %10812, align 4, !tbaa !5
  %10814 = call ptr @s2n_strerror_debug(i32 noundef %10813, ptr noundef @.str.4)
  %10815 = call ptr @__errno_location() #11
  %10816 = load i32, ptr %10815, align 4, !tbaa !5
  %10817 = call ptr @strerror(i32 noundef %10816) #10
  %10818 = call ptr @__errno_location() #11
  %10819 = load i32, ptr %10818, align 4, !tbaa !5
  %10820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10807, ptr noundef @.str.5, i32 noundef %10808, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 680, ptr noundef %10811, ptr noundef %10814, ptr noundef %10817, i32 noundef %10819) #10
  br label %10821

10821:                                            ; preds = %10804, %10787
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #10
  br label %10822

10822:                                            ; preds = %10821
  br label %10823

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

10824:                                            ; No predecessors!
  br label %10825

10825:                                            ; preds = %10824
  br label %10826

10826:                                            ; preds = %10825, %10764
  br label %10827

10827:                                            ; preds = %10826
  br label %10828

10828:                                            ; preds = %10827
  call void @llvm.lifetime.end.p0(i64 80, ptr %307) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %306) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %305) #10
  %10829 = call i32 @s2n_connection_ptr_free(ptr noundef %303)
  %10830 = getelementptr inbounds %struct.s2n_result, ptr %315, i32 0, i32 0
  store i32 %10829, ptr %10830, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %303) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %316) #10
  store ptr @s2n_rsa_pkcs1_sha256, ptr %316, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %317) #10
  %10831 = load ptr, ptr %316, align 8, !tbaa !9
  store ptr %10831, ptr %317, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %318) #10
  store ptr @s2n_rsa_pss_rsae_sha256, ptr %318, align 8, !tbaa !9
  %10832 = getelementptr inbounds ptr, ptr %318, i64 1
  store ptr @s2n_rsa_pss_pss_sha256, ptr %10832, align 8, !tbaa !9
  %10833 = getelementptr inbounds ptr, ptr %318, i64 2
  store ptr @s2n_ecdsa_sha384, ptr %10833, align 8, !tbaa !9
  %10834 = getelementptr inbounds ptr, ptr %318, i64 3
  %10835 = load ptr, ptr %316, align 8, !tbaa !9
  store ptr %10835, ptr %10834, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %319) #10
  %10836 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10836, ptr %319, align 8, !tbaa !9
  %10837 = load ptr, ptr %319, align 8, !tbaa !9
  %10838 = getelementptr inbounds %struct.s2n_connection, ptr %10837, i32 0, i32 23
  store i8 33, ptr %10838, align 4, !tbaa !50
  %10839 = load ptr, ptr %319, align 8, !tbaa !9
  %10840 = getelementptr inbounds %struct.s2n_connection, ptr %10839, i32 0, i32 27
  %10841 = load ptr, ptr %10840, align 8, !tbaa !66
  %10842 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %10841, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %10842, align 8, !tbaa !67
  br label %10843

10843:                                            ; preds = %10828
  %10844 = load i32, ptr @test_count, align 4, !tbaa !5
  %10845 = add nsw i32 %10844, 1
  store i32 %10845, ptr @test_count, align 4, !tbaa !5
  %10846 = load ptr, ptr %319, align 8, !tbaa !9
  %10847 = load ptr, ptr %75, align 8, !tbaa !9
  %10848 = call i32 @s2n_connection_set_config(ptr noundef %10846, ptr noundef %10847)
  %10849 = icmp eq i32 %10848, -1
  br i1 %10849, label %10850, label %10903

10850:                                            ; preds = %10843
  br label %10851

10851:                                            ; preds = %10850
  br label %10852

10852:                                            ; preds = %10851
  call void @llvm.lifetime.start.p0(i64 4, ptr %320) #10
  %10853 = call ptr @__errno_location() #11
  %10854 = load i32, ptr %10853, align 4, !tbaa !5
  store i32 %10854, ptr %320, align 4, !tbaa !5
  %10855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10856 = call i32 @s2n_print_stacktrace(ptr noundef %10855)
  %10857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10858 = trunc i8 %10857 to i1
  br i1 %10858, label %10859, label %10881

10859:                                            ; preds = %10852
  %10860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10861 = call i32 @fileno(ptr noundef %10860) #10
  %10862 = call i32 @isatty(i32 noundef %10861) #10
  %10863 = icmp ne i32 %10862, 0
  br i1 %10863, label %10864, label %10881

10864:                                            ; preds = %10859
  %10865 = load i32, ptr %320, align 4, !tbaa !5
  %10866 = call ptr @__errno_location() #11
  store i32 %10865, ptr %10866, align 4, !tbaa !5
  %10867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10868 = load i32, ptr @test_count, align 4, !tbaa !5
  %10869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10870 = load i32, ptr %10869, align 4, !tbaa !5
  %10871 = call ptr @s2n_strerror(i32 noundef %10870, ptr noundef @.str.4)
  %10872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10873 = load i32, ptr %10872, align 4, !tbaa !5
  %10874 = call ptr @s2n_strerror_debug(i32 noundef %10873, ptr noundef @.str.4)
  %10875 = call ptr @__errno_location() #11
  %10876 = load i32, ptr %10875, align 4, !tbaa !5
  %10877 = call ptr @strerror(i32 noundef %10876) #10
  %10878 = call ptr @__errno_location() #11
  %10879 = load i32, ptr %10878, align 4, !tbaa !5
  %10880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10867, ptr noundef @.str.2, i32 noundef %10868, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 700, ptr noundef %10871, ptr noundef %10874, ptr noundef %10877, i32 noundef %10879) #10
  br label %10898

10881:                                            ; preds = %10859, %10852
  %10882 = load i32, ptr %320, align 4, !tbaa !5
  %10883 = call ptr @__errno_location() #11
  store i32 %10882, ptr %10883, align 4, !tbaa !5
  %10884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10885 = load i32, ptr @test_count, align 4, !tbaa !5
  %10886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10887 = load i32, ptr %10886, align 4, !tbaa !5
  %10888 = call ptr @s2n_strerror(i32 noundef %10887, ptr noundef @.str.4)
  %10889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10890 = load i32, ptr %10889, align 4, !tbaa !5
  %10891 = call ptr @s2n_strerror_debug(i32 noundef %10890, ptr noundef @.str.4)
  %10892 = call ptr @__errno_location() #11
  %10893 = load i32, ptr %10892, align 4, !tbaa !5
  %10894 = call ptr @strerror(i32 noundef %10893) #10
  %10895 = call ptr @__errno_location() #11
  %10896 = load i32, ptr %10895, align 4, !tbaa !5
  %10897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10884, ptr noundef @.str.5, i32 noundef %10885, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 700, ptr noundef %10888, ptr noundef %10891, ptr noundef %10894, i32 noundef %10896) #10
  br label %10898

10898:                                            ; preds = %10881, %10864
  call void @llvm.lifetime.end.p0(i64 4, ptr %320) #10
  br label %10899

10899:                                            ; preds = %10898
  br label %10900

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

10901:                                            ; No predecessors!
  br label %10902

10902:                                            ; preds = %10901
  br label %10903

10903:                                            ; preds = %10902, %10843
  br label %10904

10904:                                            ; preds = %10903
  br label %10905

10905:                                            ; preds = %10904
  call void @llvm.lifetime.start.p0(i64 80, ptr %321) #10
  call void @llvm.memset.p0.i64(ptr align 8 %321, i8 0, i64 80, i1 false)
  br label %10906

10906:                                            ; preds = %10905
  %10907 = load i32, ptr @test_count, align 4, !tbaa !5
  %10908 = add nsw i32 %10907, 1
  store i32 %10908, ptr @test_count, align 4, !tbaa !5
  %10909 = load ptr, ptr %319, align 8, !tbaa !9
  %10910 = getelementptr inbounds [4 x ptr], ptr %318, i64 0, i64 0
  %10911 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %10909, ptr noundef %321, ptr noundef %10910, i64 noundef 4)
  %10912 = getelementptr inbounds %struct.s2n_result, ptr %322, i32 0, i32 0
  store i32 %10911, ptr %10912, align 4
  %10913 = getelementptr inbounds %struct.s2n_result, ptr %322, i32 0, i32 0
  %10914 = load i32, ptr %10913, align 4
  %10915 = call zeroext i1 @s2n_result_is_ok(i32 %10914)
  br i1 %10915, label %10969, label %10916

10916:                                            ; preds = %10906
  br label %10917

10917:                                            ; preds = %10916
  br label %10918

10918:                                            ; preds = %10917
  call void @llvm.lifetime.start.p0(i64 4, ptr %323) #10
  %10919 = call ptr @__errno_location() #11
  %10920 = load i32, ptr %10919, align 4, !tbaa !5
  store i32 %10920, ptr %323, align 4, !tbaa !5
  %10921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10922 = call i32 @s2n_print_stacktrace(ptr noundef %10921)
  %10923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10924 = trunc i8 %10923 to i1
  br i1 %10924, label %10925, label %10947

10925:                                            ; preds = %10918
  %10926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10927 = call i32 @fileno(ptr noundef %10926) #10
  %10928 = call i32 @isatty(i32 noundef %10927) #10
  %10929 = icmp ne i32 %10928, 0
  br i1 %10929, label %10930, label %10947

10930:                                            ; preds = %10925
  %10931 = load i32, ptr %323, align 4, !tbaa !5
  %10932 = call ptr @__errno_location() #11
  store i32 %10931, ptr %10932, align 4, !tbaa !5
  %10933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10934 = load i32, ptr @test_count, align 4, !tbaa !5
  %10935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10936 = load i32, ptr %10935, align 4, !tbaa !5
  %10937 = call ptr @s2n_strerror(i32 noundef %10936, ptr noundef @.str.4)
  %10938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10939 = load i32, ptr %10938, align 4, !tbaa !5
  %10940 = call ptr @s2n_strerror_debug(i32 noundef %10939, ptr noundef @.str.4)
  %10941 = call ptr @__errno_location() #11
  %10942 = load i32, ptr %10941, align 4, !tbaa !5
  %10943 = call ptr @strerror(i32 noundef %10942) #10
  %10944 = call ptr @__errno_location() #11
  %10945 = load i32, ptr %10944, align 4, !tbaa !5
  %10946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10933, ptr noundef @.str.2, i32 noundef %10934, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 704, ptr noundef %10937, ptr noundef %10940, ptr noundef %10943, i32 noundef %10945) #10
  br label %10964

10947:                                            ; preds = %10925, %10918
  %10948 = load i32, ptr %323, align 4, !tbaa !5
  %10949 = call ptr @__errno_location() #11
  store i32 %10948, ptr %10949, align 4, !tbaa !5
  %10950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10951 = load i32, ptr @test_count, align 4, !tbaa !5
  %10952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10953 = load i32, ptr %10952, align 4, !tbaa !5
  %10954 = call ptr @s2n_strerror(i32 noundef %10953, ptr noundef @.str.4)
  %10955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10956 = load i32, ptr %10955, align 4, !tbaa !5
  %10957 = call ptr @s2n_strerror_debug(i32 noundef %10956, ptr noundef @.str.4)
  %10958 = call ptr @__errno_location() #11
  %10959 = load i32, ptr %10958, align 4, !tbaa !5
  %10960 = call ptr @strerror(i32 noundef %10959) #10
  %10961 = call ptr @__errno_location() #11
  %10962 = load i32, ptr %10961, align 4, !tbaa !5
  %10963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10950, ptr noundef @.str.5, i32 noundef %10951, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 704, ptr noundef %10954, ptr noundef %10957, ptr noundef %10960, i32 noundef %10962) #10
  br label %10964

10964:                                            ; preds = %10947, %10930
  call void @llvm.lifetime.end.p0(i64 4, ptr %323) #10
  br label %10965

10965:                                            ; preds = %10964
  br label %10966

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

10967:                                            ; No predecessors!
  br label %10968

10968:                                            ; preds = %10967
  br label %10969

10969:                                            ; preds = %10968, %10906
  br label %10970

10970:                                            ; preds = %10969
  br label %10971

10971:                                            ; preds = %10970
  br label %10972

10972:                                            ; preds = %10971
  %10973 = load i32, ptr @test_count, align 4, !tbaa !5
  %10974 = add nsw i32 %10973, 1
  store i32 %10974, ptr @test_count, align 4, !tbaa !5
  %10975 = load ptr, ptr %319, align 8, !tbaa !9
  %10976 = getelementptr inbounds %struct.s2n_connection, ptr %10975, i32 0, i32 32
  %10977 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %10976, i32 0, i32 4
  %10978 = getelementptr inbounds [1 x ptr], ptr %317, i64 0, i64 0
  %10979 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %10977, ptr noundef %10978, i64 noundef 1)
  %10980 = getelementptr inbounds %struct.s2n_result, ptr %324, i32 0, i32 0
  store i32 %10979, ptr %10980, align 4
  %10981 = getelementptr inbounds %struct.s2n_result, ptr %324, i32 0, i32 0
  %10982 = load i32, ptr %10981, align 4
  %10983 = call zeroext i1 @s2n_result_is_ok(i32 %10982)
  br i1 %10983, label %11037, label %10984

10984:                                            ; preds = %10972
  br label %10985

10985:                                            ; preds = %10984
  br label %10986

10986:                                            ; preds = %10985
  call void @llvm.lifetime.start.p0(i64 4, ptr %325) #10
  %10987 = call ptr @__errno_location() #11
  %10988 = load i32, ptr %10987, align 4, !tbaa !5
  store i32 %10988, ptr %325, align 4, !tbaa !5
  %10989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10990 = call i32 @s2n_print_stacktrace(ptr noundef %10989)
  %10991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10992 = trunc i8 %10991 to i1
  br i1 %10992, label %10993, label %11015

10993:                                            ; preds = %10986
  %10994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10995 = call i32 @fileno(ptr noundef %10994) #10
  %10996 = call i32 @isatty(i32 noundef %10995) #10
  %10997 = icmp ne i32 %10996, 0
  br i1 %10997, label %10998, label %11015

10998:                                            ; preds = %10993
  %10999 = load i32, ptr %325, align 4, !tbaa !5
  %11000 = call ptr @__errno_location() #11
  store i32 %10999, ptr %11000, align 4, !tbaa !5
  %11001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11002 = load i32, ptr @test_count, align 4, !tbaa !5
  %11003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11004 = load i32, ptr %11003, align 4, !tbaa !5
  %11005 = call ptr @s2n_strerror(i32 noundef %11004, ptr noundef @.str.4)
  %11006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11007 = load i32, ptr %11006, align 4, !tbaa !5
  %11008 = call ptr @s2n_strerror_debug(i32 noundef %11007, ptr noundef @.str.4)
  %11009 = call ptr @__errno_location() #11
  %11010 = load i32, ptr %11009, align 4, !tbaa !5
  %11011 = call ptr @strerror(i32 noundef %11010) #10
  %11012 = call ptr @__errno_location() #11
  %11013 = load i32, ptr %11012, align 4, !tbaa !5
  %11014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11001, ptr noundef @.str.2, i32 noundef %11002, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 706, ptr noundef %11005, ptr noundef %11008, ptr noundef %11011, i32 noundef %11013) #10
  br label %11032

11015:                                            ; preds = %10993, %10986
  %11016 = load i32, ptr %325, align 4, !tbaa !5
  %11017 = call ptr @__errno_location() #11
  store i32 %11016, ptr %11017, align 4, !tbaa !5
  %11018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11019 = load i32, ptr @test_count, align 4, !tbaa !5
  %11020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11021 = load i32, ptr %11020, align 4, !tbaa !5
  %11022 = call ptr @s2n_strerror(i32 noundef %11021, ptr noundef @.str.4)
  %11023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11024 = load i32, ptr %11023, align 4, !tbaa !5
  %11025 = call ptr @s2n_strerror_debug(i32 noundef %11024, ptr noundef @.str.4)
  %11026 = call ptr @__errno_location() #11
  %11027 = load i32, ptr %11026, align 4, !tbaa !5
  %11028 = call ptr @strerror(i32 noundef %11027) #10
  %11029 = call ptr @__errno_location() #11
  %11030 = load i32, ptr %11029, align 4, !tbaa !5
  %11031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11018, ptr noundef @.str.5, i32 noundef %11019, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 706, ptr noundef %11022, ptr noundef %11025, ptr noundef %11028, i32 noundef %11030) #10
  br label %11032

11032:                                            ; preds = %11015, %10998
  call void @llvm.lifetime.end.p0(i64 4, ptr %325) #10
  br label %11033

11033:                                            ; preds = %11032
  br label %11034

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

11035:                                            ; No predecessors!
  br label %11036

11036:                                            ; preds = %11035
  br label %11037

11037:                                            ; preds = %11036, %10972
  br label %11038

11038:                                            ; preds = %11037
  br label %11039

11039:                                            ; preds = %11038
  br label %11040

11040:                                            ; preds = %11039
  %11041 = load i32, ptr @test_count, align 4, !tbaa !5
  %11042 = add nsw i32 %11041, 1
  store i32 %11042, ptr @test_count, align 4, !tbaa !5
  %11043 = load ptr, ptr %319, align 8, !tbaa !9
  %11044 = call i32 @s2n_signature_algorithm_select(ptr noundef %11043)
  %11045 = getelementptr inbounds %struct.s2n_result, ptr %326, i32 0, i32 0
  store i32 %11044, ptr %11045, align 4
  %11046 = getelementptr inbounds %struct.s2n_result, ptr %326, i32 0, i32 0
  %11047 = load i32, ptr %11046, align 4
  %11048 = call zeroext i1 @s2n_result_is_ok(i32 %11047)
  br i1 %11048, label %11102, label %11049

11049:                                            ; preds = %11040
  br label %11050

11050:                                            ; preds = %11049
  br label %11051

11051:                                            ; preds = %11050
  call void @llvm.lifetime.start.p0(i64 4, ptr %327) #10
  %11052 = call ptr @__errno_location() #11
  %11053 = load i32, ptr %11052, align 4, !tbaa !5
  store i32 %11053, ptr %327, align 4, !tbaa !5
  %11054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11055 = call i32 @s2n_print_stacktrace(ptr noundef %11054)
  %11056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11057 = trunc i8 %11056 to i1
  br i1 %11057, label %11058, label %11080

11058:                                            ; preds = %11051
  %11059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11060 = call i32 @fileno(ptr noundef %11059) #10
  %11061 = call i32 @isatty(i32 noundef %11060) #10
  %11062 = icmp ne i32 %11061, 0
  br i1 %11062, label %11063, label %11080

11063:                                            ; preds = %11058
  %11064 = load i32, ptr %327, align 4, !tbaa !5
  %11065 = call ptr @__errno_location() #11
  store i32 %11064, ptr %11065, align 4, !tbaa !5
  %11066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11067 = load i32, ptr @test_count, align 4, !tbaa !5
  %11068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11069 = load i32, ptr %11068, align 4, !tbaa !5
  %11070 = call ptr @s2n_strerror(i32 noundef %11069, ptr noundef @.str.4)
  %11071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11072 = load i32, ptr %11071, align 4, !tbaa !5
  %11073 = call ptr @s2n_strerror_debug(i32 noundef %11072, ptr noundef @.str.4)
  %11074 = call ptr @__errno_location() #11
  %11075 = load i32, ptr %11074, align 4, !tbaa !5
  %11076 = call ptr @strerror(i32 noundef %11075) #10
  %11077 = call ptr @__errno_location() #11
  %11078 = load i32, ptr %11077, align 4, !tbaa !5
  %11079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11066, ptr noundef @.str.2, i32 noundef %11067, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 708, ptr noundef %11070, ptr noundef %11073, ptr noundef %11076, i32 noundef %11078) #10
  br label %11097

11080:                                            ; preds = %11058, %11051
  %11081 = load i32, ptr %327, align 4, !tbaa !5
  %11082 = call ptr @__errno_location() #11
  store i32 %11081, ptr %11082, align 4, !tbaa !5
  %11083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11084 = load i32, ptr @test_count, align 4, !tbaa !5
  %11085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11086 = load i32, ptr %11085, align 4, !tbaa !5
  %11087 = call ptr @s2n_strerror(i32 noundef %11086, ptr noundef @.str.4)
  %11088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11089 = load i32, ptr %11088, align 4, !tbaa !5
  %11090 = call ptr @s2n_strerror_debug(i32 noundef %11089, ptr noundef @.str.4)
  %11091 = call ptr @__errno_location() #11
  %11092 = load i32, ptr %11091, align 4, !tbaa !5
  %11093 = call ptr @strerror(i32 noundef %11092) #10
  %11094 = call ptr @__errno_location() #11
  %11095 = load i32, ptr %11094, align 4, !tbaa !5
  %11096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11083, ptr noundef @.str.5, i32 noundef %11084, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 708, ptr noundef %11087, ptr noundef %11090, ptr noundef %11093, i32 noundef %11095) #10
  br label %11097

11097:                                            ; preds = %11080, %11063
  call void @llvm.lifetime.end.p0(i64 4, ptr %327) #10
  br label %11098

11098:                                            ; preds = %11097
  br label %11099

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

11100:                                            ; No predecessors!
  br label %11101

11101:                                            ; preds = %11100
  br label %11102

11102:                                            ; preds = %11101, %11040
  br label %11103

11103:                                            ; preds = %11102
  br label %11104

11104:                                            ; preds = %11103
  br label %11105

11105:                                            ; preds = %11104
  %11106 = load i32, ptr @test_count, align 4, !tbaa !5
  %11107 = add nsw i32 %11106, 1
  store i32 %11107, ptr @test_count, align 4, !tbaa !5
  %11108 = load ptr, ptr %319, align 8, !tbaa !9
  %11109 = getelementptr inbounds %struct.s2n_connection, ptr %11108, i32 0, i32 32
  %11110 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %11109, i32 0, i32 5
  %11111 = load ptr, ptr %11110, align 8, !tbaa !72
  %11112 = load ptr, ptr %316, align 8, !tbaa !9
  %11113 = icmp eq ptr %11111, %11112
  br i1 %11113, label %11167, label %11114

11114:                                            ; preds = %11105
  br label %11115

11115:                                            ; preds = %11114
  br label %11116

11116:                                            ; preds = %11115
  call void @llvm.lifetime.start.p0(i64 4, ptr %328) #10
  %11117 = call ptr @__errno_location() #11
  %11118 = load i32, ptr %11117, align 4, !tbaa !5
  store i32 %11118, ptr %328, align 4, !tbaa !5
  %11119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11120 = call i32 @s2n_print_stacktrace(ptr noundef %11119)
  %11121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11122 = trunc i8 %11121 to i1
  br i1 %11122, label %11123, label %11145

11123:                                            ; preds = %11116
  %11124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11125 = call i32 @fileno(ptr noundef %11124) #10
  %11126 = call i32 @isatty(i32 noundef %11125) #10
  %11127 = icmp ne i32 %11126, 0
  br i1 %11127, label %11128, label %11145

11128:                                            ; preds = %11123
  %11129 = load i32, ptr %328, align 4, !tbaa !5
  %11130 = call ptr @__errno_location() #11
  store i32 %11129, ptr %11130, align 4, !tbaa !5
  %11131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11132 = load i32, ptr @test_count, align 4, !tbaa !5
  %11133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11134 = load i32, ptr %11133, align 4, !tbaa !5
  %11135 = call ptr @s2n_strerror(i32 noundef %11134, ptr noundef @.str.4)
  %11136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11137 = load i32, ptr %11136, align 4, !tbaa !5
  %11138 = call ptr @s2n_strerror_debug(i32 noundef %11137, ptr noundef @.str.4)
  %11139 = call ptr @__errno_location() #11
  %11140 = load i32, ptr %11139, align 4, !tbaa !5
  %11141 = call ptr @strerror(i32 noundef %11140) #10
  %11142 = call ptr @__errno_location() #11
  %11143 = load i32, ptr %11142, align 4, !tbaa !5
  %11144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11131, ptr noundef @.str.2, i32 noundef %11132, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 709, ptr noundef %11135, ptr noundef %11138, ptr noundef %11141, i32 noundef %11143) #10
  br label %11162

11145:                                            ; preds = %11123, %11116
  %11146 = load i32, ptr %328, align 4, !tbaa !5
  %11147 = call ptr @__errno_location() #11
  store i32 %11146, ptr %11147, align 4, !tbaa !5
  %11148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11149 = load i32, ptr @test_count, align 4, !tbaa !5
  %11150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11151 = load i32, ptr %11150, align 4, !tbaa !5
  %11152 = call ptr @s2n_strerror(i32 noundef %11151, ptr noundef @.str.4)
  %11153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11154 = load i32, ptr %11153, align 4, !tbaa !5
  %11155 = call ptr @s2n_strerror_debug(i32 noundef %11154, ptr noundef @.str.4)
  %11156 = call ptr @__errno_location() #11
  %11157 = load i32, ptr %11156, align 4, !tbaa !5
  %11158 = call ptr @strerror(i32 noundef %11157) #10
  %11159 = call ptr @__errno_location() #11
  %11160 = load i32, ptr %11159, align 4, !tbaa !5
  %11161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11148, ptr noundef @.str.5, i32 noundef %11149, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 709, ptr noundef %11152, ptr noundef %11155, ptr noundef %11158, i32 noundef %11160) #10
  br label %11162

11162:                                            ; preds = %11145, %11128
  call void @llvm.lifetime.end.p0(i64 4, ptr %328) #10
  br label %11163

11163:                                            ; preds = %11162
  br label %11164

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

11165:                                            ; No predecessors!
  br label %11166

11166:                                            ; preds = %11165
  br label %11167

11167:                                            ; preds = %11166, %11105
  br label %11168

11168:                                            ; preds = %11167
  br label %11169

11169:                                            ; preds = %11168
  call void @llvm.lifetime.end.p0(i64 80, ptr %321) #10
  %11170 = call i32 @s2n_connection_ptr_free(ptr noundef %319)
  %11171 = getelementptr inbounds %struct.s2n_result, ptr %329, i32 0, i32 0
  store i32 %11170, ptr %11171, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %319) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %318) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %317) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %316) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %330) #10
  store ptr @s2n_ecdsa_sha384, ptr %330, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %331) #10
  store ptr @s2n_rsa_pkcs1_sha256, ptr %331, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %332) #10
  %11172 = load ptr, ptr %330, align 8, !tbaa !9
  store ptr %11172, ptr %332, align 8, !tbaa !9
  %11173 = getelementptr inbounds ptr, ptr %332, i64 1
  %11174 = load ptr, ptr %331, align 8, !tbaa !9
  store ptr %11174, ptr %11173, align 8, !tbaa !9
  %11175 = getelementptr inbounds ptr, ptr %332, i64 2
  %11176 = load ptr, ptr %83, align 8, !tbaa !9
  store ptr %11176, ptr %11175, align 8, !tbaa !9
  %11177 = getelementptr inbounds ptr, ptr %332, i64 3
  %11178 = load ptr, ptr %82, align 8, !tbaa !9
  store ptr %11178, ptr %11177, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %333) #10
  %11179 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11179, ptr %333, align 8, !tbaa !9
  br label %11180

11180:                                            ; preds = %11169
  %11181 = load i32, ptr @test_count, align 4, !tbaa !5
  %11182 = add nsw i32 %11181, 1
  store i32 %11182, ptr @test_count, align 4, !tbaa !5
  %11183 = load ptr, ptr %333, align 8, !tbaa !9
  %11184 = load ptr, ptr %75, align 8, !tbaa !9
  %11185 = call i32 @s2n_connection_set_config(ptr noundef %11183, ptr noundef %11184)
  %11186 = icmp eq i32 %11185, -1
  br i1 %11186, label %11187, label %11240

11187:                                            ; preds = %11180
  br label %11188

11188:                                            ; preds = %11187
  br label %11189

11189:                                            ; preds = %11188
  call void @llvm.lifetime.start.p0(i64 4, ptr %334) #10
  %11190 = call ptr @__errno_location() #11
  %11191 = load i32, ptr %11190, align 4, !tbaa !5
  store i32 %11191, ptr %334, align 4, !tbaa !5
  %11192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11193 = call i32 @s2n_print_stacktrace(ptr noundef %11192)
  %11194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11195 = trunc i8 %11194 to i1
  br i1 %11195, label %11196, label %11218

11196:                                            ; preds = %11189
  %11197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11198 = call i32 @fileno(ptr noundef %11197) #10
  %11199 = call i32 @isatty(i32 noundef %11198) #10
  %11200 = icmp ne i32 %11199, 0
  br i1 %11200, label %11201, label %11218

11201:                                            ; preds = %11196
  %11202 = load i32, ptr %334, align 4, !tbaa !5
  %11203 = call ptr @__errno_location() #11
  store i32 %11202, ptr %11203, align 4, !tbaa !5
  %11204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11205 = load i32, ptr @test_count, align 4, !tbaa !5
  %11206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11207 = load i32, ptr %11206, align 4, !tbaa !5
  %11208 = call ptr @s2n_strerror(i32 noundef %11207, ptr noundef @.str.4)
  %11209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11210 = load i32, ptr %11209, align 4, !tbaa !5
  %11211 = call ptr @s2n_strerror_debug(i32 noundef %11210, ptr noundef @.str.4)
  %11212 = call ptr @__errno_location() #11
  %11213 = load i32, ptr %11212, align 4, !tbaa !5
  %11214 = call ptr @strerror(i32 noundef %11213) #10
  %11215 = call ptr @__errno_location() #11
  %11216 = load i32, ptr %11215, align 4, !tbaa !5
  %11217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11204, ptr noundef @.str.2, i32 noundef %11205, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 729, ptr noundef %11208, ptr noundef %11211, ptr noundef %11214, i32 noundef %11216) #10
  br label %11235

11218:                                            ; preds = %11196, %11189
  %11219 = load i32, ptr %334, align 4, !tbaa !5
  %11220 = call ptr @__errno_location() #11
  store i32 %11219, ptr %11220, align 4, !tbaa !5
  %11221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11222 = load i32, ptr @test_count, align 4, !tbaa !5
  %11223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11224 = load i32, ptr %11223, align 4, !tbaa !5
  %11225 = call ptr @s2n_strerror(i32 noundef %11224, ptr noundef @.str.4)
  %11226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11227 = load i32, ptr %11226, align 4, !tbaa !5
  %11228 = call ptr @s2n_strerror_debug(i32 noundef %11227, ptr noundef @.str.4)
  %11229 = call ptr @__errno_location() #11
  %11230 = load i32, ptr %11229, align 4, !tbaa !5
  %11231 = call ptr @strerror(i32 noundef %11230) #10
  %11232 = call ptr @__errno_location() #11
  %11233 = load i32, ptr %11232, align 4, !tbaa !5
  %11234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11221, ptr noundef @.str.5, i32 noundef %11222, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 729, ptr noundef %11225, ptr noundef %11228, ptr noundef %11231, i32 noundef %11233) #10
  br label %11235

11235:                                            ; preds = %11218, %11201
  call void @llvm.lifetime.end.p0(i64 4, ptr %334) #10
  br label %11236

11236:                                            ; preds = %11235
  br label %11237

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

11238:                                            ; No predecessors!
  br label %11239

11239:                                            ; preds = %11238
  br label %11240

11240:                                            ; preds = %11239, %11180
  br label %11241

11241:                                            ; preds = %11240
  br label %11242

11242:                                            ; preds = %11241
  call void @llvm.lifetime.start.p0(i64 80, ptr %335) #10
  call void @llvm.memset.p0.i64(ptr align 8 %335, i8 0, i64 80, i1 false)
  br label %11243

11243:                                            ; preds = %11242
  %11244 = load i32, ptr @test_count, align 4, !tbaa !5
  %11245 = add nsw i32 %11244, 1
  store i32 %11245, ptr @test_count, align 4, !tbaa !5
  %11246 = load ptr, ptr %333, align 8, !tbaa !9
  %11247 = getelementptr inbounds [4 x ptr], ptr %332, i64 0, i64 0
  %11248 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %11246, ptr noundef %335, ptr noundef %11247, i64 noundef 4)
  %11249 = getelementptr inbounds %struct.s2n_result, ptr %336, i32 0, i32 0
  store i32 %11248, ptr %11249, align 4
  %11250 = getelementptr inbounds %struct.s2n_result, ptr %336, i32 0, i32 0
  %11251 = load i32, ptr %11250, align 4
  %11252 = call zeroext i1 @s2n_result_is_ok(i32 %11251)
  br i1 %11252, label %11306, label %11253

11253:                                            ; preds = %11243
  br label %11254

11254:                                            ; preds = %11253
  br label %11255

11255:                                            ; preds = %11254
  call void @llvm.lifetime.start.p0(i64 4, ptr %337) #10
  %11256 = call ptr @__errno_location() #11
  %11257 = load i32, ptr %11256, align 4, !tbaa !5
  store i32 %11257, ptr %337, align 4, !tbaa !5
  %11258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11259 = call i32 @s2n_print_stacktrace(ptr noundef %11258)
  %11260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11261 = trunc i8 %11260 to i1
  br i1 %11261, label %11262, label %11284

11262:                                            ; preds = %11255
  %11263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11264 = call i32 @fileno(ptr noundef %11263) #10
  %11265 = call i32 @isatty(i32 noundef %11264) #10
  %11266 = icmp ne i32 %11265, 0
  br i1 %11266, label %11267, label %11284

11267:                                            ; preds = %11262
  %11268 = load i32, ptr %337, align 4, !tbaa !5
  %11269 = call ptr @__errno_location() #11
  store i32 %11268, ptr %11269, align 4, !tbaa !5
  %11270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11271 = load i32, ptr @test_count, align 4, !tbaa !5
  %11272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11273 = load i32, ptr %11272, align 4, !tbaa !5
  %11274 = call ptr @s2n_strerror(i32 noundef %11273, ptr noundef @.str.4)
  %11275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11276 = load i32, ptr %11275, align 4, !tbaa !5
  %11277 = call ptr @s2n_strerror_debug(i32 noundef %11276, ptr noundef @.str.4)
  %11278 = call ptr @__errno_location() #11
  %11279 = load i32, ptr %11278, align 4, !tbaa !5
  %11280 = call ptr @strerror(i32 noundef %11279) #10
  %11281 = call ptr @__errno_location() #11
  %11282 = load i32, ptr %11281, align 4, !tbaa !5
  %11283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11270, ptr noundef @.str.2, i32 noundef %11271, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 733, ptr noundef %11274, ptr noundef %11277, ptr noundef %11280, i32 noundef %11282) #10
  br label %11301

11284:                                            ; preds = %11262, %11255
  %11285 = load i32, ptr %337, align 4, !tbaa !5
  %11286 = call ptr @__errno_location() #11
  store i32 %11285, ptr %11286, align 4, !tbaa !5
  %11287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11288 = load i32, ptr @test_count, align 4, !tbaa !5
  %11289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11290 = load i32, ptr %11289, align 4, !tbaa !5
  %11291 = call ptr @s2n_strerror(i32 noundef %11290, ptr noundef @.str.4)
  %11292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11293 = load i32, ptr %11292, align 4, !tbaa !5
  %11294 = call ptr @s2n_strerror_debug(i32 noundef %11293, ptr noundef @.str.4)
  %11295 = call ptr @__errno_location() #11
  %11296 = load i32, ptr %11295, align 4, !tbaa !5
  %11297 = call ptr @strerror(i32 noundef %11296) #10
  %11298 = call ptr @__errno_location() #11
  %11299 = load i32, ptr %11298, align 4, !tbaa !5
  %11300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11287, ptr noundef @.str.5, i32 noundef %11288, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 733, ptr noundef %11291, ptr noundef %11294, ptr noundef %11297, i32 noundef %11299) #10
  br label %11301

11301:                                            ; preds = %11284, %11267
  call void @llvm.lifetime.end.p0(i64 4, ptr %337) #10
  br label %11302

11302:                                            ; preds = %11301
  br label %11303

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

11304:                                            ; No predecessors!
  br label %11305

11305:                                            ; preds = %11304
  br label %11306

11306:                                            ; preds = %11305, %11243
  br label %11307

11307:                                            ; preds = %11306
  br label %11308

11308:                                            ; preds = %11307
  %11309 = load ptr, ptr %333, align 8, !tbaa !9
  %11310 = getelementptr inbounds %struct.s2n_connection, ptr %11309, i32 0, i32 23
  store i8 33, ptr %11310, align 4, !tbaa !50
  %11311 = load ptr, ptr %333, align 8, !tbaa !9
  %11312 = getelementptr inbounds %struct.s2n_connection, ptr %11311, i32 0, i32 27
  %11313 = load ptr, ptr %11312, align 8, !tbaa !66
  %11314 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %11313, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %11314, align 8, !tbaa !67
  br label %11315

11315:                                            ; preds = %11308
  %11316 = load i32, ptr @test_count, align 4, !tbaa !5
  %11317 = add nsw i32 %11316, 1
  store i32 %11317, ptr @test_count, align 4, !tbaa !5
  %11318 = load ptr, ptr %333, align 8, !tbaa !9
  %11319 = call i32 @s2n_signature_algorithm_select(ptr noundef %11318)
  %11320 = getelementptr inbounds %struct.s2n_result, ptr %338, i32 0, i32 0
  store i32 %11319, ptr %11320, align 4
  %11321 = getelementptr inbounds %struct.s2n_result, ptr %338, i32 0, i32 0
  %11322 = load i32, ptr %11321, align 4
  %11323 = call zeroext i1 @s2n_result_is_ok(i32 %11322)
  br i1 %11323, label %11377, label %11324

11324:                                            ; preds = %11315
  br label %11325

11325:                                            ; preds = %11324
  br label %11326

11326:                                            ; preds = %11325
  call void @llvm.lifetime.start.p0(i64 4, ptr %339) #10
  %11327 = call ptr @__errno_location() #11
  %11328 = load i32, ptr %11327, align 4, !tbaa !5
  store i32 %11328, ptr %339, align 4, !tbaa !5
  %11329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11330 = call i32 @s2n_print_stacktrace(ptr noundef %11329)
  %11331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11332 = trunc i8 %11331 to i1
  br i1 %11332, label %11333, label %11355

11333:                                            ; preds = %11326
  %11334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11335 = call i32 @fileno(ptr noundef %11334) #10
  %11336 = call i32 @isatty(i32 noundef %11335) #10
  %11337 = icmp ne i32 %11336, 0
  br i1 %11337, label %11338, label %11355

11338:                                            ; preds = %11333
  %11339 = load i32, ptr %339, align 4, !tbaa !5
  %11340 = call ptr @__errno_location() #11
  store i32 %11339, ptr %11340, align 4, !tbaa !5
  %11341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11342 = load i32, ptr @test_count, align 4, !tbaa !5
  %11343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11344 = load i32, ptr %11343, align 4, !tbaa !5
  %11345 = call ptr @s2n_strerror(i32 noundef %11344, ptr noundef @.str.4)
  %11346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11347 = load i32, ptr %11346, align 4, !tbaa !5
  %11348 = call ptr @s2n_strerror_debug(i32 noundef %11347, ptr noundef @.str.4)
  %11349 = call ptr @__errno_location() #11
  %11350 = load i32, ptr %11349, align 4, !tbaa !5
  %11351 = call ptr @strerror(i32 noundef %11350) #10
  %11352 = call ptr @__errno_location() #11
  %11353 = load i32, ptr %11352, align 4, !tbaa !5
  %11354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11341, ptr noundef @.str.2, i32 noundef %11342, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 738, ptr noundef %11345, ptr noundef %11348, ptr noundef %11351, i32 noundef %11353) #10
  br label %11372

11355:                                            ; preds = %11333, %11326
  %11356 = load i32, ptr %339, align 4, !tbaa !5
  %11357 = call ptr @__errno_location() #11
  store i32 %11356, ptr %11357, align 4, !tbaa !5
  %11358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11359 = load i32, ptr @test_count, align 4, !tbaa !5
  %11360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11361 = load i32, ptr %11360, align 4, !tbaa !5
  %11362 = call ptr @s2n_strerror(i32 noundef %11361, ptr noundef @.str.4)
  %11363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11364 = load i32, ptr %11363, align 4, !tbaa !5
  %11365 = call ptr @s2n_strerror_debug(i32 noundef %11364, ptr noundef @.str.4)
  %11366 = call ptr @__errno_location() #11
  %11367 = load i32, ptr %11366, align 4, !tbaa !5
  %11368 = call ptr @strerror(i32 noundef %11367) #10
  %11369 = call ptr @__errno_location() #11
  %11370 = load i32, ptr %11369, align 4, !tbaa !5
  %11371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11358, ptr noundef @.str.5, i32 noundef %11359, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 738, ptr noundef %11362, ptr noundef %11365, ptr noundef %11368, i32 noundef %11370) #10
  br label %11372

11372:                                            ; preds = %11355, %11338
  call void @llvm.lifetime.end.p0(i64 4, ptr %339) #10
  br label %11373

11373:                                            ; preds = %11372
  br label %11374

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

11375:                                            ; No predecessors!
  br label %11376

11376:                                            ; preds = %11375
  br label %11377

11377:                                            ; preds = %11376, %11315
  br label %11378

11378:                                            ; preds = %11377
  br label %11379

11379:                                            ; preds = %11378
  br label %11380

11380:                                            ; preds = %11379
  %11381 = load i32, ptr @test_count, align 4, !tbaa !5
  %11382 = add nsw i32 %11381, 1
  store i32 %11382, ptr @test_count, align 4, !tbaa !5
  %11383 = load ptr, ptr %333, align 8, !tbaa !9
  %11384 = getelementptr inbounds %struct.s2n_connection, ptr %11383, i32 0, i32 32
  %11385 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %11384, i32 0, i32 5
  %11386 = load ptr, ptr %11385, align 8, !tbaa !72
  %11387 = load ptr, ptr %82, align 8, !tbaa !9
  %11388 = icmp eq ptr %11386, %11387
  br i1 %11388, label %11442, label %11389

11389:                                            ; preds = %11380
  br label %11390

11390:                                            ; preds = %11389
  br label %11391

11391:                                            ; preds = %11390
  call void @llvm.lifetime.start.p0(i64 4, ptr %340) #10
  %11392 = call ptr @__errno_location() #11
  %11393 = load i32, ptr %11392, align 4, !tbaa !5
  store i32 %11393, ptr %340, align 4, !tbaa !5
  %11394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11395 = call i32 @s2n_print_stacktrace(ptr noundef %11394)
  %11396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11397 = trunc i8 %11396 to i1
  br i1 %11397, label %11398, label %11420

11398:                                            ; preds = %11391
  %11399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11400 = call i32 @fileno(ptr noundef %11399) #10
  %11401 = call i32 @isatty(i32 noundef %11400) #10
  %11402 = icmp ne i32 %11401, 0
  br i1 %11402, label %11403, label %11420

11403:                                            ; preds = %11398
  %11404 = load i32, ptr %340, align 4, !tbaa !5
  %11405 = call ptr @__errno_location() #11
  store i32 %11404, ptr %11405, align 4, !tbaa !5
  %11406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11407 = load i32, ptr @test_count, align 4, !tbaa !5
  %11408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11409 = load i32, ptr %11408, align 4, !tbaa !5
  %11410 = call ptr @s2n_strerror(i32 noundef %11409, ptr noundef @.str.4)
  %11411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11412 = load i32, ptr %11411, align 4, !tbaa !5
  %11413 = call ptr @s2n_strerror_debug(i32 noundef %11412, ptr noundef @.str.4)
  %11414 = call ptr @__errno_location() #11
  %11415 = load i32, ptr %11414, align 4, !tbaa !5
  %11416 = call ptr @strerror(i32 noundef %11415) #10
  %11417 = call ptr @__errno_location() #11
  %11418 = load i32, ptr %11417, align 4, !tbaa !5
  %11419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11406, ptr noundef @.str.2, i32 noundef %11407, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 739, ptr noundef %11410, ptr noundef %11413, ptr noundef %11416, i32 noundef %11418) #10
  br label %11437

11420:                                            ; preds = %11398, %11391
  %11421 = load i32, ptr %340, align 4, !tbaa !5
  %11422 = call ptr @__errno_location() #11
  store i32 %11421, ptr %11422, align 4, !tbaa !5
  %11423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11424 = load i32, ptr @test_count, align 4, !tbaa !5
  %11425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11426 = load i32, ptr %11425, align 4, !tbaa !5
  %11427 = call ptr @s2n_strerror(i32 noundef %11426, ptr noundef @.str.4)
  %11428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11429 = load i32, ptr %11428, align 4, !tbaa !5
  %11430 = call ptr @s2n_strerror_debug(i32 noundef %11429, ptr noundef @.str.4)
  %11431 = call ptr @__errno_location() #11
  %11432 = load i32, ptr %11431, align 4, !tbaa !5
  %11433 = call ptr @strerror(i32 noundef %11432) #10
  %11434 = call ptr @__errno_location() #11
  %11435 = load i32, ptr %11434, align 4, !tbaa !5
  %11436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11423, ptr noundef @.str.5, i32 noundef %11424, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 739, ptr noundef %11427, ptr noundef %11430, ptr noundef %11433, i32 noundef %11435) #10
  br label %11437

11437:                                            ; preds = %11420, %11403
  call void @llvm.lifetime.end.p0(i64 4, ptr %340) #10
  br label %11438

11438:                                            ; preds = %11437
  br label %11439

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

11440:                                            ; No predecessors!
  br label %11441

11441:                                            ; preds = %11440
  br label %11442

11442:                                            ; preds = %11441, %11380
  br label %11443

11443:                                            ; preds = %11442
  br label %11444

11444:                                            ; preds = %11443
  %11445 = load ptr, ptr %333, align 8, !tbaa !9
  %11446 = getelementptr inbounds %struct.s2n_connection, ptr %11445, i32 0, i32 23
  store i8 33, ptr %11446, align 4, !tbaa !50
  %11447 = load ptr, ptr %333, align 8, !tbaa !9
  %11448 = getelementptr inbounds %struct.s2n_connection, ptr %11447, i32 0, i32 27
  %11449 = load ptr, ptr %11448, align 8, !tbaa !66
  %11450 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %11449, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %11450, align 8, !tbaa !67
  br label %11451

11451:                                            ; preds = %11444
  %11452 = load i32, ptr @test_count, align 4, !tbaa !5
  %11453 = add nsw i32 %11452, 1
  store i32 %11453, ptr @test_count, align 4, !tbaa !5
  %11454 = load ptr, ptr %333, align 8, !tbaa !9
  %11455 = call i32 @s2n_signature_algorithm_select(ptr noundef %11454)
  %11456 = getelementptr inbounds %struct.s2n_result, ptr %341, i32 0, i32 0
  store i32 %11455, ptr %11456, align 4
  %11457 = getelementptr inbounds %struct.s2n_result, ptr %341, i32 0, i32 0
  %11458 = load i32, ptr %11457, align 4
  %11459 = call zeroext i1 @s2n_result_is_ok(i32 %11458)
  br i1 %11459, label %11513, label %11460

11460:                                            ; preds = %11451
  br label %11461

11461:                                            ; preds = %11460
  br label %11462

11462:                                            ; preds = %11461
  call void @llvm.lifetime.start.p0(i64 4, ptr %342) #10
  %11463 = call ptr @__errno_location() #11
  %11464 = load i32, ptr %11463, align 4, !tbaa !5
  store i32 %11464, ptr %342, align 4, !tbaa !5
  %11465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11466 = call i32 @s2n_print_stacktrace(ptr noundef %11465)
  %11467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11468 = trunc i8 %11467 to i1
  br i1 %11468, label %11469, label %11491

11469:                                            ; preds = %11462
  %11470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11471 = call i32 @fileno(ptr noundef %11470) #10
  %11472 = call i32 @isatty(i32 noundef %11471) #10
  %11473 = icmp ne i32 %11472, 0
  br i1 %11473, label %11474, label %11491

11474:                                            ; preds = %11469
  %11475 = load i32, ptr %342, align 4, !tbaa !5
  %11476 = call ptr @__errno_location() #11
  store i32 %11475, ptr %11476, align 4, !tbaa !5
  %11477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11478 = load i32, ptr @test_count, align 4, !tbaa !5
  %11479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11480 = load i32, ptr %11479, align 4, !tbaa !5
  %11481 = call ptr @s2n_strerror(i32 noundef %11480, ptr noundef @.str.4)
  %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_debug(i32 noundef %11483, ptr noundef @.str.4)
  %11485 = call ptr @__errno_location() #11
  %11486 = load i32, ptr %11485, align 4, !tbaa !5
  %11487 = call ptr @strerror(i32 noundef %11486) #10
  %11488 = call ptr @__errno_location() #11
  %11489 = load i32, ptr %11488, align 4, !tbaa !5
  %11490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11477, ptr noundef @.str.2, i32 noundef %11478, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 744, ptr noundef %11481, ptr noundef %11484, ptr noundef %11487, i32 noundef %11489) #10
  br label %11508

11491:                                            ; preds = %11469, %11462
  %11492 = load i32, ptr %342, align 4, !tbaa !5
  %11493 = call ptr @__errno_location() #11
  store i32 %11492, ptr %11493, align 4, !tbaa !5
  %11494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11495 = load i32, ptr @test_count, align 4, !tbaa !5
  %11496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11497 = load i32, ptr %11496, align 4, !tbaa !5
  %11498 = call ptr @s2n_strerror(i32 noundef %11497, ptr noundef @.str.4)
  %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_debug(i32 noundef %11500, ptr noundef @.str.4)
  %11502 = call ptr @__errno_location() #11
  %11503 = load i32, ptr %11502, align 4, !tbaa !5
  %11504 = call ptr @strerror(i32 noundef %11503) #10
  %11505 = call ptr @__errno_location() #11
  %11506 = load i32, ptr %11505, align 4, !tbaa !5
  %11507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11494, ptr noundef @.str.5, i32 noundef %11495, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 744, ptr noundef %11498, ptr noundef %11501, ptr noundef %11504, i32 noundef %11506) #10
  br label %11508

11508:                                            ; preds = %11491, %11474
  call void @llvm.lifetime.end.p0(i64 4, ptr %342) #10
  br label %11509

11509:                                            ; preds = %11508
  br label %11510

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

11511:                                            ; No predecessors!
  br label %11512

11512:                                            ; preds = %11511
  br label %11513

11513:                                            ; preds = %11512, %11451
  br label %11514

11514:                                            ; preds = %11513
  br label %11515

11515:                                            ; preds = %11514
  br label %11516

11516:                                            ; preds = %11515
  %11517 = load i32, ptr @test_count, align 4, !tbaa !5
  %11518 = add nsw i32 %11517, 1
  store i32 %11518, ptr @test_count, align 4, !tbaa !5
  %11519 = load ptr, ptr %333, align 8, !tbaa !9
  %11520 = getelementptr inbounds %struct.s2n_connection, ptr %11519, i32 0, i32 32
  %11521 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %11520, i32 0, i32 5
  %11522 = load ptr, ptr %11521, align 8, !tbaa !72
  %11523 = load ptr, ptr %83, align 8, !tbaa !9
  %11524 = icmp eq ptr %11522, %11523
  br i1 %11524, label %11578, label %11525

11525:                                            ; preds = %11516
  br label %11526

11526:                                            ; preds = %11525
  br label %11527

11527:                                            ; preds = %11526
  call void @llvm.lifetime.start.p0(i64 4, ptr %343) #10
  %11528 = call ptr @__errno_location() #11
  %11529 = load i32, ptr %11528, align 4, !tbaa !5
  store i32 %11529, ptr %343, align 4, !tbaa !5
  %11530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11531 = call i32 @s2n_print_stacktrace(ptr noundef %11530)
  %11532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11533 = trunc i8 %11532 to i1
  br i1 %11533, label %11534, label %11556

11534:                                            ; preds = %11527
  %11535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11536 = call i32 @fileno(ptr noundef %11535) #10
  %11537 = call i32 @isatty(i32 noundef %11536) #10
  %11538 = icmp ne i32 %11537, 0
  br i1 %11538, label %11539, label %11556

11539:                                            ; preds = %11534
  %11540 = load i32, ptr %343, align 4, !tbaa !5
  %11541 = call ptr @__errno_location() #11
  store i32 %11540, ptr %11541, align 4, !tbaa !5
  %11542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11543 = load i32, ptr @test_count, align 4, !tbaa !5
  %11544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11545 = load i32, ptr %11544, align 4, !tbaa !5
  %11546 = call ptr @s2n_strerror(i32 noundef %11545, ptr noundef @.str.4)
  %11547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11548 = load i32, ptr %11547, align 4, !tbaa !5
  %11549 = call ptr @s2n_strerror_debug(i32 noundef %11548, ptr noundef @.str.4)
  %11550 = call ptr @__errno_location() #11
  %11551 = load i32, ptr %11550, align 4, !tbaa !5
  %11552 = call ptr @strerror(i32 noundef %11551) #10
  %11553 = call ptr @__errno_location() #11
  %11554 = load i32, ptr %11553, align 4, !tbaa !5
  %11555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11542, ptr noundef @.str.2, i32 noundef %11543, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 745, ptr noundef %11546, ptr noundef %11549, ptr noundef %11552, i32 noundef %11554) #10
  br label %11573

11556:                                            ; preds = %11534, %11527
  %11557 = load i32, ptr %343, align 4, !tbaa !5
  %11558 = call ptr @__errno_location() #11
  store i32 %11557, ptr %11558, align 4, !tbaa !5
  %11559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11560 = load i32, ptr @test_count, align 4, !tbaa !5
  %11561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11562 = load i32, ptr %11561, align 4, !tbaa !5
  %11563 = call ptr @s2n_strerror(i32 noundef %11562, ptr noundef @.str.4)
  %11564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11565 = load i32, ptr %11564, align 4, !tbaa !5
  %11566 = call ptr @s2n_strerror_debug(i32 noundef %11565, ptr noundef @.str.4)
  %11567 = call ptr @__errno_location() #11
  %11568 = load i32, ptr %11567, align 4, !tbaa !5
  %11569 = call ptr @strerror(i32 noundef %11568) #10
  %11570 = call ptr @__errno_location() #11
  %11571 = load i32, ptr %11570, align 4, !tbaa !5
  %11572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11559, ptr noundef @.str.5, i32 noundef %11560, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 745, ptr noundef %11563, ptr noundef %11566, ptr noundef %11569, i32 noundef %11571) #10
  br label %11573

11573:                                            ; preds = %11556, %11539
  call void @llvm.lifetime.end.p0(i64 4, ptr %343) #10
  br label %11574

11574:                                            ; preds = %11573
  br label %11575

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

11576:                                            ; No predecessors!
  br label %11577

11577:                                            ; preds = %11576
  br label %11578

11578:                                            ; preds = %11577, %11516
  br label %11579

11579:                                            ; preds = %11578
  br label %11580

11580:                                            ; preds = %11579
  %11581 = load ptr, ptr %333, align 8, !tbaa !9
  %11582 = getelementptr inbounds %struct.s2n_connection, ptr %11581, i32 0, i32 23
  store i8 34, ptr %11582, align 4, !tbaa !50
  %11583 = load ptr, ptr %333, align 8, !tbaa !9
  %11584 = getelementptr inbounds %struct.s2n_connection, ptr %11583, i32 0, i32 27
  %11585 = load ptr, ptr %11584, align 8, !tbaa !66
  %11586 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %11585, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %11586, align 8, !tbaa !67
  br label %11587

11587:                                            ; preds = %11580
  %11588 = load i32, ptr @test_count, align 4, !tbaa !5
  %11589 = add nsw i32 %11588, 1
  store i32 %11589, ptr @test_count, align 4, !tbaa !5
  %11590 = load ptr, ptr %333, align 8, !tbaa !9
  %11591 = call i32 @s2n_signature_algorithm_select(ptr noundef %11590)
  %11592 = getelementptr inbounds %struct.s2n_result, ptr %344, i32 0, i32 0
  store i32 %11591, ptr %11592, align 4
  %11593 = getelementptr inbounds %struct.s2n_result, ptr %344, i32 0, i32 0
  %11594 = load i32, ptr %11593, align 4
  %11595 = call zeroext i1 @s2n_result_is_ok(i32 %11594)
  br i1 %11595, label %11649, label %11596

11596:                                            ; preds = %11587
  br label %11597

11597:                                            ; preds = %11596
  br label %11598

11598:                                            ; preds = %11597
  call void @llvm.lifetime.start.p0(i64 4, ptr %345) #10
  %11599 = call ptr @__errno_location() #11
  %11600 = load i32, ptr %11599, align 4, !tbaa !5
  store i32 %11600, ptr %345, align 4, !tbaa !5
  %11601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11602 = call i32 @s2n_print_stacktrace(ptr noundef %11601)
  %11603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11604 = trunc i8 %11603 to i1
  br i1 %11604, label %11605, label %11627

11605:                                            ; preds = %11598
  %11606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11607 = call i32 @fileno(ptr noundef %11606) #10
  %11608 = call i32 @isatty(i32 noundef %11607) #10
  %11609 = icmp ne i32 %11608, 0
  br i1 %11609, label %11610, label %11627

11610:                                            ; preds = %11605
  %11611 = load i32, ptr %345, align 4, !tbaa !5
  %11612 = call ptr @__errno_location() #11
  store i32 %11611, ptr %11612, align 4, !tbaa !5
  %11613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11614 = load i32, ptr @test_count, align 4, !tbaa !5
  %11615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11616 = load i32, ptr %11615, align 4, !tbaa !5
  %11617 = call ptr @s2n_strerror(i32 noundef %11616, ptr noundef @.str.4)
  %11618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11619 = load i32, ptr %11618, align 4, !tbaa !5
  %11620 = call ptr @s2n_strerror_debug(i32 noundef %11619, ptr noundef @.str.4)
  %11621 = call ptr @__errno_location() #11
  %11622 = load i32, ptr %11621, align 4, !tbaa !5
  %11623 = call ptr @strerror(i32 noundef %11622) #10
  %11624 = call ptr @__errno_location() #11
  %11625 = load i32, ptr %11624, align 4, !tbaa !5
  %11626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11613, ptr noundef @.str.2, i32 noundef %11614, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 750, ptr noundef %11617, ptr noundef %11620, ptr noundef %11623, i32 noundef %11625) #10
  br label %11644

11627:                                            ; preds = %11605, %11598
  %11628 = load i32, ptr %345, align 4, !tbaa !5
  %11629 = call ptr @__errno_location() #11
  store i32 %11628, ptr %11629, align 4, !tbaa !5
  %11630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11631 = load i32, ptr @test_count, align 4, !tbaa !5
  %11632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11633 = load i32, ptr %11632, align 4, !tbaa !5
  %11634 = call ptr @s2n_strerror(i32 noundef %11633, ptr noundef @.str.4)
  %11635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11636 = load i32, ptr %11635, align 4, !tbaa !5
  %11637 = call ptr @s2n_strerror_debug(i32 noundef %11636, ptr noundef @.str.4)
  %11638 = call ptr @__errno_location() #11
  %11639 = load i32, ptr %11638, align 4, !tbaa !5
  %11640 = call ptr @strerror(i32 noundef %11639) #10
  %11641 = call ptr @__errno_location() #11
  %11642 = load i32, ptr %11641, align 4, !tbaa !5
  %11643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11630, ptr noundef @.str.5, i32 noundef %11631, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 750, ptr noundef %11634, ptr noundef %11637, ptr noundef %11640, i32 noundef %11642) #10
  br label %11644

11644:                                            ; preds = %11627, %11610
  call void @llvm.lifetime.end.p0(i64 4, ptr %345) #10
  br label %11645

11645:                                            ; preds = %11644
  br label %11646

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

11647:                                            ; No predecessors!
  br label %11648

11648:                                            ; preds = %11647
  br label %11649

11649:                                            ; preds = %11648, %11587
  br label %11650

11650:                                            ; preds = %11649
  br label %11651

11651:                                            ; preds = %11650
  br label %11652

11652:                                            ; preds = %11651
  %11653 = load i32, ptr @test_count, align 4, !tbaa !5
  %11654 = add nsw i32 %11653, 1
  store i32 %11654, ptr @test_count, align 4, !tbaa !5
  %11655 = load ptr, ptr %333, align 8, !tbaa !9
  %11656 = getelementptr inbounds %struct.s2n_connection, ptr %11655, i32 0, i32 32
  %11657 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %11656, i32 0, i32 5
  %11658 = load ptr, ptr %11657, align 8, !tbaa !72
  %11659 = load ptr, ptr %330, align 8, !tbaa !9
  %11660 = icmp eq ptr %11658, %11659
  br i1 %11660, label %11714, label %11661

11661:                                            ; preds = %11652
  br label %11662

11662:                                            ; preds = %11661
  br label %11663

11663:                                            ; preds = %11662
  call void @llvm.lifetime.start.p0(i64 4, ptr %346) #10
  %11664 = call ptr @__errno_location() #11
  %11665 = load i32, ptr %11664, align 4, !tbaa !5
  store i32 %11665, ptr %346, align 4, !tbaa !5
  %11666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11667 = call i32 @s2n_print_stacktrace(ptr noundef %11666)
  %11668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11669 = trunc i8 %11668 to i1
  br i1 %11669, label %11670, label %11692

11670:                                            ; preds = %11663
  %11671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11672 = call i32 @fileno(ptr noundef %11671) #10
  %11673 = call i32 @isatty(i32 noundef %11672) #10
  %11674 = icmp ne i32 %11673, 0
  br i1 %11674, label %11675, label %11692

11675:                                            ; preds = %11670
  %11676 = load i32, ptr %346, align 4, !tbaa !5
  %11677 = call ptr @__errno_location() #11
  store i32 %11676, ptr %11677, align 4, !tbaa !5
  %11678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11679 = load i32, ptr @test_count, align 4, !tbaa !5
  %11680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11681 = load i32, ptr %11680, align 4, !tbaa !5
  %11682 = call ptr @s2n_strerror(i32 noundef %11681, ptr noundef @.str.4)
  %11683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11684 = load i32, ptr %11683, align 4, !tbaa !5
  %11685 = call ptr @s2n_strerror_debug(i32 noundef %11684, ptr noundef @.str.4)
  %11686 = call ptr @__errno_location() #11
  %11687 = load i32, ptr %11686, align 4, !tbaa !5
  %11688 = call ptr @strerror(i32 noundef %11687) #10
  %11689 = call ptr @__errno_location() #11
  %11690 = load i32, ptr %11689, align 4, !tbaa !5
  %11691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11678, ptr noundef @.str.2, i32 noundef %11679, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 751, ptr noundef %11682, ptr noundef %11685, ptr noundef %11688, i32 noundef %11690) #10
  br label %11709

11692:                                            ; preds = %11670, %11663
  %11693 = load i32, ptr %346, align 4, !tbaa !5
  %11694 = call ptr @__errno_location() #11
  store i32 %11693, ptr %11694, align 4, !tbaa !5
  %11695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11696 = load i32, ptr @test_count, align 4, !tbaa !5
  %11697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11698 = load i32, ptr %11697, align 4, !tbaa !5
  %11699 = call ptr @s2n_strerror(i32 noundef %11698, ptr noundef @.str.4)
  %11700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11701 = load i32, ptr %11700, align 4, !tbaa !5
  %11702 = call ptr @s2n_strerror_debug(i32 noundef %11701, ptr noundef @.str.4)
  %11703 = call ptr @__errno_location() #11
  %11704 = load i32, ptr %11703, align 4, !tbaa !5
  %11705 = call ptr @strerror(i32 noundef %11704) #10
  %11706 = call ptr @__errno_location() #11
  %11707 = load i32, ptr %11706, align 4, !tbaa !5
  %11708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11695, ptr noundef @.str.5, i32 noundef %11696, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 751, ptr noundef %11699, ptr noundef %11702, ptr noundef %11705, i32 noundef %11707) #10
  br label %11709

11709:                                            ; preds = %11692, %11675
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #10
  br label %11710

11710:                                            ; preds = %11709
  br label %11711

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

11712:                                            ; No predecessors!
  br label %11713

11713:                                            ; preds = %11712
  br label %11714

11714:                                            ; preds = %11713, %11652
  br label %11715

11715:                                            ; preds = %11714
  br label %11716

11716:                                            ; preds = %11715
  call void @llvm.lifetime.end.p0(i64 80, ptr %335) #10
  %11717 = call i32 @s2n_connection_ptr_free(ptr noundef %333)
  %11718 = getelementptr inbounds %struct.s2n_result, ptr %347, i32 0, i32 0
  store i32 %11717, ptr %11718, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %333) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %332) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %348) #10
  %11719 = load ptr, ptr %330, align 8, !tbaa !9
  store ptr %11719, ptr %348, align 8, !tbaa !9
  %11720 = getelementptr inbounds ptr, ptr %348, i64 1
  %11721 = load ptr, ptr %331, align 8, !tbaa !9
  store ptr %11721, ptr %11720, align 8, !tbaa !9
  %11722 = getelementptr inbounds ptr, ptr %348, i64 2
  store ptr @s2n_ecdsa_sha512, ptr %11722, align 8, !tbaa !9
  %11723 = getelementptr inbounds ptr, ptr %348, i64 3
  store ptr @s2n_ecdsa_sha256, ptr %11723, align 8, !tbaa !9
  %11724 = getelementptr inbounds ptr, ptr %348, i64 4
  store ptr @s2n_rsa_pss_rsae_sha384, ptr %11724, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %349) #10
  %11725 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11725, ptr %349, align 8, !tbaa !9
  br label %11726

11726:                                            ; preds = %11716
  %11727 = load i32, ptr @test_count, align 4, !tbaa !5
  %11728 = add nsw i32 %11727, 1
  store i32 %11728, ptr @test_count, align 4, !tbaa !5
  %11729 = load ptr, ptr %349, align 8, !tbaa !9
  %11730 = load ptr, ptr %75, align 8, !tbaa !9
  %11731 = call i32 @s2n_connection_set_config(ptr noundef %11729, ptr noundef %11730)
  %11732 = icmp eq i32 %11731, -1
  br i1 %11732, label %11733, label %11786

11733:                                            ; preds = %11726
  br label %11734

11734:                                            ; preds = %11733
  br label %11735

11735:                                            ; preds = %11734
  call void @llvm.lifetime.start.p0(i64 4, ptr %350) #10
  %11736 = call ptr @__errno_location() #11
  %11737 = load i32, ptr %11736, align 4, !tbaa !5
  store i32 %11737, ptr %350, align 4, !tbaa !5
  %11738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11739 = call i32 @s2n_print_stacktrace(ptr noundef %11738)
  %11740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11741 = trunc i8 %11740 to i1
  br i1 %11741, label %11742, label %11764

11742:                                            ; preds = %11735
  %11743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11744 = call i32 @fileno(ptr noundef %11743) #10
  %11745 = call i32 @isatty(i32 noundef %11744) #10
  %11746 = icmp ne i32 %11745, 0
  br i1 %11746, label %11747, label %11764

11747:                                            ; preds = %11742
  %11748 = load i32, ptr %350, align 4, !tbaa !5
  %11749 = call ptr @__errno_location() #11
  store i32 %11748, ptr %11749, align 4, !tbaa !5
  %11750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11751 = load i32, ptr @test_count, align 4, !tbaa !5
  %11752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11753 = load i32, ptr %11752, align 4, !tbaa !5
  %11754 = call ptr @s2n_strerror(i32 noundef %11753, ptr noundef @.str.4)
  %11755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11756 = load i32, ptr %11755, align 4, !tbaa !5
  %11757 = call ptr @s2n_strerror_debug(i32 noundef %11756, ptr noundef @.str.4)
  %11758 = call ptr @__errno_location() #11
  %11759 = load i32, ptr %11758, align 4, !tbaa !5
  %11760 = call ptr @strerror(i32 noundef %11759) #10
  %11761 = call ptr @__errno_location() #11
  %11762 = load i32, ptr %11761, align 4, !tbaa !5
  %11763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11750, ptr noundef @.str.2, i32 noundef %11751, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 768, ptr noundef %11754, ptr noundef %11757, ptr noundef %11760, i32 noundef %11762) #10
  br label %11781

11764:                                            ; preds = %11742, %11735
  %11765 = load i32, ptr %350, align 4, !tbaa !5
  %11766 = call ptr @__errno_location() #11
  store i32 %11765, ptr %11766, align 4, !tbaa !5
  %11767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11768 = load i32, ptr @test_count, align 4, !tbaa !5
  %11769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11770 = load i32, ptr %11769, align 4, !tbaa !5
  %11771 = call ptr @s2n_strerror(i32 noundef %11770, ptr noundef @.str.4)
  %11772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11773 = load i32, ptr %11772, align 4, !tbaa !5
  %11774 = call ptr @s2n_strerror_debug(i32 noundef %11773, ptr noundef @.str.4)
  %11775 = call ptr @__errno_location() #11
  %11776 = load i32, ptr %11775, align 4, !tbaa !5
  %11777 = call ptr @strerror(i32 noundef %11776) #10
  %11778 = call ptr @__errno_location() #11
  %11779 = load i32, ptr %11778, align 4, !tbaa !5
  %11780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11767, ptr noundef @.str.5, i32 noundef %11768, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 768, ptr noundef %11771, ptr noundef %11774, ptr noundef %11777, i32 noundef %11779) #10
  br label %11781

11781:                                            ; preds = %11764, %11747
  call void @llvm.lifetime.end.p0(i64 4, ptr %350) #10
  br label %11782

11782:                                            ; preds = %11781
  br label %11783

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

11784:                                            ; No predecessors!
  br label %11785

11785:                                            ; preds = %11784
  br label %11786

11786:                                            ; preds = %11785, %11726
  br label %11787

11787:                                            ; preds = %11786
  br label %11788

11788:                                            ; preds = %11787
  call void @llvm.lifetime.start.p0(i64 80, ptr %351) #10
  call void @llvm.memset.p0.i64(ptr align 8 %351, i8 0, i64 80, i1 false)
  br label %11789

11789:                                            ; preds = %11788
  %11790 = load i32, ptr @test_count, align 4, !tbaa !5
  %11791 = add nsw i32 %11790, 1
  store i32 %11791, ptr @test_count, align 4, !tbaa !5
  %11792 = load ptr, ptr %349, align 8, !tbaa !9
  %11793 = getelementptr inbounds [5 x ptr], ptr %348, i64 0, i64 0
  %11794 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %11792, ptr noundef %351, ptr noundef %11793, i64 noundef 5)
  %11795 = getelementptr inbounds %struct.s2n_result, ptr %352, i32 0, i32 0
  store i32 %11794, ptr %11795, align 4
  %11796 = getelementptr inbounds %struct.s2n_result, ptr %352, i32 0, i32 0
  %11797 = load i32, ptr %11796, align 4
  %11798 = call zeroext i1 @s2n_result_is_ok(i32 %11797)
  br i1 %11798, label %11852, label %11799

11799:                                            ; preds = %11789
  br label %11800

11800:                                            ; preds = %11799
  br label %11801

11801:                                            ; preds = %11800
  call void @llvm.lifetime.start.p0(i64 4, ptr %353) #10
  %11802 = call ptr @__errno_location() #11
  %11803 = load i32, ptr %11802, align 4, !tbaa !5
  store i32 %11803, ptr %353, align 4, !tbaa !5
  %11804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11805 = call i32 @s2n_print_stacktrace(ptr noundef %11804)
  %11806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11807 = trunc i8 %11806 to i1
  br i1 %11807, label %11808, label %11830

11808:                                            ; preds = %11801
  %11809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11810 = call i32 @fileno(ptr noundef %11809) #10
  %11811 = call i32 @isatty(i32 noundef %11810) #10
  %11812 = icmp ne i32 %11811, 0
  br i1 %11812, label %11813, label %11830

11813:                                            ; preds = %11808
  %11814 = load i32, ptr %353, align 4, !tbaa !5
  %11815 = call ptr @__errno_location() #11
  store i32 %11814, ptr %11815, align 4, !tbaa !5
  %11816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11817 = load i32, ptr @test_count, align 4, !tbaa !5
  %11818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11819 = load i32, ptr %11818, align 4, !tbaa !5
  %11820 = call ptr @s2n_strerror(i32 noundef %11819, ptr noundef @.str.4)
  %11821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11822 = load i32, ptr %11821, align 4, !tbaa !5
  %11823 = call ptr @s2n_strerror_debug(i32 noundef %11822, ptr noundef @.str.4)
  %11824 = call ptr @__errno_location() #11
  %11825 = load i32, ptr %11824, align 4, !tbaa !5
  %11826 = call ptr @strerror(i32 noundef %11825) #10
  %11827 = call ptr @__errno_location() #11
  %11828 = load i32, ptr %11827, align 4, !tbaa !5
  %11829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11816, ptr noundef @.str.2, i32 noundef %11817, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 772, ptr noundef %11820, ptr noundef %11823, ptr noundef %11826, i32 noundef %11828) #10
  br label %11847

11830:                                            ; preds = %11808, %11801
  %11831 = load i32, ptr %353, align 4, !tbaa !5
  %11832 = call ptr @__errno_location() #11
  store i32 %11831, ptr %11832, align 4, !tbaa !5
  %11833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11834 = load i32, ptr @test_count, align 4, !tbaa !5
  %11835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11836 = load i32, ptr %11835, align 4, !tbaa !5
  %11837 = call ptr @s2n_strerror(i32 noundef %11836, ptr noundef @.str.4)
  %11838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11839 = load i32, ptr %11838, align 4, !tbaa !5
  %11840 = call ptr @s2n_strerror_debug(i32 noundef %11839, ptr noundef @.str.4)
  %11841 = call ptr @__errno_location() #11
  %11842 = load i32, ptr %11841, align 4, !tbaa !5
  %11843 = call ptr @strerror(i32 noundef %11842) #10
  %11844 = call ptr @__errno_location() #11
  %11845 = load i32, ptr %11844, align 4, !tbaa !5
  %11846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11833, ptr noundef @.str.5, i32 noundef %11834, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 772, ptr noundef %11837, ptr noundef %11840, ptr noundef %11843, i32 noundef %11845) #10
  br label %11847

11847:                                            ; preds = %11830, %11813
  call void @llvm.lifetime.end.p0(i64 4, ptr %353) #10
  br label %11848

11848:                                            ; preds = %11847
  br label %11849

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

11850:                                            ; No predecessors!
  br label %11851

11851:                                            ; preds = %11850
  br label %11852

11852:                                            ; preds = %11851, %11789
  br label %11853

11853:                                            ; preds = %11852
  br label %11854

11854:                                            ; preds = %11853
  %11855 = load ptr, ptr %349, align 8, !tbaa !9
  %11856 = getelementptr inbounds %struct.s2n_connection, ptr %11855, i32 0, i32 23
  store i8 33, ptr %11856, align 4, !tbaa !50
  %11857 = load ptr, ptr %349, align 8, !tbaa !9
  %11858 = getelementptr inbounds %struct.s2n_connection, ptr %11857, i32 0, i32 27
  %11859 = load ptr, ptr %11858, align 8, !tbaa !66
  %11860 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %11859, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %11860, align 8, !tbaa !67
  br label %11861

11861:                                            ; preds = %11854
  %11862 = load i32, ptr @test_count, align 4, !tbaa !5
  %11863 = add nsw i32 %11862, 1
  store i32 %11863, ptr @test_count, align 4, !tbaa !5
  %11864 = load ptr, ptr %349, align 8, !tbaa !9
  %11865 = call i32 @s2n_signature_algorithm_select(ptr noundef %11864)
  %11866 = getelementptr inbounds %struct.s2n_result, ptr %354, i32 0, i32 0
  store i32 %11865, ptr %11866, align 4
  %11867 = getelementptr inbounds %struct.s2n_result, ptr %354, i32 0, i32 0
  %11868 = load i32, ptr %11867, align 4
  %11869 = call zeroext i1 @s2n_result_is_ok(i32 %11868)
  br i1 %11869, label %11923, label %11870

11870:                                            ; preds = %11861
  br label %11871

11871:                                            ; preds = %11870
  br label %11872

11872:                                            ; preds = %11871
  call void @llvm.lifetime.start.p0(i64 4, ptr %355) #10
  %11873 = call ptr @__errno_location() #11
  %11874 = load i32, ptr %11873, align 4, !tbaa !5
  store i32 %11874, ptr %355, align 4, !tbaa !5
  %11875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11876 = call i32 @s2n_print_stacktrace(ptr noundef %11875)
  %11877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11878 = trunc i8 %11877 to i1
  br i1 %11878, label %11879, label %11901

11879:                                            ; preds = %11872
  %11880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11881 = call i32 @fileno(ptr noundef %11880) #10
  %11882 = call i32 @isatty(i32 noundef %11881) #10
  %11883 = icmp ne i32 %11882, 0
  br i1 %11883, label %11884, label %11901

11884:                                            ; preds = %11879
  %11885 = load i32, ptr %355, align 4, !tbaa !5
  %11886 = call ptr @__errno_location() #11
  store i32 %11885, ptr %11886, align 4, !tbaa !5
  %11887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11888 = load i32, ptr @test_count, align 4, !tbaa !5
  %11889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11890 = load i32, ptr %11889, align 4, !tbaa !5
  %11891 = call ptr @s2n_strerror(i32 noundef %11890, ptr noundef @.str.4)
  %11892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11893 = load i32, ptr %11892, align 4, !tbaa !5
  %11894 = call ptr @s2n_strerror_debug(i32 noundef %11893, ptr noundef @.str.4)
  %11895 = call ptr @__errno_location() #11
  %11896 = load i32, ptr %11895, align 4, !tbaa !5
  %11897 = call ptr @strerror(i32 noundef %11896) #10
  %11898 = call ptr @__errno_location() #11
  %11899 = load i32, ptr %11898, align 4, !tbaa !5
  %11900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11887, ptr noundef @.str.2, i32 noundef %11888, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 777, ptr noundef %11891, ptr noundef %11894, ptr noundef %11897, i32 noundef %11899) #10
  br label %11918

11901:                                            ; preds = %11879, %11872
  %11902 = load i32, ptr %355, align 4, !tbaa !5
  %11903 = call ptr @__errno_location() #11
  store i32 %11902, ptr %11903, align 4, !tbaa !5
  %11904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11905 = load i32, ptr @test_count, align 4, !tbaa !5
  %11906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11907 = load i32, ptr %11906, align 4, !tbaa !5
  %11908 = call ptr @s2n_strerror(i32 noundef %11907, ptr noundef @.str.4)
  %11909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11910 = load i32, ptr %11909, align 4, !tbaa !5
  %11911 = call ptr @s2n_strerror_debug(i32 noundef %11910, ptr noundef @.str.4)
  %11912 = call ptr @__errno_location() #11
  %11913 = load i32, ptr %11912, align 4, !tbaa !5
  %11914 = call ptr @strerror(i32 noundef %11913) #10
  %11915 = call ptr @__errno_location() #11
  %11916 = load i32, ptr %11915, align 4, !tbaa !5
  %11917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11904, ptr noundef @.str.5, i32 noundef %11905, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 777, ptr noundef %11908, ptr noundef %11911, ptr noundef %11914, i32 noundef %11916) #10
  br label %11918

11918:                                            ; preds = %11901, %11884
  call void @llvm.lifetime.end.p0(i64 4, ptr %355) #10
  br label %11919

11919:                                            ; preds = %11918
  br label %11920

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

11921:                                            ; No predecessors!
  br label %11922

11922:                                            ; preds = %11921
  br label %11923

11923:                                            ; preds = %11922, %11861
  br label %11924

11924:                                            ; preds = %11923
  br label %11925

11925:                                            ; preds = %11924
  br label %11926

11926:                                            ; preds = %11925
  %11927 = load i32, ptr @test_count, align 4, !tbaa !5
  %11928 = add nsw i32 %11927, 1
  store i32 %11928, ptr @test_count, align 4, !tbaa !5
  %11929 = load ptr, ptr %349, align 8, !tbaa !9
  %11930 = getelementptr inbounds %struct.s2n_connection, ptr %11929, i32 0, i32 32
  %11931 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %11930, i32 0, i32 5
  %11932 = load ptr, ptr %11931, align 8, !tbaa !72
  %11933 = load ptr, ptr %330, align 8, !tbaa !9
  %11934 = icmp eq ptr %11932, %11933
  br i1 %11934, label %11988, label %11935

11935:                                            ; preds = %11926
  br label %11936

11936:                                            ; preds = %11935
  br label %11937

11937:                                            ; preds = %11936
  call void @llvm.lifetime.start.p0(i64 4, ptr %356) #10
  %11938 = call ptr @__errno_location() #11
  %11939 = load i32, ptr %11938, align 4, !tbaa !5
  store i32 %11939, ptr %356, align 4, !tbaa !5
  %11940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11941 = call i32 @s2n_print_stacktrace(ptr noundef %11940)
  %11942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11943 = trunc i8 %11942 to i1
  br i1 %11943, label %11944, label %11966

11944:                                            ; preds = %11937
  %11945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11946 = call i32 @fileno(ptr noundef %11945) #10
  %11947 = call i32 @isatty(i32 noundef %11946) #10
  %11948 = icmp ne i32 %11947, 0
  br i1 %11948, label %11949, label %11966

11949:                                            ; preds = %11944
  %11950 = load i32, ptr %356, align 4, !tbaa !5
  %11951 = call ptr @__errno_location() #11
  store i32 %11950, ptr %11951, align 4, !tbaa !5
  %11952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11953 = load i32, ptr @test_count, align 4, !tbaa !5
  %11954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11955 = load i32, ptr %11954, align 4, !tbaa !5
  %11956 = call ptr @s2n_strerror(i32 noundef %11955, ptr noundef @.str.4)
  %11957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11958 = load i32, ptr %11957, align 4, !tbaa !5
  %11959 = call ptr @s2n_strerror_debug(i32 noundef %11958, ptr noundef @.str.4)
  %11960 = call ptr @__errno_location() #11
  %11961 = load i32, ptr %11960, align 4, !tbaa !5
  %11962 = call ptr @strerror(i32 noundef %11961) #10
  %11963 = call ptr @__errno_location() #11
  %11964 = load i32, ptr %11963, align 4, !tbaa !5
  %11965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11952, ptr noundef @.str.2, i32 noundef %11953, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 778, ptr noundef %11956, ptr noundef %11959, ptr noundef %11962, i32 noundef %11964) #10
  br label %11983

11966:                                            ; preds = %11944, %11937
  %11967 = load i32, ptr %356, align 4, !tbaa !5
  %11968 = call ptr @__errno_location() #11
  store i32 %11967, ptr %11968, align 4, !tbaa !5
  %11969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11970 = load i32, ptr @test_count, align 4, !tbaa !5
  %11971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11972 = load i32, ptr %11971, align 4, !tbaa !5
  %11973 = call ptr @s2n_strerror(i32 noundef %11972, ptr noundef @.str.4)
  %11974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11975 = load i32, ptr %11974, align 4, !tbaa !5
  %11976 = call ptr @s2n_strerror_debug(i32 noundef %11975, ptr noundef @.str.4)
  %11977 = call ptr @__errno_location() #11
  %11978 = load i32, ptr %11977, align 4, !tbaa !5
  %11979 = call ptr @strerror(i32 noundef %11978) #10
  %11980 = call ptr @__errno_location() #11
  %11981 = load i32, ptr %11980, align 4, !tbaa !5
  %11982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11969, ptr noundef @.str.5, i32 noundef %11970, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 778, ptr noundef %11973, ptr noundef %11976, ptr noundef %11979, i32 noundef %11981) #10
  br label %11983

11983:                                            ; preds = %11966, %11949
  call void @llvm.lifetime.end.p0(i64 4, ptr %356) #10
  br label %11984

11984:                                            ; preds = %11983
  br label %11985

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

11986:                                            ; No predecessors!
  br label %11987

11987:                                            ; preds = %11986
  br label %11988

11988:                                            ; preds = %11987, %11926
  br label %11989

11989:                                            ; preds = %11988
  br label %11990

11990:                                            ; preds = %11989
  %11991 = load ptr, ptr %349, align 8, !tbaa !9
  %11992 = getelementptr inbounds %struct.s2n_connection, ptr %11991, i32 0, i32 23
  store i8 33, ptr %11992, align 4, !tbaa !50
  %11993 = load ptr, ptr %349, align 8, !tbaa !9
  %11994 = getelementptr inbounds %struct.s2n_connection, ptr %11993, i32 0, i32 27
  %11995 = load ptr, ptr %11994, align 8, !tbaa !66
  %11996 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %11995, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %11996, align 8, !tbaa !67
  br label %11997

11997:                                            ; preds = %11990
  %11998 = load i32, ptr @test_count, align 4, !tbaa !5
  %11999 = add nsw i32 %11998, 1
  store i32 %11999, ptr @test_count, align 4, !tbaa !5
  %12000 = load ptr, ptr %349, align 8, !tbaa !9
  %12001 = call i32 @s2n_signature_algorithm_select(ptr noundef %12000)
  %12002 = getelementptr inbounds %struct.s2n_result, ptr %357, i32 0, i32 0
  store i32 %12001, ptr %12002, align 4
  %12003 = getelementptr inbounds %struct.s2n_result, ptr %357, i32 0, i32 0
  %12004 = load i32, ptr %12003, align 4
  %12005 = call zeroext i1 @s2n_result_is_ok(i32 %12004)
  br i1 %12005, label %12059, label %12006

12006:                                            ; preds = %11997
  br label %12007

12007:                                            ; preds = %12006
  br label %12008

12008:                                            ; preds = %12007
  call void @llvm.lifetime.start.p0(i64 4, ptr %358) #10
  %12009 = call ptr @__errno_location() #11
  %12010 = load i32, ptr %12009, align 4, !tbaa !5
  store i32 %12010, ptr %358, align 4, !tbaa !5
  %12011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12012 = call i32 @s2n_print_stacktrace(ptr noundef %12011)
  %12013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12014 = trunc i8 %12013 to i1
  br i1 %12014, label %12015, label %12037

12015:                                            ; preds = %12008
  %12016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12017 = call i32 @fileno(ptr noundef %12016) #10
  %12018 = call i32 @isatty(i32 noundef %12017) #10
  %12019 = icmp ne i32 %12018, 0
  br i1 %12019, label %12020, label %12037

12020:                                            ; preds = %12015
  %12021 = load i32, ptr %358, align 4, !tbaa !5
  %12022 = call ptr @__errno_location() #11
  store i32 %12021, ptr %12022, align 4, !tbaa !5
  %12023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12024 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %12026, ptr noundef @.str.4)
  %12028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12029 = load i32, ptr %12028, align 4, !tbaa !5
  %12030 = call ptr @s2n_strerror_debug(i32 noundef %12029, ptr noundef @.str.4)
  %12031 = call ptr @__errno_location() #11
  %12032 = load i32, ptr %12031, align 4, !tbaa !5
  %12033 = call ptr @strerror(i32 noundef %12032) #10
  %12034 = call ptr @__errno_location() #11
  %12035 = load i32, ptr %12034, align 4, !tbaa !5
  %12036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12023, ptr noundef @.str.2, i32 noundef %12024, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 783, ptr noundef %12027, ptr noundef %12030, ptr noundef %12033, i32 noundef %12035) #10
  br label %12054

12037:                                            ; preds = %12015, %12008
  %12038 = load i32, ptr %358, align 4, !tbaa !5
  %12039 = call ptr @__errno_location() #11
  store i32 %12038, ptr %12039, align 4, !tbaa !5
  %12040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12041 = load i32, ptr @test_count, align 4, !tbaa !5
  %12042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12043 = load i32, ptr %12042, align 4, !tbaa !5
  %12044 = call ptr @s2n_strerror(i32 noundef %12043, ptr noundef @.str.4)
  %12045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12046 = load i32, ptr %12045, align 4, !tbaa !5
  %12047 = call ptr @s2n_strerror_debug(i32 noundef %12046, ptr noundef @.str.4)
  %12048 = call ptr @__errno_location() #11
  %12049 = load i32, ptr %12048, align 4, !tbaa !5
  %12050 = call ptr @strerror(i32 noundef %12049) #10
  %12051 = call ptr @__errno_location() #11
  %12052 = load i32, ptr %12051, align 4, !tbaa !5
  %12053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12040, ptr noundef @.str.5, i32 noundef %12041, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 783, ptr noundef %12044, ptr noundef %12047, ptr noundef %12050, i32 noundef %12052) #10
  br label %12054

12054:                                            ; preds = %12037, %12020
  call void @llvm.lifetime.end.p0(i64 4, ptr %358) #10
  br label %12055

12055:                                            ; preds = %12054
  br label %12056

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

12057:                                            ; No predecessors!
  br label %12058

12058:                                            ; preds = %12057
  br label %12059

12059:                                            ; preds = %12058, %11997
  br label %12060

12060:                                            ; preds = %12059
  br label %12061

12061:                                            ; preds = %12060
  br label %12062

12062:                                            ; preds = %12061
  %12063 = load i32, ptr @test_count, align 4, !tbaa !5
  %12064 = add nsw i32 %12063, 1
  store i32 %12064, ptr @test_count, align 4, !tbaa !5
  %12065 = load ptr, ptr %349, align 8, !tbaa !9
  %12066 = getelementptr inbounds %struct.s2n_connection, ptr %12065, i32 0, i32 32
  %12067 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %12066, i32 0, i32 5
  %12068 = load ptr, ptr %12067, align 8, !tbaa !72
  %12069 = load ptr, ptr %331, align 8, !tbaa !9
  %12070 = icmp eq ptr %12068, %12069
  br i1 %12070, label %12124, label %12071

12071:                                            ; preds = %12062
  br label %12072

12072:                                            ; preds = %12071
  br label %12073

12073:                                            ; preds = %12072
  call void @llvm.lifetime.start.p0(i64 4, ptr %359) #10
  %12074 = call ptr @__errno_location() #11
  %12075 = load i32, ptr %12074, align 4, !tbaa !5
  store i32 %12075, ptr %359, align 4, !tbaa !5
  %12076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12077 = call i32 @s2n_print_stacktrace(ptr noundef %12076)
  %12078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12079 = trunc i8 %12078 to i1
  br i1 %12079, label %12080, label %12102

12080:                                            ; preds = %12073
  %12081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12082 = call i32 @fileno(ptr noundef %12081) #10
  %12083 = call i32 @isatty(i32 noundef %12082) #10
  %12084 = icmp ne i32 %12083, 0
  br i1 %12084, label %12085, label %12102

12085:                                            ; preds = %12080
  %12086 = load i32, ptr %359, align 4, !tbaa !5
  %12087 = call ptr @__errno_location() #11
  store i32 %12086, ptr %12087, align 4, !tbaa !5
  %12088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12089 = load i32, ptr @test_count, align 4, !tbaa !5
  %12090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12091 = load i32, ptr %12090, align 4, !tbaa !5
  %12092 = call ptr @s2n_strerror(i32 noundef %12091, ptr noundef @.str.4)
  %12093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12094 = load i32, ptr %12093, align 4, !tbaa !5
  %12095 = call ptr @s2n_strerror_debug(i32 noundef %12094, ptr noundef @.str.4)
  %12096 = call ptr @__errno_location() #11
  %12097 = load i32, ptr %12096, align 4, !tbaa !5
  %12098 = call ptr @strerror(i32 noundef %12097) #10
  %12099 = call ptr @__errno_location() #11
  %12100 = load i32, ptr %12099, align 4, !tbaa !5
  %12101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12088, ptr noundef @.str.2, i32 noundef %12089, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 784, ptr noundef %12092, ptr noundef %12095, ptr noundef %12098, i32 noundef %12100) #10
  br label %12119

12102:                                            ; preds = %12080, %12073
  %12103 = load i32, ptr %359, align 4, !tbaa !5
  %12104 = call ptr @__errno_location() #11
  store i32 %12103, ptr %12104, align 4, !tbaa !5
  %12105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12106 = load i32, ptr @test_count, align 4, !tbaa !5
  %12107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12108 = load i32, ptr %12107, align 4, !tbaa !5
  %12109 = call ptr @s2n_strerror(i32 noundef %12108, ptr noundef @.str.4)
  %12110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12111 = load i32, ptr %12110, align 4, !tbaa !5
  %12112 = call ptr @s2n_strerror_debug(i32 noundef %12111, ptr noundef @.str.4)
  %12113 = call ptr @__errno_location() #11
  %12114 = load i32, ptr %12113, align 4, !tbaa !5
  %12115 = call ptr @strerror(i32 noundef %12114) #10
  %12116 = call ptr @__errno_location() #11
  %12117 = load i32, ptr %12116, align 4, !tbaa !5
  %12118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12105, ptr noundef @.str.5, i32 noundef %12106, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 784, ptr noundef %12109, ptr noundef %12112, ptr noundef %12115, i32 noundef %12117) #10
  br label %12119

12119:                                            ; preds = %12102, %12085
  call void @llvm.lifetime.end.p0(i64 4, ptr %359) #10
  br label %12120

12120:                                            ; preds = %12119
  br label %12121

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

12122:                                            ; No predecessors!
  br label %12123

12123:                                            ; preds = %12122
  br label %12124

12124:                                            ; preds = %12123, %12062
  br label %12125

12125:                                            ; preds = %12124
  br label %12126

12126:                                            ; preds = %12125
  %12127 = load ptr, ptr %349, align 8, !tbaa !9
  %12128 = getelementptr inbounds %struct.s2n_connection, ptr %12127, i32 0, i32 23
  store i8 34, ptr %12128, align 4, !tbaa !50
  %12129 = load ptr, ptr %349, align 8, !tbaa !9
  %12130 = getelementptr inbounds %struct.s2n_connection, ptr %12129, i32 0, i32 27
  %12131 = load ptr, ptr %12130, align 8, !tbaa !66
  %12132 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %12131, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %12132, align 8, !tbaa !67
  br label %12133

12133:                                            ; preds = %12126
  %12134 = load i32, ptr @test_count, align 4, !tbaa !5
  %12135 = add nsw i32 %12134, 1
  store i32 %12135, ptr @test_count, align 4, !tbaa !5
  %12136 = load ptr, ptr %349, align 8, !tbaa !9
  %12137 = call i32 @s2n_signature_algorithm_select(ptr noundef %12136)
  %12138 = getelementptr inbounds %struct.s2n_result, ptr %360, i32 0, i32 0
  store i32 %12137, ptr %12138, align 4
  %12139 = getelementptr inbounds %struct.s2n_result, ptr %360, i32 0, i32 0
  %12140 = load i32, ptr %12139, align 4
  %12141 = call zeroext i1 @s2n_result_is_ok(i32 %12140)
  br i1 %12141, label %12195, label %12142

12142:                                            ; preds = %12133
  br label %12143

12143:                                            ; preds = %12142
  br label %12144

12144:                                            ; preds = %12143
  call void @llvm.lifetime.start.p0(i64 4, ptr %361) #10
  %12145 = call ptr @__errno_location() #11
  %12146 = load i32, ptr %12145, align 4, !tbaa !5
  store i32 %12146, ptr %361, align 4, !tbaa !5
  %12147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12148 = call i32 @s2n_print_stacktrace(ptr noundef %12147)
  %12149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12150 = trunc i8 %12149 to i1
  br i1 %12150, label %12151, label %12173

12151:                                            ; preds = %12144
  %12152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12153 = call i32 @fileno(ptr noundef %12152) #10
  %12154 = call i32 @isatty(i32 noundef %12153) #10
  %12155 = icmp ne i32 %12154, 0
  br i1 %12155, label %12156, label %12173

12156:                                            ; preds = %12151
  %12157 = load i32, ptr %361, align 4, !tbaa !5
  %12158 = call ptr @__errno_location() #11
  store i32 %12157, ptr %12158, align 4, !tbaa !5
  %12159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12160 = load i32, ptr @test_count, align 4, !tbaa !5
  %12161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12162 = load i32, ptr %12161, align 4, !tbaa !5
  %12163 = call ptr @s2n_strerror(i32 noundef %12162, ptr noundef @.str.4)
  %12164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12165 = load i32, ptr %12164, align 4, !tbaa !5
  %12166 = call ptr @s2n_strerror_debug(i32 noundef %12165, ptr noundef @.str.4)
  %12167 = call ptr @__errno_location() #11
  %12168 = load i32, ptr %12167, align 4, !tbaa !5
  %12169 = call ptr @strerror(i32 noundef %12168) #10
  %12170 = call ptr @__errno_location() #11
  %12171 = load i32, ptr %12170, align 4, !tbaa !5
  %12172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12159, ptr noundef @.str.2, i32 noundef %12160, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 789, ptr noundef %12163, ptr noundef %12166, ptr noundef %12169, i32 noundef %12171) #10
  br label %12190

12173:                                            ; preds = %12151, %12144
  %12174 = load i32, ptr %361, align 4, !tbaa !5
  %12175 = call ptr @__errno_location() #11
  store i32 %12174, ptr %12175, align 4, !tbaa !5
  %12176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12177 = load i32, ptr @test_count, align 4, !tbaa !5
  %12178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12179 = load i32, ptr %12178, align 4, !tbaa !5
  %12180 = call ptr @s2n_strerror(i32 noundef %12179, ptr noundef @.str.4)
  %12181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12182 = load i32, ptr %12181, align 4, !tbaa !5
  %12183 = call ptr @s2n_strerror_debug(i32 noundef %12182, ptr noundef @.str.4)
  %12184 = call ptr @__errno_location() #11
  %12185 = load i32, ptr %12184, align 4, !tbaa !5
  %12186 = call ptr @strerror(i32 noundef %12185) #10
  %12187 = call ptr @__errno_location() #11
  %12188 = load i32, ptr %12187, align 4, !tbaa !5
  %12189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12176, ptr noundef @.str.5, i32 noundef %12177, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 789, ptr noundef %12180, ptr noundef %12183, ptr noundef %12186, i32 noundef %12188) #10
  br label %12190

12190:                                            ; preds = %12173, %12156
  call void @llvm.lifetime.end.p0(i64 4, ptr %361) #10
  br label %12191

12191:                                            ; preds = %12190
  br label %12192

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

12193:                                            ; No predecessors!
  br label %12194

12194:                                            ; preds = %12193
  br label %12195

12195:                                            ; preds = %12194, %12133
  br label %12196

12196:                                            ; preds = %12195
  br label %12197

12197:                                            ; preds = %12196
  br label %12198

12198:                                            ; preds = %12197
  %12199 = load i32, ptr @test_count, align 4, !tbaa !5
  %12200 = add nsw i32 %12199, 1
  store i32 %12200, ptr @test_count, align 4, !tbaa !5
  %12201 = load ptr, ptr %349, align 8, !tbaa !9
  %12202 = getelementptr inbounds %struct.s2n_connection, ptr %12201, i32 0, i32 32
  %12203 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %12202, i32 0, i32 5
  %12204 = load ptr, ptr %12203, align 8, !tbaa !72
  %12205 = load ptr, ptr %330, align 8, !tbaa !9
  %12206 = icmp eq ptr %12204, %12205
  br i1 %12206, label %12260, label %12207

12207:                                            ; preds = %12198
  br label %12208

12208:                                            ; preds = %12207
  br label %12209

12209:                                            ; preds = %12208
  call void @llvm.lifetime.start.p0(i64 4, ptr %362) #10
  %12210 = call ptr @__errno_location() #11
  %12211 = load i32, ptr %12210, align 4, !tbaa !5
  store i32 %12211, ptr %362, align 4, !tbaa !5
  %12212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12213 = call i32 @s2n_print_stacktrace(ptr noundef %12212)
  %12214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12215 = trunc i8 %12214 to i1
  br i1 %12215, label %12216, label %12238

12216:                                            ; preds = %12209
  %12217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12218 = call i32 @fileno(ptr noundef %12217) #10
  %12219 = call i32 @isatty(i32 noundef %12218) #10
  %12220 = icmp ne i32 %12219, 0
  br i1 %12220, label %12221, label %12238

12221:                                            ; preds = %12216
  %12222 = load i32, ptr %362, align 4, !tbaa !5
  %12223 = call ptr @__errno_location() #11
  store i32 %12222, ptr %12223, align 4, !tbaa !5
  %12224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12225 = load i32, ptr @test_count, align 4, !tbaa !5
  %12226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12227 = load i32, ptr %12226, align 4, !tbaa !5
  %12228 = call ptr @s2n_strerror(i32 noundef %12227, ptr noundef @.str.4)
  %12229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12230 = load i32, ptr %12229, align 4, !tbaa !5
  %12231 = call ptr @s2n_strerror_debug(i32 noundef %12230, ptr noundef @.str.4)
  %12232 = call ptr @__errno_location() #11
  %12233 = load i32, ptr %12232, align 4, !tbaa !5
  %12234 = call ptr @strerror(i32 noundef %12233) #10
  %12235 = call ptr @__errno_location() #11
  %12236 = load i32, ptr %12235, align 4, !tbaa !5
  %12237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12224, ptr noundef @.str.2, i32 noundef %12225, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 790, ptr noundef %12228, ptr noundef %12231, ptr noundef %12234, i32 noundef %12236) #10
  br label %12255

12238:                                            ; preds = %12216, %12209
  %12239 = load i32, ptr %362, align 4, !tbaa !5
  %12240 = call ptr @__errno_location() #11
  store i32 %12239, ptr %12240, align 4, !tbaa !5
  %12241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12242 = load i32, ptr @test_count, align 4, !tbaa !5
  %12243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12244 = load i32, ptr %12243, align 4, !tbaa !5
  %12245 = call ptr @s2n_strerror(i32 noundef %12244, ptr noundef @.str.4)
  %12246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12247 = load i32, ptr %12246, align 4, !tbaa !5
  %12248 = call ptr @s2n_strerror_debug(i32 noundef %12247, ptr noundef @.str.4)
  %12249 = call ptr @__errno_location() #11
  %12250 = load i32, ptr %12249, align 4, !tbaa !5
  %12251 = call ptr @strerror(i32 noundef %12250) #10
  %12252 = call ptr @__errno_location() #11
  %12253 = load i32, ptr %12252, align 4, !tbaa !5
  %12254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12241, ptr noundef @.str.5, i32 noundef %12242, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 790, ptr noundef %12245, ptr noundef %12248, ptr noundef %12251, i32 noundef %12253) #10
  br label %12255

12255:                                            ; preds = %12238, %12221
  call void @llvm.lifetime.end.p0(i64 4, ptr %362) #10
  br label %12256

12256:                                            ; preds = %12255
  br label %12257

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

12258:                                            ; No predecessors!
  br label %12259

12259:                                            ; preds = %12258
  br label %12260

12260:                                            ; preds = %12259, %12198
  br label %12261

12261:                                            ; preds = %12260
  br label %12262

12262:                                            ; preds = %12261
  call void @llvm.lifetime.end.p0(i64 80, ptr %351) #10
  %12263 = call i32 @s2n_connection_ptr_free(ptr noundef %349)
  %12264 = getelementptr inbounds %struct.s2n_result, ptr %363, i32 0, i32 0
  store i32 %12263, ptr %12264, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %349) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %348) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %364) #10
  store ptr @s2n_ecdsa_sha384, ptr %364, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %365) #10
  store ptr @s2n_rsa_pss_rsae_sha256, ptr %365, align 8, !tbaa !9
  %12265 = getelementptr inbounds ptr, ptr %365, i64 1
  store ptr @s2n_rsa_pss_pss_sha256, ptr %12265, align 8, !tbaa !9
  %12266 = getelementptr inbounds ptr, ptr %365, i64 2
  store ptr @s2n_rsa_pkcs1_sha256, ptr %12266, align 8, !tbaa !9
  %12267 = getelementptr inbounds ptr, ptr %365, i64 3
  store ptr @s2n_ecdsa_sha224, ptr %12267, align 8, !tbaa !9
  %12268 = getelementptr inbounds ptr, ptr %365, i64 4
  store ptr @s2n_ecdsa_sha256, ptr %12268, align 8, !tbaa !9
  %12269 = getelementptr inbounds ptr, ptr %365, i64 5
  %12270 = load ptr, ptr %364, align 8, !tbaa !9
  store ptr %12270, ptr %12269, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %366) #10
  %12271 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %12271, ptr %366, align 8, !tbaa !9
  %12272 = load ptr, ptr %366, align 8, !tbaa !9
  %12273 = getelementptr inbounds %struct.s2n_connection, ptr %12272, i32 0, i32 23
  store i8 34, ptr %12273, align 4, !tbaa !50
  %12274 = load ptr, ptr %366, align 8, !tbaa !9
  %12275 = getelementptr inbounds %struct.s2n_connection, ptr %12274, i32 0, i32 27
  %12276 = load ptr, ptr %12275, align 8, !tbaa !66
  %12277 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %12276, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %12277, align 8, !tbaa !67
  br label %12278

12278:                                            ; preds = %12262
  %12279 = load i32, ptr @test_count, align 4, !tbaa !5
  %12280 = add nsw i32 %12279, 1
  store i32 %12280, ptr @test_count, align 4, !tbaa !5
  %12281 = load ptr, ptr %366, align 8, !tbaa !9
  %12282 = load ptr, ptr %78, align 8, !tbaa !9
  %12283 = call i32 @s2n_connection_set_config(ptr noundef %12281, ptr noundef %12282)
  %12284 = icmp eq i32 %12283, -1
  br i1 %12284, label %12285, label %12338

12285:                                            ; preds = %12278
  br label %12286

12286:                                            ; preds = %12285
  br label %12287

12287:                                            ; preds = %12286
  call void @llvm.lifetime.start.p0(i64 4, ptr %367) #10
  %12288 = call ptr @__errno_location() #11
  %12289 = load i32, ptr %12288, align 4, !tbaa !5
  store i32 %12289, ptr %367, align 4, !tbaa !5
  %12290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12291 = call i32 @s2n_print_stacktrace(ptr noundef %12290)
  %12292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12293 = trunc i8 %12292 to i1
  br i1 %12293, label %12294, label %12316

12294:                                            ; preds = %12287
  %12295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12296 = call i32 @fileno(ptr noundef %12295) #10
  %12297 = call i32 @isatty(i32 noundef %12296) #10
  %12298 = icmp ne i32 %12297, 0
  br i1 %12298, label %12299, label %12316

12299:                                            ; preds = %12294
  %12300 = load i32, ptr %367, align 4, !tbaa !5
  %12301 = call ptr @__errno_location() #11
  store i32 %12300, ptr %12301, align 4, !tbaa !5
  %12302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12303 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %12305, ptr noundef @.str.4)
  %12307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12308 = load i32, ptr %12307, align 4, !tbaa !5
  %12309 = call ptr @s2n_strerror_debug(i32 noundef %12308, ptr noundef @.str.4)
  %12310 = call ptr @__errno_location() #11
  %12311 = load i32, ptr %12310, align 4, !tbaa !5
  %12312 = call ptr @strerror(i32 noundef %12311) #10
  %12313 = call ptr @__errno_location() #11
  %12314 = load i32, ptr %12313, align 4, !tbaa !5
  %12315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12302, ptr noundef @.str.2, i32 noundef %12303, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 812, ptr noundef %12306, ptr noundef %12309, ptr noundef %12312, i32 noundef %12314) #10
  br label %12333

12316:                                            ; preds = %12294, %12287
  %12317 = load i32, ptr %367, align 4, !tbaa !5
  %12318 = call ptr @__errno_location() #11
  store i32 %12317, ptr %12318, align 4, !tbaa !5
  %12319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12320 = load i32, ptr @test_count, align 4, !tbaa !5
  %12321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12322 = load i32, ptr %12321, align 4, !tbaa !5
  %12323 = call ptr @s2n_strerror(i32 noundef %12322, ptr noundef @.str.4)
  %12324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12325 = load i32, ptr %12324, align 4, !tbaa !5
  %12326 = call ptr @s2n_strerror_debug(i32 noundef %12325, ptr noundef @.str.4)
  %12327 = call ptr @__errno_location() #11
  %12328 = load i32, ptr %12327, align 4, !tbaa !5
  %12329 = call ptr @strerror(i32 noundef %12328) #10
  %12330 = call ptr @__errno_location() #11
  %12331 = load i32, ptr %12330, align 4, !tbaa !5
  %12332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12319, ptr noundef @.str.5, i32 noundef %12320, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 812, ptr noundef %12323, ptr noundef %12326, ptr noundef %12329, i32 noundef %12331) #10
  br label %12333

12333:                                            ; preds = %12316, %12299
  call void @llvm.lifetime.end.p0(i64 4, ptr %367) #10
  br label %12334

12334:                                            ; preds = %12333
  br label %12335

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

12336:                                            ; No predecessors!
  br label %12337

12337:                                            ; preds = %12336
  br label %12338

12338:                                            ; preds = %12337, %12278
  br label %12339

12339:                                            ; preds = %12338
  br label %12340

12340:                                            ; preds = %12339
  call void @llvm.lifetime.start.p0(i64 80, ptr %368) #10
  call void @llvm.memset.p0.i64(ptr align 8 %368, i8 0, i64 80, i1 false)
  br label %12341

12341:                                            ; preds = %12340
  %12342 = load i32, ptr @test_count, align 4, !tbaa !5
  %12343 = add nsw i32 %12342, 1
  store i32 %12343, ptr @test_count, align 4, !tbaa !5
  %12344 = load ptr, ptr %366, align 8, !tbaa !9
  %12345 = getelementptr inbounds [6 x ptr], ptr %365, i64 0, i64 0
  %12346 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %12344, ptr noundef %368, ptr noundef %12345, i64 noundef 6)
  %12347 = getelementptr inbounds %struct.s2n_result, ptr %369, i32 0, i32 0
  store i32 %12346, ptr %12347, align 4
  %12348 = getelementptr inbounds %struct.s2n_result, ptr %369, i32 0, i32 0
  %12349 = load i32, ptr %12348, align 4
  %12350 = call zeroext i1 @s2n_result_is_ok(i32 %12349)
  br i1 %12350, label %12404, label %12351

12351:                                            ; preds = %12341
  br label %12352

12352:                                            ; preds = %12351
  br label %12353

12353:                                            ; preds = %12352
  call void @llvm.lifetime.start.p0(i64 4, ptr %370) #10
  %12354 = call ptr @__errno_location() #11
  %12355 = load i32, ptr %12354, align 4, !tbaa !5
  store i32 %12355, ptr %370, align 4, !tbaa !5
  %12356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12357 = call i32 @s2n_print_stacktrace(ptr noundef %12356)
  %12358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12359 = trunc i8 %12358 to i1
  br i1 %12359, label %12360, label %12382

12360:                                            ; preds = %12353
  %12361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12362 = call i32 @fileno(ptr noundef %12361) #10
  %12363 = call i32 @isatty(i32 noundef %12362) #10
  %12364 = icmp ne i32 %12363, 0
  br i1 %12364, label %12365, label %12382

12365:                                            ; preds = %12360
  %12366 = load i32, ptr %370, align 4, !tbaa !5
  %12367 = call ptr @__errno_location() #11
  store i32 %12366, ptr %12367, align 4, !tbaa !5
  %12368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12369 = load i32, ptr @test_count, align 4, !tbaa !5
  %12370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12371 = load i32, ptr %12370, align 4, !tbaa !5
  %12372 = call ptr @s2n_strerror(i32 noundef %12371, ptr noundef @.str.4)
  %12373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12374 = load i32, ptr %12373, align 4, !tbaa !5
  %12375 = call ptr @s2n_strerror_debug(i32 noundef %12374, ptr noundef @.str.4)
  %12376 = call ptr @__errno_location() #11
  %12377 = load i32, ptr %12376, align 4, !tbaa !5
  %12378 = call ptr @strerror(i32 noundef %12377) #10
  %12379 = call ptr @__errno_location() #11
  %12380 = load i32, ptr %12379, align 4, !tbaa !5
  %12381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12368, ptr noundef @.str.2, i32 noundef %12369, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 816, ptr noundef %12372, ptr noundef %12375, ptr noundef %12378, i32 noundef %12380) #10
  br label %12399

12382:                                            ; preds = %12360, %12353
  %12383 = load i32, ptr %370, align 4, !tbaa !5
  %12384 = call ptr @__errno_location() #11
  store i32 %12383, ptr %12384, align 4, !tbaa !5
  %12385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12386 = load i32, ptr @test_count, align 4, !tbaa !5
  %12387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12388 = load i32, ptr %12387, align 4, !tbaa !5
  %12389 = call ptr @s2n_strerror(i32 noundef %12388, ptr noundef @.str.4)
  %12390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12391 = load i32, ptr %12390, align 4, !tbaa !5
  %12392 = call ptr @s2n_strerror_debug(i32 noundef %12391, ptr noundef @.str.4)
  %12393 = call ptr @__errno_location() #11
  %12394 = load i32, ptr %12393, align 4, !tbaa !5
  %12395 = call ptr @strerror(i32 noundef %12394) #10
  %12396 = call ptr @__errno_location() #11
  %12397 = load i32, ptr %12396, align 4, !tbaa !5
  %12398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12385, ptr noundef @.str.5, i32 noundef %12386, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 816, ptr noundef %12389, ptr noundef %12392, ptr noundef %12395, i32 noundef %12397) #10
  br label %12399

12399:                                            ; preds = %12382, %12365
  call void @llvm.lifetime.end.p0(i64 4, ptr %370) #10
  br label %12400

12400:                                            ; preds = %12399
  br label %12401

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

12402:                                            ; No predecessors!
  br label %12403

12403:                                            ; preds = %12402
  br label %12404

12404:                                            ; preds = %12403, %12341
  br label %12405

12405:                                            ; preds = %12404
  br label %12406

12406:                                            ; preds = %12405
  br label %12407

12407:                                            ; preds = %12406
  %12408 = load i32, ptr @test_count, align 4, !tbaa !5
  %12409 = add nsw i32 %12408, 1
  store i32 %12409, ptr @test_count, align 4, !tbaa !5
  %12410 = load ptr, ptr %366, align 8, !tbaa !9
  %12411 = call i32 @s2n_signature_algorithm_select(ptr noundef %12410)
  %12412 = getelementptr inbounds %struct.s2n_result, ptr %371, i32 0, i32 0
  store i32 %12411, ptr %12412, align 4
  %12413 = getelementptr inbounds %struct.s2n_result, ptr %371, i32 0, i32 0
  %12414 = load i32, ptr %12413, align 4
  %12415 = call zeroext i1 @s2n_result_is_ok(i32 %12414)
  br i1 %12415, label %12469, label %12416

12416:                                            ; preds = %12407
  br label %12417

12417:                                            ; preds = %12416
  br label %12418

12418:                                            ; preds = %12417
  call void @llvm.lifetime.start.p0(i64 4, ptr %372) #10
  %12419 = call ptr @__errno_location() #11
  %12420 = load i32, ptr %12419, align 4, !tbaa !5
  store i32 %12420, ptr %372, align 4, !tbaa !5
  %12421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12422 = call i32 @s2n_print_stacktrace(ptr noundef %12421)
  %12423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12424 = trunc i8 %12423 to i1
  br i1 %12424, label %12425, label %12447

12425:                                            ; preds = %12418
  %12426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12427 = call i32 @fileno(ptr noundef %12426) #10
  %12428 = call i32 @isatty(i32 noundef %12427) #10
  %12429 = icmp ne i32 %12428, 0
  br i1 %12429, label %12430, label %12447

12430:                                            ; preds = %12425
  %12431 = load i32, ptr %372, align 4, !tbaa !5
  %12432 = call ptr @__errno_location() #11
  store i32 %12431, ptr %12432, align 4, !tbaa !5
  %12433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12434 = load i32, ptr @test_count, align 4, !tbaa !5
  %12435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12436 = load i32, ptr %12435, align 4, !tbaa !5
  %12437 = call ptr @s2n_strerror(i32 noundef %12436, ptr noundef @.str.4)
  %12438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12439 = load i32, ptr %12438, align 4, !tbaa !5
  %12440 = call ptr @s2n_strerror_debug(i32 noundef %12439, ptr noundef @.str.4)
  %12441 = call ptr @__errno_location() #11
  %12442 = load i32, ptr %12441, align 4, !tbaa !5
  %12443 = call ptr @strerror(i32 noundef %12442) #10
  %12444 = call ptr @__errno_location() #11
  %12445 = load i32, ptr %12444, align 4, !tbaa !5
  %12446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12433, ptr noundef @.str.2, i32 noundef %12434, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 817, ptr noundef %12437, ptr noundef %12440, ptr noundef %12443, i32 noundef %12445) #10
  br label %12464

12447:                                            ; preds = %12425, %12418
  %12448 = load i32, ptr %372, align 4, !tbaa !5
  %12449 = call ptr @__errno_location() #11
  store i32 %12448, ptr %12449, align 4, !tbaa !5
  %12450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12451 = load i32, ptr @test_count, align 4, !tbaa !5
  %12452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12453 = load i32, ptr %12452, align 4, !tbaa !5
  %12454 = call ptr @s2n_strerror(i32 noundef %12453, ptr noundef @.str.4)
  %12455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12456 = load i32, ptr %12455, align 4, !tbaa !5
  %12457 = call ptr @s2n_strerror_debug(i32 noundef %12456, ptr noundef @.str.4)
  %12458 = call ptr @__errno_location() #11
  %12459 = load i32, ptr %12458, align 4, !tbaa !5
  %12460 = call ptr @strerror(i32 noundef %12459) #10
  %12461 = call ptr @__errno_location() #11
  %12462 = load i32, ptr %12461, align 4, !tbaa !5
  %12463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12450, ptr noundef @.str.5, i32 noundef %12451, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 817, ptr noundef %12454, ptr noundef %12457, ptr noundef %12460, i32 noundef %12462) #10
  br label %12464

12464:                                            ; preds = %12447, %12430
  call void @llvm.lifetime.end.p0(i64 4, ptr %372) #10
  br label %12465

12465:                                            ; preds = %12464
  br label %12466

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

12467:                                            ; No predecessors!
  br label %12468

12468:                                            ; preds = %12467
  br label %12469

12469:                                            ; preds = %12468, %12407
  br label %12470

12470:                                            ; preds = %12469
  br label %12471

12471:                                            ; preds = %12470
  br label %12472

12472:                                            ; preds = %12471
  %12473 = load i32, ptr @test_count, align 4, !tbaa !5
  %12474 = add nsw i32 %12473, 1
  store i32 %12474, ptr @test_count, align 4, !tbaa !5
  %12475 = load ptr, ptr %366, align 8, !tbaa !9
  %12476 = getelementptr inbounds %struct.s2n_connection, ptr %12475, i32 0, i32 32
  %12477 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %12476, i32 0, i32 6
  %12478 = load ptr, ptr %12477, align 8, !tbaa !65
  %12479 = load ptr, ptr %364, align 8, !tbaa !9
  %12480 = icmp eq ptr %12478, %12479
  br i1 %12480, label %12534, label %12481

12481:                                            ; preds = %12472
  br label %12482

12482:                                            ; preds = %12481
  br label %12483

12483:                                            ; preds = %12482
  call void @llvm.lifetime.start.p0(i64 4, ptr %373) #10
  %12484 = call ptr @__errno_location() #11
  %12485 = load i32, ptr %12484, align 4, !tbaa !5
  store i32 %12485, ptr %373, align 4, !tbaa !5
  %12486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12487 = call i32 @s2n_print_stacktrace(ptr noundef %12486)
  %12488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12489 = trunc i8 %12488 to i1
  br i1 %12489, label %12490, label %12512

12490:                                            ; preds = %12483
  %12491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12492 = call i32 @fileno(ptr noundef %12491) #10
  %12493 = call i32 @isatty(i32 noundef %12492) #10
  %12494 = icmp ne i32 %12493, 0
  br i1 %12494, label %12495, label %12512

12495:                                            ; preds = %12490
  %12496 = load i32, ptr %373, align 4, !tbaa !5
  %12497 = call ptr @__errno_location() #11
  store i32 %12496, ptr %12497, align 4, !tbaa !5
  %12498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12499 = load i32, ptr @test_count, align 4, !tbaa !5
  %12500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12501 = load i32, ptr %12500, align 4, !tbaa !5
  %12502 = call ptr @s2n_strerror(i32 noundef %12501, ptr noundef @.str.4)
  %12503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12504 = load i32, ptr %12503, align 4, !tbaa !5
  %12505 = call ptr @s2n_strerror_debug(i32 noundef %12504, ptr noundef @.str.4)
  %12506 = call ptr @__errno_location() #11
  %12507 = load i32, ptr %12506, align 4, !tbaa !5
  %12508 = call ptr @strerror(i32 noundef %12507) #10
  %12509 = call ptr @__errno_location() #11
  %12510 = load i32, ptr %12509, align 4, !tbaa !5
  %12511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12498, ptr noundef @.str.2, i32 noundef %12499, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 818, ptr noundef %12502, ptr noundef %12505, ptr noundef %12508, i32 noundef %12510) #10
  br label %12529

12512:                                            ; preds = %12490, %12483
  %12513 = load i32, ptr %373, align 4, !tbaa !5
  %12514 = call ptr @__errno_location() #11
  store i32 %12513, ptr %12514, align 4, !tbaa !5
  %12515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12516 = load i32, ptr @test_count, align 4, !tbaa !5
  %12517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12518 = load i32, ptr %12517, align 4, !tbaa !5
  %12519 = call ptr @s2n_strerror(i32 noundef %12518, ptr noundef @.str.4)
  %12520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12521 = load i32, ptr %12520, align 4, !tbaa !5
  %12522 = call ptr @s2n_strerror_debug(i32 noundef %12521, ptr noundef @.str.4)
  %12523 = call ptr @__errno_location() #11
  %12524 = load i32, ptr %12523, align 4, !tbaa !5
  %12525 = call ptr @strerror(i32 noundef %12524) #10
  %12526 = call ptr @__errno_location() #11
  %12527 = load i32, ptr %12526, align 4, !tbaa !5
  %12528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12515, ptr noundef @.str.5, i32 noundef %12516, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 818, ptr noundef %12519, ptr noundef %12522, ptr noundef %12525, i32 noundef %12527) #10
  br label %12529

12529:                                            ; preds = %12512, %12495
  call void @llvm.lifetime.end.p0(i64 4, ptr %373) #10
  br label %12530

12530:                                            ; preds = %12529
  br label %12531

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

12532:                                            ; No predecessors!
  br label %12533

12533:                                            ; preds = %12532
  br label %12534

12534:                                            ; preds = %12533, %12472
  br label %12535

12535:                                            ; preds = %12534
  br label %12536

12536:                                            ; preds = %12535
  call void @llvm.lifetime.end.p0(i64 80, ptr %368) #10
  %12537 = call i32 @s2n_connection_ptr_free(ptr noundef %366)
  %12538 = getelementptr inbounds %struct.s2n_result, ptr %374, i32 0, i32 0
  store i32 %12537, ptr %12538, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %366) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %365) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %364) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %331) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %330) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %375) #10
  store ptr @s2n_ecdsa_sha384, ptr %375, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %376) #10
  store ptr @s2n_rsa_pss_rsae_sha256, ptr %376, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %377) #10
  store ptr @s2n_rsa_pss_pss_sha256, ptr %377, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %378) #10
  %12539 = load ptr, ptr %377, align 8, !tbaa !9
  store ptr %12539, ptr %378, align 8, !tbaa !9
  %12540 = getelementptr inbounds ptr, ptr %378, i64 1
  %12541 = load ptr, ptr %375, align 8, !tbaa !9
  store ptr %12541, ptr %12540, align 8, !tbaa !9
  %12542 = getelementptr inbounds ptr, ptr %378, i64 2
  %12543 = load ptr, ptr %376, align 8, !tbaa !9
  store ptr %12543, ptr %12542, align 8, !tbaa !9
  %12544 = getelementptr inbounds ptr, ptr %378, i64 3
  %12545 = load ptr, ptr %83, align 8, !tbaa !9
  store ptr %12545, ptr %12544, align 8, !tbaa !9
  %12546 = getelementptr inbounds ptr, ptr %378, i64 4
  %12547 = load ptr, ptr %82, align 8, !tbaa !9
  store ptr %12547, ptr %12546, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %379) #10
  %12548 = load ptr, ptr %377, align 8, !tbaa !9
  store ptr %12548, ptr %379, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %380) #10
  %12549 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %12549, ptr %380, align 8, !tbaa !9
  br label %12550

12550:                                            ; preds = %12536
  %12551 = load i32, ptr @test_count, align 4, !tbaa !5
  %12552 = add nsw i32 %12551, 1
  store i32 %12552, ptr @test_count, align 4, !tbaa !5
  %12553 = load ptr, ptr %380, align 8, !tbaa !9
  %12554 = load ptr, ptr %75, align 8, !tbaa !9
  %12555 = call i32 @s2n_connection_set_config(ptr noundef %12553, ptr noundef %12554)
  %12556 = icmp eq i32 %12555, -1
  br i1 %12556, label %12557, label %12610

12557:                                            ; preds = %12550
  br label %12558

12558:                                            ; preds = %12557
  br label %12559

12559:                                            ; preds = %12558
  call void @llvm.lifetime.start.p0(i64 4, ptr %381) #10
  %12560 = call ptr @__errno_location() #11
  %12561 = load i32, ptr %12560, align 4, !tbaa !5
  store i32 %12561, ptr %381, align 4, !tbaa !5
  %12562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12563 = call i32 @s2n_print_stacktrace(ptr noundef %12562)
  %12564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12565 = trunc i8 %12564 to i1
  br i1 %12565, label %12566, label %12588

12566:                                            ; preds = %12559
  %12567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12568 = call i32 @fileno(ptr noundef %12567) #10
  %12569 = call i32 @isatty(i32 noundef %12568) #10
  %12570 = icmp ne i32 %12569, 0
  br i1 %12570, label %12571, label %12588

12571:                                            ; preds = %12566
  %12572 = load i32, ptr %381, align 4, !tbaa !5
  %12573 = call ptr @__errno_location() #11
  store i32 %12572, ptr %12573, align 4, !tbaa !5
  %12574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12575 = load i32, ptr @test_count, align 4, !tbaa !5
  %12576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12577 = load i32, ptr %12576, align 4, !tbaa !5
  %12578 = call ptr @s2n_strerror(i32 noundef %12577, ptr noundef @.str.4)
  %12579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12580 = load i32, ptr %12579, align 4, !tbaa !5
  %12581 = call ptr @s2n_strerror_debug(i32 noundef %12580, ptr noundef @.str.4)
  %12582 = call ptr @__errno_location() #11
  %12583 = load i32, ptr %12582, align 4, !tbaa !5
  %12584 = call ptr @strerror(i32 noundef %12583) #10
  %12585 = call ptr @__errno_location() #11
  %12586 = load i32, ptr %12585, align 4, !tbaa !5
  %12587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12574, ptr noundef @.str.2, i32 noundef %12575, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 850, ptr noundef %12578, ptr noundef %12581, ptr noundef %12584, i32 noundef %12586) #10
  br label %12605

12588:                                            ; preds = %12566, %12559
  %12589 = load i32, ptr %381, align 4, !tbaa !5
  %12590 = call ptr @__errno_location() #11
  store i32 %12589, ptr %12590, align 4, !tbaa !5
  %12591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12592 = load i32, ptr @test_count, align 4, !tbaa !5
  %12593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12594 = load i32, ptr %12593, align 4, !tbaa !5
  %12595 = call ptr @s2n_strerror(i32 noundef %12594, ptr noundef @.str.4)
  %12596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12597 = load i32, ptr %12596, align 4, !tbaa !5
  %12598 = call ptr @s2n_strerror_debug(i32 noundef %12597, ptr noundef @.str.4)
  %12599 = call ptr @__errno_location() #11
  %12600 = load i32, ptr %12599, align 4, !tbaa !5
  %12601 = call ptr @strerror(i32 noundef %12600) #10
  %12602 = call ptr @__errno_location() #11
  %12603 = load i32, ptr %12602, align 4, !tbaa !5
  %12604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12591, ptr noundef @.str.5, i32 noundef %12592, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 850, ptr noundef %12595, ptr noundef %12598, ptr noundef %12601, i32 noundef %12603) #10
  br label %12605

12605:                                            ; preds = %12588, %12571
  call void @llvm.lifetime.end.p0(i64 4, ptr %381) #10
  br label %12606

12606:                                            ; preds = %12605
  br label %12607

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

12608:                                            ; No predecessors!
  br label %12609

12609:                                            ; preds = %12608
  br label %12610

12610:                                            ; preds = %12609, %12550
  br label %12611

12611:                                            ; preds = %12610
  br label %12612

12612:                                            ; preds = %12611
  call void @llvm.lifetime.start.p0(i64 80, ptr %382) #10
  call void @llvm.memset.p0.i64(ptr align 8 %382, i8 0, i64 80, i1 false)
  br label %12613

12613:                                            ; preds = %12612
  %12614 = load i32, ptr @test_count, align 4, !tbaa !5
  %12615 = add nsw i32 %12614, 1
  store i32 %12615, ptr @test_count, align 4, !tbaa !5
  %12616 = load ptr, ptr %380, align 8, !tbaa !9
  %12617 = getelementptr inbounds [5 x ptr], ptr %378, i64 0, i64 0
  %12618 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %12616, ptr noundef %382, ptr noundef %12617, i64 noundef 5)
  %12619 = getelementptr inbounds %struct.s2n_result, ptr %383, i32 0, i32 0
  store i32 %12618, ptr %12619, align 4
  %12620 = getelementptr inbounds %struct.s2n_result, ptr %383, i32 0, i32 0
  %12621 = load i32, ptr %12620, align 4
  %12622 = call zeroext i1 @s2n_result_is_ok(i32 %12621)
  br i1 %12622, label %12676, label %12623

12623:                                            ; preds = %12613
  br label %12624

12624:                                            ; preds = %12623
  br label %12625

12625:                                            ; preds = %12624
  call void @llvm.lifetime.start.p0(i64 4, ptr %384) #10
  %12626 = call ptr @__errno_location() #11
  %12627 = load i32, ptr %12626, align 4, !tbaa !5
  store i32 %12627, ptr %384, align 4, !tbaa !5
  %12628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12629 = call i32 @s2n_print_stacktrace(ptr noundef %12628)
  %12630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12631 = trunc i8 %12630 to i1
  br i1 %12631, label %12632, label %12654

12632:                                            ; preds = %12625
  %12633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12634 = call i32 @fileno(ptr noundef %12633) #10
  %12635 = call i32 @isatty(i32 noundef %12634) #10
  %12636 = icmp ne i32 %12635, 0
  br i1 %12636, label %12637, label %12654

12637:                                            ; preds = %12632
  %12638 = load i32, ptr %384, align 4, !tbaa !5
  %12639 = call ptr @__errno_location() #11
  store i32 %12638, ptr %12639, align 4, !tbaa !5
  %12640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12641 = load i32, ptr @test_count, align 4, !tbaa !5
  %12642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12643 = load i32, ptr %12642, align 4, !tbaa !5
  %12644 = call ptr @s2n_strerror(i32 noundef %12643, ptr noundef @.str.4)
  %12645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12646 = load i32, ptr %12645, align 4, !tbaa !5
  %12647 = call ptr @s2n_strerror_debug(i32 noundef %12646, ptr noundef @.str.4)
  %12648 = call ptr @__errno_location() #11
  %12649 = load i32, ptr %12648, align 4, !tbaa !5
  %12650 = call ptr @strerror(i32 noundef %12649) #10
  %12651 = call ptr @__errno_location() #11
  %12652 = load i32, ptr %12651, align 4, !tbaa !5
  %12653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12640, ptr noundef @.str.2, i32 noundef %12641, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 854, ptr noundef %12644, ptr noundef %12647, ptr noundef %12650, i32 noundef %12652) #10
  br label %12671

12654:                                            ; preds = %12632, %12625
  %12655 = load i32, ptr %384, align 4, !tbaa !5
  %12656 = call ptr @__errno_location() #11
  store i32 %12655, ptr %12656, align 4, !tbaa !5
  %12657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12658 = load i32, ptr @test_count, align 4, !tbaa !5
  %12659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12660 = load i32, ptr %12659, align 4, !tbaa !5
  %12661 = call ptr @s2n_strerror(i32 noundef %12660, ptr noundef @.str.4)
  %12662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12663 = load i32, ptr %12662, align 4, !tbaa !5
  %12664 = call ptr @s2n_strerror_debug(i32 noundef %12663, ptr noundef @.str.4)
  %12665 = call ptr @__errno_location() #11
  %12666 = load i32, ptr %12665, align 4, !tbaa !5
  %12667 = call ptr @strerror(i32 noundef %12666) #10
  %12668 = call ptr @__errno_location() #11
  %12669 = load i32, ptr %12668, align 4, !tbaa !5
  %12670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12657, ptr noundef @.str.5, i32 noundef %12658, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 854, ptr noundef %12661, ptr noundef %12664, ptr noundef %12667, i32 noundef %12669) #10
  br label %12671

12671:                                            ; preds = %12654, %12637
  call void @llvm.lifetime.end.p0(i64 4, ptr %384) #10
  br label %12672

12672:                                            ; preds = %12671
  br label %12673

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

12674:                                            ; No predecessors!
  br label %12675

12675:                                            ; preds = %12674
  br label %12676

12676:                                            ; preds = %12675, %12613
  br label %12677

12677:                                            ; preds = %12676
  br label %12678

12678:                                            ; preds = %12677
  br label %12679

12679:                                            ; preds = %12678
  %12680 = load i32, ptr @test_count, align 4, !tbaa !5
  %12681 = add nsw i32 %12680, 1
  store i32 %12681, ptr @test_count, align 4, !tbaa !5
  %12682 = load ptr, ptr %380, align 8, !tbaa !9
  %12683 = getelementptr inbounds %struct.s2n_connection, ptr %12682, i32 0, i32 32
  %12684 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %12683, i32 0, i32 4
  %12685 = getelementptr inbounds [1 x ptr], ptr %379, i64 0, i64 0
  %12686 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %12684, ptr noundef %12685, i64 noundef 1)
  %12687 = getelementptr inbounds %struct.s2n_result, ptr %385, i32 0, i32 0
  store i32 %12686, ptr %12687, align 4
  %12688 = getelementptr inbounds %struct.s2n_result, ptr %385, i32 0, i32 0
  %12689 = load i32, ptr %12688, align 4
  %12690 = call zeroext i1 @s2n_result_is_ok(i32 %12689)
  br i1 %12690, label %12744, label %12691

12691:                                            ; preds = %12679
  br label %12692

12692:                                            ; preds = %12691
  br label %12693

12693:                                            ; preds = %12692
  call void @llvm.lifetime.start.p0(i64 4, ptr %386) #10
  %12694 = call ptr @__errno_location() #11
  %12695 = load i32, ptr %12694, align 4, !tbaa !5
  store i32 %12695, ptr %386, align 4, !tbaa !5
  %12696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12697 = call i32 @s2n_print_stacktrace(ptr noundef %12696)
  %12698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12699 = trunc i8 %12698 to i1
  br i1 %12699, label %12700, label %12722

12700:                                            ; preds = %12693
  %12701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12702 = call i32 @fileno(ptr noundef %12701) #10
  %12703 = call i32 @isatty(i32 noundef %12702) #10
  %12704 = icmp ne i32 %12703, 0
  br i1 %12704, label %12705, label %12722

12705:                                            ; preds = %12700
  %12706 = load i32, ptr %386, align 4, !tbaa !5
  %12707 = call ptr @__errno_location() #11
  store i32 %12706, ptr %12707, align 4, !tbaa !5
  %12708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12709 = load i32, ptr @test_count, align 4, !tbaa !5
  %12710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12711 = load i32, ptr %12710, align 4, !tbaa !5
  %12712 = call ptr @s2n_strerror(i32 noundef %12711, ptr noundef @.str.4)
  %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_debug(i32 noundef %12714, ptr noundef @.str.4)
  %12716 = call ptr @__errno_location() #11
  %12717 = load i32, ptr %12716, align 4, !tbaa !5
  %12718 = call ptr @strerror(i32 noundef %12717) #10
  %12719 = call ptr @__errno_location() #11
  %12720 = load i32, ptr %12719, align 4, !tbaa !5
  %12721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12708, ptr noundef @.str.2, i32 noundef %12709, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 856, ptr noundef %12712, ptr noundef %12715, ptr noundef %12718, i32 noundef %12720) #10
  br label %12739

12722:                                            ; preds = %12700, %12693
  %12723 = load i32, ptr %386, align 4, !tbaa !5
  %12724 = call ptr @__errno_location() #11
  store i32 %12723, ptr %12724, align 4, !tbaa !5
  %12725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12726 = load i32, ptr @test_count, align 4, !tbaa !5
  %12727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12728 = load i32, ptr %12727, align 4, !tbaa !5
  %12729 = call ptr @s2n_strerror(i32 noundef %12728, ptr noundef @.str.4)
  %12730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12731 = load i32, ptr %12730, align 4, !tbaa !5
  %12732 = call ptr @s2n_strerror_debug(i32 noundef %12731, ptr noundef @.str.4)
  %12733 = call ptr @__errno_location() #11
  %12734 = load i32, ptr %12733, align 4, !tbaa !5
  %12735 = call ptr @strerror(i32 noundef %12734) #10
  %12736 = call ptr @__errno_location() #11
  %12737 = load i32, ptr %12736, align 4, !tbaa !5
  %12738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12725, ptr noundef @.str.5, i32 noundef %12726, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 856, ptr noundef %12729, ptr noundef %12732, ptr noundef %12735, i32 noundef %12737) #10
  br label %12739

12739:                                            ; preds = %12722, %12705
  call void @llvm.lifetime.end.p0(i64 4, ptr %386) #10
  br label %12740

12740:                                            ; preds = %12739
  br label %12741

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

12742:                                            ; No predecessors!
  br label %12743

12743:                                            ; preds = %12742
  br label %12744

12744:                                            ; preds = %12743, %12679
  br label %12745

12745:                                            ; preds = %12744
  br label %12746

12746:                                            ; preds = %12745
  %12747 = load ptr, ptr %380, align 8, !tbaa !9
  %12748 = getelementptr inbounds %struct.s2n_connection, ptr %12747, i32 0, i32 23
  store i8 33, ptr %12748, align 4, !tbaa !50
  %12749 = load ptr, ptr %380, align 8, !tbaa !9
  %12750 = getelementptr inbounds %struct.s2n_connection, ptr %12749, i32 0, i32 27
  %12751 = load ptr, ptr %12750, align 8, !tbaa !66
  %12752 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %12751, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %12752, align 8, !tbaa !67
  br label %12753

12753:                                            ; preds = %12746
  %12754 = load i32, ptr @test_count, align 4, !tbaa !5
  %12755 = add nsw i32 %12754, 1
  store i32 %12755, ptr @test_count, align 4, !tbaa !5
  %12756 = load ptr, ptr %380, align 8, !tbaa !9
  %12757 = call i32 @s2n_signature_algorithm_select(ptr noundef %12756)
  %12758 = getelementptr inbounds %struct.s2n_result, ptr %387, i32 0, i32 0
  store i32 %12757, ptr %12758, align 4
  %12759 = getelementptr inbounds %struct.s2n_result, ptr %387, i32 0, i32 0
  %12760 = load i32, ptr %12759, align 4
  %12761 = call zeroext i1 @s2n_result_is_ok(i32 %12760)
  br i1 %12761, label %12815, label %12762

12762:                                            ; preds = %12753
  br label %12763

12763:                                            ; preds = %12762
  br label %12764

12764:                                            ; preds = %12763
  call void @llvm.lifetime.start.p0(i64 4, ptr %388) #10
  %12765 = call ptr @__errno_location() #11
  %12766 = load i32, ptr %12765, align 4, !tbaa !5
  store i32 %12766, ptr %388, align 4, !tbaa !5
  %12767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12768 = call i32 @s2n_print_stacktrace(ptr noundef %12767)
  %12769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12770 = trunc i8 %12769 to i1
  br i1 %12770, label %12771, label %12793

12771:                                            ; preds = %12764
  %12772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12773 = call i32 @fileno(ptr noundef %12772) #10
  %12774 = call i32 @isatty(i32 noundef %12773) #10
  %12775 = icmp ne i32 %12774, 0
  br i1 %12775, label %12776, label %12793

12776:                                            ; preds = %12771
  %12777 = load i32, ptr %388, align 4, !tbaa !5
  %12778 = call ptr @__errno_location() #11
  store i32 %12777, ptr %12778, align 4, !tbaa !5
  %12779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12780 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %12782, ptr noundef @.str.4)
  %12784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12785 = load i32, ptr %12784, align 4, !tbaa !5
  %12786 = call ptr @s2n_strerror_debug(i32 noundef %12785, ptr noundef @.str.4)
  %12787 = call ptr @__errno_location() #11
  %12788 = load i32, ptr %12787, align 4, !tbaa !5
  %12789 = call ptr @strerror(i32 noundef %12788) #10
  %12790 = call ptr @__errno_location() #11
  %12791 = load i32, ptr %12790, align 4, !tbaa !5
  %12792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12779, ptr noundef @.str.2, i32 noundef %12780, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 861, ptr noundef %12783, ptr noundef %12786, ptr noundef %12789, i32 noundef %12791) #10
  br label %12810

12793:                                            ; preds = %12771, %12764
  %12794 = load i32, ptr %388, align 4, !tbaa !5
  %12795 = call ptr @__errno_location() #11
  store i32 %12794, ptr %12795, align 4, !tbaa !5
  %12796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12797 = load i32, ptr @test_count, align 4, !tbaa !5
  %12798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12799 = load i32, ptr %12798, align 4, !tbaa !5
  %12800 = call ptr @s2n_strerror(i32 noundef %12799, ptr noundef @.str.4)
  %12801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12802 = load i32, ptr %12801, align 4, !tbaa !5
  %12803 = call ptr @s2n_strerror_debug(i32 noundef %12802, ptr noundef @.str.4)
  %12804 = call ptr @__errno_location() #11
  %12805 = load i32, ptr %12804, align 4, !tbaa !5
  %12806 = call ptr @strerror(i32 noundef %12805) #10
  %12807 = call ptr @__errno_location() #11
  %12808 = load i32, ptr %12807, align 4, !tbaa !5
  %12809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12796, ptr noundef @.str.5, i32 noundef %12797, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 861, ptr noundef %12800, ptr noundef %12803, ptr noundef %12806, i32 noundef %12808) #10
  br label %12810

12810:                                            ; preds = %12793, %12776
  call void @llvm.lifetime.end.p0(i64 4, ptr %388) #10
  br label %12811

12811:                                            ; preds = %12810
  br label %12812

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

12813:                                            ; No predecessors!
  br label %12814

12814:                                            ; preds = %12813
  br label %12815

12815:                                            ; preds = %12814, %12753
  br label %12816

12816:                                            ; preds = %12815
  br label %12817

12817:                                            ; preds = %12816
  br label %12818

12818:                                            ; preds = %12817
  %12819 = load i32, ptr @test_count, align 4, !tbaa !5
  %12820 = add nsw i32 %12819, 1
  store i32 %12820, ptr @test_count, align 4, !tbaa !5
  %12821 = load ptr, ptr %380, align 8, !tbaa !9
  %12822 = getelementptr inbounds %struct.s2n_connection, ptr %12821, i32 0, i32 32
  %12823 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %12822, i32 0, i32 5
  %12824 = load ptr, ptr %12823, align 8, !tbaa !72
  %12825 = load ptr, ptr %82, align 8, !tbaa !9
  %12826 = icmp eq ptr %12824, %12825
  br i1 %12826, label %12880, label %12827

12827:                                            ; preds = %12818
  br label %12828

12828:                                            ; preds = %12827
  br label %12829

12829:                                            ; preds = %12828
  call void @llvm.lifetime.start.p0(i64 4, ptr %389) #10
  %12830 = call ptr @__errno_location() #11
  %12831 = load i32, ptr %12830, align 4, !tbaa !5
  store i32 %12831, ptr %389, align 4, !tbaa !5
  %12832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12833 = call i32 @s2n_print_stacktrace(ptr noundef %12832)
  %12834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12835 = trunc i8 %12834 to i1
  br i1 %12835, label %12836, label %12858

12836:                                            ; preds = %12829
  %12837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12838 = call i32 @fileno(ptr noundef %12837) #10
  %12839 = call i32 @isatty(i32 noundef %12838) #10
  %12840 = icmp ne i32 %12839, 0
  br i1 %12840, label %12841, label %12858

12841:                                            ; preds = %12836
  %12842 = load i32, ptr %389, align 4, !tbaa !5
  %12843 = call ptr @__errno_location() #11
  store i32 %12842, ptr %12843, align 4, !tbaa !5
  %12844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12845 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %12847, ptr noundef @.str.4)
  %12849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12850 = load i32, ptr %12849, align 4, !tbaa !5
  %12851 = call ptr @s2n_strerror_debug(i32 noundef %12850, ptr noundef @.str.4)
  %12852 = call ptr @__errno_location() #11
  %12853 = load i32, ptr %12852, align 4, !tbaa !5
  %12854 = call ptr @strerror(i32 noundef %12853) #10
  %12855 = call ptr @__errno_location() #11
  %12856 = load i32, ptr %12855, align 4, !tbaa !5
  %12857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12844, ptr noundef @.str.2, i32 noundef %12845, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 862, ptr noundef %12848, ptr noundef %12851, ptr noundef %12854, i32 noundef %12856) #10
  br label %12875

12858:                                            ; preds = %12836, %12829
  %12859 = load i32, ptr %389, align 4, !tbaa !5
  %12860 = call ptr @__errno_location() #11
  store i32 %12859, ptr %12860, align 4, !tbaa !5
  %12861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12862 = load i32, ptr @test_count, align 4, !tbaa !5
  %12863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12864 = load i32, ptr %12863, align 4, !tbaa !5
  %12865 = call ptr @s2n_strerror(i32 noundef %12864, ptr noundef @.str.4)
  %12866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12867 = load i32, ptr %12866, align 4, !tbaa !5
  %12868 = call ptr @s2n_strerror_debug(i32 noundef %12867, ptr noundef @.str.4)
  %12869 = call ptr @__errno_location() #11
  %12870 = load i32, ptr %12869, align 4, !tbaa !5
  %12871 = call ptr @strerror(i32 noundef %12870) #10
  %12872 = call ptr @__errno_location() #11
  %12873 = load i32, ptr %12872, align 4, !tbaa !5
  %12874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12861, ptr noundef @.str.5, i32 noundef %12862, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 862, ptr noundef %12865, ptr noundef %12868, ptr noundef %12871, i32 noundef %12873) #10
  br label %12875

12875:                                            ; preds = %12858, %12841
  call void @llvm.lifetime.end.p0(i64 4, ptr %389) #10
  br label %12876

12876:                                            ; preds = %12875
  br label %12877

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

12878:                                            ; No predecessors!
  br label %12879

12879:                                            ; preds = %12878
  br label %12880

12880:                                            ; preds = %12879, %12818
  br label %12881

12881:                                            ; preds = %12880
  br label %12882

12882:                                            ; preds = %12881
  %12883 = load ptr, ptr %380, align 8, !tbaa !9
  %12884 = getelementptr inbounds %struct.s2n_connection, ptr %12883, i32 0, i32 23
  store i8 33, ptr %12884, align 4, !tbaa !50
  %12885 = load ptr, ptr %380, align 8, !tbaa !9
  %12886 = getelementptr inbounds %struct.s2n_connection, ptr %12885, i32 0, i32 27
  %12887 = load ptr, ptr %12886, align 8, !tbaa !66
  %12888 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %12887, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %12888, align 8, !tbaa !67
  br label %12889

12889:                                            ; preds = %12882
  %12890 = load i32, ptr @test_count, align 4, !tbaa !5
  %12891 = add nsw i32 %12890, 1
  store i32 %12891, ptr @test_count, align 4, !tbaa !5
  %12892 = load ptr, ptr %380, align 8, !tbaa !9
  %12893 = call i32 @s2n_signature_algorithm_select(ptr noundef %12892)
  %12894 = getelementptr inbounds %struct.s2n_result, ptr %390, i32 0, i32 0
  store i32 %12893, ptr %12894, align 4
  %12895 = getelementptr inbounds %struct.s2n_result, ptr %390, i32 0, i32 0
  %12896 = load i32, ptr %12895, align 4
  %12897 = call zeroext i1 @s2n_result_is_ok(i32 %12896)
  br i1 %12897, label %12951, label %12898

12898:                                            ; preds = %12889
  br label %12899

12899:                                            ; preds = %12898
  br label %12900

12900:                                            ; preds = %12899
  call void @llvm.lifetime.start.p0(i64 4, ptr %391) #10
  %12901 = call ptr @__errno_location() #11
  %12902 = load i32, ptr %12901, align 4, !tbaa !5
  store i32 %12902, ptr %391, align 4, !tbaa !5
  %12903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12904 = call i32 @s2n_print_stacktrace(ptr noundef %12903)
  %12905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12906 = trunc i8 %12905 to i1
  br i1 %12906, label %12907, label %12929

12907:                                            ; preds = %12900
  %12908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12909 = call i32 @fileno(ptr noundef %12908) #10
  %12910 = call i32 @isatty(i32 noundef %12909) #10
  %12911 = icmp ne i32 %12910, 0
  br i1 %12911, label %12912, label %12929

12912:                                            ; preds = %12907
  %12913 = load i32, ptr %391, align 4, !tbaa !5
  %12914 = call ptr @__errno_location() #11
  store i32 %12913, ptr %12914, align 4, !tbaa !5
  %12915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12916 = load i32, ptr @test_count, align 4, !tbaa !5
  %12917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12918 = load i32, ptr %12917, align 4, !tbaa !5
  %12919 = call ptr @s2n_strerror(i32 noundef %12918, ptr noundef @.str.4)
  %12920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12921 = load i32, ptr %12920, align 4, !tbaa !5
  %12922 = call ptr @s2n_strerror_debug(i32 noundef %12921, ptr noundef @.str.4)
  %12923 = call ptr @__errno_location() #11
  %12924 = load i32, ptr %12923, align 4, !tbaa !5
  %12925 = call ptr @strerror(i32 noundef %12924) #10
  %12926 = call ptr @__errno_location() #11
  %12927 = load i32, ptr %12926, align 4, !tbaa !5
  %12928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12915, ptr noundef @.str.2, i32 noundef %12916, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 867, ptr noundef %12919, ptr noundef %12922, ptr noundef %12925, i32 noundef %12927) #10
  br label %12946

12929:                                            ; preds = %12907, %12900
  %12930 = load i32, ptr %391, align 4, !tbaa !5
  %12931 = call ptr @__errno_location() #11
  store i32 %12930, ptr %12931, align 4, !tbaa !5
  %12932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12933 = load i32, ptr @test_count, align 4, !tbaa !5
  %12934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12935 = load i32, ptr %12934, align 4, !tbaa !5
  %12936 = call ptr @s2n_strerror(i32 noundef %12935, ptr noundef @.str.4)
  %12937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12938 = load i32, ptr %12937, align 4, !tbaa !5
  %12939 = call ptr @s2n_strerror_debug(i32 noundef %12938, ptr noundef @.str.4)
  %12940 = call ptr @__errno_location() #11
  %12941 = load i32, ptr %12940, align 4, !tbaa !5
  %12942 = call ptr @strerror(i32 noundef %12941) #10
  %12943 = call ptr @__errno_location() #11
  %12944 = load i32, ptr %12943, align 4, !tbaa !5
  %12945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12932, ptr noundef @.str.5, i32 noundef %12933, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 867, ptr noundef %12936, ptr noundef %12939, ptr noundef %12942, i32 noundef %12944) #10
  br label %12946

12946:                                            ; preds = %12929, %12912
  call void @llvm.lifetime.end.p0(i64 4, ptr %391) #10
  br label %12947

12947:                                            ; preds = %12946
  br label %12948

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

12949:                                            ; No predecessors!
  br label %12950

12950:                                            ; preds = %12949
  br label %12951

12951:                                            ; preds = %12950, %12889
  br label %12952

12952:                                            ; preds = %12951
  br label %12953

12953:                                            ; preds = %12952
  br label %12954

12954:                                            ; preds = %12953
  %12955 = load i32, ptr @test_count, align 4, !tbaa !5
  %12956 = add nsw i32 %12955, 1
  store i32 %12956, ptr @test_count, align 4, !tbaa !5
  %12957 = load ptr, ptr %380, align 8, !tbaa !9
  %12958 = getelementptr inbounds %struct.s2n_connection, ptr %12957, i32 0, i32 32
  %12959 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %12958, i32 0, i32 5
  %12960 = load ptr, ptr %12959, align 8, !tbaa !72
  %12961 = load ptr, ptr %83, align 8, !tbaa !9
  %12962 = icmp eq ptr %12960, %12961
  br i1 %12962, label %13016, label %12963

12963:                                            ; preds = %12954
  br label %12964

12964:                                            ; preds = %12963
  br label %12965

12965:                                            ; preds = %12964
  call void @llvm.lifetime.start.p0(i64 4, ptr %392) #10
  %12966 = call ptr @__errno_location() #11
  %12967 = load i32, ptr %12966, align 4, !tbaa !5
  store i32 %12967, ptr %392, align 4, !tbaa !5
  %12968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12969 = call i32 @s2n_print_stacktrace(ptr noundef %12968)
  %12970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12971 = trunc i8 %12970 to i1
  br i1 %12971, label %12972, label %12994

12972:                                            ; preds = %12965
  %12973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12974 = call i32 @fileno(ptr noundef %12973) #10
  %12975 = call i32 @isatty(i32 noundef %12974) #10
  %12976 = icmp ne i32 %12975, 0
  br i1 %12976, label %12977, label %12994

12977:                                            ; preds = %12972
  %12978 = load i32, ptr %392, align 4, !tbaa !5
  %12979 = call ptr @__errno_location() #11
  store i32 %12978, ptr %12979, align 4, !tbaa !5
  %12980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12981 = load i32, ptr @test_count, align 4, !tbaa !5
  %12982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12983 = load i32, ptr %12982, align 4, !tbaa !5
  %12984 = call ptr @s2n_strerror(i32 noundef %12983, ptr noundef @.str.4)
  %12985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12986 = load i32, ptr %12985, align 4, !tbaa !5
  %12987 = call ptr @s2n_strerror_debug(i32 noundef %12986, ptr noundef @.str.4)
  %12988 = call ptr @__errno_location() #11
  %12989 = load i32, ptr %12988, align 4, !tbaa !5
  %12990 = call ptr @strerror(i32 noundef %12989) #10
  %12991 = call ptr @__errno_location() #11
  %12992 = load i32, ptr %12991, align 4, !tbaa !5
  %12993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12980, ptr noundef @.str.2, i32 noundef %12981, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 868, ptr noundef %12984, ptr noundef %12987, ptr noundef %12990, i32 noundef %12992) #10
  br label %13011

12994:                                            ; preds = %12972, %12965
  %12995 = load i32, ptr %392, align 4, !tbaa !5
  %12996 = call ptr @__errno_location() #11
  store i32 %12995, ptr %12996, align 4, !tbaa !5
  %12997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12998 = load i32, ptr @test_count, align 4, !tbaa !5
  %12999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13000 = load i32, ptr %12999, align 4, !tbaa !5
  %13001 = call ptr @s2n_strerror(i32 noundef %13000, ptr noundef @.str.4)
  %13002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13003 = load i32, ptr %13002, align 4, !tbaa !5
  %13004 = call ptr @s2n_strerror_debug(i32 noundef %13003, ptr noundef @.str.4)
  %13005 = call ptr @__errno_location() #11
  %13006 = load i32, ptr %13005, align 4, !tbaa !5
  %13007 = call ptr @strerror(i32 noundef %13006) #10
  %13008 = call ptr @__errno_location() #11
  %13009 = load i32, ptr %13008, align 4, !tbaa !5
  %13010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12997, ptr noundef @.str.5, i32 noundef %12998, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 868, ptr noundef %13001, ptr noundef %13004, ptr noundef %13007, i32 noundef %13009) #10
  br label %13011

13011:                                            ; preds = %12994, %12977
  call void @llvm.lifetime.end.p0(i64 4, ptr %392) #10
  br label %13012

13012:                                            ; preds = %13011
  br label %13013

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

13014:                                            ; No predecessors!
  br label %13015

13015:                                            ; preds = %13014
  br label %13016

13016:                                            ; preds = %13015, %12954
  br label %13017

13017:                                            ; preds = %13016
  br label %13018

13018:                                            ; preds = %13017
  call void @llvm.lifetime.end.p0(i64 80, ptr %382) #10
  %13019 = call i32 @s2n_connection_ptr_free(ptr noundef %380)
  %13020 = getelementptr inbounds %struct.s2n_result, ptr %393, i32 0, i32 0
  store i32 %13019, ptr %13020, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %380) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %379) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %378) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %377) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %394) #10
  store ptr @s2n_ecdsa_sha224, ptr %394, align 8, !tbaa !9
  %13021 = getelementptr inbounds ptr, ptr %394, i64 1
  %13022 = load ptr, ptr %83, align 8, !tbaa !9
  store ptr %13022, ptr %13021, align 8, !tbaa !9
  %13023 = getelementptr inbounds ptr, ptr %394, i64 2
  %13024 = load ptr, ptr %82, align 8, !tbaa !9
  store ptr %13024, ptr %13023, align 8, !tbaa !9
  %13025 = getelementptr inbounds ptr, ptr %394, i64 3
  %13026 = load ptr, ptr %375, align 8, !tbaa !9
  store ptr %13026, ptr %13025, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %395) #10
  store ptr @s2n_ecdsa_sha224, ptr %395, align 8, !tbaa !9
  %13027 = getelementptr inbounds ptr, ptr %395, i64 1
  %13028 = load ptr, ptr %83, align 8, !tbaa !9
  store ptr %13028, ptr %13027, align 8, !tbaa !9
  %13029 = getelementptr inbounds ptr, ptr %395, i64 2
  %13030 = load ptr, ptr %82, align 8, !tbaa !9
  store ptr %13030, ptr %13029, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %396) #10
  %13031 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %13031, ptr %396, align 8, !tbaa !9
  %13032 = load ptr, ptr %396, align 8, !tbaa !9
  %13033 = getelementptr inbounds %struct.s2n_connection, ptr %13032, i32 0, i32 23
  store i8 34, ptr %13033, align 4, !tbaa !50
  %13034 = load ptr, ptr %396, align 8, !tbaa !9
  %13035 = getelementptr inbounds %struct.s2n_connection, ptr %13034, i32 0, i32 27
  %13036 = load ptr, ptr %13035, align 8, !tbaa !66
  %13037 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %13036, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %13037, align 8, !tbaa !67
  br label %13038

13038:                                            ; preds = %13018
  %13039 = load i32, ptr @test_count, align 4, !tbaa !5
  %13040 = add nsw i32 %13039, 1
  store i32 %13040, ptr @test_count, align 4, !tbaa !5
  %13041 = load ptr, ptr %396, align 8, !tbaa !9
  %13042 = load ptr, ptr %75, align 8, !tbaa !9
  %13043 = call i32 @s2n_connection_set_config(ptr noundef %13041, ptr noundef %13042)
  %13044 = icmp eq i32 %13043, -1
  br i1 %13044, label %13045, label %13098

13045:                                            ; preds = %13038
  br label %13046

13046:                                            ; preds = %13045
  br label %13047

13047:                                            ; preds = %13046
  call void @llvm.lifetime.start.p0(i64 4, ptr %397) #10
  %13048 = call ptr @__errno_location() #11
  %13049 = load i32, ptr %13048, align 4, !tbaa !5
  store i32 %13049, ptr %397, align 4, !tbaa !5
  %13050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13051 = call i32 @s2n_print_stacktrace(ptr noundef %13050)
  %13052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13053 = trunc i8 %13052 to i1
  br i1 %13053, label %13054, label %13076

13054:                                            ; preds = %13047
  %13055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13056 = call i32 @fileno(ptr noundef %13055) #10
  %13057 = call i32 @isatty(i32 noundef %13056) #10
  %13058 = icmp ne i32 %13057, 0
  br i1 %13058, label %13059, label %13076

13059:                                            ; preds = %13054
  %13060 = load i32, ptr %397, align 4, !tbaa !5
  %13061 = call ptr @__errno_location() #11
  store i32 %13060, ptr %13061, align 4, !tbaa !5
  %13062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13063 = load i32, ptr @test_count, align 4, !tbaa !5
  %13064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13065 = load i32, ptr %13064, align 4, !tbaa !5
  %13066 = call ptr @s2n_strerror(i32 noundef %13065, ptr noundef @.str.4)
  %13067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13068 = load i32, ptr %13067, align 4, !tbaa !5
  %13069 = call ptr @s2n_strerror_debug(i32 noundef %13068, ptr noundef @.str.4)
  %13070 = call ptr @__errno_location() #11
  %13071 = load i32, ptr %13070, align 4, !tbaa !5
  %13072 = call ptr @strerror(i32 noundef %13071) #10
  %13073 = call ptr @__errno_location() #11
  %13074 = load i32, ptr %13073, align 4, !tbaa !5
  %13075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13062, ptr noundef @.str.2, i32 noundef %13063, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 891, ptr noundef %13066, ptr noundef %13069, ptr noundef %13072, i32 noundef %13074) #10
  br label %13093

13076:                                            ; preds = %13054, %13047
  %13077 = load i32, ptr %397, align 4, !tbaa !5
  %13078 = call ptr @__errno_location() #11
  store i32 %13077, ptr %13078, align 4, !tbaa !5
  %13079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13080 = load i32, ptr @test_count, align 4, !tbaa !5
  %13081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13082 = load i32, ptr %13081, align 4, !tbaa !5
  %13083 = call ptr @s2n_strerror(i32 noundef %13082, ptr noundef @.str.4)
  %13084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13085 = load i32, ptr %13084, align 4, !tbaa !5
  %13086 = call ptr @s2n_strerror_debug(i32 noundef %13085, ptr noundef @.str.4)
  %13087 = call ptr @__errno_location() #11
  %13088 = load i32, ptr %13087, align 4, !tbaa !5
  %13089 = call ptr @strerror(i32 noundef %13088) #10
  %13090 = call ptr @__errno_location() #11
  %13091 = load i32, ptr %13090, align 4, !tbaa !5
  %13092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13079, ptr noundef @.str.5, i32 noundef %13080, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 891, ptr noundef %13083, ptr noundef %13086, ptr noundef %13089, i32 noundef %13091) #10
  br label %13093

13093:                                            ; preds = %13076, %13059
  call void @llvm.lifetime.end.p0(i64 4, ptr %397) #10
  br label %13094

13094:                                            ; preds = %13093
  br label %13095

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

13096:                                            ; No predecessors!
  br label %13097

13097:                                            ; preds = %13096
  br label %13098

13098:                                            ; preds = %13097, %13038
  br label %13099

13099:                                            ; preds = %13098
  br label %13100

13100:                                            ; preds = %13099
  call void @llvm.lifetime.start.p0(i64 80, ptr %398) #10
  call void @llvm.memset.p0.i64(ptr align 8 %398, i8 0, i64 80, i1 false)
  br label %13101

13101:                                            ; preds = %13100
  %13102 = load i32, ptr @test_count, align 4, !tbaa !5
  %13103 = add nsw i32 %13102, 1
  store i32 %13103, ptr @test_count, align 4, !tbaa !5
  %13104 = load ptr, ptr %396, align 8, !tbaa !9
  %13105 = getelementptr inbounds [4 x ptr], ptr %394, i64 0, i64 0
  %13106 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %13104, ptr noundef %398, ptr noundef %13105, i64 noundef 4)
  %13107 = getelementptr inbounds %struct.s2n_result, ptr %399, i32 0, i32 0
  store i32 %13106, ptr %13107, align 4
  %13108 = getelementptr inbounds %struct.s2n_result, ptr %399, i32 0, i32 0
  %13109 = load i32, ptr %13108, align 4
  %13110 = call zeroext i1 @s2n_result_is_ok(i32 %13109)
  br i1 %13110, label %13164, label %13111

13111:                                            ; preds = %13101
  br label %13112

13112:                                            ; preds = %13111
  br label %13113

13113:                                            ; preds = %13112
  call void @llvm.lifetime.start.p0(i64 4, ptr %400) #10
  %13114 = call ptr @__errno_location() #11
  %13115 = load i32, ptr %13114, align 4, !tbaa !5
  store i32 %13115, ptr %400, align 4, !tbaa !5
  %13116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13117 = call i32 @s2n_print_stacktrace(ptr noundef %13116)
  %13118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13119 = trunc i8 %13118 to i1
  br i1 %13119, label %13120, label %13142

13120:                                            ; preds = %13113
  %13121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13122 = call i32 @fileno(ptr noundef %13121) #10
  %13123 = call i32 @isatty(i32 noundef %13122) #10
  %13124 = icmp ne i32 %13123, 0
  br i1 %13124, label %13125, label %13142

13125:                                            ; preds = %13120
  %13126 = load i32, ptr %400, align 4, !tbaa !5
  %13127 = call ptr @__errno_location() #11
  store i32 %13126, ptr %13127, align 4, !tbaa !5
  %13128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13129 = load i32, ptr @test_count, align 4, !tbaa !5
  %13130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13131 = load i32, ptr %13130, align 4, !tbaa !5
  %13132 = call ptr @s2n_strerror(i32 noundef %13131, ptr noundef @.str.4)
  %13133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13134 = load i32, ptr %13133, align 4, !tbaa !5
  %13135 = call ptr @s2n_strerror_debug(i32 noundef %13134, ptr noundef @.str.4)
  %13136 = call ptr @__errno_location() #11
  %13137 = load i32, ptr %13136, align 4, !tbaa !5
  %13138 = call ptr @strerror(i32 noundef %13137) #10
  %13139 = call ptr @__errno_location() #11
  %13140 = load i32, ptr %13139, align 4, !tbaa !5
  %13141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13128, ptr noundef @.str.2, i32 noundef %13129, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 895, ptr noundef %13132, ptr noundef %13135, ptr noundef %13138, i32 noundef %13140) #10
  br label %13159

13142:                                            ; preds = %13120, %13113
  %13143 = load i32, ptr %400, align 4, !tbaa !5
  %13144 = call ptr @__errno_location() #11
  store i32 %13143, ptr %13144, align 4, !tbaa !5
  %13145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13146 = load i32, ptr @test_count, align 4, !tbaa !5
  %13147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13148 = load i32, ptr %13147, align 4, !tbaa !5
  %13149 = call ptr @s2n_strerror(i32 noundef %13148, ptr noundef @.str.4)
  %13150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13151 = load i32, ptr %13150, align 4, !tbaa !5
  %13152 = call ptr @s2n_strerror_debug(i32 noundef %13151, ptr noundef @.str.4)
  %13153 = call ptr @__errno_location() #11
  %13154 = load i32, ptr %13153, align 4, !tbaa !5
  %13155 = call ptr @strerror(i32 noundef %13154) #10
  %13156 = call ptr @__errno_location() #11
  %13157 = load i32, ptr %13156, align 4, !tbaa !5
  %13158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13145, ptr noundef @.str.5, i32 noundef %13146, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 895, ptr noundef %13149, ptr noundef %13152, ptr noundef %13155, i32 noundef %13157) #10
  br label %13159

13159:                                            ; preds = %13142, %13125
  call void @llvm.lifetime.end.p0(i64 4, ptr %400) #10
  br label %13160

13160:                                            ; preds = %13159
  br label %13161

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

13162:                                            ; No predecessors!
  br label %13163

13163:                                            ; preds = %13162
  br label %13164

13164:                                            ; preds = %13163, %13101
  br label %13165

13165:                                            ; preds = %13164
  br label %13166

13166:                                            ; preds = %13165
  br label %13167

13167:                                            ; preds = %13166
  %13168 = load i32, ptr @test_count, align 4, !tbaa !5
  %13169 = add nsw i32 %13168, 1
  store i32 %13169, ptr @test_count, align 4, !tbaa !5
  %13170 = load ptr, ptr %396, align 8, !tbaa !9
  %13171 = getelementptr inbounds %struct.s2n_connection, ptr %13170, i32 0, i32 32
  %13172 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %13171, i32 0, i32 4
  %13173 = getelementptr inbounds [3 x ptr], ptr %395, i64 0, i64 0
  %13174 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %13172, ptr noundef %13173, i64 noundef 3)
  %13175 = getelementptr inbounds %struct.s2n_result, ptr %401, i32 0, i32 0
  store i32 %13174, ptr %13175, align 4
  %13176 = getelementptr inbounds %struct.s2n_result, ptr %401, i32 0, i32 0
  %13177 = load i32, ptr %13176, align 4
  %13178 = call zeroext i1 @s2n_result_is_ok(i32 %13177)
  br i1 %13178, label %13232, label %13179

13179:                                            ; preds = %13167
  br label %13180

13180:                                            ; preds = %13179
  br label %13181

13181:                                            ; preds = %13180
  call void @llvm.lifetime.start.p0(i64 4, ptr %402) #10
  %13182 = call ptr @__errno_location() #11
  %13183 = load i32, ptr %13182, align 4, !tbaa !5
  store i32 %13183, ptr %402, align 4, !tbaa !5
  %13184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13185 = call i32 @s2n_print_stacktrace(ptr noundef %13184)
  %13186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13187 = trunc i8 %13186 to i1
  br i1 %13187, label %13188, label %13210

13188:                                            ; preds = %13181
  %13189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13190 = call i32 @fileno(ptr noundef %13189) #10
  %13191 = call i32 @isatty(i32 noundef %13190) #10
  %13192 = icmp ne i32 %13191, 0
  br i1 %13192, label %13193, label %13210

13193:                                            ; preds = %13188
  %13194 = load i32, ptr %402, align 4, !tbaa !5
  %13195 = call ptr @__errno_location() #11
  store i32 %13194, ptr %13195, align 4, !tbaa !5
  %13196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13197 = load i32, ptr @test_count, align 4, !tbaa !5
  %13198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13199 = load i32, ptr %13198, align 4, !tbaa !5
  %13200 = call ptr @s2n_strerror(i32 noundef %13199, ptr noundef @.str.4)
  %13201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13202 = load i32, ptr %13201, align 4, !tbaa !5
  %13203 = call ptr @s2n_strerror_debug(i32 noundef %13202, ptr noundef @.str.4)
  %13204 = call ptr @__errno_location() #11
  %13205 = load i32, ptr %13204, align 4, !tbaa !5
  %13206 = call ptr @strerror(i32 noundef %13205) #10
  %13207 = call ptr @__errno_location() #11
  %13208 = load i32, ptr %13207, align 4, !tbaa !5
  %13209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13196, ptr noundef @.str.2, i32 noundef %13197, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 897, ptr noundef %13200, ptr noundef %13203, ptr noundef %13206, i32 noundef %13208) #10
  br label %13227

13210:                                            ; preds = %13188, %13181
  %13211 = load i32, ptr %402, align 4, !tbaa !5
  %13212 = call ptr @__errno_location() #11
  store i32 %13211, ptr %13212, align 4, !tbaa !5
  %13213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13214 = load i32, ptr @test_count, align 4, !tbaa !5
  %13215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13216 = load i32, ptr %13215, align 4, !tbaa !5
  %13217 = call ptr @s2n_strerror(i32 noundef %13216, ptr noundef @.str.4)
  %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_debug(i32 noundef %13219, ptr noundef @.str.4)
  %13221 = call ptr @__errno_location() #11
  %13222 = load i32, ptr %13221, align 4, !tbaa !5
  %13223 = call ptr @strerror(i32 noundef %13222) #10
  %13224 = call ptr @__errno_location() #11
  %13225 = load i32, ptr %13224, align 4, !tbaa !5
  %13226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13213, ptr noundef @.str.5, i32 noundef %13214, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 897, ptr noundef %13217, ptr noundef %13220, ptr noundef %13223, i32 noundef %13225) #10
  br label %13227

13227:                                            ; preds = %13210, %13193
  call void @llvm.lifetime.end.p0(i64 4, ptr %402) #10
  br label %13228

13228:                                            ; preds = %13227
  br label %13229

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

13230:                                            ; No predecessors!
  br label %13231

13231:                                            ; preds = %13230
  br label %13232

13232:                                            ; preds = %13231, %13167
  br label %13233

13233:                                            ; preds = %13232
  br label %13234

13234:                                            ; preds = %13233
  br label %13235

13235:                                            ; preds = %13234
  %13236 = load i32, ptr @test_count, align 4, !tbaa !5
  %13237 = add nsw i32 %13236, 1
  store i32 %13237, ptr @test_count, align 4, !tbaa !5
  %13238 = load ptr, ptr %396, align 8, !tbaa !9
  %13239 = call i32 @s2n_signature_algorithm_select(ptr noundef %13238)
  %13240 = getelementptr inbounds %struct.s2n_result, ptr %403, i32 0, i32 0
  store i32 %13239, ptr %13240, align 4
  %13241 = getelementptr inbounds %struct.s2n_result, ptr %403, i32 0, i32 0
  %13242 = load i32, ptr %13241, align 4
  %13243 = call zeroext i1 @s2n_result_is_ok(i32 %13242)
  br i1 %13243, label %13297, label %13244

13244:                                            ; preds = %13235
  br label %13245

13245:                                            ; preds = %13244
  br label %13246

13246:                                            ; preds = %13245
  call void @llvm.lifetime.start.p0(i64 4, ptr %404) #10
  %13247 = call ptr @__errno_location() #11
  %13248 = load i32, ptr %13247, align 4, !tbaa !5
  store i32 %13248, ptr %404, align 4, !tbaa !5
  %13249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13250 = call i32 @s2n_print_stacktrace(ptr noundef %13249)
  %13251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13252 = trunc i8 %13251 to i1
  br i1 %13252, label %13253, label %13275

13253:                                            ; preds = %13246
  %13254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13255 = call i32 @fileno(ptr noundef %13254) #10
  %13256 = call i32 @isatty(i32 noundef %13255) #10
  %13257 = icmp ne i32 %13256, 0
  br i1 %13257, label %13258, label %13275

13258:                                            ; preds = %13253
  %13259 = load i32, ptr %404, align 4, !tbaa !5
  %13260 = call ptr @__errno_location() #11
  store i32 %13259, ptr %13260, align 4, !tbaa !5
  %13261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13262 = load i32, ptr @test_count, align 4, !tbaa !5
  %13263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13264 = load i32, ptr %13263, align 4, !tbaa !5
  %13265 = call ptr @s2n_strerror(i32 noundef %13264, ptr noundef @.str.4)
  %13266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13267 = load i32, ptr %13266, align 4, !tbaa !5
  %13268 = call ptr @s2n_strerror_debug(i32 noundef %13267, ptr noundef @.str.4)
  %13269 = call ptr @__errno_location() #11
  %13270 = load i32, ptr %13269, align 4, !tbaa !5
  %13271 = call ptr @strerror(i32 noundef %13270) #10
  %13272 = call ptr @__errno_location() #11
  %13273 = load i32, ptr %13272, align 4, !tbaa !5
  %13274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13261, ptr noundef @.str.2, i32 noundef %13262, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 899, ptr noundef %13265, ptr noundef %13268, ptr noundef %13271, i32 noundef %13273) #10
  br label %13292

13275:                                            ; preds = %13253, %13246
  %13276 = load i32, ptr %404, align 4, !tbaa !5
  %13277 = call ptr @__errno_location() #11
  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() #11
  %13287 = load i32, ptr %13286, align 4, !tbaa !5
  %13288 = call ptr @strerror(i32 noundef %13287) #10
  %13289 = call ptr @__errno_location() #11
  %13290 = load i32, ptr %13289, align 4, !tbaa !5
  %13291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13278, ptr noundef @.str.5, i32 noundef %13279, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 899, ptr noundef %13282, ptr noundef %13285, ptr noundef %13288, i32 noundef %13290) #10
  br label %13292

13292:                                            ; preds = %13275, %13258
  call void @llvm.lifetime.end.p0(i64 4, ptr %404) #10
  br label %13293

13293:                                            ; preds = %13292
  br label %13294

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

13295:                                            ; No predecessors!
  br label %13296

13296:                                            ; preds = %13295
  br label %13297

13297:                                            ; preds = %13296, %13235
  br label %13298

13298:                                            ; preds = %13297
  br label %13299

13299:                                            ; preds = %13298
  br label %13300

13300:                                            ; preds = %13299
  %13301 = load i32, ptr @test_count, align 4, !tbaa !5
  %13302 = add nsw i32 %13301, 1
  store i32 %13302, ptr @test_count, align 4, !tbaa !5
  %13303 = load ptr, ptr %396, align 8, !tbaa !9
  %13304 = getelementptr inbounds %struct.s2n_connection, ptr %13303, i32 0, i32 32
  %13305 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %13304, i32 0, i32 5
  %13306 = load ptr, ptr %13305, align 8, !tbaa !72
  %13307 = load ptr, ptr %375, align 8, !tbaa !9
  %13308 = icmp eq ptr %13306, %13307
  br i1 %13308, label %13362, label %13309

13309:                                            ; preds = %13300
  br label %13310

13310:                                            ; preds = %13309
  br label %13311

13311:                                            ; preds = %13310
  call void @llvm.lifetime.start.p0(i64 4, ptr %405) #10
  %13312 = call ptr @__errno_location() #11
  %13313 = load i32, ptr %13312, align 4, !tbaa !5
  store i32 %13313, ptr %405, align 4, !tbaa !5
  %13314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13315 = call i32 @s2n_print_stacktrace(ptr noundef %13314)
  %13316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13317 = trunc i8 %13316 to i1
  br i1 %13317, label %13318, label %13340

13318:                                            ; preds = %13311
  %13319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13320 = call i32 @fileno(ptr noundef %13319) #10
  %13321 = call i32 @isatty(i32 noundef %13320) #10
  %13322 = icmp ne i32 %13321, 0
  br i1 %13322, label %13323, label %13340

13323:                                            ; preds = %13318
  %13324 = load i32, ptr %405, align 4, !tbaa !5
  %13325 = call ptr @__errno_location() #11
  store i32 %13324, ptr %13325, align 4, !tbaa !5
  %13326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13327 = load i32, ptr @test_count, align 4, !tbaa !5
  %13328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13329 = load i32, ptr %13328, align 4, !tbaa !5
  %13330 = call ptr @s2n_strerror(i32 noundef %13329, ptr noundef @.str.4)
  %13331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13332 = load i32, ptr %13331, align 4, !tbaa !5
  %13333 = call ptr @s2n_strerror_debug(i32 noundef %13332, ptr noundef @.str.4)
  %13334 = call ptr @__errno_location() #11
  %13335 = load i32, ptr %13334, align 4, !tbaa !5
  %13336 = call ptr @strerror(i32 noundef %13335) #10
  %13337 = call ptr @__errno_location() #11
  %13338 = load i32, ptr %13337, align 4, !tbaa !5
  %13339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13326, ptr noundef @.str.2, i32 noundef %13327, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 900, ptr noundef %13330, ptr noundef %13333, ptr noundef %13336, i32 noundef %13338) #10
  br label %13357

13340:                                            ; preds = %13318, %13311
  %13341 = load i32, ptr %405, align 4, !tbaa !5
  %13342 = call ptr @__errno_location() #11
  store i32 %13341, ptr %13342, align 4, !tbaa !5
  %13343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13344 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %13346, ptr noundef @.str.4)
  %13348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13349 = load i32, ptr %13348, align 4, !tbaa !5
  %13350 = call ptr @s2n_strerror_debug(i32 noundef %13349, ptr noundef @.str.4)
  %13351 = call ptr @__errno_location() #11
  %13352 = load i32, ptr %13351, align 4, !tbaa !5
  %13353 = call ptr @strerror(i32 noundef %13352) #10
  %13354 = call ptr @__errno_location() #11
  %13355 = load i32, ptr %13354, align 4, !tbaa !5
  %13356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13343, ptr noundef @.str.5, i32 noundef %13344, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 900, ptr noundef %13347, ptr noundef %13350, ptr noundef %13353, i32 noundef %13355) #10
  br label %13357

13357:                                            ; preds = %13340, %13323
  call void @llvm.lifetime.end.p0(i64 4, ptr %405) #10
  br label %13358

13358:                                            ; preds = %13357
  br label %13359

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

13360:                                            ; No predecessors!
  br label %13361

13361:                                            ; preds = %13360
  br label %13362

13362:                                            ; preds = %13361, %13300
  br label %13363

13363:                                            ; preds = %13362
  br label %13364

13364:                                            ; preds = %13363
  call void @llvm.lifetime.end.p0(i64 80, ptr %398) #10
  %13365 = call i32 @s2n_connection_ptr_free(ptr noundef %396)
  %13366 = getelementptr inbounds %struct.s2n_result, ptr %406, i32 0, i32 0
  store i32 %13365, ptr %13366, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %396) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %395) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %394) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %376) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %375) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #10
  %13367 = call i32 @s2n_config_ptr_free(ptr noundef %80)
  %13368 = getelementptr inbounds %struct.s2n_result, ptr %407, i32 0, i32 0
  store i32 %13367, ptr %13368, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #10
  %13369 = call i32 @s2n_config_ptr_free(ptr noundef %78)
  %13370 = getelementptr inbounds %struct.s2n_result, ptr %408, i32 0, i32 0
  store i32 %13369, ptr %13370, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  %13371 = call i32 @s2n_config_ptr_free(ptr noundef %75)
  %13372 = getelementptr inbounds %struct.s2n_result, ptr %409, i32 0, i32 0
  store i32 %13371, ptr %13372, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %410) #10
  %13373 = call ptr @s2n_fetch_default_config()
  %13374 = getelementptr inbounds %struct.s2n_config, ptr %13373, i32 0, i32 7
  %13375 = load ptr, ptr %13374, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %410, ptr align 8 %13375, i64 64, i1 false), !tbaa.struct !22
  %13376 = getelementptr inbounds %struct.s2n_security_policy, ptr %410, i32 0, i32 3
  store ptr @test_preferences, ptr %13376, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %411) #10
  %13377 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %13377, ptr %411, align 8, !tbaa !9
  %13378 = load ptr, ptr %411, align 8, !tbaa !9
  %13379 = getelementptr inbounds %struct.s2n_connection, ptr %13378, i32 0, i32 2
  store ptr %410, ptr %13379, align 8, !tbaa !26
  %13380 = load ptr, ptr %411, align 8, !tbaa !9
  %13381 = getelementptr inbounds %struct.s2n_connection, ptr %13380, i32 0, i32 23
  store i8 33, ptr %13381, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr %412) #10
  call void @llvm.memset.p0.i64(ptr align 8 %412, i8 0, i64 40, i1 false)
  br label %13382

13382:                                            ; preds = %13364
  %13383 = load i32, ptr @test_count, align 4, !tbaa !5
  %13384 = add nsw i32 %13383, 1
  store i32 %13384, ptr @test_count, align 4, !tbaa !5
  %13385 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %412, i32 noundef 0)
  %13386 = icmp eq i32 %13385, -1
  br i1 %13386, label %13387, label %13440

13387:                                            ; preds = %13382
  br label %13388

13388:                                            ; preds = %13387
  br label %13389

13389:                                            ; preds = %13388
  call void @llvm.lifetime.start.p0(i64 4, ptr %413) #10
  %13390 = call ptr @__errno_location() #11
  %13391 = load i32, ptr %13390, align 4, !tbaa !5
  store i32 %13391, ptr %413, align 4, !tbaa !5
  %13392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13393 = call i32 @s2n_print_stacktrace(ptr noundef %13392)
  %13394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13395 = trunc i8 %13394 to i1
  br i1 %13395, label %13396, label %13418

13396:                                            ; preds = %13389
  %13397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13398 = call i32 @fileno(ptr noundef %13397) #10
  %13399 = call i32 @isatty(i32 noundef %13398) #10
  %13400 = icmp ne i32 %13399, 0
  br i1 %13400, label %13401, label %13418

13401:                                            ; preds = %13396
  %13402 = load i32, ptr %413, align 4, !tbaa !5
  %13403 = call ptr @__errno_location() #11
  store i32 %13402, ptr %13403, align 4, !tbaa !5
  %13404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13405 = load i32, ptr @test_count, align 4, !tbaa !5
  %13406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13407 = load i32, ptr %13406, align 4, !tbaa !5
  %13408 = call ptr @s2n_strerror(i32 noundef %13407, ptr noundef @.str.4)
  %13409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13410 = load i32, ptr %13409, align 4, !tbaa !5
  %13411 = call ptr @s2n_strerror_debug(i32 noundef %13410, ptr noundef @.str.4)
  %13412 = call ptr @__errno_location() #11
  %13413 = load i32, ptr %13412, align 4, !tbaa !5
  %13414 = call ptr @strerror(i32 noundef %13413) #10
  %13415 = call ptr @__errno_location() #11
  %13416 = load i32, ptr %13415, align 4, !tbaa !5
  %13417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13404, ptr noundef @.str.2, i32 noundef %13405, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 918, ptr noundef %13408, ptr noundef %13411, ptr noundef %13414, i32 noundef %13416) #10
  br label %13435

13418:                                            ; preds = %13396, %13389
  %13419 = load i32, ptr %413, align 4, !tbaa !5
  %13420 = call ptr @__errno_location() #11
  store i32 %13419, ptr %13420, align 4, !tbaa !5
  %13421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13422 = load i32, ptr @test_count, align 4, !tbaa !5
  %13423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13424 = load i32, ptr %13423, align 4, !tbaa !5
  %13425 = call ptr @s2n_strerror(i32 noundef %13424, ptr noundef @.str.4)
  %13426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13427 = load i32, ptr %13426, align 4, !tbaa !5
  %13428 = call ptr @s2n_strerror_debug(i32 noundef %13427, ptr noundef @.str.4)
  %13429 = call ptr @__errno_location() #11
  %13430 = load i32, ptr %13429, align 4, !tbaa !5
  %13431 = call ptr @strerror(i32 noundef %13430) #10
  %13432 = call ptr @__errno_location() #11
  %13433 = load i32, ptr %13432, align 4, !tbaa !5
  %13434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13421, ptr noundef @.str.5, i32 noundef %13422, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 918, ptr noundef %13425, ptr noundef %13428, ptr noundef %13431, i32 noundef %13433) #10
  br label %13435

13435:                                            ; preds = %13418, %13401
  call void @llvm.lifetime.end.p0(i64 4, ptr %413) #10
  br label %13436

13436:                                            ; preds = %13435
  br label %13437

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

13438:                                            ; No predecessors!
  br label %13439

13439:                                            ; preds = %13438
  br label %13440

13440:                                            ; preds = %13439, %13382
  br label %13441

13441:                                            ; preds = %13440
  br label %13442

13442:                                            ; preds = %13441
  br label %13443

13443:                                            ; preds = %13442
  %13444 = load i32, ptr @test_count, align 4, !tbaa !5
  %13445 = add nsw i32 %13444, 1
  store i32 %13445, ptr @test_count, align 4, !tbaa !5
  %13446 = load i16, ptr @s2n_rsa_pkcs1_sha256, align 8, !tbaa !55
  %13447 = call i32 @s2n_stuffer_write_uint16(ptr noundef %412, i16 noundef zeroext %13446)
  %13448 = icmp eq i32 %13447, -1
  br i1 %13448, label %13449, label %13502

13449:                                            ; preds = %13443
  br label %13450

13450:                                            ; preds = %13449
  br label %13451

13451:                                            ; preds = %13450
  call void @llvm.lifetime.start.p0(i64 4, ptr %414) #10
  %13452 = call ptr @__errno_location() #11
  %13453 = load i32, ptr %13452, align 4, !tbaa !5
  store i32 %13453, ptr %414, align 4, !tbaa !5
  %13454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13455 = call i32 @s2n_print_stacktrace(ptr noundef %13454)
  %13456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13457 = trunc i8 %13456 to i1
  br i1 %13457, label %13458, label %13480

13458:                                            ; preds = %13451
  %13459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13460 = call i32 @fileno(ptr noundef %13459) #10
  %13461 = call i32 @isatty(i32 noundef %13460) #10
  %13462 = icmp ne i32 %13461, 0
  br i1 %13462, label %13463, label %13480

13463:                                            ; preds = %13458
  %13464 = load i32, ptr %414, align 4, !tbaa !5
  %13465 = call ptr @__errno_location() #11
  store i32 %13464, ptr %13465, align 4, !tbaa !5
  %13466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13467 = load i32, ptr @test_count, align 4, !tbaa !5
  %13468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13469 = load i32, ptr %13468, align 4, !tbaa !5
  %13470 = call ptr @s2n_strerror(i32 noundef %13469, ptr noundef @.str.4)
  %13471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13472 = load i32, ptr %13471, align 4, !tbaa !5
  %13473 = call ptr @s2n_strerror_debug(i32 noundef %13472, ptr noundef @.str.4)
  %13474 = call ptr @__errno_location() #11
  %13475 = load i32, ptr %13474, align 4, !tbaa !5
  %13476 = call ptr @strerror(i32 noundef %13475) #10
  %13477 = call ptr @__errno_location() #11
  %13478 = load i32, ptr %13477, align 4, !tbaa !5
  %13479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13466, ptr noundef @.str.2, i32 noundef %13467, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 919, ptr noundef %13470, ptr noundef %13473, ptr noundef %13476, i32 noundef %13478) #10
  br label %13497

13480:                                            ; preds = %13458, %13451
  %13481 = load i32, ptr %414, align 4, !tbaa !5
  %13482 = call ptr @__errno_location() #11
  store i32 %13481, ptr %13482, align 4, !tbaa !5
  %13483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13484 = load i32, ptr @test_count, align 4, !tbaa !5
  %13485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13486 = load i32, ptr %13485, align 4, !tbaa !5
  %13487 = call ptr @s2n_strerror(i32 noundef %13486, ptr noundef @.str.4)
  %13488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13489 = load i32, ptr %13488, align 4, !tbaa !5
  %13490 = call ptr @s2n_strerror_debug(i32 noundef %13489, ptr noundef @.str.4)
  %13491 = call ptr @__errno_location() #11
  %13492 = load i32, ptr %13491, align 4, !tbaa !5
  %13493 = call ptr @strerror(i32 noundef %13492) #10
  %13494 = call ptr @__errno_location() #11
  %13495 = load i32, ptr %13494, align 4, !tbaa !5
  %13496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13483, ptr noundef @.str.5, i32 noundef %13484, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 919, ptr noundef %13487, ptr noundef %13490, ptr noundef %13493, i32 noundef %13495) #10
  br label %13497

13497:                                            ; preds = %13480, %13463
  call void @llvm.lifetime.end.p0(i64 4, ptr %414) #10
  br label %13498

13498:                                            ; preds = %13497
  br label %13499

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

13500:                                            ; No predecessors!
  br label %13501

13501:                                            ; preds = %13500
  br label %13502

13502:                                            ; preds = %13501, %13443
  br label %13503

13503:                                            ; preds = %13502
  br label %13504

13504:                                            ; preds = %13503
  br label %13505

13505:                                            ; preds = %13504
  %13506 = load i32, ptr @test_count, align 4, !tbaa !5
  %13507 = add nsw i32 %13506, 1
  store i32 %13507, ptr @test_count, align 4, !tbaa !5
  %13508 = load ptr, ptr %411, align 8, !tbaa !9
  %13509 = call i32 @s2n_signature_algorithm_recv(ptr noundef %13508, ptr noundef %412)
  %13510 = getelementptr inbounds %struct.s2n_result, ptr %415, i32 0, i32 0
  store i32 %13509, ptr %13510, align 4
  %13511 = getelementptr inbounds %struct.s2n_result, ptr %415, i32 0, i32 0
  %13512 = load i32, ptr %13511, align 4
  %13513 = call zeroext i1 @s2n_result_is_ok(i32 %13512)
  br i1 %13513, label %13567, label %13514

13514:                                            ; preds = %13505
  br label %13515

13515:                                            ; preds = %13514
  br label %13516

13516:                                            ; preds = %13515
  call void @llvm.lifetime.start.p0(i64 4, ptr %416) #10
  %13517 = call ptr @__errno_location() #11
  %13518 = load i32, ptr %13517, align 4, !tbaa !5
  store i32 %13518, ptr %416, align 4, !tbaa !5
  %13519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13520 = call i32 @s2n_print_stacktrace(ptr noundef %13519)
  %13521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13522 = trunc i8 %13521 to i1
  br i1 %13522, label %13523, label %13545

13523:                                            ; preds = %13516
  %13524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13525 = call i32 @fileno(ptr noundef %13524) #10
  %13526 = call i32 @isatty(i32 noundef %13525) #10
  %13527 = icmp ne i32 %13526, 0
  br i1 %13527, label %13528, label %13545

13528:                                            ; preds = %13523
  %13529 = load i32, ptr %416, align 4, !tbaa !5
  %13530 = call ptr @__errno_location() #11
  store i32 %13529, ptr %13530, align 4, !tbaa !5
  %13531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13532 = load i32, ptr @test_count, align 4, !tbaa !5
  %13533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13534 = load i32, ptr %13533, align 4, !tbaa !5
  %13535 = call ptr @s2n_strerror(i32 noundef %13534, ptr noundef @.str.4)
  %13536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13537 = load i32, ptr %13536, align 4, !tbaa !5
  %13538 = call ptr @s2n_strerror_debug(i32 noundef %13537, ptr noundef @.str.4)
  %13539 = call ptr @__errno_location() #11
  %13540 = load i32, ptr %13539, align 4, !tbaa !5
  %13541 = call ptr @strerror(i32 noundef %13540) #10
  %13542 = call ptr @__errno_location() #11
  %13543 = load i32, ptr %13542, align 4, !tbaa !5
  %13544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13531, ptr noundef @.str.2, i32 noundef %13532, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 921, ptr noundef %13535, ptr noundef %13538, ptr noundef %13541, i32 noundef %13543) #10
  br label %13562

13545:                                            ; preds = %13523, %13516
  %13546 = load i32, ptr %416, align 4, !tbaa !5
  %13547 = call ptr @__errno_location() #11
  store i32 %13546, ptr %13547, align 4, !tbaa !5
  %13548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13549 = load i32, ptr @test_count, align 4, !tbaa !5
  %13550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13551 = load i32, ptr %13550, align 4, !tbaa !5
  %13552 = call ptr @s2n_strerror(i32 noundef %13551, ptr noundef @.str.4)
  %13553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13554 = load i32, ptr %13553, align 4, !tbaa !5
  %13555 = call ptr @s2n_strerror_debug(i32 noundef %13554, ptr noundef @.str.4)
  %13556 = call ptr @__errno_location() #11
  %13557 = load i32, ptr %13556, align 4, !tbaa !5
  %13558 = call ptr @strerror(i32 noundef %13557) #10
  %13559 = call ptr @__errno_location() #11
  %13560 = load i32, ptr %13559, align 4, !tbaa !5
  %13561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13548, ptr noundef @.str.5, i32 noundef %13549, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 921, ptr noundef %13552, ptr noundef %13555, ptr noundef %13558, i32 noundef %13560) #10
  br label %13562

13562:                                            ; preds = %13545, %13528
  call void @llvm.lifetime.end.p0(i64 4, ptr %416) #10
  br label %13563

13563:                                            ; preds = %13562
  br label %13564

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

13565:                                            ; No predecessors!
  br label %13566

13566:                                            ; preds = %13565
  br label %13567

13567:                                            ; preds = %13566, %13505
  br label %13568

13568:                                            ; preds = %13567
  br label %13569

13569:                                            ; preds = %13568
  br label %13570

13570:                                            ; preds = %13569
  %13571 = load i32, ptr @test_count, align 4, !tbaa !5
  %13572 = add nsw i32 %13571, 1
  store i32 %13572, ptr @test_count, align 4, !tbaa !5
  %13573 = load ptr, ptr %411, align 8, !tbaa !9
  %13574 = getelementptr inbounds %struct.s2n_connection, ptr %13573, i32 0, i32 32
  %13575 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %13574, i32 0, i32 5
  %13576 = load ptr, ptr %13575, align 8, !tbaa !72
  %13577 = icmp eq ptr %13576, @s2n_rsa_pkcs1_sha256
  br i1 %13577, label %13631, label %13578

13578:                                            ; preds = %13570
  br label %13579

13579:                                            ; preds = %13578
  br label %13580

13580:                                            ; preds = %13579
  call void @llvm.lifetime.start.p0(i64 4, ptr %417) #10
  %13581 = call ptr @__errno_location() #11
  %13582 = load i32, ptr %13581, align 4, !tbaa !5
  store i32 %13582, ptr %417, align 4, !tbaa !5
  %13583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13584 = call i32 @s2n_print_stacktrace(ptr noundef %13583)
  %13585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13586 = trunc i8 %13585 to i1
  br i1 %13586, label %13587, label %13609

13587:                                            ; preds = %13580
  %13588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13589 = call i32 @fileno(ptr noundef %13588) #10
  %13590 = call i32 @isatty(i32 noundef %13589) #10
  %13591 = icmp ne i32 %13590, 0
  br i1 %13591, label %13592, label %13609

13592:                                            ; preds = %13587
  %13593 = load i32, ptr %417, align 4, !tbaa !5
  %13594 = call ptr @__errno_location() #11
  store i32 %13593, ptr %13594, align 4, !tbaa !5
  %13595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13596 = load i32, ptr @test_count, align 4, !tbaa !5
  %13597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13598 = load i32, ptr %13597, align 4, !tbaa !5
  %13599 = call ptr @s2n_strerror(i32 noundef %13598, ptr noundef @.str.4)
  %13600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13601 = load i32, ptr %13600, align 4, !tbaa !5
  %13602 = call ptr @s2n_strerror_debug(i32 noundef %13601, ptr noundef @.str.4)
  %13603 = call ptr @__errno_location() #11
  %13604 = load i32, ptr %13603, align 4, !tbaa !5
  %13605 = call ptr @strerror(i32 noundef %13604) #10
  %13606 = call ptr @__errno_location() #11
  %13607 = load i32, ptr %13606, align 4, !tbaa !5
  %13608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13595, ptr noundef @.str.2, i32 noundef %13596, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 922, ptr noundef %13599, ptr noundef %13602, ptr noundef %13605, i32 noundef %13607) #10
  br label %13626

13609:                                            ; preds = %13587, %13580
  %13610 = load i32, ptr %417, align 4, !tbaa !5
  %13611 = call ptr @__errno_location() #11
  store i32 %13610, ptr %13611, align 4, !tbaa !5
  %13612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13613 = load i32, ptr @test_count, align 4, !tbaa !5
  %13614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13615 = load i32, ptr %13614, align 4, !tbaa !5
  %13616 = call ptr @s2n_strerror(i32 noundef %13615, ptr noundef @.str.4)
  %13617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13618 = load i32, ptr %13617, align 4, !tbaa !5
  %13619 = call ptr @s2n_strerror_debug(i32 noundef %13618, ptr noundef @.str.4)
  %13620 = call ptr @__errno_location() #11
  %13621 = load i32, ptr %13620, align 4, !tbaa !5
  %13622 = call ptr @strerror(i32 noundef %13621) #10
  %13623 = call ptr @__errno_location() #11
  %13624 = load i32, ptr %13623, align 4, !tbaa !5
  %13625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13612, ptr noundef @.str.5, i32 noundef %13613, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 922, ptr noundef %13616, ptr noundef %13619, ptr noundef %13622, i32 noundef %13624) #10
  br label %13626

13626:                                            ; preds = %13609, %13592
  call void @llvm.lifetime.end.p0(i64 4, ptr %417) #10
  br label %13627

13627:                                            ; preds = %13626
  br label %13628

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

13629:                                            ; No predecessors!
  br label %13630

13630:                                            ; preds = %13629
  br label %13631

13631:                                            ; preds = %13630, %13570
  br label %13632

13632:                                            ; preds = %13631
  br label %13633

13633:                                            ; preds = %13632
  %13634 = call i32 @s2n_stuffer_free(ptr noundef %412)
  call void @llvm.lifetime.end.p0(i64 40, ptr %412) #10
  %13635 = call i32 @s2n_connection_ptr_free(ptr noundef %411)
  %13636 = getelementptr inbounds %struct.s2n_result, ptr %418, i32 0, i32 0
  store i32 %13635, ptr %13636, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %411) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %419) #10
  %13637 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %13637, ptr %419, align 8, !tbaa !9
  %13638 = load ptr, ptr %419, align 8, !tbaa !9
  %13639 = getelementptr inbounds %struct.s2n_connection, ptr %13638, i32 0, i32 2
  store ptr %410, ptr %13639, align 8, !tbaa !26
  %13640 = load ptr, ptr %419, align 8, !tbaa !9
  %13641 = getelementptr inbounds %struct.s2n_connection, ptr %13640, i32 0, i32 23
  store i8 33, ptr %13641, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr %420) #10
  call void @llvm.memset.p0.i64(ptr align 8 %420, i8 0, i64 40, i1 false)
  br label %13642

13642:                                            ; preds = %13633
  %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 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %420, i32 noundef 0)
  %13646 = icmp eq i32 %13645, -1
  br i1 %13646, label %13647, label %13700

13647:                                            ; preds = %13642
  br label %13648

13648:                                            ; preds = %13647
  br label %13649

13649:                                            ; preds = %13648
  call void @llvm.lifetime.start.p0(i64 4, ptr %421) #10
  %13650 = call ptr @__errno_location() #11
  %13651 = load i32, ptr %13650, align 4, !tbaa !5
  store i32 %13651, ptr %421, align 4, !tbaa !5
  %13652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13653 = call i32 @s2n_print_stacktrace(ptr noundef %13652)
  %13654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13655 = trunc i8 %13654 to i1
  br i1 %13655, label %13656, label %13678

13656:                                            ; preds = %13649
  %13657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13658 = call i32 @fileno(ptr noundef %13657) #10
  %13659 = call i32 @isatty(i32 noundef %13658) #10
  %13660 = icmp ne i32 %13659, 0
  br i1 %13660, label %13661, label %13678

13661:                                            ; preds = %13656
  %13662 = load i32, ptr %421, align 4, !tbaa !5
  %13663 = call ptr @__errno_location() #11
  store i32 %13662, ptr %13663, align 4, !tbaa !5
  %13664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13665 = load i32, ptr @test_count, align 4, !tbaa !5
  %13666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13667 = load i32, ptr %13666, align 4, !tbaa !5
  %13668 = call ptr @s2n_strerror(i32 noundef %13667, ptr noundef @.str.4)
  %13669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13670 = load i32, ptr %13669, align 4, !tbaa !5
  %13671 = call ptr @s2n_strerror_debug(i32 noundef %13670, ptr noundef @.str.4)
  %13672 = call ptr @__errno_location() #11
  %13673 = load i32, ptr %13672, align 4, !tbaa !5
  %13674 = call ptr @strerror(i32 noundef %13673) #10
  %13675 = call ptr @__errno_location() #11
  %13676 = load i32, ptr %13675, align 4, !tbaa !5
  %13677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13664, ptr noundef @.str.2, i32 noundef %13665, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 933, ptr noundef %13668, ptr noundef %13671, ptr noundef %13674, i32 noundef %13676) #10
  br label %13695

13678:                                            ; preds = %13656, %13649
  %13679 = load i32, ptr %421, align 4, !tbaa !5
  %13680 = call ptr @__errno_location() #11
  store i32 %13679, ptr %13680, align 4, !tbaa !5
  %13681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13682 = load i32, ptr @test_count, align 4, !tbaa !5
  %13683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13684 = load i32, ptr %13683, align 4, !tbaa !5
  %13685 = call ptr @s2n_strerror(i32 noundef %13684, ptr noundef @.str.4)
  %13686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13687 = load i32, ptr %13686, align 4, !tbaa !5
  %13688 = call ptr @s2n_strerror_debug(i32 noundef %13687, ptr noundef @.str.4)
  %13689 = call ptr @__errno_location() #11
  %13690 = load i32, ptr %13689, align 4, !tbaa !5
  %13691 = call ptr @strerror(i32 noundef %13690) #10
  %13692 = call ptr @__errno_location() #11
  %13693 = load i32, ptr %13692, align 4, !tbaa !5
  %13694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13681, ptr noundef @.str.5, i32 noundef %13682, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 933, ptr noundef %13685, ptr noundef %13688, ptr noundef %13691, i32 noundef %13693) #10
  br label %13695

13695:                                            ; preds = %13678, %13661
  call void @llvm.lifetime.end.p0(i64 4, ptr %421) #10
  br label %13696

13696:                                            ; preds = %13695
  br label %13697

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

13698:                                            ; No predecessors!
  br label %13699

13699:                                            ; preds = %13698
  br label %13700

13700:                                            ; preds = %13699, %13642
  br label %13701

13701:                                            ; preds = %13700
  br label %13702

13702:                                            ; preds = %13701
  br label %13703

13703:                                            ; preds = %13702
  %13704 = load i32, ptr @test_count, align 4, !tbaa !5
  %13705 = add nsw i32 %13704, 1
  store i32 %13705, ptr @test_count, align 4, !tbaa !5
  %13706 = load i16, ptr @s2n_rsa_pkcs1_sha256, align 8, !tbaa !55
  %13707 = call i32 @s2n_stuffer_write_uint16(ptr noundef %420, i16 noundef zeroext %13706)
  %13708 = icmp eq i32 %13707, -1
  br i1 %13708, label %13709, label %13762

13709:                                            ; preds = %13703
  br label %13710

13710:                                            ; preds = %13709
  br label %13711

13711:                                            ; preds = %13710
  call void @llvm.lifetime.start.p0(i64 4, ptr %422) #10
  %13712 = call ptr @__errno_location() #11
  %13713 = load i32, ptr %13712, align 4, !tbaa !5
  store i32 %13713, ptr %422, align 4, !tbaa !5
  %13714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13715 = call i32 @s2n_print_stacktrace(ptr noundef %13714)
  %13716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13717 = trunc i8 %13716 to i1
  br i1 %13717, label %13718, label %13740

13718:                                            ; preds = %13711
  %13719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13720 = call i32 @fileno(ptr noundef %13719) #10
  %13721 = call i32 @isatty(i32 noundef %13720) #10
  %13722 = icmp ne i32 %13721, 0
  br i1 %13722, label %13723, label %13740

13723:                                            ; preds = %13718
  %13724 = load i32, ptr %422, align 4, !tbaa !5
  %13725 = call ptr @__errno_location() #11
  store i32 %13724, ptr %13725, align 4, !tbaa !5
  %13726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13727 = load i32, ptr @test_count, align 4, !tbaa !5
  %13728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13729 = load i32, ptr %13728, align 4, !tbaa !5
  %13730 = call ptr @s2n_strerror(i32 noundef %13729, ptr noundef @.str.4)
  %13731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13732 = load i32, ptr %13731, align 4, !tbaa !5
  %13733 = call ptr @s2n_strerror_debug(i32 noundef %13732, ptr noundef @.str.4)
  %13734 = call ptr @__errno_location() #11
  %13735 = load i32, ptr %13734, align 4, !tbaa !5
  %13736 = call ptr @strerror(i32 noundef %13735) #10
  %13737 = call ptr @__errno_location() #11
  %13738 = load i32, ptr %13737, align 4, !tbaa !5
  %13739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13726, ptr noundef @.str.2, i32 noundef %13727, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 934, ptr noundef %13730, ptr noundef %13733, ptr noundef %13736, i32 noundef %13738) #10
  br label %13757

13740:                                            ; preds = %13718, %13711
  %13741 = load i32, ptr %422, align 4, !tbaa !5
  %13742 = call ptr @__errno_location() #11
  store i32 %13741, ptr %13742, align 4, !tbaa !5
  %13743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13744 = load i32, ptr @test_count, align 4, !tbaa !5
  %13745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13746 = load i32, ptr %13745, align 4, !tbaa !5
  %13747 = call ptr @s2n_strerror(i32 noundef %13746, ptr noundef @.str.4)
  %13748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13749 = load i32, ptr %13748, align 4, !tbaa !5
  %13750 = call ptr @s2n_strerror_debug(i32 noundef %13749, ptr noundef @.str.4)
  %13751 = call ptr @__errno_location() #11
  %13752 = load i32, ptr %13751, align 4, !tbaa !5
  %13753 = call ptr @strerror(i32 noundef %13752) #10
  %13754 = call ptr @__errno_location() #11
  %13755 = load i32, ptr %13754, align 4, !tbaa !5
  %13756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13743, ptr noundef @.str.5, i32 noundef %13744, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 934, ptr noundef %13747, ptr noundef %13750, ptr noundef %13753, i32 noundef %13755) #10
  br label %13757

13757:                                            ; preds = %13740, %13723
  call void @llvm.lifetime.end.p0(i64 4, ptr %422) #10
  br label %13758

13758:                                            ; preds = %13757
  br label %13759

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

13760:                                            ; No predecessors!
  br label %13761

13761:                                            ; preds = %13760
  br label %13762

13762:                                            ; preds = %13761, %13703
  br label %13763

13763:                                            ; preds = %13762
  br label %13764

13764:                                            ; preds = %13763
  br label %13765

13765:                                            ; preds = %13764
  %13766 = load i32, ptr @test_count, align 4, !tbaa !5
  %13767 = add nsw i32 %13766, 1
  store i32 %13767, ptr @test_count, align 4, !tbaa !5
  %13768 = load ptr, ptr %419, align 8, !tbaa !9
  %13769 = call i32 @s2n_signature_algorithm_recv(ptr noundef %13768, ptr noundef %420)
  %13770 = getelementptr inbounds %struct.s2n_result, ptr %423, i32 0, i32 0
  store i32 %13769, ptr %13770, align 4
  %13771 = getelementptr inbounds %struct.s2n_result, ptr %423, i32 0, i32 0
  %13772 = load i32, ptr %13771, align 4
  %13773 = call zeroext i1 @s2n_result_is_ok(i32 %13772)
  br i1 %13773, label %13827, label %13774

13774:                                            ; preds = %13765
  br label %13775

13775:                                            ; preds = %13774
  br label %13776

13776:                                            ; preds = %13775
  call void @llvm.lifetime.start.p0(i64 4, ptr %424) #10
  %13777 = call ptr @__errno_location() #11
  %13778 = load i32, ptr %13777, align 4, !tbaa !5
  store i32 %13778, ptr %424, align 4, !tbaa !5
  %13779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13780 = call i32 @s2n_print_stacktrace(ptr noundef %13779)
  %13781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13782 = trunc i8 %13781 to i1
  br i1 %13782, label %13783, label %13805

13783:                                            ; preds = %13776
  %13784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13785 = call i32 @fileno(ptr noundef %13784) #10
  %13786 = call i32 @isatty(i32 noundef %13785) #10
  %13787 = icmp ne i32 %13786, 0
  br i1 %13787, label %13788, label %13805

13788:                                            ; preds = %13783
  %13789 = load i32, ptr %424, align 4, !tbaa !5
  %13790 = call ptr @__errno_location() #11
  store i32 %13789, ptr %13790, align 4, !tbaa !5
  %13791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13792 = load i32, ptr @test_count, align 4, !tbaa !5
  %13793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13794 = load i32, ptr %13793, align 4, !tbaa !5
  %13795 = call ptr @s2n_strerror(i32 noundef %13794, ptr noundef @.str.4)
  %13796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13797 = load i32, ptr %13796, align 4, !tbaa !5
  %13798 = call ptr @s2n_strerror_debug(i32 noundef %13797, ptr noundef @.str.4)
  %13799 = call ptr @__errno_location() #11
  %13800 = load i32, ptr %13799, align 4, !tbaa !5
  %13801 = call ptr @strerror(i32 noundef %13800) #10
  %13802 = call ptr @__errno_location() #11
  %13803 = load i32, ptr %13802, align 4, !tbaa !5
  %13804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13791, ptr noundef @.str.2, i32 noundef %13792, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 936, ptr noundef %13795, ptr noundef %13798, ptr noundef %13801, i32 noundef %13803) #10
  br label %13822

13805:                                            ; preds = %13783, %13776
  %13806 = load i32, ptr %424, align 4, !tbaa !5
  %13807 = call ptr @__errno_location() #11
  store i32 %13806, ptr %13807, align 4, !tbaa !5
  %13808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13809 = load i32, ptr @test_count, align 4, !tbaa !5
  %13810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13811 = load i32, ptr %13810, align 4, !tbaa !5
  %13812 = call ptr @s2n_strerror(i32 noundef %13811, ptr noundef @.str.4)
  %13813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13814 = load i32, ptr %13813, align 4, !tbaa !5
  %13815 = call ptr @s2n_strerror_debug(i32 noundef %13814, ptr noundef @.str.4)
  %13816 = call ptr @__errno_location() #11
  %13817 = load i32, ptr %13816, align 4, !tbaa !5
  %13818 = call ptr @strerror(i32 noundef %13817) #10
  %13819 = call ptr @__errno_location() #11
  %13820 = load i32, ptr %13819, align 4, !tbaa !5
  %13821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13808, ptr noundef @.str.5, i32 noundef %13809, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 936, ptr noundef %13812, ptr noundef %13815, ptr noundef %13818, i32 noundef %13820) #10
  br label %13822

13822:                                            ; preds = %13805, %13788
  call void @llvm.lifetime.end.p0(i64 4, ptr %424) #10
  br label %13823

13823:                                            ; preds = %13822
  br label %13824

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

13825:                                            ; No predecessors!
  br label %13826

13826:                                            ; preds = %13825
  br label %13827

13827:                                            ; preds = %13826, %13765
  br label %13828

13828:                                            ; preds = %13827
  br label %13829

13829:                                            ; preds = %13828
  br label %13830

13830:                                            ; preds = %13829
  %13831 = load i32, ptr @test_count, align 4, !tbaa !5
  %13832 = add nsw i32 %13831, 1
  store i32 %13832, ptr @test_count, align 4, !tbaa !5
  %13833 = load ptr, ptr %419, align 8, !tbaa !9
  %13834 = getelementptr inbounds %struct.s2n_connection, ptr %13833, i32 0, i32 32
  %13835 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %13834, i32 0, i32 6
  %13836 = load ptr, ptr %13835, align 8, !tbaa !65
  %13837 = icmp eq ptr %13836, @s2n_rsa_pkcs1_sha256
  br i1 %13837, label %13891, label %13838

13838:                                            ; preds = %13830
  br label %13839

13839:                                            ; preds = %13838
  br label %13840

13840:                                            ; preds = %13839
  call void @llvm.lifetime.start.p0(i64 4, ptr %425) #10
  %13841 = call ptr @__errno_location() #11
  %13842 = load i32, ptr %13841, align 4, !tbaa !5
  store i32 %13842, ptr %425, align 4, !tbaa !5
  %13843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13844 = call i32 @s2n_print_stacktrace(ptr noundef %13843)
  %13845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13846 = trunc i8 %13845 to i1
  br i1 %13846, label %13847, label %13869

13847:                                            ; preds = %13840
  %13848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13849 = call i32 @fileno(ptr noundef %13848) #10
  %13850 = call i32 @isatty(i32 noundef %13849) #10
  %13851 = icmp ne i32 %13850, 0
  br i1 %13851, label %13852, label %13869

13852:                                            ; preds = %13847
  %13853 = load i32, ptr %425, align 4, !tbaa !5
  %13854 = call ptr @__errno_location() #11
  store i32 %13853, ptr %13854, align 4, !tbaa !5
  %13855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13856 = load i32, ptr @test_count, align 4, !tbaa !5
  %13857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13858 = load i32, ptr %13857, align 4, !tbaa !5
  %13859 = call ptr @s2n_strerror(i32 noundef %13858, ptr noundef @.str.4)
  %13860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13861 = load i32, ptr %13860, align 4, !tbaa !5
  %13862 = call ptr @s2n_strerror_debug(i32 noundef %13861, ptr noundef @.str.4)
  %13863 = call ptr @__errno_location() #11
  %13864 = load i32, ptr %13863, align 4, !tbaa !5
  %13865 = call ptr @strerror(i32 noundef %13864) #10
  %13866 = call ptr @__errno_location() #11
  %13867 = load i32, ptr %13866, align 4, !tbaa !5
  %13868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13855, ptr noundef @.str.2, i32 noundef %13856, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 937, ptr noundef %13859, ptr noundef %13862, ptr noundef %13865, i32 noundef %13867) #10
  br label %13886

13869:                                            ; preds = %13847, %13840
  %13870 = load i32, ptr %425, align 4, !tbaa !5
  %13871 = call ptr @__errno_location() #11
  store i32 %13870, ptr %13871, align 4, !tbaa !5
  %13872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13873 = load i32, ptr @test_count, align 4, !tbaa !5
  %13874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13875 = load i32, ptr %13874, align 4, !tbaa !5
  %13876 = call ptr @s2n_strerror(i32 noundef %13875, ptr noundef @.str.4)
  %13877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13878 = load i32, ptr %13877, align 4, !tbaa !5
  %13879 = call ptr @s2n_strerror_debug(i32 noundef %13878, ptr noundef @.str.4)
  %13880 = call ptr @__errno_location() #11
  %13881 = load i32, ptr %13880, align 4, !tbaa !5
  %13882 = call ptr @strerror(i32 noundef %13881) #10
  %13883 = call ptr @__errno_location() #11
  %13884 = load i32, ptr %13883, align 4, !tbaa !5
  %13885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13872, ptr noundef @.str.5, i32 noundef %13873, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 937, ptr noundef %13876, ptr noundef %13879, ptr noundef %13882, i32 noundef %13884) #10
  br label %13886

13886:                                            ; preds = %13869, %13852
  call void @llvm.lifetime.end.p0(i64 4, ptr %425) #10
  br label %13887

13887:                                            ; preds = %13886
  br label %13888

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

13889:                                            ; No predecessors!
  br label %13890

13890:                                            ; preds = %13889
  br label %13891

13891:                                            ; preds = %13890, %13830
  br label %13892

13892:                                            ; preds = %13891
  br label %13893

13893:                                            ; preds = %13892
  %13894 = call i32 @s2n_stuffer_free(ptr noundef %420)
  call void @llvm.lifetime.end.p0(i64 40, ptr %420) #10
  %13895 = call i32 @s2n_connection_ptr_free(ptr noundef %419)
  %13896 = getelementptr inbounds %struct.s2n_result, ptr %426, i32 0, i32 0
  store i32 %13895, ptr %13896, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %419) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %427) #10
  call void @llvm.memset.p0.i64(ptr align 8 %427, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %428) #10
  %13897 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %13897, ptr %428, align 8, !tbaa !9
  %13898 = load ptr, ptr %428, align 8, !tbaa !9
  %13899 = getelementptr inbounds %struct.s2n_connection, ptr %13898, i32 0, i32 2
  store ptr %410, ptr %13899, align 8, !tbaa !26
  %13900 = load ptr, ptr %428, align 8, !tbaa !9
  %13901 = getelementptr inbounds %struct.s2n_connection, ptr %13900, i32 0, i32 23
  store i8 33, ptr %13901, align 4, !tbaa !50
  %13902 = load ptr, ptr %428, align 8, !tbaa !9
  %13903 = getelementptr inbounds %struct.s2n_connection, ptr %13902, i32 0, i32 27
  %13904 = load ptr, ptr %13903, align 8, !tbaa !66
  %13905 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %13904, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %13905, align 8, !tbaa !67
  br label %13906

13906:                                            ; preds = %13893
  br label %13907

13907:                                            ; preds = %13906
  br label %13908

13908:                                            ; preds = %13907
  %13909 = load i32, ptr @test_count, align 4, !tbaa !5
  %13910 = add nsw i32 %13909, 1
  store i32 %13910, ptr @test_count, align 4, !tbaa !5
  %13911 = load ptr, ptr %428, align 8, !tbaa !9
  %13912 = call i32 @s2n_signature_algorithm_recv(ptr noundef %13911, ptr noundef %427)
  %13913 = getelementptr inbounds %struct.s2n_result, ptr %429, i32 0, i32 0
  store i32 %13912, ptr %13913, align 4
  %13914 = getelementptr inbounds %struct.s2n_result, ptr %429, i32 0, i32 0
  %13915 = load i32, ptr %13914, align 4
  %13916 = call zeroext i1 @s2n_result_is_error(i32 %13915)
  br i1 %13916, label %13970, label %13917

13917:                                            ; preds = %13908
  br label %13918

13918:                                            ; preds = %13917
  br label %13919

13919:                                            ; preds = %13918
  call void @llvm.lifetime.start.p0(i64 4, ptr %430) #10
  %13920 = call ptr @__errno_location() #11
  %13921 = load i32, ptr %13920, align 4, !tbaa !5
  store i32 %13921, ptr %430, align 4, !tbaa !5
  %13922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13923 = call i32 @s2n_print_stacktrace(ptr noundef %13922)
  %13924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13925 = trunc i8 %13924 to i1
  br i1 %13925, label %13926, label %13948

13926:                                            ; preds = %13919
  %13927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13928 = call i32 @fileno(ptr noundef %13927) #10
  %13929 = call i32 @isatty(i32 noundef %13928) #10
  %13930 = icmp ne i32 %13929, 0
  br i1 %13930, label %13931, label %13948

13931:                                            ; preds = %13926
  %13932 = load i32, ptr %430, align 4, !tbaa !5
  %13933 = call ptr @__errno_location() #11
  store i32 %13932, ptr %13933, align 4, !tbaa !5
  %13934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13935 = load i32, ptr @test_count, align 4, !tbaa !5
  %13936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13937 = load i32, ptr %13936, align 4, !tbaa !5
  %13938 = call ptr @s2n_strerror(i32 noundef %13937, ptr noundef @.str.4)
  %13939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13940 = load i32, ptr %13939, align 4, !tbaa !5
  %13941 = call ptr @s2n_strerror_debug(i32 noundef %13940, ptr noundef @.str.4)
  %13942 = call ptr @__errno_location() #11
  %13943 = load i32, ptr %13942, align 4, !tbaa !5
  %13944 = call ptr @strerror(i32 noundef %13943) #10
  %13945 = call ptr @__errno_location() #11
  %13946 = load i32, ptr %13945, align 4, !tbaa !5
  %13947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13934, ptr noundef @.str.2, i32 noundef %13935, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 953, ptr noundef %13938, ptr noundef %13941, ptr noundef %13944, i32 noundef %13946) #10
  br label %13965

13948:                                            ; preds = %13926, %13919
  %13949 = load i32, ptr %430, align 4, !tbaa !5
  %13950 = call ptr @__errno_location() #11
  store i32 %13949, ptr %13950, align 4, !tbaa !5
  %13951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13952 = load i32, ptr @test_count, align 4, !tbaa !5
  %13953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13954 = load i32, ptr %13953, align 4, !tbaa !5
  %13955 = call ptr @s2n_strerror(i32 noundef %13954, ptr noundef @.str.4)
  %13956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13957 = load i32, ptr %13956, align 4, !tbaa !5
  %13958 = call ptr @s2n_strerror_debug(i32 noundef %13957, ptr noundef @.str.4)
  %13959 = call ptr @__errno_location() #11
  %13960 = load i32, ptr %13959, align 4, !tbaa !5
  %13961 = call ptr @strerror(i32 noundef %13960) #10
  %13962 = call ptr @__errno_location() #11
  %13963 = load i32, ptr %13962, align 4, !tbaa !5
  %13964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13951, ptr noundef @.str.5, i32 noundef %13952, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 953, ptr noundef %13955, ptr noundef %13958, ptr noundef %13961, i32 noundef %13963) #10
  br label %13965

13965:                                            ; preds = %13948, %13931
  call void @llvm.lifetime.end.p0(i64 4, ptr %430) #10
  br label %13966

13966:                                            ; preds = %13965
  br label %13967

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

13968:                                            ; No predecessors!
  br label %13969

13969:                                            ; preds = %13968
  br label %13970

13970:                                            ; preds = %13969, %13908
  br label %13971

13971:                                            ; preds = %13970
  br label %13972

13972:                                            ; preds = %13971
  br label %13973

13973:                                            ; preds = %13972
  %13974 = load i32, ptr @test_count, align 4, !tbaa !5
  %13975 = add nsw i32 %13974, 1
  store i32 %13975, ptr @test_count, align 4, !tbaa !5
  %13976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13977 = load i32, ptr %13976, align 4, !tbaa !5
  %13978 = icmp eq i32 %13977, 335544322
  br i1 %13978, label %14032, label %13979

13979:                                            ; preds = %13973
  br label %13980

13980:                                            ; preds = %13979
  br label %13981

13981:                                            ; preds = %13980
  call void @llvm.lifetime.start.p0(i64 4, ptr %431) #10
  %13982 = call ptr @__errno_location() #11
  %13983 = load i32, ptr %13982, align 4, !tbaa !5
  store i32 %13983, ptr %431, align 4, !tbaa !5
  %13984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13985 = call i32 @s2n_print_stacktrace(ptr noundef %13984)
  %13986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13987 = trunc i8 %13986 to i1
  br i1 %13987, label %13988, label %14010

13988:                                            ; preds = %13981
  %13989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13990 = call i32 @fileno(ptr noundef %13989) #10
  %13991 = call i32 @isatty(i32 noundef %13990) #10
  %13992 = icmp ne i32 %13991, 0
  br i1 %13992, label %13993, label %14010

13993:                                            ; preds = %13988
  %13994 = load i32, ptr %431, align 4, !tbaa !5
  %13995 = call ptr @__errno_location() #11
  store i32 %13994, ptr %13995, align 4, !tbaa !5
  %13996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13997 = load i32, ptr @test_count, align 4, !tbaa !5
  %13998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13999 = load i32, ptr %13998, align 4, !tbaa !5
  %14000 = call ptr @s2n_strerror(i32 noundef %13999, ptr noundef @.str.4)
  %14001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14002 = load i32, ptr %14001, align 4, !tbaa !5
  %14003 = call ptr @s2n_strerror_debug(i32 noundef %14002, ptr noundef @.str.4)
  %14004 = call ptr @__errno_location() #11
  %14005 = load i32, ptr %14004, align 4, !tbaa !5
  %14006 = call ptr @strerror(i32 noundef %14005) #10
  %14007 = call ptr @__errno_location() #11
  %14008 = load i32, ptr %14007, align 4, !tbaa !5
  %14009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13996, ptr noundef @.str.2, i32 noundef %13997, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 953, ptr noundef %14000, ptr noundef %14003, ptr noundef %14006, i32 noundef %14008) #10
  br label %14027

14010:                                            ; preds = %13988, %13981
  %14011 = load i32, ptr %431, align 4, !tbaa !5
  %14012 = call ptr @__errno_location() #11
  store i32 %14011, ptr %14012, align 4, !tbaa !5
  %14013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14014 = load i32, ptr @test_count, align 4, !tbaa !5
  %14015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14016 = load i32, ptr %14015, align 4, !tbaa !5
  %14017 = call ptr @s2n_strerror(i32 noundef %14016, ptr noundef @.str.4)
  %14018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14019 = load i32, ptr %14018, align 4, !tbaa !5
  %14020 = call ptr @s2n_strerror_debug(i32 noundef %14019, ptr noundef @.str.4)
  %14021 = call ptr @__errno_location() #11
  %14022 = load i32, ptr %14021, align 4, !tbaa !5
  %14023 = call ptr @strerror(i32 noundef %14022) #10
  %14024 = call ptr @__errno_location() #11
  %14025 = load i32, ptr %14024, align 4, !tbaa !5
  %14026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14013, ptr noundef @.str.5, i32 noundef %14014, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 953, ptr noundef %14017, ptr noundef %14020, ptr noundef %14023, i32 noundef %14025) #10
  br label %14027

14027:                                            ; preds = %14010, %13993
  call void @llvm.lifetime.end.p0(i64 4, ptr %431) #10
  br label %14028

14028:                                            ; preds = %14027
  br label %14029

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

14030:                                            ; No predecessors!
  br label %14031

14031:                                            ; preds = %14030
  br label %14032

14032:                                            ; preds = %14031, %13973
  br label %14033

14033:                                            ; preds = %14032
  br label %14034

14034:                                            ; preds = %14033
  br label %14035

14035:                                            ; preds = %14034
  %14036 = load i32, ptr @test_count, align 4, !tbaa !5
  %14037 = add nsw i32 %14036, 1
  store i32 %14037, ptr @test_count, align 4, !tbaa !5
  %14038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14039 = load i32, ptr %14038, align 4, !tbaa !5
  %14040 = call ptr @s2n_strerror_debug(i32 noundef %14039, ptr noundef @.str.4)
  %14041 = icmp eq ptr %14040, null
  br i1 %14041, label %14042, label %14095

14042:                                            ; preds = %14035
  br label %14043

14043:                                            ; preds = %14042
  br label %14044

14044:                                            ; preds = %14043
  call void @llvm.lifetime.start.p0(i64 4, ptr %432) #10
  %14045 = call ptr @__errno_location() #11
  %14046 = load i32, ptr %14045, align 4, !tbaa !5
  store i32 %14046, ptr %432, align 4, !tbaa !5
  %14047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14048 = call i32 @s2n_print_stacktrace(ptr noundef %14047)
  %14049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14050 = trunc i8 %14049 to i1
  br i1 %14050, label %14051, label %14073

14051:                                            ; preds = %14044
  %14052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14053 = call i32 @fileno(ptr noundef %14052) #10
  %14054 = call i32 @isatty(i32 noundef %14053) #10
  %14055 = icmp ne i32 %14054, 0
  br i1 %14055, label %14056, label %14073

14056:                                            ; preds = %14051
  %14057 = load i32, ptr %432, align 4, !tbaa !5
  %14058 = call ptr @__errno_location() #11
  store i32 %14057, ptr %14058, align 4, !tbaa !5
  %14059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14060 = load i32, ptr @test_count, align 4, !tbaa !5
  %14061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14062 = load i32, ptr %14061, align 4, !tbaa !5
  %14063 = call ptr @s2n_strerror(i32 noundef %14062, ptr noundef @.str.4)
  %14064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14065 = load i32, ptr %14064, align 4, !tbaa !5
  %14066 = call ptr @s2n_strerror_debug(i32 noundef %14065, ptr noundef @.str.4)
  %14067 = call ptr @__errno_location() #11
  %14068 = load i32, ptr %14067, align 4, !tbaa !5
  %14069 = call ptr @strerror(i32 noundef %14068) #10
  %14070 = call ptr @__errno_location() #11
  %14071 = load i32, ptr %14070, align 4, !tbaa !5
  %14072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14059, ptr noundef @.str.2, i32 noundef %14060, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 953, ptr noundef %14063, ptr noundef %14066, ptr noundef %14069, i32 noundef %14071) #10
  br label %14090

14073:                                            ; preds = %14051, %14044
  %14074 = load i32, ptr %432, align 4, !tbaa !5
  %14075 = call ptr @__errno_location() #11
  store i32 %14074, ptr %14075, align 4, !tbaa !5
  %14076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14077 = load i32, ptr @test_count, align 4, !tbaa !5
  %14078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14079 = load i32, ptr %14078, align 4, !tbaa !5
  %14080 = call ptr @s2n_strerror(i32 noundef %14079, ptr noundef @.str.4)
  %14081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14082 = load i32, ptr %14081, align 4, !tbaa !5
  %14083 = call ptr @s2n_strerror_debug(i32 noundef %14082, ptr noundef @.str.4)
  %14084 = call ptr @__errno_location() #11
  %14085 = load i32, ptr %14084, align 4, !tbaa !5
  %14086 = call ptr @strerror(i32 noundef %14085) #10
  %14087 = call ptr @__errno_location() #11
  %14088 = load i32, ptr %14087, align 4, !tbaa !5
  %14089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14076, ptr noundef @.str.5, i32 noundef %14077, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 953, ptr noundef %14080, ptr noundef %14083, ptr noundef %14086, i32 noundef %14088) #10
  br label %14090

14090:                                            ; preds = %14073, %14056
  call void @llvm.lifetime.end.p0(i64 4, ptr %432) #10
  br label %14091

14091:                                            ; preds = %14090
  br label %14092

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

14093:                                            ; No predecessors!
  br label %14094

14094:                                            ; preds = %14093
  br label %14095

14095:                                            ; preds = %14094, %14035
  br label %14096

14096:                                            ; preds = %14095
  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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14101, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14102 = call ptr @__errno_location() #11
  store i32 0, ptr %14102, align 4, !tbaa !5
  br label %14103

14103:                                            ; preds = %14100
  br label %14104

14104:                                            ; preds = %14103
  br label %14105

14105:                                            ; preds = %14104
  br label %14106

14106:                                            ; preds = %14105
  %14107 = call i32 @s2n_connection_ptr_free(ptr noundef %428)
  %14108 = getelementptr inbounds %struct.s2n_result, ptr %433, i32 0, i32 0
  store i32 %14107, ptr %14108, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %428) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %434) #10
  %14109 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %14109, ptr %434, align 8, !tbaa !9
  %14110 = load ptr, ptr %434, align 8, !tbaa !9
  %14111 = getelementptr inbounds %struct.s2n_connection, ptr %14110, i32 0, i32 2
  store ptr %410, ptr %14111, align 8, !tbaa !26
  %14112 = load ptr, ptr %434, align 8, !tbaa !9
  %14113 = getelementptr inbounds %struct.s2n_connection, ptr %14112, i32 0, i32 23
  store i8 32, ptr %14113, align 4, !tbaa !50
  %14114 = load ptr, ptr %434, align 8, !tbaa !9
  %14115 = getelementptr inbounds %struct.s2n_connection, ptr %14114, i32 0, i32 27
  %14116 = load ptr, ptr %14115, align 8, !tbaa !66
  %14117 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %14116, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %14117, align 8, !tbaa !67
  br label %14118

14118:                                            ; preds = %14106
  %14119 = load i32, ptr @test_count, align 4, !tbaa !5
  %14120 = add nsw i32 %14119, 1
  store i32 %14120, ptr @test_count, align 4, !tbaa !5
  %14121 = load ptr, ptr %434, align 8, !tbaa !9
  %14122 = call i32 @s2n_signature_algorithm_recv(ptr noundef %14121, ptr noundef %427)
  %14123 = getelementptr inbounds %struct.s2n_result, ptr %435, i32 0, i32 0
  store i32 %14122, ptr %14123, align 4
  %14124 = getelementptr inbounds %struct.s2n_result, ptr %435, i32 0, i32 0
  %14125 = load i32, ptr %14124, align 4
  %14126 = call zeroext i1 @s2n_result_is_ok(i32 %14125)
  br i1 %14126, label %14180, label %14127

14127:                                            ; preds = %14118
  br label %14128

14128:                                            ; preds = %14127
  br label %14129

14129:                                            ; preds = %14128
  call void @llvm.lifetime.start.p0(i64 4, ptr %436) #10
  %14130 = call ptr @__errno_location() #11
  %14131 = load i32, ptr %14130, align 4, !tbaa !5
  store i32 %14131, ptr %436, align 4, !tbaa !5
  %14132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14133 = call i32 @s2n_print_stacktrace(ptr noundef %14132)
  %14134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14135 = trunc i8 %14134 to i1
  br i1 %14135, label %14136, label %14158

14136:                                            ; preds = %14129
  %14137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14138 = call i32 @fileno(ptr noundef %14137) #10
  %14139 = call i32 @isatty(i32 noundef %14138) #10
  %14140 = icmp ne i32 %14139, 0
  br i1 %14140, label %14141, label %14158

14141:                                            ; preds = %14136
  %14142 = load i32, ptr %436, align 4, !tbaa !5
  %14143 = call ptr @__errno_location() #11
  store i32 %14142, ptr %14143, align 4, !tbaa !5
  %14144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14145 = load i32, ptr @test_count, align 4, !tbaa !5
  %14146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14147 = load i32, ptr %14146, align 4, !tbaa !5
  %14148 = call ptr @s2n_strerror(i32 noundef %14147, ptr noundef @.str.4)
  %14149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14150 = load i32, ptr %14149, align 4, !tbaa !5
  %14151 = call ptr @s2n_strerror_debug(i32 noundef %14150, ptr noundef @.str.4)
  %14152 = call ptr @__errno_location() #11
  %14153 = load i32, ptr %14152, align 4, !tbaa !5
  %14154 = call ptr @strerror(i32 noundef %14153) #10
  %14155 = call ptr @__errno_location() #11
  %14156 = load i32, ptr %14155, align 4, !tbaa !5
  %14157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14144, ptr noundef @.str.2, i32 noundef %14145, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 964, ptr noundef %14148, ptr noundef %14151, ptr noundef %14154, i32 noundef %14156) #10
  br label %14175

14158:                                            ; preds = %14136, %14129
  %14159 = load i32, ptr %436, align 4, !tbaa !5
  %14160 = call ptr @__errno_location() #11
  store i32 %14159, ptr %14160, align 4, !tbaa !5
  %14161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14162 = load i32, ptr @test_count, align 4, !tbaa !5
  %14163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14164 = load i32, ptr %14163, align 4, !tbaa !5
  %14165 = call ptr @s2n_strerror(i32 noundef %14164, ptr noundef @.str.4)
  %14166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14167 = load i32, ptr %14166, align 4, !tbaa !5
  %14168 = call ptr @s2n_strerror_debug(i32 noundef %14167, ptr noundef @.str.4)
  %14169 = call ptr @__errno_location() #11
  %14170 = load i32, ptr %14169, align 4, !tbaa !5
  %14171 = call ptr @strerror(i32 noundef %14170) #10
  %14172 = call ptr @__errno_location() #11
  %14173 = load i32, ptr %14172, align 4, !tbaa !5
  %14174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14161, ptr noundef @.str.5, i32 noundef %14162, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 964, ptr noundef %14165, ptr noundef %14168, ptr noundef %14171, i32 noundef %14173) #10
  br label %14175

14175:                                            ; preds = %14158, %14141
  call void @llvm.lifetime.end.p0(i64 4, ptr %436) #10
  br label %14176

14176:                                            ; preds = %14175
  br label %14177

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

14178:                                            ; No predecessors!
  br label %14179

14179:                                            ; preds = %14178
  br label %14180

14180:                                            ; preds = %14179, %14118
  br label %14181

14181:                                            ; preds = %14180
  br label %14182

14182:                                            ; preds = %14181
  br label %14183

14183:                                            ; preds = %14182
  %14184 = load i32, ptr @test_count, align 4, !tbaa !5
  %14185 = add nsw i32 %14184, 1
  store i32 %14185, ptr @test_count, align 4, !tbaa !5
  %14186 = load ptr, ptr %434, align 8, !tbaa !9
  %14187 = getelementptr inbounds %struct.s2n_connection, ptr %14186, i32 0, i32 32
  %14188 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %14187, i32 0, i32 5
  %14189 = load ptr, ptr %14188, align 8, !tbaa !72
  %14190 = icmp eq ptr %14189, @s2n_rsa_pkcs1_md5_sha1
  br i1 %14190, label %14244, label %14191

14191:                                            ; preds = %14183
  br label %14192

14192:                                            ; preds = %14191
  br label %14193

14193:                                            ; preds = %14192
  call void @llvm.lifetime.start.p0(i64 4, ptr %437) #10
  %14194 = call ptr @__errno_location() #11
  %14195 = load i32, ptr %14194, align 4, !tbaa !5
  store i32 %14195, ptr %437, align 4, !tbaa !5
  %14196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14197 = call i32 @s2n_print_stacktrace(ptr noundef %14196)
  %14198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14199 = trunc i8 %14198 to i1
  br i1 %14199, label %14200, label %14222

14200:                                            ; preds = %14193
  %14201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14202 = call i32 @fileno(ptr noundef %14201) #10
  %14203 = call i32 @isatty(i32 noundef %14202) #10
  %14204 = icmp ne i32 %14203, 0
  br i1 %14204, label %14205, label %14222

14205:                                            ; preds = %14200
  %14206 = load i32, ptr %437, align 4, !tbaa !5
  %14207 = call ptr @__errno_location() #11
  store i32 %14206, ptr %14207, align 4, !tbaa !5
  %14208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14209 = load i32, ptr @test_count, align 4, !tbaa !5
  %14210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14211 = load i32, ptr %14210, align 4, !tbaa !5
  %14212 = call ptr @s2n_strerror(i32 noundef %14211, ptr noundef @.str.4)
  %14213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14214 = load i32, ptr %14213, align 4, !tbaa !5
  %14215 = call ptr @s2n_strerror_debug(i32 noundef %14214, ptr noundef @.str.4)
  %14216 = call ptr @__errno_location() #11
  %14217 = load i32, ptr %14216, align 4, !tbaa !5
  %14218 = call ptr @strerror(i32 noundef %14217) #10
  %14219 = call ptr @__errno_location() #11
  %14220 = load i32, ptr %14219, align 4, !tbaa !5
  %14221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14208, ptr noundef @.str.2, i32 noundef %14209, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 965, ptr noundef %14212, ptr noundef %14215, ptr noundef %14218, i32 noundef %14220) #10
  br label %14239

14222:                                            ; preds = %14200, %14193
  %14223 = load i32, ptr %437, align 4, !tbaa !5
  %14224 = call ptr @__errno_location() #11
  store i32 %14223, ptr %14224, align 4, !tbaa !5
  %14225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14226 = load i32, ptr @test_count, align 4, !tbaa !5
  %14227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14228 = load i32, ptr %14227, align 4, !tbaa !5
  %14229 = call ptr @s2n_strerror(i32 noundef %14228, ptr noundef @.str.4)
  %14230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14231 = load i32, ptr %14230, align 4, !tbaa !5
  %14232 = call ptr @s2n_strerror_debug(i32 noundef %14231, ptr noundef @.str.4)
  %14233 = call ptr @__errno_location() #11
  %14234 = load i32, ptr %14233, align 4, !tbaa !5
  %14235 = call ptr @strerror(i32 noundef %14234) #10
  %14236 = call ptr @__errno_location() #11
  %14237 = load i32, ptr %14236, align 4, !tbaa !5
  %14238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14225, ptr noundef @.str.5, i32 noundef %14226, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 965, ptr noundef %14229, ptr noundef %14232, ptr noundef %14235, i32 noundef %14237) #10
  br label %14239

14239:                                            ; preds = %14222, %14205
  call void @llvm.lifetime.end.p0(i64 4, ptr %437) #10
  br label %14240

14240:                                            ; preds = %14239
  br label %14241

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

14242:                                            ; No predecessors!
  br label %14243

14243:                                            ; preds = %14242
  br label %14244

14244:                                            ; preds = %14243, %14183
  br label %14245

14245:                                            ; preds = %14244
  br label %14246

14246:                                            ; preds = %14245
  %14247 = load ptr, ptr %434, align 8, !tbaa !9
  %14248 = getelementptr inbounds %struct.s2n_connection, ptr %14247, i32 0, i32 27
  %14249 = load ptr, ptr %14248, align 8, !tbaa !66
  %14250 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %14249, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %14250, align 8, !tbaa !67
  br label %14251

14251:                                            ; preds = %14246
  %14252 = load i32, ptr @test_count, align 4, !tbaa !5
  %14253 = add nsw i32 %14252, 1
  store i32 %14253, ptr @test_count, align 4, !tbaa !5
  %14254 = load ptr, ptr %434, align 8, !tbaa !9
  %14255 = call i32 @s2n_signature_algorithm_recv(ptr noundef %14254, ptr noundef %427)
  %14256 = getelementptr inbounds %struct.s2n_result, ptr %438, i32 0, i32 0
  store i32 %14255, ptr %14256, align 4
  %14257 = getelementptr inbounds %struct.s2n_result, ptr %438, i32 0, i32 0
  %14258 = load i32, ptr %14257, align 4
  %14259 = call zeroext i1 @s2n_result_is_ok(i32 %14258)
  br i1 %14259, label %14313, label %14260

14260:                                            ; preds = %14251
  br label %14261

14261:                                            ; preds = %14260
  br label %14262

14262:                                            ; preds = %14261
  call void @llvm.lifetime.start.p0(i64 4, ptr %439) #10
  %14263 = call ptr @__errno_location() #11
  %14264 = load i32, ptr %14263, align 4, !tbaa !5
  store i32 %14264, ptr %439, align 4, !tbaa !5
  %14265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14266 = call i32 @s2n_print_stacktrace(ptr noundef %14265)
  %14267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14268 = trunc i8 %14267 to i1
  br i1 %14268, label %14269, label %14291

14269:                                            ; preds = %14262
  %14270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14271 = call i32 @fileno(ptr noundef %14270) #10
  %14272 = call i32 @isatty(i32 noundef %14271) #10
  %14273 = icmp ne i32 %14272, 0
  br i1 %14273, label %14274, label %14291

14274:                                            ; preds = %14269
  %14275 = load i32, ptr %439, align 4, !tbaa !5
  %14276 = call ptr @__errno_location() #11
  store i32 %14275, ptr %14276, align 4, !tbaa !5
  %14277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14278 = load i32, ptr @test_count, align 4, !tbaa !5
  %14279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14280 = load i32, ptr %14279, align 4, !tbaa !5
  %14281 = call ptr @s2n_strerror(i32 noundef %14280, ptr noundef @.str.4)
  %14282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14283 = load i32, ptr %14282, align 4, !tbaa !5
  %14284 = call ptr @s2n_strerror_debug(i32 noundef %14283, ptr noundef @.str.4)
  %14285 = call ptr @__errno_location() #11
  %14286 = load i32, ptr %14285, align 4, !tbaa !5
  %14287 = call ptr @strerror(i32 noundef %14286) #10
  %14288 = call ptr @__errno_location() #11
  %14289 = load i32, ptr %14288, align 4, !tbaa !5
  %14290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14277, ptr noundef @.str.2, i32 noundef %14278, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 968, ptr noundef %14281, ptr noundef %14284, ptr noundef %14287, i32 noundef %14289) #10
  br label %14308

14291:                                            ; preds = %14269, %14262
  %14292 = load i32, ptr %439, align 4, !tbaa !5
  %14293 = call ptr @__errno_location() #11
  store i32 %14292, ptr %14293, align 4, !tbaa !5
  %14294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14295 = load i32, ptr @test_count, align 4, !tbaa !5
  %14296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14297 = load i32, ptr %14296, align 4, !tbaa !5
  %14298 = call ptr @s2n_strerror(i32 noundef %14297, ptr noundef @.str.4)
  %14299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14300 = load i32, ptr %14299, align 4, !tbaa !5
  %14301 = call ptr @s2n_strerror_debug(i32 noundef %14300, ptr noundef @.str.4)
  %14302 = call ptr @__errno_location() #11
  %14303 = load i32, ptr %14302, align 4, !tbaa !5
  %14304 = call ptr @strerror(i32 noundef %14303) #10
  %14305 = call ptr @__errno_location() #11
  %14306 = load i32, ptr %14305, align 4, !tbaa !5
  %14307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14294, ptr noundef @.str.5, i32 noundef %14295, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 968, ptr noundef %14298, ptr noundef %14301, ptr noundef %14304, i32 noundef %14306) #10
  br label %14308

14308:                                            ; preds = %14291, %14274
  call void @llvm.lifetime.end.p0(i64 4, ptr %439) #10
  br label %14309

14309:                                            ; preds = %14308
  br label %14310

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

14311:                                            ; No predecessors!
  br label %14312

14312:                                            ; preds = %14311
  br label %14313

14313:                                            ; preds = %14312, %14251
  br label %14314

14314:                                            ; preds = %14313
  br label %14315

14315:                                            ; preds = %14314
  br label %14316

14316:                                            ; preds = %14315
  %14317 = load i32, ptr @test_count, align 4, !tbaa !5
  %14318 = add nsw i32 %14317, 1
  store i32 %14318, ptr @test_count, align 4, !tbaa !5
  %14319 = load ptr, ptr %434, align 8, !tbaa !9
  %14320 = getelementptr inbounds %struct.s2n_connection, ptr %14319, i32 0, i32 32
  %14321 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %14320, i32 0, i32 5
  %14322 = load ptr, ptr %14321, align 8, !tbaa !72
  %14323 = icmp eq ptr %14322, @s2n_ecdsa_sha1
  br i1 %14323, label %14377, label %14324

14324:                                            ; preds = %14316
  br label %14325

14325:                                            ; preds = %14324
  br label %14326

14326:                                            ; preds = %14325
  call void @llvm.lifetime.start.p0(i64 4, ptr %440) #10
  %14327 = call ptr @__errno_location() #11
  %14328 = load i32, ptr %14327, align 4, !tbaa !5
  store i32 %14328, ptr %440, align 4, !tbaa !5
  %14329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14330 = call i32 @s2n_print_stacktrace(ptr noundef %14329)
  %14331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14332 = trunc i8 %14331 to i1
  br i1 %14332, label %14333, label %14355

14333:                                            ; preds = %14326
  %14334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14335 = call i32 @fileno(ptr noundef %14334) #10
  %14336 = call i32 @isatty(i32 noundef %14335) #10
  %14337 = icmp ne i32 %14336, 0
  br i1 %14337, label %14338, label %14355

14338:                                            ; preds = %14333
  %14339 = load i32, ptr %440, align 4, !tbaa !5
  %14340 = call ptr @__errno_location() #11
  store i32 %14339, ptr %14340, align 4, !tbaa !5
  %14341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14342 = load i32, ptr @test_count, align 4, !tbaa !5
  %14343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14344 = load i32, ptr %14343, align 4, !tbaa !5
  %14345 = call ptr @s2n_strerror(i32 noundef %14344, ptr noundef @.str.4)
  %14346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14347 = load i32, ptr %14346, align 4, !tbaa !5
  %14348 = call ptr @s2n_strerror_debug(i32 noundef %14347, ptr noundef @.str.4)
  %14349 = call ptr @__errno_location() #11
  %14350 = load i32, ptr %14349, align 4, !tbaa !5
  %14351 = call ptr @strerror(i32 noundef %14350) #10
  %14352 = call ptr @__errno_location() #11
  %14353 = load i32, ptr %14352, align 4, !tbaa !5
  %14354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14341, ptr noundef @.str.2, i32 noundef %14342, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 969, ptr noundef %14345, ptr noundef %14348, ptr noundef %14351, i32 noundef %14353) #10
  br label %14372

14355:                                            ; preds = %14333, %14326
  %14356 = load i32, ptr %440, align 4, !tbaa !5
  %14357 = call ptr @__errno_location() #11
  store i32 %14356, ptr %14357, align 4, !tbaa !5
  %14358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14359 = load i32, ptr @test_count, align 4, !tbaa !5
  %14360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14361 = load i32, ptr %14360, align 4, !tbaa !5
  %14362 = call ptr @s2n_strerror(i32 noundef %14361, ptr noundef @.str.4)
  %14363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14364 = load i32, ptr %14363, align 4, !tbaa !5
  %14365 = call ptr @s2n_strerror_debug(i32 noundef %14364, ptr noundef @.str.4)
  %14366 = call ptr @__errno_location() #11
  %14367 = load i32, ptr %14366, align 4, !tbaa !5
  %14368 = call ptr @strerror(i32 noundef %14367) #10
  %14369 = call ptr @__errno_location() #11
  %14370 = load i32, ptr %14369, align 4, !tbaa !5
  %14371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14358, ptr noundef @.str.5, i32 noundef %14359, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 969, ptr noundef %14362, ptr noundef %14365, ptr noundef %14368, i32 noundef %14370) #10
  br label %14372

14372:                                            ; preds = %14355, %14338
  call void @llvm.lifetime.end.p0(i64 4, ptr %440) #10
  br label %14373

14373:                                            ; preds = %14372
  br label %14374

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

14375:                                            ; No predecessors!
  br label %14376

14376:                                            ; preds = %14375
  br label %14377

14377:                                            ; preds = %14376, %14316
  br label %14378

14378:                                            ; preds = %14377
  br label %14379

14379:                                            ; preds = %14378
  %14380 = call i32 @s2n_connection_ptr_free(ptr noundef %434)
  %14381 = getelementptr inbounds %struct.s2n_result, ptr %441, i32 0, i32 0
  store i32 %14380, ptr %14381, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %434) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %442) #10
  %14382 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %14382, ptr %442, align 8, !tbaa !9
  %14383 = load ptr, ptr %442, align 8, !tbaa !9
  %14384 = getelementptr inbounds %struct.s2n_connection, ptr %14383, i32 0, i32 2
  store ptr %410, ptr %14384, align 8, !tbaa !26
  %14385 = load ptr, ptr %442, align 8, !tbaa !9
  %14386 = getelementptr inbounds %struct.s2n_connection, ptr %14385, i32 0, i32 23
  store i8 32, ptr %14386, align 4, !tbaa !50
  %14387 = load ptr, ptr %442, align 8, !tbaa !9
  %14388 = getelementptr inbounds %struct.s2n_connection, ptr %14387, i32 0, i32 32
  %14389 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %14388, i32 0, i32 3
  store i32 0, ptr %14389, align 8, !tbaa !64
  br label %14390

14390:                                            ; preds = %14379
  %14391 = load i32, ptr @test_count, align 4, !tbaa !5
  %14392 = add nsw i32 %14391, 1
  store i32 %14392, ptr @test_count, align 4, !tbaa !5
  %14393 = load ptr, ptr %442, align 8, !tbaa !9
  %14394 = call i32 @s2n_signature_algorithm_recv(ptr noundef %14393, ptr noundef %427)
  %14395 = getelementptr inbounds %struct.s2n_result, ptr %443, i32 0, i32 0
  store i32 %14394, ptr %14395, align 4
  %14396 = getelementptr inbounds %struct.s2n_result, ptr %443, i32 0, i32 0
  %14397 = load i32, ptr %14396, align 4
  %14398 = call zeroext i1 @s2n_result_is_ok(i32 %14397)
  br i1 %14398, label %14452, label %14399

14399:                                            ; preds = %14390
  br label %14400

14400:                                            ; preds = %14399
  br label %14401

14401:                                            ; preds = %14400
  call void @llvm.lifetime.start.p0(i64 4, ptr %444) #10
  %14402 = call ptr @__errno_location() #11
  %14403 = load i32, ptr %14402, align 4, !tbaa !5
  store i32 %14403, ptr %444, align 4, !tbaa !5
  %14404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14405 = call i32 @s2n_print_stacktrace(ptr noundef %14404)
  %14406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14407 = trunc i8 %14406 to i1
  br i1 %14407, label %14408, label %14430

14408:                                            ; preds = %14401
  %14409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14410 = call i32 @fileno(ptr noundef %14409) #10
  %14411 = call i32 @isatty(i32 noundef %14410) #10
  %14412 = icmp ne i32 %14411, 0
  br i1 %14412, label %14413, label %14430

14413:                                            ; preds = %14408
  %14414 = load i32, ptr %444, align 4, !tbaa !5
  %14415 = call ptr @__errno_location() #11
  store i32 %14414, ptr %14415, align 4, !tbaa !5
  %14416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14417 = load i32, ptr @test_count, align 4, !tbaa !5
  %14418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14419 = load i32, ptr %14418, align 4, !tbaa !5
  %14420 = call ptr @s2n_strerror(i32 noundef %14419, ptr noundef @.str.4)
  %14421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14422 = load i32, ptr %14421, align 4, !tbaa !5
  %14423 = call ptr @s2n_strerror_debug(i32 noundef %14422, ptr noundef @.str.4)
  %14424 = call ptr @__errno_location() #11
  %14425 = load i32, ptr %14424, align 4, !tbaa !5
  %14426 = call ptr @strerror(i32 noundef %14425) #10
  %14427 = call ptr @__errno_location() #11
  %14428 = load i32, ptr %14427, align 4, !tbaa !5
  %14429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14416, ptr noundef @.str.2, i32 noundef %14417, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 980, ptr noundef %14420, ptr noundef %14423, ptr noundef %14426, i32 noundef %14428) #10
  br label %14447

14430:                                            ; preds = %14408, %14401
  %14431 = load i32, ptr %444, align 4, !tbaa !5
  %14432 = call ptr @__errno_location() #11
  store i32 %14431, ptr %14432, align 4, !tbaa !5
  %14433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14434 = load i32, ptr @test_count, align 4, !tbaa !5
  %14435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14436 = load i32, ptr %14435, align 4, !tbaa !5
  %14437 = call ptr @s2n_strerror(i32 noundef %14436, ptr noundef @.str.4)
  %14438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14439 = load i32, ptr %14438, align 4, !tbaa !5
  %14440 = call ptr @s2n_strerror_debug(i32 noundef %14439, ptr noundef @.str.4)
  %14441 = call ptr @__errno_location() #11
  %14442 = load i32, ptr %14441, align 4, !tbaa !5
  %14443 = call ptr @strerror(i32 noundef %14442) #10
  %14444 = call ptr @__errno_location() #11
  %14445 = load i32, ptr %14444, align 4, !tbaa !5
  %14446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14433, ptr noundef @.str.5, i32 noundef %14434, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 980, ptr noundef %14437, ptr noundef %14440, ptr noundef %14443, i32 noundef %14445) #10
  br label %14447

14447:                                            ; preds = %14430, %14413
  call void @llvm.lifetime.end.p0(i64 4, ptr %444) #10
  br label %14448

14448:                                            ; preds = %14447
  br label %14449

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

14450:                                            ; No predecessors!
  br label %14451

14451:                                            ; preds = %14450
  br label %14452

14452:                                            ; preds = %14451, %14390
  br label %14453

14453:                                            ; preds = %14452
  br label %14454

14454:                                            ; preds = %14453
  br label %14455

14455:                                            ; preds = %14454
  %14456 = load i32, ptr @test_count, align 4, !tbaa !5
  %14457 = add nsw i32 %14456, 1
  store i32 %14457, ptr @test_count, align 4, !tbaa !5
  %14458 = load ptr, ptr %442, align 8, !tbaa !9
  %14459 = getelementptr inbounds %struct.s2n_connection, ptr %14458, i32 0, i32 32
  %14460 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %14459, i32 0, i32 6
  %14461 = load ptr, ptr %14460, align 8, !tbaa !65
  %14462 = icmp eq ptr %14461, @s2n_rsa_pkcs1_md5_sha1
  br i1 %14462, label %14516, label %14463

14463:                                            ; preds = %14455
  br label %14464

14464:                                            ; preds = %14463
  br label %14465

14465:                                            ; preds = %14464
  call void @llvm.lifetime.start.p0(i64 4, ptr %445) #10
  %14466 = call ptr @__errno_location() #11
  %14467 = load i32, ptr %14466, align 4, !tbaa !5
  store i32 %14467, ptr %445, align 4, !tbaa !5
  %14468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14469 = call i32 @s2n_print_stacktrace(ptr noundef %14468)
  %14470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14471 = trunc i8 %14470 to i1
  br i1 %14471, label %14472, label %14494

14472:                                            ; preds = %14465
  %14473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14474 = call i32 @fileno(ptr noundef %14473) #10
  %14475 = call i32 @isatty(i32 noundef %14474) #10
  %14476 = icmp ne i32 %14475, 0
  br i1 %14476, label %14477, label %14494

14477:                                            ; preds = %14472
  %14478 = load i32, ptr %445, align 4, !tbaa !5
  %14479 = call ptr @__errno_location() #11
  store i32 %14478, ptr %14479, align 4, !tbaa !5
  %14480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14481 = load i32, ptr @test_count, align 4, !tbaa !5
  %14482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14483 = load i32, ptr %14482, align 4, !tbaa !5
  %14484 = call ptr @s2n_strerror(i32 noundef %14483, ptr noundef @.str.4)
  %14485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14486 = load i32, ptr %14485, align 4, !tbaa !5
  %14487 = call ptr @s2n_strerror_debug(i32 noundef %14486, ptr noundef @.str.4)
  %14488 = call ptr @__errno_location() #11
  %14489 = load i32, ptr %14488, align 4, !tbaa !5
  %14490 = call ptr @strerror(i32 noundef %14489) #10
  %14491 = call ptr @__errno_location() #11
  %14492 = load i32, ptr %14491, align 4, !tbaa !5
  %14493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14480, ptr noundef @.str.2, i32 noundef %14481, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 981, ptr noundef %14484, ptr noundef %14487, ptr noundef %14490, i32 noundef %14492) #10
  br label %14511

14494:                                            ; preds = %14472, %14465
  %14495 = load i32, ptr %445, align 4, !tbaa !5
  %14496 = call ptr @__errno_location() #11
  store i32 %14495, ptr %14496, align 4, !tbaa !5
  %14497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14498 = load i32, ptr @test_count, align 4, !tbaa !5
  %14499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14500 = load i32, ptr %14499, align 4, !tbaa !5
  %14501 = call ptr @s2n_strerror(i32 noundef %14500, ptr noundef @.str.4)
  %14502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14503 = load i32, ptr %14502, align 4, !tbaa !5
  %14504 = call ptr @s2n_strerror_debug(i32 noundef %14503, ptr noundef @.str.4)
  %14505 = call ptr @__errno_location() #11
  %14506 = load i32, ptr %14505, align 4, !tbaa !5
  %14507 = call ptr @strerror(i32 noundef %14506) #10
  %14508 = call ptr @__errno_location() #11
  %14509 = load i32, ptr %14508, align 4, !tbaa !5
  %14510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14497, ptr noundef @.str.5, i32 noundef %14498, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 981, ptr noundef %14501, ptr noundef %14504, ptr noundef %14507, i32 noundef %14509) #10
  br label %14511

14511:                                            ; preds = %14494, %14477
  call void @llvm.lifetime.end.p0(i64 4, ptr %445) #10
  br label %14512

14512:                                            ; preds = %14511
  br label %14513

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

14514:                                            ; No predecessors!
  br label %14515

14515:                                            ; preds = %14514
  br label %14516

14516:                                            ; preds = %14515, %14455
  br label %14517

14517:                                            ; preds = %14516
  br label %14518

14518:                                            ; preds = %14517
  %14519 = load ptr, ptr %442, align 8, !tbaa !9
  %14520 = getelementptr inbounds %struct.s2n_connection, ptr %14519, i32 0, i32 32
  %14521 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %14520, i32 0, i32 3
  store i32 1, ptr %14521, align 8, !tbaa !64
  br label %14522

14522:                                            ; preds = %14518
  %14523 = load i32, ptr @test_count, align 4, !tbaa !5
  %14524 = add nsw i32 %14523, 1
  store i32 %14524, ptr @test_count, align 4, !tbaa !5
  %14525 = load ptr, ptr %442, align 8, !tbaa !9
  %14526 = call i32 @s2n_signature_algorithm_recv(ptr noundef %14525, ptr noundef %427)
  %14527 = getelementptr inbounds %struct.s2n_result, ptr %446, i32 0, i32 0
  store i32 %14526, ptr %14527, align 4
  %14528 = getelementptr inbounds %struct.s2n_result, ptr %446, i32 0, i32 0
  %14529 = load i32, ptr %14528, align 4
  %14530 = call zeroext i1 @s2n_result_is_ok(i32 %14529)
  br i1 %14530, label %14584, label %14531

14531:                                            ; preds = %14522
  br label %14532

14532:                                            ; preds = %14531
  br label %14533

14533:                                            ; preds = %14532
  call void @llvm.lifetime.start.p0(i64 4, ptr %447) #10
  %14534 = call ptr @__errno_location() #11
  %14535 = load i32, ptr %14534, align 4, !tbaa !5
  store i32 %14535, ptr %447, align 4, !tbaa !5
  %14536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14537 = call i32 @s2n_print_stacktrace(ptr noundef %14536)
  %14538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14539 = trunc i8 %14538 to i1
  br i1 %14539, label %14540, label %14562

14540:                                            ; preds = %14533
  %14541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14542 = call i32 @fileno(ptr noundef %14541) #10
  %14543 = call i32 @isatty(i32 noundef %14542) #10
  %14544 = icmp ne i32 %14543, 0
  br i1 %14544, label %14545, label %14562

14545:                                            ; preds = %14540
  %14546 = load i32, ptr %447, align 4, !tbaa !5
  %14547 = call ptr @__errno_location() #11
  store i32 %14546, ptr %14547, align 4, !tbaa !5
  %14548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14549 = load i32, ptr @test_count, align 4, !tbaa !5
  %14550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14551 = load i32, ptr %14550, align 4, !tbaa !5
  %14552 = call ptr @s2n_strerror(i32 noundef %14551, ptr noundef @.str.4)
  %14553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14554 = load i32, ptr %14553, align 4, !tbaa !5
  %14555 = call ptr @s2n_strerror_debug(i32 noundef %14554, ptr noundef @.str.4)
  %14556 = call ptr @__errno_location() #11
  %14557 = load i32, ptr %14556, align 4, !tbaa !5
  %14558 = call ptr @strerror(i32 noundef %14557) #10
  %14559 = call ptr @__errno_location() #11
  %14560 = load i32, ptr %14559, align 4, !tbaa !5
  %14561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14548, ptr noundef @.str.2, i32 noundef %14549, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 984, ptr noundef %14552, ptr noundef %14555, ptr noundef %14558, i32 noundef %14560) #10
  br label %14579

14562:                                            ; preds = %14540, %14533
  %14563 = load i32, ptr %447, align 4, !tbaa !5
  %14564 = call ptr @__errno_location() #11
  store i32 %14563, ptr %14564, align 4, !tbaa !5
  %14565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14566 = load i32, ptr @test_count, align 4, !tbaa !5
  %14567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14568 = load i32, ptr %14567, align 4, !tbaa !5
  %14569 = call ptr @s2n_strerror(i32 noundef %14568, ptr noundef @.str.4)
  %14570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14571 = load i32, ptr %14570, align 4, !tbaa !5
  %14572 = call ptr @s2n_strerror_debug(i32 noundef %14571, ptr noundef @.str.4)
  %14573 = call ptr @__errno_location() #11
  %14574 = load i32, ptr %14573, align 4, !tbaa !5
  %14575 = call ptr @strerror(i32 noundef %14574) #10
  %14576 = call ptr @__errno_location() #11
  %14577 = load i32, ptr %14576, align 4, !tbaa !5
  %14578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14565, ptr noundef @.str.5, i32 noundef %14566, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 984, ptr noundef %14569, ptr noundef %14572, ptr noundef %14575, i32 noundef %14577) #10
  br label %14579

14579:                                            ; preds = %14562, %14545
  call void @llvm.lifetime.end.p0(i64 4, ptr %447) #10
  br label %14580

14580:                                            ; preds = %14579
  br label %14581

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

14582:                                            ; No predecessors!
  br label %14583

14583:                                            ; preds = %14582
  br label %14584

14584:                                            ; preds = %14583, %14522
  br label %14585

14585:                                            ; preds = %14584
  br label %14586

14586:                                            ; preds = %14585
  br label %14587

14587:                                            ; preds = %14586
  %14588 = load i32, ptr @test_count, align 4, !tbaa !5
  %14589 = add nsw i32 %14588, 1
  store i32 %14589, ptr @test_count, align 4, !tbaa !5
  %14590 = load ptr, ptr %442, align 8, !tbaa !9
  %14591 = getelementptr inbounds %struct.s2n_connection, ptr %14590, i32 0, i32 32
  %14592 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %14591, i32 0, i32 6
  %14593 = load ptr, ptr %14592, align 8, !tbaa !65
  %14594 = icmp eq ptr %14593, @s2n_ecdsa_sha1
  br i1 %14594, label %14648, label %14595

14595:                                            ; preds = %14587
  br label %14596

14596:                                            ; preds = %14595
  br label %14597

14597:                                            ; preds = %14596
  call void @llvm.lifetime.start.p0(i64 4, ptr %448) #10
  %14598 = call ptr @__errno_location() #11
  %14599 = load i32, ptr %14598, align 4, !tbaa !5
  store i32 %14599, ptr %448, align 4, !tbaa !5
  %14600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14601 = call i32 @s2n_print_stacktrace(ptr noundef %14600)
  %14602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14603 = trunc i8 %14602 to i1
  br i1 %14603, label %14604, label %14626

14604:                                            ; preds = %14597
  %14605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14606 = call i32 @fileno(ptr noundef %14605) #10
  %14607 = call i32 @isatty(i32 noundef %14606) #10
  %14608 = icmp ne i32 %14607, 0
  br i1 %14608, label %14609, label %14626

14609:                                            ; preds = %14604
  %14610 = load i32, ptr %448, align 4, !tbaa !5
  %14611 = call ptr @__errno_location() #11
  store i32 %14610, ptr %14611, align 4, !tbaa !5
  %14612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14613 = load i32, ptr @test_count, align 4, !tbaa !5
  %14614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14615 = load i32, ptr %14614, align 4, !tbaa !5
  %14616 = call ptr @s2n_strerror(i32 noundef %14615, ptr noundef @.str.4)
  %14617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14618 = load i32, ptr %14617, align 4, !tbaa !5
  %14619 = call ptr @s2n_strerror_debug(i32 noundef %14618, ptr noundef @.str.4)
  %14620 = call ptr @__errno_location() #11
  %14621 = load i32, ptr %14620, align 4, !tbaa !5
  %14622 = call ptr @strerror(i32 noundef %14621) #10
  %14623 = call ptr @__errno_location() #11
  %14624 = load i32, ptr %14623, align 4, !tbaa !5
  %14625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14612, ptr noundef @.str.2, i32 noundef %14613, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 985, ptr noundef %14616, ptr noundef %14619, ptr noundef %14622, i32 noundef %14624) #10
  br label %14643

14626:                                            ; preds = %14604, %14597
  %14627 = load i32, ptr %448, align 4, !tbaa !5
  %14628 = call ptr @__errno_location() #11
  store i32 %14627, ptr %14628, align 4, !tbaa !5
  %14629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14630 = load i32, ptr @test_count, align 4, !tbaa !5
  %14631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14632 = load i32, ptr %14631, align 4, !tbaa !5
  %14633 = call ptr @s2n_strerror(i32 noundef %14632, ptr noundef @.str.4)
  %14634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14635 = load i32, ptr %14634, align 4, !tbaa !5
  %14636 = call ptr @s2n_strerror_debug(i32 noundef %14635, ptr noundef @.str.4)
  %14637 = call ptr @__errno_location() #11
  %14638 = load i32, ptr %14637, align 4, !tbaa !5
  %14639 = call ptr @strerror(i32 noundef %14638) #10
  %14640 = call ptr @__errno_location() #11
  %14641 = load i32, ptr %14640, align 4, !tbaa !5
  %14642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14629, ptr noundef @.str.5, i32 noundef %14630, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 985, ptr noundef %14633, ptr noundef %14636, ptr noundef %14639, i32 noundef %14641) #10
  br label %14643

14643:                                            ; preds = %14626, %14609
  call void @llvm.lifetime.end.p0(i64 4, ptr %448) #10
  br label %14644

14644:                                            ; preds = %14643
  br label %14645

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

14646:                                            ; No predecessors!
  br label %14647

14647:                                            ; preds = %14646
  br label %14648

14648:                                            ; preds = %14647, %14587
  br label %14649

14649:                                            ; preds = %14648
  br label %14650

14650:                                            ; preds = %14649
  %14651 = call i32 @s2n_connection_ptr_free(ptr noundef %442)
  %14652 = getelementptr inbounds %struct.s2n_result, ptr %449, i32 0, i32 0
  store i32 %14651, ptr %14652, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %442) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %427) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %450) #10
  %14653 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %14653, ptr %450, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %451) #10
  call void @llvm.memset.p0.i64(ptr align 8 %451, i8 0, i64 40, i1 false)
  br label %14654

14654:                                            ; preds = %14650
  %14655 = load i32, ptr @test_count, align 4, !tbaa !5
  %14656 = add nsw i32 %14655, 1
  store i32 %14656, ptr @test_count, align 4, !tbaa !5
  %14657 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %451, i32 noundef 0)
  %14658 = icmp eq i32 %14657, -1
  br i1 %14658, label %14659, label %14712

14659:                                            ; preds = %14654
  br label %14660

14660:                                            ; preds = %14659
  br label %14661

14661:                                            ; preds = %14660
  call void @llvm.lifetime.start.p0(i64 4, ptr %452) #10
  %14662 = call ptr @__errno_location() #11
  %14663 = load i32, ptr %14662, align 4, !tbaa !5
  store i32 %14663, ptr %452, align 4, !tbaa !5
  %14664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14665 = call i32 @s2n_print_stacktrace(ptr noundef %14664)
  %14666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14667 = trunc i8 %14666 to i1
  br i1 %14667, label %14668, label %14690

14668:                                            ; preds = %14661
  %14669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14670 = call i32 @fileno(ptr noundef %14669) #10
  %14671 = call i32 @isatty(i32 noundef %14670) #10
  %14672 = icmp ne i32 %14671, 0
  br i1 %14672, label %14673, label %14690

14673:                                            ; preds = %14668
  %14674 = load i32, ptr %452, align 4, !tbaa !5
  %14675 = call ptr @__errno_location() #11
  store i32 %14674, ptr %14675, align 4, !tbaa !5
  %14676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14677 = load i32, ptr @test_count, align 4, !tbaa !5
  %14678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14679 = load i32, ptr %14678, align 4, !tbaa !5
  %14680 = call ptr @s2n_strerror(i32 noundef %14679, ptr noundef @.str.4)
  %14681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14682 = load i32, ptr %14681, align 4, !tbaa !5
  %14683 = call ptr @s2n_strerror_debug(i32 noundef %14682, ptr noundef @.str.4)
  %14684 = call ptr @__errno_location() #11
  %14685 = load i32, ptr %14684, align 4, !tbaa !5
  %14686 = call ptr @strerror(i32 noundef %14685) #10
  %14687 = call ptr @__errno_location() #11
  %14688 = load i32, ptr %14687, align 4, !tbaa !5
  %14689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14676, ptr noundef @.str.2, i32 noundef %14677, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 995, ptr noundef %14680, ptr noundef %14683, ptr noundef %14686, i32 noundef %14688) #10
  br label %14707

14690:                                            ; preds = %14668, %14661
  %14691 = load i32, ptr %452, align 4, !tbaa !5
  %14692 = call ptr @__errno_location() #11
  store i32 %14691, ptr %14692, align 4, !tbaa !5
  %14693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14694 = load i32, ptr @test_count, align 4, !tbaa !5
  %14695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14696 = load i32, ptr %14695, align 4, !tbaa !5
  %14697 = call ptr @s2n_strerror(i32 noundef %14696, ptr noundef @.str.4)
  %14698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14699 = load i32, ptr %14698, align 4, !tbaa !5
  %14700 = call ptr @s2n_strerror_debug(i32 noundef %14699, ptr noundef @.str.4)
  %14701 = call ptr @__errno_location() #11
  %14702 = load i32, ptr %14701, align 4, !tbaa !5
  %14703 = call ptr @strerror(i32 noundef %14702) #10
  %14704 = call ptr @__errno_location() #11
  %14705 = load i32, ptr %14704, align 4, !tbaa !5
  %14706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14693, ptr noundef @.str.5, i32 noundef %14694, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 995, ptr noundef %14697, ptr noundef %14700, ptr noundef %14703, i32 noundef %14705) #10
  br label %14707

14707:                                            ; preds = %14690, %14673
  call void @llvm.lifetime.end.p0(i64 4, ptr %452) #10
  br label %14708

14708:                                            ; preds = %14707
  br label %14709

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

14710:                                            ; No predecessors!
  br label %14711

14711:                                            ; preds = %14710
  br label %14712

14712:                                            ; preds = %14711, %14654
  br label %14713

14713:                                            ; preds = %14712
  br label %14714

14714:                                            ; preds = %14713
  call void @llvm.lifetime.start.p0(i64 32, ptr %453) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %453, ptr align 16 @__const.main.test_schemes.81, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %454) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %454, ptr align 8 @__const.main.supported_schemes, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr %455) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %455, ptr align 8 %410, i64 64, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.start.p0(i64 16, ptr %456) #10
  %14715 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %456, i32 0, i32 0
  store i8 1, ptr %14715, align 8, !tbaa !76
  %14716 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %456, i32 0, i32 1
  %14717 = getelementptr inbounds [1 x ptr], ptr %454, i64 0, i64 0
  store ptr %14717, ptr %14716, align 8, !tbaa !78
  %14718 = getelementptr inbounds %struct.s2n_security_policy, ptr %455, i32 0, i32 3
  store ptr %456, ptr %14718, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 64, ptr %457) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %457, ptr align 8 %410, i64 64, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.start.p0(i64 16, ptr %458) #10
  %14719 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %458, i32 0, i32 0
  store i8 4, ptr %14719, align 8, !tbaa !76
  %14720 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %458, i32 0, i32 1
  %14721 = getelementptr inbounds [4 x ptr], ptr %453, i64 0, i64 0
  store ptr %14721, ptr %14720, align 8, !tbaa !78
  %14722 = getelementptr inbounds %struct.s2n_security_policy, ptr %457, i32 0, i32 3
  store ptr %458, ptr %14722, align 8, !tbaa !24
  %14723 = load ptr, ptr %450, align 8, !tbaa !9
  %14724 = getelementptr inbounds %struct.s2n_connection, ptr %14723, i32 0, i32 2
  store ptr %455, ptr %14724, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %459) #10
  store i64 0, ptr %459, align 8, !tbaa !54
  br label %14725

14725:                                            ; preds = %14997, %14714
  %14726 = load i64, ptr %459, align 8, !tbaa !54
  %14727 = icmp ult i64 %14726, 4
  br i1 %14727, label %14729, label %14728

14728:                                            ; preds = %14725
  call void @llvm.lifetime.end.p0(i64 8, ptr %459) #10
  br label %15000

14729:                                            ; preds = %14725
  br label %14730

14730:                                            ; preds = %14729
  %14731 = load i32, ptr @test_count, align 4, !tbaa !5
  %14732 = add nsw i32 %14731, 1
  store i32 %14732, ptr @test_count, align 4, !tbaa !5
  %14733 = load i64, ptr %459, align 8, !tbaa !54
  %14734 = getelementptr inbounds [4 x ptr], ptr %453, i64 0, i64 %14733
  %14735 = load ptr, ptr %14734, align 8, !tbaa !9
  %14736 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %14735, i32 0, i32 0
  %14737 = load i16, ptr %14736, align 8, !tbaa !55
  %14738 = call i32 @s2n_stuffer_write_uint16(ptr noundef %451, i16 noundef zeroext %14737)
  %14739 = icmp eq i32 %14738, -1
  br i1 %14739, label %14740, label %14793

14740:                                            ; preds = %14730
  br label %14741

14741:                                            ; preds = %14740
  br label %14742

14742:                                            ; preds = %14741
  call void @llvm.lifetime.start.p0(i64 4, ptr %460) #10
  %14743 = call ptr @__errno_location() #11
  %14744 = load i32, ptr %14743, align 4, !tbaa !5
  store i32 %14744, ptr %460, align 4, !tbaa !5
  %14745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14746 = call i32 @s2n_print_stacktrace(ptr noundef %14745)
  %14747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14748 = trunc i8 %14747 to i1
  br i1 %14748, label %14749, label %14771

14749:                                            ; preds = %14742
  %14750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14751 = call i32 @fileno(ptr noundef %14750) #10
  %14752 = call i32 @isatty(i32 noundef %14751) #10
  %14753 = icmp ne i32 %14752, 0
  br i1 %14753, label %14754, label %14771

14754:                                            ; preds = %14749
  %14755 = load i32, ptr %460, align 4, !tbaa !5
  %14756 = call ptr @__errno_location() #11
  store i32 %14755, ptr %14756, align 4, !tbaa !5
  %14757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14758 = load i32, ptr @test_count, align 4, !tbaa !5
  %14759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14760 = load i32, ptr %14759, align 4, !tbaa !5
  %14761 = call ptr @s2n_strerror(i32 noundef %14760, ptr noundef @.str.4)
  %14762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14763 = load i32, ptr %14762, align 4, !tbaa !5
  %14764 = call ptr @s2n_strerror_debug(i32 noundef %14763, ptr noundef @.str.4)
  %14765 = call ptr @__errno_location() #11
  %14766 = load i32, ptr %14765, align 4, !tbaa !5
  %14767 = call ptr @strerror(i32 noundef %14766) #10
  %14768 = call ptr @__errno_location() #11
  %14769 = load i32, ptr %14768, align 4, !tbaa !5
  %14770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14757, ptr noundef @.str.2, i32 noundef %14758, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 1025, ptr noundef %14761, ptr noundef %14764, ptr noundef %14767, i32 noundef %14769) #10
  br label %14788

14771:                                            ; preds = %14749, %14742
  %14772 = load i32, ptr %460, align 4, !tbaa !5
  %14773 = call ptr @__errno_location() #11
  store i32 %14772, ptr %14773, align 4, !tbaa !5
  %14774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14775 = load i32, ptr @test_count, align 4, !tbaa !5
  %14776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14777 = load i32, ptr %14776, align 4, !tbaa !5
  %14778 = call ptr @s2n_strerror(i32 noundef %14777, ptr noundef @.str.4)
  %14779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14780 = load i32, ptr %14779, align 4, !tbaa !5
  %14781 = call ptr @s2n_strerror_debug(i32 noundef %14780, ptr noundef @.str.4)
  %14782 = call ptr @__errno_location() #11
  %14783 = load i32, ptr %14782, align 4, !tbaa !5
  %14784 = call ptr @strerror(i32 noundef %14783) #10
  %14785 = call ptr @__errno_location() #11
  %14786 = load i32, ptr %14785, align 4, !tbaa !5
  %14787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14774, ptr noundef @.str.5, i32 noundef %14775, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 1025, ptr noundef %14778, ptr noundef %14781, ptr noundef %14784, i32 noundef %14786) #10
  br label %14788

14788:                                            ; preds = %14771, %14754
  call void @llvm.lifetime.end.p0(i64 4, ptr %460) #10
  br label %14789

14789:                                            ; preds = %14788
  br label %14790

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

14791:                                            ; No predecessors!
  br label %14792

14792:                                            ; preds = %14791
  br label %14793

14793:                                            ; preds = %14792, %14730
  br label %14794

14794:                                            ; preds = %14793
  br label %14795

14795:                                            ; preds = %14794
  br label %14796

14796:                                            ; preds = %14795
  br label %14797

14797:                                            ; preds = %14796
  br label %14798

14798:                                            ; preds = %14797
  %14799 = load i32, ptr @test_count, align 4, !tbaa !5
  %14800 = add nsw i32 %14799, 1
  store i32 %14800, ptr @test_count, align 4, !tbaa !5
  %14801 = load ptr, ptr %450, align 8, !tbaa !9
  %14802 = call i32 @s2n_signature_algorithm_recv(ptr noundef %14801, ptr noundef %451)
  %14803 = getelementptr inbounds %struct.s2n_result, ptr %461, i32 0, i32 0
  store i32 %14802, ptr %14803, align 4
  %14804 = getelementptr inbounds %struct.s2n_result, ptr %461, i32 0, i32 0
  %14805 = load i32, ptr %14804, align 4
  %14806 = call zeroext i1 @s2n_result_is_error(i32 %14805)
  br i1 %14806, label %14860, label %14807

14807:                                            ; preds = %14798
  br label %14808

14808:                                            ; preds = %14807
  br label %14809

14809:                                            ; preds = %14808
  call void @llvm.lifetime.start.p0(i64 4, ptr %462) #10
  %14810 = call ptr @__errno_location() #11
  %14811 = load i32, ptr %14810, align 4, !tbaa !5
  store i32 %14811, ptr %462, align 4, !tbaa !5
  %14812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14813 = call i32 @s2n_print_stacktrace(ptr noundef %14812)
  %14814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14815 = trunc i8 %14814 to i1
  br i1 %14815, label %14816, label %14838

14816:                                            ; preds = %14809
  %14817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14818 = call i32 @fileno(ptr noundef %14817) #10
  %14819 = call i32 @isatty(i32 noundef %14818) #10
  %14820 = icmp ne i32 %14819, 0
  br i1 %14820, label %14821, label %14838

14821:                                            ; preds = %14816
  %14822 = load i32, ptr %462, align 4, !tbaa !5
  %14823 = call ptr @__errno_location() #11
  store i32 %14822, ptr %14823, align 4, !tbaa !5
  %14824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14825 = load i32, ptr @test_count, align 4, !tbaa !5
  %14826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14827 = load i32, ptr %14826, align 4, !tbaa !5
  %14828 = call ptr @s2n_strerror(i32 noundef %14827, ptr noundef @.str.4)
  %14829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14830 = load i32, ptr %14829, align 4, !tbaa !5
  %14831 = call ptr @s2n_strerror_debug(i32 noundef %14830, ptr noundef @.str.4)
  %14832 = call ptr @__errno_location() #11
  %14833 = load i32, ptr %14832, align 4, !tbaa !5
  %14834 = call ptr @strerror(i32 noundef %14833) #10
  %14835 = call ptr @__errno_location() #11
  %14836 = load i32, ptr %14835, align 4, !tbaa !5
  %14837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14824, ptr noundef @.str.2, i32 noundef %14825, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 1027, ptr noundef %14828, ptr noundef %14831, ptr noundef %14834, i32 noundef %14836) #10
  br label %14855

14838:                                            ; preds = %14816, %14809
  %14839 = load i32, ptr %462, align 4, !tbaa !5
  %14840 = call ptr @__errno_location() #11
  store i32 %14839, ptr %14840, align 4, !tbaa !5
  %14841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14842 = load i32, ptr @test_count, align 4, !tbaa !5
  %14843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14844 = load i32, ptr %14843, align 4, !tbaa !5
  %14845 = call ptr @s2n_strerror(i32 noundef %14844, ptr noundef @.str.4)
  %14846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14847 = load i32, ptr %14846, align 4, !tbaa !5
  %14848 = call ptr @s2n_strerror_debug(i32 noundef %14847, ptr noundef @.str.4)
  %14849 = call ptr @__errno_location() #11
  %14850 = load i32, ptr %14849, align 4, !tbaa !5
  %14851 = call ptr @strerror(i32 noundef %14850) #10
  %14852 = call ptr @__errno_location() #11
  %14853 = load i32, ptr %14852, align 4, !tbaa !5
  %14854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14841, ptr noundef @.str.5, i32 noundef %14842, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 1027, ptr noundef %14845, ptr noundef %14848, ptr noundef %14851, i32 noundef %14853) #10
  br label %14855

14855:                                            ; preds = %14838, %14821
  call void @llvm.lifetime.end.p0(i64 4, ptr %462) #10
  br label %14856

14856:                                            ; preds = %14855
  br label %14857

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

14858:                                            ; No predecessors!
  br label %14859

14859:                                            ; preds = %14858
  br label %14860

14860:                                            ; preds = %14859, %14798
  br label %14861

14861:                                            ; preds = %14860
  br label %14862

14862:                                            ; preds = %14861
  br label %14863

14863:                                            ; preds = %14862
  %14864 = load i32, ptr @test_count, align 4, !tbaa !5
  %14865 = add nsw i32 %14864, 1
  store i32 %14865, 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 = icmp eq i32 %14867, 335544348
  br i1 %14868, label %14922, label %14869

14869:                                            ; preds = %14863
  br label %14870

14870:                                            ; preds = %14869
  br label %14871

14871:                                            ; preds = %14870
  call void @llvm.lifetime.start.p0(i64 4, ptr %463) #10
  %14872 = call ptr @__errno_location() #11
  %14873 = load i32, ptr %14872, align 4, !tbaa !5
  store i32 %14873, ptr %463, align 4, !tbaa !5
  %14874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14875 = call i32 @s2n_print_stacktrace(ptr noundef %14874)
  %14876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14877 = trunc i8 %14876 to i1
  br i1 %14877, label %14878, label %14900

14878:                                            ; preds = %14871
  %14879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14880 = call i32 @fileno(ptr noundef %14879) #10
  %14881 = call i32 @isatty(i32 noundef %14880) #10
  %14882 = icmp ne i32 %14881, 0
  br i1 %14882, label %14883, label %14900

14883:                                            ; preds = %14878
  %14884 = load i32, ptr %463, align 4, !tbaa !5
  %14885 = call ptr @__errno_location() #11
  store i32 %14884, ptr %14885, align 4, !tbaa !5
  %14886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14887 = load i32, ptr @test_count, align 4, !tbaa !5
  %14888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14889 = load i32, ptr %14888, align 4, !tbaa !5
  %14890 = call ptr @s2n_strerror(i32 noundef %14889, ptr noundef @.str.4)
  %14891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14892 = load i32, ptr %14891, align 4, !tbaa !5
  %14893 = call ptr @s2n_strerror_debug(i32 noundef %14892, ptr noundef @.str.4)
  %14894 = call ptr @__errno_location() #11
  %14895 = load i32, ptr %14894, align 4, !tbaa !5
  %14896 = call ptr @strerror(i32 noundef %14895) #10
  %14897 = call ptr @__errno_location() #11
  %14898 = load i32, ptr %14897, align 4, !tbaa !5
  %14899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14886, ptr noundef @.str.2, i32 noundef %14887, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 1027, ptr noundef %14890, ptr noundef %14893, ptr noundef %14896, i32 noundef %14898) #10
  br label %14917

14900:                                            ; preds = %14878, %14871
  %14901 = load i32, ptr %463, align 4, !tbaa !5
  %14902 = call ptr @__errno_location() #11
  store i32 %14901, ptr %14902, align 4, !tbaa !5
  %14903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14904 = load i32, ptr @test_count, align 4, !tbaa !5
  %14905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14906 = load i32, ptr %14905, align 4, !tbaa !5
  %14907 = call ptr @s2n_strerror(i32 noundef %14906, ptr noundef @.str.4)
  %14908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14909 = load i32, ptr %14908, align 4, !tbaa !5
  %14910 = call ptr @s2n_strerror_debug(i32 noundef %14909, ptr noundef @.str.4)
  %14911 = call ptr @__errno_location() #11
  %14912 = load i32, ptr %14911, align 4, !tbaa !5
  %14913 = call ptr @strerror(i32 noundef %14912) #10
  %14914 = call ptr @__errno_location() #11
  %14915 = load i32, ptr %14914, align 4, !tbaa !5
  %14916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14903, ptr noundef @.str.5, i32 noundef %14904, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 1027, ptr noundef %14907, ptr noundef %14910, ptr noundef %14913, i32 noundef %14915) #10
  br label %14917

14917:                                            ; preds = %14900, %14883
  call void @llvm.lifetime.end.p0(i64 4, ptr %463) #10
  br label %14918

14918:                                            ; preds = %14917
  br label %14919

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

14920:                                            ; No predecessors!
  br label %14921

14921:                                            ; preds = %14920
  br label %14922

14922:                                            ; preds = %14921, %14863
  br label %14923

14923:                                            ; preds = %14922
  br label %14924

14924:                                            ; preds = %14923
  br label %14925

14925:                                            ; preds = %14924
  %14926 = load i32, ptr @test_count, align 4, !tbaa !5
  %14927 = add nsw i32 %14926, 1
  store i32 %14927, ptr @test_count, align 4, !tbaa !5
  %14928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14929 = load i32, ptr %14928, align 4, !tbaa !5
  %14930 = call ptr @s2n_strerror_debug(i32 noundef %14929, ptr noundef @.str.4)
  %14931 = icmp eq ptr %14930, null
  br i1 %14931, label %14932, label %14985

14932:                                            ; preds = %14925
  br label %14933

14933:                                            ; preds = %14932
  br label %14934

14934:                                            ; preds = %14933
  call void @llvm.lifetime.start.p0(i64 4, ptr %464) #10
  %14935 = call ptr @__errno_location() #11
  %14936 = load i32, ptr %14935, align 4, !tbaa !5
  store i32 %14936, ptr %464, align 4, !tbaa !5
  %14937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14938 = call i32 @s2n_print_stacktrace(ptr noundef %14937)
  %14939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14940 = trunc i8 %14939 to i1
  br i1 %14940, label %14941, label %14963

14941:                                            ; preds = %14934
  %14942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14943 = call i32 @fileno(ptr noundef %14942) #10
  %14944 = call i32 @isatty(i32 noundef %14943) #10
  %14945 = icmp ne i32 %14944, 0
  br i1 %14945, label %14946, label %14963

14946:                                            ; preds = %14941
  %14947 = load i32, ptr %464, align 4, !tbaa !5
  %14948 = call ptr @__errno_location() #11
  store i32 %14947, ptr %14948, align 4, !tbaa !5
  %14949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14950 = load i32, ptr @test_count, align 4, !tbaa !5
  %14951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14952 = load i32, ptr %14951, align 4, !tbaa !5
  %14953 = call ptr @s2n_strerror(i32 noundef %14952, ptr noundef @.str.4)
  %14954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14955 = load i32, ptr %14954, align 4, !tbaa !5
  %14956 = call ptr @s2n_strerror_debug(i32 noundef %14955, ptr noundef @.str.4)
  %14957 = call ptr @__errno_location() #11
  %14958 = load i32, ptr %14957, align 4, !tbaa !5
  %14959 = call ptr @strerror(i32 noundef %14958) #10
  %14960 = call ptr @__errno_location() #11
  %14961 = load i32, ptr %14960, align 4, !tbaa !5
  %14962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14949, ptr noundef @.str.2, i32 noundef %14950, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1027, ptr noundef %14953, ptr noundef %14956, ptr noundef %14959, i32 noundef %14961) #10
  br label %14980

14963:                                            ; preds = %14941, %14934
  %14964 = load i32, ptr %464, align 4, !tbaa !5
  %14965 = call ptr @__errno_location() #11
  store i32 %14964, ptr %14965, align 4, !tbaa !5
  %14966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14967 = load i32, ptr @test_count, align 4, !tbaa !5
  %14968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14969 = load i32, ptr %14968, align 4, !tbaa !5
  %14970 = call ptr @s2n_strerror(i32 noundef %14969, ptr noundef @.str.4)
  %14971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14972 = load i32, ptr %14971, align 4, !tbaa !5
  %14973 = call ptr @s2n_strerror_debug(i32 noundef %14972, ptr noundef @.str.4)
  %14974 = call ptr @__errno_location() #11
  %14975 = load i32, ptr %14974, align 4, !tbaa !5
  %14976 = call ptr @strerror(i32 noundef %14975) #10
  %14977 = call ptr @__errno_location() #11
  %14978 = load i32, ptr %14977, align 4, !tbaa !5
  %14979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14966, ptr noundef @.str.5, i32 noundef %14967, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1027, ptr noundef %14970, ptr noundef %14973, ptr noundef %14976, i32 noundef %14978) #10
  br label %14980

14980:                                            ; preds = %14963, %14946
  call void @llvm.lifetime.end.p0(i64 4, ptr %464) #10
  br label %14981

14981:                                            ; preds = %14980
  br label %14982

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

14983:                                            ; No predecessors!
  br label %14984

14984:                                            ; preds = %14983
  br label %14985

14985:                                            ; preds = %14984, %14925
  br label %14986

14986:                                            ; preds = %14985
  br label %14987

14987:                                            ; preds = %14986
  br label %14988

14988:                                            ; preds = %14987
  br label %14989

14989:                                            ; preds = %14988
  br label %14990

14990:                                            ; preds = %14989
  %14991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14991, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14992 = call ptr @__errno_location() #11
  store i32 0, ptr %14992, align 4, !tbaa !5
  br label %14993

14993:                                            ; preds = %14990
  br label %14994

14994:                                            ; preds = %14993
  br label %14995

14995:                                            ; preds = %14994
  br label %14996

14996:                                            ; preds = %14995
  br label %14997

14997:                                            ; preds = %14996
  %14998 = load i64, ptr %459, align 8, !tbaa !54
  %14999 = add i64 %14998, 1
  store i64 %14999, ptr %459, align 8, !tbaa !54
  br label %14725, !llvm.loop !79

15000:                                            ; preds = %14728
  %15001 = load ptr, ptr %450, align 8, !tbaa !9
  %15002 = getelementptr inbounds %struct.s2n_connection, ptr %15001, i32 0, i32 2
  store ptr %457, ptr %15002, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %465) #10
  store i64 0, ptr %465, align 8, !tbaa !54
  br label %15003

15003:                                            ; preds = %15139, %15000
  %15004 = load i64, ptr %465, align 8, !tbaa !54
  %15005 = icmp ult i64 %15004, 4
  br i1 %15005, label %15007, label %15006

15006:                                            ; preds = %15003
  call void @llvm.lifetime.end.p0(i64 8, ptr %465) #10
  br label %15142

15007:                                            ; preds = %15003
  br label %15008

15008:                                            ; preds = %15007
  %15009 = load i32, ptr @test_count, align 4, !tbaa !5
  %15010 = add nsw i32 %15009, 1
  store i32 %15010, ptr @test_count, align 4, !tbaa !5
  %15011 = load i64, ptr %465, align 8, !tbaa !54
  %15012 = getelementptr inbounds [4 x ptr], ptr %453, i64 0, i64 %15011
  %15013 = load ptr, ptr %15012, align 8, !tbaa !9
  %15014 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %15013, i32 0, i32 0
  %15015 = load i16, ptr %15014, align 8, !tbaa !55
  %15016 = call i32 @s2n_stuffer_write_uint16(ptr noundef %451, i16 noundef zeroext %15015)
  %15017 = icmp eq i32 %15016, -1
  br i1 %15017, label %15018, label %15071

15018:                                            ; preds = %15008
  br label %15019

15019:                                            ; preds = %15018
  br label %15020

15020:                                            ; preds = %15019
  call void @llvm.lifetime.start.p0(i64 4, ptr %466) #10
  %15021 = call ptr @__errno_location() #11
  %15022 = load i32, ptr %15021, align 4, !tbaa !5
  store i32 %15022, ptr %466, align 4, !tbaa !5
  %15023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15024 = call i32 @s2n_print_stacktrace(ptr noundef %15023)
  %15025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15026 = trunc i8 %15025 to i1
  br i1 %15026, label %15027, label %15049

15027:                                            ; preds = %15020
  %15028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15029 = call i32 @fileno(ptr noundef %15028) #10
  %15030 = call i32 @isatty(i32 noundef %15029) #10
  %15031 = icmp ne i32 %15030, 0
  br i1 %15031, label %15032, label %15049

15032:                                            ; preds = %15027
  %15033 = load i32, ptr %466, align 4, !tbaa !5
  %15034 = call ptr @__errno_location() #11
  store i32 %15033, ptr %15034, align 4, !tbaa !5
  %15035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15036 = load i32, ptr @test_count, align 4, !tbaa !5
  %15037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15038 = load i32, ptr %15037, align 4, !tbaa !5
  %15039 = call ptr @s2n_strerror(i32 noundef %15038, ptr noundef @.str.4)
  %15040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15041 = load i32, ptr %15040, align 4, !tbaa !5
  %15042 = call ptr @s2n_strerror_debug(i32 noundef %15041, ptr noundef @.str.4)
  %15043 = call ptr @__errno_location() #11
  %15044 = load i32, ptr %15043, align 4, !tbaa !5
  %15045 = call ptr @strerror(i32 noundef %15044) #10
  %15046 = call ptr @__errno_location() #11
  %15047 = load i32, ptr %15046, align 4, !tbaa !5
  %15048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15035, ptr noundef @.str.2, i32 noundef %15036, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 1033, ptr noundef %15039, ptr noundef %15042, ptr noundef %15045, i32 noundef %15047) #10
  br label %15066

15049:                                            ; preds = %15027, %15020
  %15050 = load i32, ptr %466, align 4, !tbaa !5
  %15051 = call ptr @__errno_location() #11
  store i32 %15050, ptr %15051, align 4, !tbaa !5
  %15052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15053 = load i32, ptr @test_count, align 4, !tbaa !5
  %15054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15055 = load i32, ptr %15054, align 4, !tbaa !5
  %15056 = call ptr @s2n_strerror(i32 noundef %15055, ptr noundef @.str.4)
  %15057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15058 = load i32, ptr %15057, align 4, !tbaa !5
  %15059 = call ptr @s2n_strerror_debug(i32 noundef %15058, ptr noundef @.str.4)
  %15060 = call ptr @__errno_location() #11
  %15061 = load i32, ptr %15060, align 4, !tbaa !5
  %15062 = call ptr @strerror(i32 noundef %15061) #10
  %15063 = call ptr @__errno_location() #11
  %15064 = load i32, ptr %15063, align 4, !tbaa !5
  %15065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15052, ptr noundef @.str.5, i32 noundef %15053, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 1033, ptr noundef %15056, ptr noundef %15059, ptr noundef %15062, i32 noundef %15064) #10
  br label %15066

15066:                                            ; preds = %15049, %15032
  call void @llvm.lifetime.end.p0(i64 4, ptr %466) #10
  br label %15067

15067:                                            ; preds = %15066
  br label %15068

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

15069:                                            ; No predecessors!
  br label %15070

15070:                                            ; preds = %15069
  br label %15071

15071:                                            ; preds = %15070, %15008
  br label %15072

15072:                                            ; preds = %15071
  br label %15073

15073:                                            ; preds = %15072
  br label %15074

15074:                                            ; preds = %15073
  %15075 = load i32, ptr @test_count, align 4, !tbaa !5
  %15076 = add nsw i32 %15075, 1
  store i32 %15076, ptr @test_count, align 4, !tbaa !5
  %15077 = load ptr, ptr %450, align 8, !tbaa !9
  %15078 = call i32 @s2n_signature_algorithm_recv(ptr noundef %15077, ptr noundef %451)
  %15079 = getelementptr inbounds %struct.s2n_result, ptr %467, i32 0, i32 0
  store i32 %15078, ptr %15079, align 4
  %15080 = getelementptr inbounds %struct.s2n_result, ptr %467, i32 0, i32 0
  %15081 = load i32, ptr %15080, align 4
  %15082 = call zeroext i1 @s2n_result_is_ok(i32 %15081)
  br i1 %15082, label %15136, label %15083

15083:                                            ; preds = %15074
  br label %15084

15084:                                            ; preds = %15083
  br label %15085

15085:                                            ; preds = %15084
  call void @llvm.lifetime.start.p0(i64 4, ptr %468) #10
  %15086 = call ptr @__errno_location() #11
  %15087 = load i32, ptr %15086, align 4, !tbaa !5
  store i32 %15087, ptr %468, align 4, !tbaa !5
  %15088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15089 = call i32 @s2n_print_stacktrace(ptr noundef %15088)
  %15090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15091 = trunc i8 %15090 to i1
  br i1 %15091, label %15092, label %15114

15092:                                            ; preds = %15085
  %15093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15094 = call i32 @fileno(ptr noundef %15093) #10
  %15095 = call i32 @isatty(i32 noundef %15094) #10
  %15096 = icmp ne i32 %15095, 0
  br i1 %15096, label %15097, label %15114

15097:                                            ; preds = %15092
  %15098 = load i32, ptr %468, align 4, !tbaa !5
  %15099 = call ptr @__errno_location() #11
  store i32 %15098, ptr %15099, align 4, !tbaa !5
  %15100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15101 = load i32, ptr @test_count, align 4, !tbaa !5
  %15102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15103 = load i32, ptr %15102, align 4, !tbaa !5
  %15104 = call ptr @s2n_strerror(i32 noundef %15103, ptr noundef @.str.4)
  %15105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15106 = load i32, ptr %15105, align 4, !tbaa !5
  %15107 = call ptr @s2n_strerror_debug(i32 noundef %15106, ptr noundef @.str.4)
  %15108 = call ptr @__errno_location() #11
  %15109 = load i32, ptr %15108, align 4, !tbaa !5
  %15110 = call ptr @strerror(i32 noundef %15109) #10
  %15111 = call ptr @__errno_location() #11
  %15112 = load i32, ptr %15111, align 4, !tbaa !5
  %15113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15100, ptr noundef @.str.2, i32 noundef %15101, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 1034, ptr noundef %15104, ptr noundef %15107, ptr noundef %15110, i32 noundef %15112) #10
  br label %15131

15114:                                            ; preds = %15092, %15085
  %15115 = load i32, ptr %468, align 4, !tbaa !5
  %15116 = call ptr @__errno_location() #11
  store i32 %15115, ptr %15116, align 4, !tbaa !5
  %15117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15118 = load i32, ptr @test_count, align 4, !tbaa !5
  %15119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15120 = load i32, ptr %15119, align 4, !tbaa !5
  %15121 = call ptr @s2n_strerror(i32 noundef %15120, ptr noundef @.str.4)
  %15122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15123 = load i32, ptr %15122, align 4, !tbaa !5
  %15124 = call ptr @s2n_strerror_debug(i32 noundef %15123, ptr noundef @.str.4)
  %15125 = call ptr @__errno_location() #11
  %15126 = load i32, ptr %15125, align 4, !tbaa !5
  %15127 = call ptr @strerror(i32 noundef %15126) #10
  %15128 = call ptr @__errno_location() #11
  %15129 = load i32, ptr %15128, align 4, !tbaa !5
  %15130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15117, ptr noundef @.str.5, i32 noundef %15118, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 1034, ptr noundef %15121, ptr noundef %15124, ptr noundef %15127, i32 noundef %15129) #10
  br label %15131

15131:                                            ; preds = %15114, %15097
  call void @llvm.lifetime.end.p0(i64 4, ptr %468) #10
  br label %15132

15132:                                            ; preds = %15131
  br label %15133

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

15134:                                            ; No predecessors!
  br label %15135

15135:                                            ; preds = %15134
  br label %15136

15136:                                            ; preds = %15135, %15074
  br label %15137

15137:                                            ; preds = %15136
  br label %15138

15138:                                            ; preds = %15137
  br label %15139

15139:                                            ; preds = %15138
  %15140 = load i64, ptr %465, align 8, !tbaa !54
  %15141 = add i64 %15140, 1
  store i64 %15141, ptr %465, align 8, !tbaa !54
  br label %15003, !llvm.loop !80

15142:                                            ; preds = %15006
  call void @llvm.lifetime.end.p0(i64 16, ptr %458) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %457) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %456) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %455) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %454) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %453) #10
  %15143 = call i32 @s2n_stuffer_free(ptr noundef %451)
  call void @llvm.lifetime.end.p0(i64 40, ptr %451) #10
  %15144 = call i32 @s2n_connection_ptr_free(ptr noundef %450)
  %15145 = getelementptr inbounds %struct.s2n_result, ptr %469, i32 0, i32 0
  store i32 %15144, ptr %15145, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %450) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %470) #10
  %15146 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %15146, ptr %470, align 8, !tbaa !9
  %15147 = load ptr, ptr %470, align 8, !tbaa !9
  %15148 = getelementptr inbounds %struct.s2n_connection, ptr %15147, i32 0, i32 2
  store ptr %410, ptr %15148, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr %471) #10
  call void @llvm.memset.p0.i64(ptr align 8 %471, i8 0, i64 40, i1 false)
  br label %15149

15149:                                            ; preds = %15142
  %15150 = load i32, ptr @test_count, align 4, !tbaa !5
  %15151 = add nsw i32 %15150, 1
  store i32 %15151, ptr @test_count, align 4, !tbaa !5
  %15152 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %471, i32 noundef 0)
  %15153 = icmp eq i32 %15152, -1
  br i1 %15153, label %15154, label %15207

15154:                                            ; preds = %15149
  br label %15155

15155:                                            ; preds = %15154
  br label %15156

15156:                                            ; preds = %15155
  call void @llvm.lifetime.start.p0(i64 4, ptr %472) #10
  %15157 = call ptr @__errno_location() #11
  %15158 = load i32, ptr %15157, align 4, !tbaa !5
  store i32 %15158, ptr %472, align 4, !tbaa !5
  %15159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15160 = call i32 @s2n_print_stacktrace(ptr noundef %15159)
  %15161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15162 = trunc i8 %15161 to i1
  br i1 %15162, label %15163, label %15185

15163:                                            ; preds = %15156
  %15164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15165 = call i32 @fileno(ptr noundef %15164) #10
  %15166 = call i32 @isatty(i32 noundef %15165) #10
  %15167 = icmp ne i32 %15166, 0
  br i1 %15167, label %15168, label %15185

15168:                                            ; preds = %15163
  %15169 = load i32, ptr %472, align 4, !tbaa !5
  %15170 = call ptr @__errno_location() #11
  store i32 %15169, ptr %15170, align 4, !tbaa !5
  %15171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15172 = load i32, ptr @test_count, align 4, !tbaa !5
  %15173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15174 = load i32, ptr %15173, align 4, !tbaa !5
  %15175 = call ptr @s2n_strerror(i32 noundef %15174, ptr noundef @.str.4)
  %15176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15177 = load i32, ptr %15176, align 4, !tbaa !5
  %15178 = call ptr @s2n_strerror_debug(i32 noundef %15177, ptr noundef @.str.4)
  %15179 = call ptr @__errno_location() #11
  %15180 = load i32, ptr %15179, align 4, !tbaa !5
  %15181 = call ptr @strerror(i32 noundef %15180) #10
  %15182 = call ptr @__errno_location() #11
  %15183 = load i32, ptr %15182, align 4, !tbaa !5
  %15184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15171, ptr noundef @.str.2, i32 noundef %15172, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 1045, ptr noundef %15175, ptr noundef %15178, ptr noundef %15181, i32 noundef %15183) #10
  br label %15202

15185:                                            ; preds = %15163, %15156
  %15186 = load i32, ptr %472, align 4, !tbaa !5
  %15187 = call ptr @__errno_location() #11
  store i32 %15186, ptr %15187, align 4, !tbaa !5
  %15188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15189 = load i32, ptr @test_count, align 4, !tbaa !5
  %15190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15191 = load i32, ptr %15190, align 4, !tbaa !5
  %15192 = call ptr @s2n_strerror(i32 noundef %15191, ptr noundef @.str.4)
  %15193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15194 = load i32, ptr %15193, align 4, !tbaa !5
  %15195 = call ptr @s2n_strerror_debug(i32 noundef %15194, ptr noundef @.str.4)
  %15196 = call ptr @__errno_location() #11
  %15197 = load i32, ptr %15196, align 4, !tbaa !5
  %15198 = call ptr @strerror(i32 noundef %15197) #10
  %15199 = call ptr @__errno_location() #11
  %15200 = load i32, ptr %15199, align 4, !tbaa !5
  %15201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15188, ptr noundef @.str.5, i32 noundef %15189, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 1045, ptr noundef %15192, ptr noundef %15195, ptr noundef %15198, i32 noundef %15200) #10
  br label %15202

15202:                                            ; preds = %15185, %15168
  call void @llvm.lifetime.end.p0(i64 4, ptr %472) #10
  br label %15203

15203:                                            ; preds = %15202
  br label %15204

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

15205:                                            ; No predecessors!
  br label %15206

15206:                                            ; preds = %15205
  br label %15207

15207:                                            ; preds = %15206, %15149
  br label %15208

15208:                                            ; preds = %15207
  br label %15209

15209:                                            ; preds = %15208
  %15210 = load ptr, ptr %470, align 8, !tbaa !9
  %15211 = getelementptr inbounds %struct.s2n_connection, ptr %15210, i32 0, i32 23
  store i8 33, ptr %15211, align 4, !tbaa !50
  br label %15212

15212:                                            ; preds = %15209
  %15213 = load i32, ptr @test_count, align 4, !tbaa !5
  %15214 = add nsw i32 %15213, 1
  store i32 %15214, ptr @test_count, align 4, !tbaa !5
  %15215 = load i16, ptr @s2n_rsa_pkcs1_sha224, align 8, !tbaa !55
  %15216 = call i32 @s2n_stuffer_write_uint16(ptr noundef %471, i16 noundef zeroext %15215)
  %15217 = icmp eq i32 %15216, -1
  br i1 %15217, label %15218, label %15271

15218:                                            ; preds = %15212
  br label %15219

15219:                                            ; preds = %15218
  br label %15220

15220:                                            ; preds = %15219
  call void @llvm.lifetime.start.p0(i64 4, ptr %473) #10
  %15221 = call ptr @__errno_location() #11
  %15222 = load i32, ptr %15221, align 4, !tbaa !5
  store i32 %15222, ptr %473, align 4, !tbaa !5
  %15223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15224 = call i32 @s2n_print_stacktrace(ptr noundef %15223)
  %15225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15226 = trunc i8 %15225 to i1
  br i1 %15226, label %15227, label %15249

15227:                                            ; preds = %15220
  %15228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15229 = call i32 @fileno(ptr noundef %15228) #10
  %15230 = call i32 @isatty(i32 noundef %15229) #10
  %15231 = icmp ne i32 %15230, 0
  br i1 %15231, label %15232, label %15249

15232:                                            ; preds = %15227
  %15233 = load i32, ptr %473, align 4, !tbaa !5
  %15234 = call ptr @__errno_location() #11
  store i32 %15233, ptr %15234, align 4, !tbaa !5
  %15235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15236 = load i32, ptr @test_count, align 4, !tbaa !5
  %15237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15238 = load i32, ptr %15237, align 4, !tbaa !5
  %15239 = call ptr @s2n_strerror(i32 noundef %15238, ptr noundef @.str.4)
  %15240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15241 = load i32, ptr %15240, align 4, !tbaa !5
  %15242 = call ptr @s2n_strerror_debug(i32 noundef %15241, ptr noundef @.str.4)
  %15243 = call ptr @__errno_location() #11
  %15244 = load i32, ptr %15243, align 4, !tbaa !5
  %15245 = call ptr @strerror(i32 noundef %15244) #10
  %15246 = call ptr @__errno_location() #11
  %15247 = load i32, ptr %15246, align 4, !tbaa !5
  %15248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15235, ptr noundef @.str.2, i32 noundef %15236, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 1048, ptr noundef %15239, ptr noundef %15242, ptr noundef %15245, i32 noundef %15247) #10
  br label %15266

15249:                                            ; preds = %15227, %15220
  %15250 = load i32, ptr %473, align 4, !tbaa !5
  %15251 = call ptr @__errno_location() #11
  store i32 %15250, ptr %15251, align 4, !tbaa !5
  %15252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15253 = load i32, ptr @test_count, align 4, !tbaa !5
  %15254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15255 = load i32, ptr %15254, align 4, !tbaa !5
  %15256 = call ptr @s2n_strerror(i32 noundef %15255, ptr noundef @.str.4)
  %15257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15258 = load i32, ptr %15257, align 4, !tbaa !5
  %15259 = call ptr @s2n_strerror_debug(i32 noundef %15258, ptr noundef @.str.4)
  %15260 = call ptr @__errno_location() #11
  %15261 = load i32, ptr %15260, align 4, !tbaa !5
  %15262 = call ptr @strerror(i32 noundef %15261) #10
  %15263 = call ptr @__errno_location() #11
  %15264 = load i32, ptr %15263, align 4, !tbaa !5
  %15265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15252, ptr noundef @.str.5, i32 noundef %15253, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 1048, ptr noundef %15256, ptr noundef %15259, ptr noundef %15262, i32 noundef %15264) #10
  br label %15266

15266:                                            ; preds = %15249, %15232
  call void @llvm.lifetime.end.p0(i64 4, ptr %473) #10
  br label %15267

15267:                                            ; preds = %15266
  br label %15268

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

15269:                                            ; No predecessors!
  br label %15270

15270:                                            ; preds = %15269
  br label %15271

15271:                                            ; preds = %15270, %15212
  br label %15272

15272:                                            ; preds = %15271
  br label %15273

15273:                                            ; preds = %15272
  br label %15274

15274:                                            ; preds = %15273
  %15275 = load i32, ptr @test_count, align 4, !tbaa !5
  %15276 = add nsw i32 %15275, 1
  store i32 %15276, ptr @test_count, align 4, !tbaa !5
  %15277 = load ptr, ptr %470, align 8, !tbaa !9
  %15278 = call i32 @s2n_signature_algorithm_recv(ptr noundef %15277, ptr noundef %471)
  %15279 = getelementptr inbounds %struct.s2n_result, ptr %474, i32 0, i32 0
  store i32 %15278, ptr %15279, align 4
  %15280 = getelementptr inbounds %struct.s2n_result, ptr %474, i32 0, i32 0
  %15281 = load i32, ptr %15280, align 4
  %15282 = call zeroext i1 @s2n_result_is_ok(i32 %15281)
  br i1 %15282, label %15336, label %15283

15283:                                            ; preds = %15274
  br label %15284

15284:                                            ; preds = %15283
  br label %15285

15285:                                            ; preds = %15284
  call void @llvm.lifetime.start.p0(i64 4, ptr %475) #10
  %15286 = call ptr @__errno_location() #11
  %15287 = load i32, ptr %15286, align 4, !tbaa !5
  store i32 %15287, ptr %475, align 4, !tbaa !5
  %15288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15289 = call i32 @s2n_print_stacktrace(ptr noundef %15288)
  %15290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15291 = trunc i8 %15290 to i1
  br i1 %15291, label %15292, label %15314

15292:                                            ; preds = %15285
  %15293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15294 = call i32 @fileno(ptr noundef %15293) #10
  %15295 = call i32 @isatty(i32 noundef %15294) #10
  %15296 = icmp ne i32 %15295, 0
  br i1 %15296, label %15297, label %15314

15297:                                            ; preds = %15292
  %15298 = load i32, ptr %475, align 4, !tbaa !5
  %15299 = call ptr @__errno_location() #11
  store i32 %15298, ptr %15299, align 4, !tbaa !5
  %15300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15301 = load i32, ptr @test_count, align 4, !tbaa !5
  %15302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15303 = load i32, ptr %15302, align 4, !tbaa !5
  %15304 = call ptr @s2n_strerror(i32 noundef %15303, ptr noundef @.str.4)
  %15305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15306 = load i32, ptr %15305, align 4, !tbaa !5
  %15307 = call ptr @s2n_strerror_debug(i32 noundef %15306, ptr noundef @.str.4)
  %15308 = call ptr @__errno_location() #11
  %15309 = load i32, ptr %15308, align 4, !tbaa !5
  %15310 = call ptr @strerror(i32 noundef %15309) #10
  %15311 = call ptr @__errno_location() #11
  %15312 = load i32, ptr %15311, align 4, !tbaa !5
  %15313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15300, ptr noundef @.str.2, i32 noundef %15301, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 1049, ptr noundef %15304, ptr noundef %15307, ptr noundef %15310, i32 noundef %15312) #10
  br label %15331

15314:                                            ; preds = %15292, %15285
  %15315 = load i32, ptr %475, align 4, !tbaa !5
  %15316 = call ptr @__errno_location() #11
  store i32 %15315, ptr %15316, align 4, !tbaa !5
  %15317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15318 = load i32, ptr @test_count, align 4, !tbaa !5
  %15319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15320 = load i32, ptr %15319, align 4, !tbaa !5
  %15321 = call ptr @s2n_strerror(i32 noundef %15320, ptr noundef @.str.4)
  %15322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15323 = load i32, ptr %15322, align 4, !tbaa !5
  %15324 = call ptr @s2n_strerror_debug(i32 noundef %15323, ptr noundef @.str.4)
  %15325 = call ptr @__errno_location() #11
  %15326 = load i32, ptr %15325, align 4, !tbaa !5
  %15327 = call ptr @strerror(i32 noundef %15326) #10
  %15328 = call ptr @__errno_location() #11
  %15329 = load i32, ptr %15328, align 4, !tbaa !5
  %15330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15317, ptr noundef @.str.5, i32 noundef %15318, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 1049, ptr noundef %15321, ptr noundef %15324, ptr noundef %15327, i32 noundef %15329) #10
  br label %15331

15331:                                            ; preds = %15314, %15297
  call void @llvm.lifetime.end.p0(i64 4, ptr %475) #10
  br label %15332

15332:                                            ; preds = %15331
  br label %15333

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

15334:                                            ; No predecessors!
  br label %15335

15335:                                            ; preds = %15334
  br label %15336

15336:                                            ; preds = %15335, %15274
  br label %15337

15337:                                            ; preds = %15336
  br label %15338

15338:                                            ; preds = %15337
  br label %15339

15339:                                            ; preds = %15338
  %15340 = load i32, ptr @test_count, align 4, !tbaa !5
  %15341 = add nsw i32 %15340, 1
  store i32 %15341, ptr @test_count, align 4, !tbaa !5
  %15342 = load ptr, ptr %470, align 8, !tbaa !9
  %15343 = getelementptr inbounds %struct.s2n_connection, ptr %15342, i32 0, i32 32
  %15344 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %15343, i32 0, i32 5
  %15345 = load ptr, ptr %15344, align 8, !tbaa !72
  %15346 = icmp eq ptr %15345, @s2n_rsa_pkcs1_sha224
  br i1 %15346, label %15400, label %15347

15347:                                            ; preds = %15339
  br label %15348

15348:                                            ; preds = %15347
  br label %15349

15349:                                            ; preds = %15348
  call void @llvm.lifetime.start.p0(i64 4, ptr %476) #10
  %15350 = call ptr @__errno_location() #11
  %15351 = load i32, ptr %15350, align 4, !tbaa !5
  store i32 %15351, ptr %476, align 4, !tbaa !5
  %15352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15353 = call i32 @s2n_print_stacktrace(ptr noundef %15352)
  %15354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15355 = trunc i8 %15354 to i1
  br i1 %15355, label %15356, label %15378

15356:                                            ; preds = %15349
  %15357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15358 = call i32 @fileno(ptr noundef %15357) #10
  %15359 = call i32 @isatty(i32 noundef %15358) #10
  %15360 = icmp ne i32 %15359, 0
  br i1 %15360, label %15361, label %15378

15361:                                            ; preds = %15356
  %15362 = load i32, ptr %476, align 4, !tbaa !5
  %15363 = call ptr @__errno_location() #11
  store i32 %15362, ptr %15363, align 4, !tbaa !5
  %15364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15365 = load i32, ptr @test_count, align 4, !tbaa !5
  %15366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15367 = load i32, ptr %15366, align 4, !tbaa !5
  %15368 = call ptr @s2n_strerror(i32 noundef %15367, ptr noundef @.str.4)
  %15369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15370 = load i32, ptr %15369, align 4, !tbaa !5
  %15371 = call ptr @s2n_strerror_debug(i32 noundef %15370, ptr noundef @.str.4)
  %15372 = call ptr @__errno_location() #11
  %15373 = load i32, ptr %15372, align 4, !tbaa !5
  %15374 = call ptr @strerror(i32 noundef %15373) #10
  %15375 = call ptr @__errno_location() #11
  %15376 = load i32, ptr %15375, align 4, !tbaa !5
  %15377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15364, ptr noundef @.str.2, i32 noundef %15365, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 1050, ptr noundef %15368, ptr noundef %15371, ptr noundef %15374, i32 noundef %15376) #10
  br label %15395

15378:                                            ; preds = %15356, %15349
  %15379 = load i32, ptr %476, align 4, !tbaa !5
  %15380 = call ptr @__errno_location() #11
  store i32 %15379, ptr %15380, align 4, !tbaa !5
  %15381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15382 = load i32, ptr @test_count, align 4, !tbaa !5
  %15383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15384 = load i32, ptr %15383, align 4, !tbaa !5
  %15385 = call ptr @s2n_strerror(i32 noundef %15384, ptr noundef @.str.4)
  %15386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15387 = load i32, ptr %15386, align 4, !tbaa !5
  %15388 = call ptr @s2n_strerror_debug(i32 noundef %15387, ptr noundef @.str.4)
  %15389 = call ptr @__errno_location() #11
  %15390 = load i32, ptr %15389, align 4, !tbaa !5
  %15391 = call ptr @strerror(i32 noundef %15390) #10
  %15392 = call ptr @__errno_location() #11
  %15393 = load i32, ptr %15392, align 4, !tbaa !5
  %15394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15381, ptr noundef @.str.5, i32 noundef %15382, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 1050, ptr noundef %15385, ptr noundef %15388, ptr noundef %15391, i32 noundef %15393) #10
  br label %15395

15395:                                            ; preds = %15378, %15361
  call void @llvm.lifetime.end.p0(i64 4, ptr %476) #10
  br label %15396

15396:                                            ; preds = %15395
  br label %15397

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

15398:                                            ; No predecessors!
  br label %15399

15399:                                            ; preds = %15398
  br label %15400

15400:                                            ; preds = %15399, %15339
  br label %15401

15401:                                            ; preds = %15400
  br label %15402

15402:                                            ; preds = %15401
  %15403 = load ptr, ptr %470, align 8, !tbaa !9
  %15404 = getelementptr inbounds %struct.s2n_connection, ptr %15403, i32 0, i32 23
  store i8 34, ptr %15404, align 4, !tbaa !50
  br label %15405

15405:                                            ; preds = %15402
  %15406 = load i32, ptr @test_count, align 4, !tbaa !5
  %15407 = add nsw i32 %15406, 1
  store i32 %15407, ptr @test_count, align 4, !tbaa !5
  %15408 = load i16, ptr @s2n_rsa_pkcs1_sha224, align 8, !tbaa !55
  %15409 = call i32 @s2n_stuffer_write_uint16(ptr noundef %471, i16 noundef zeroext %15408)
  %15410 = icmp eq i32 %15409, -1
  br i1 %15410, label %15411, label %15464

15411:                                            ; preds = %15405
  br label %15412

15412:                                            ; preds = %15411
  br label %15413

15413:                                            ; preds = %15412
  call void @llvm.lifetime.start.p0(i64 4, ptr %477) #10
  %15414 = call ptr @__errno_location() #11
  %15415 = load i32, ptr %15414, align 4, !tbaa !5
  store i32 %15415, ptr %477, align 4, !tbaa !5
  %15416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15417 = call i32 @s2n_print_stacktrace(ptr noundef %15416)
  %15418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15419 = trunc i8 %15418 to i1
  br i1 %15419, label %15420, label %15442

15420:                                            ; preds = %15413
  %15421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15422 = call i32 @fileno(ptr noundef %15421) #10
  %15423 = call i32 @isatty(i32 noundef %15422) #10
  %15424 = icmp ne i32 %15423, 0
  br i1 %15424, label %15425, label %15442

15425:                                            ; preds = %15420
  %15426 = load i32, ptr %477, align 4, !tbaa !5
  %15427 = call ptr @__errno_location() #11
  store i32 %15426, ptr %15427, align 4, !tbaa !5
  %15428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15429 = load i32, ptr @test_count, align 4, !tbaa !5
  %15430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15431 = load i32, ptr %15430, align 4, !tbaa !5
  %15432 = call ptr @s2n_strerror(i32 noundef %15431, ptr noundef @.str.4)
  %15433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15434 = load i32, ptr %15433, align 4, !tbaa !5
  %15435 = call ptr @s2n_strerror_debug(i32 noundef %15434, ptr noundef @.str.4)
  %15436 = call ptr @__errno_location() #11
  %15437 = load i32, ptr %15436, align 4, !tbaa !5
  %15438 = call ptr @strerror(i32 noundef %15437) #10
  %15439 = call ptr @__errno_location() #11
  %15440 = load i32, ptr %15439, align 4, !tbaa !5
  %15441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15428, ptr noundef @.str.2, i32 noundef %15429, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 1053, ptr noundef %15432, ptr noundef %15435, ptr noundef %15438, i32 noundef %15440) #10
  br label %15459

15442:                                            ; preds = %15420, %15413
  %15443 = load i32, ptr %477, align 4, !tbaa !5
  %15444 = call ptr @__errno_location() #11
  store i32 %15443, ptr %15444, align 4, !tbaa !5
  %15445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15446 = load i32, ptr @test_count, align 4, !tbaa !5
  %15447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15448 = load i32, ptr %15447, align 4, !tbaa !5
  %15449 = call ptr @s2n_strerror(i32 noundef %15448, ptr noundef @.str.4)
  %15450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15451 = load i32, ptr %15450, align 4, !tbaa !5
  %15452 = call ptr @s2n_strerror_debug(i32 noundef %15451, ptr noundef @.str.4)
  %15453 = call ptr @__errno_location() #11
  %15454 = load i32, ptr %15453, align 4, !tbaa !5
  %15455 = call ptr @strerror(i32 noundef %15454) #10
  %15456 = call ptr @__errno_location() #11
  %15457 = load i32, ptr %15456, align 4, !tbaa !5
  %15458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15445, ptr noundef @.str.5, i32 noundef %15446, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 1053, ptr noundef %15449, ptr noundef %15452, ptr noundef %15455, i32 noundef %15457) #10
  br label %15459

15459:                                            ; preds = %15442, %15425
  call void @llvm.lifetime.end.p0(i64 4, ptr %477) #10
  br label %15460

15460:                                            ; preds = %15459
  br label %15461

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

15462:                                            ; No predecessors!
  br label %15463

15463:                                            ; preds = %15462
  br label %15464

15464:                                            ; preds = %15463, %15405
  br label %15465

15465:                                            ; preds = %15464
  br label %15466

15466:                                            ; preds = %15465
  br label %15467

15467:                                            ; preds = %15466
  br label %15468

15468:                                            ; preds = %15467
  br label %15469

15469:                                            ; preds = %15468
  %15470 = load i32, ptr @test_count, align 4, !tbaa !5
  %15471 = add nsw i32 %15470, 1
  store i32 %15471, ptr @test_count, align 4, !tbaa !5
  %15472 = load ptr, ptr %470, align 8, !tbaa !9
  %15473 = call i32 @s2n_signature_algorithm_recv(ptr noundef %15472, ptr noundef %471)
  %15474 = getelementptr inbounds %struct.s2n_result, ptr %478, i32 0, i32 0
  store i32 %15473, ptr %15474, align 4
  %15475 = getelementptr inbounds %struct.s2n_result, ptr %478, i32 0, i32 0
  %15476 = load i32, ptr %15475, align 4
  %15477 = call zeroext i1 @s2n_result_is_error(i32 %15476)
  br i1 %15477, label %15531, label %15478

15478:                                            ; preds = %15469
  br label %15479

15479:                                            ; preds = %15478
  br label %15480

15480:                                            ; preds = %15479
  call void @llvm.lifetime.start.p0(i64 4, ptr %479) #10
  %15481 = call ptr @__errno_location() #11
  %15482 = load i32, ptr %15481, align 4, !tbaa !5
  store i32 %15482, ptr %479, align 4, !tbaa !5
  %15483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15484 = call i32 @s2n_print_stacktrace(ptr noundef %15483)
  %15485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15486 = trunc i8 %15485 to i1
  br i1 %15486, label %15487, label %15509

15487:                                            ; preds = %15480
  %15488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15489 = call i32 @fileno(ptr noundef %15488) #10
  %15490 = call i32 @isatty(i32 noundef %15489) #10
  %15491 = icmp ne i32 %15490, 0
  br i1 %15491, label %15492, label %15509

15492:                                            ; preds = %15487
  %15493 = load i32, ptr %479, align 4, !tbaa !5
  %15494 = call ptr @__errno_location() #11
  store i32 %15493, ptr %15494, align 4, !tbaa !5
  %15495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15496 = load i32, ptr @test_count, align 4, !tbaa !5
  %15497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15498 = load i32, ptr %15497, align 4, !tbaa !5
  %15499 = call ptr @s2n_strerror(i32 noundef %15498, ptr noundef @.str.4)
  %15500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15501 = load i32, ptr %15500, align 4, !tbaa !5
  %15502 = call ptr @s2n_strerror_debug(i32 noundef %15501, ptr noundef @.str.4)
  %15503 = call ptr @__errno_location() #11
  %15504 = load i32, ptr %15503, align 4, !tbaa !5
  %15505 = call ptr @strerror(i32 noundef %15504) #10
  %15506 = call ptr @__errno_location() #11
  %15507 = load i32, ptr %15506, align 4, !tbaa !5
  %15508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15495, ptr noundef @.str.2, i32 noundef %15496, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 1055, ptr noundef %15499, ptr noundef %15502, ptr noundef %15505, i32 noundef %15507) #10
  br label %15526

15509:                                            ; preds = %15487, %15480
  %15510 = load i32, ptr %479, align 4, !tbaa !5
  %15511 = call ptr @__errno_location() #11
  store i32 %15510, ptr %15511, align 4, !tbaa !5
  %15512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15513 = load i32, ptr @test_count, align 4, !tbaa !5
  %15514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15515 = load i32, ptr %15514, align 4, !tbaa !5
  %15516 = call ptr @s2n_strerror(i32 noundef %15515, ptr noundef @.str.4)
  %15517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15518 = load i32, ptr %15517, align 4, !tbaa !5
  %15519 = call ptr @s2n_strerror_debug(i32 noundef %15518, ptr noundef @.str.4)
  %15520 = call ptr @__errno_location() #11
  %15521 = load i32, ptr %15520, align 4, !tbaa !5
  %15522 = call ptr @strerror(i32 noundef %15521) #10
  %15523 = call ptr @__errno_location() #11
  %15524 = load i32, ptr %15523, align 4, !tbaa !5
  %15525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15512, ptr noundef @.str.5, i32 noundef %15513, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 1055, ptr noundef %15516, ptr noundef %15519, ptr noundef %15522, i32 noundef %15524) #10
  br label %15526

15526:                                            ; preds = %15509, %15492
  call void @llvm.lifetime.end.p0(i64 4, ptr %479) #10
  br label %15527

15527:                                            ; preds = %15526
  br label %15528

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

15529:                                            ; No predecessors!
  br label %15530

15530:                                            ; preds = %15529
  br label %15531

15531:                                            ; preds = %15530, %15469
  br label %15532

15532:                                            ; preds = %15531
  br label %15533

15533:                                            ; preds = %15532
  br label %15534

15534:                                            ; preds = %15533
  %15535 = load i32, ptr @test_count, align 4, !tbaa !5
  %15536 = add nsw i32 %15535, 1
  store i32 %15536, ptr @test_count, align 4, !tbaa !5
  %15537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15538 = load i32, ptr %15537, align 4, !tbaa !5
  %15539 = icmp eq i32 %15538, 335544348
  br i1 %15539, label %15593, label %15540

15540:                                            ; preds = %15534
  br label %15541

15541:                                            ; preds = %15540
  br label %15542

15542:                                            ; preds = %15541
  call void @llvm.lifetime.start.p0(i64 4, ptr %480) #10
  %15543 = call ptr @__errno_location() #11
  %15544 = load i32, ptr %15543, align 4, !tbaa !5
  store i32 %15544, ptr %480, align 4, !tbaa !5
  %15545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15546 = call i32 @s2n_print_stacktrace(ptr noundef %15545)
  %15547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15548 = trunc i8 %15547 to i1
  br i1 %15548, label %15549, label %15571

15549:                                            ; preds = %15542
  %15550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15551 = call i32 @fileno(ptr noundef %15550) #10
  %15552 = call i32 @isatty(i32 noundef %15551) #10
  %15553 = icmp ne i32 %15552, 0
  br i1 %15553, label %15554, label %15571

15554:                                            ; preds = %15549
  %15555 = load i32, ptr %480, align 4, !tbaa !5
  %15556 = call ptr @__errno_location() #11
  store i32 %15555, ptr %15556, align 4, !tbaa !5
  %15557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15558 = load i32, ptr @test_count, align 4, !tbaa !5
  %15559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15560 = load i32, ptr %15559, align 4, !tbaa !5
  %15561 = call ptr @s2n_strerror(i32 noundef %15560, ptr noundef @.str.4)
  %15562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15563 = load i32, ptr %15562, align 4, !tbaa !5
  %15564 = call ptr @s2n_strerror_debug(i32 noundef %15563, ptr noundef @.str.4)
  %15565 = call ptr @__errno_location() #11
  %15566 = load i32, ptr %15565, align 4, !tbaa !5
  %15567 = call ptr @strerror(i32 noundef %15566) #10
  %15568 = call ptr @__errno_location() #11
  %15569 = load i32, ptr %15568, align 4, !tbaa !5
  %15570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15557, ptr noundef @.str.2, i32 noundef %15558, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 1055, ptr noundef %15561, ptr noundef %15564, ptr noundef %15567, i32 noundef %15569) #10
  br label %15588

15571:                                            ; preds = %15549, %15542
  %15572 = load i32, ptr %480, align 4, !tbaa !5
  %15573 = call ptr @__errno_location() #11
  store i32 %15572, ptr %15573, align 4, !tbaa !5
  %15574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15575 = load i32, ptr @test_count, align 4, !tbaa !5
  %15576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15577 = load i32, ptr %15576, align 4, !tbaa !5
  %15578 = call ptr @s2n_strerror(i32 noundef %15577, ptr noundef @.str.4)
  %15579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15580 = load i32, ptr %15579, align 4, !tbaa !5
  %15581 = call ptr @s2n_strerror_debug(i32 noundef %15580, ptr noundef @.str.4)
  %15582 = call ptr @__errno_location() #11
  %15583 = load i32, ptr %15582, align 4, !tbaa !5
  %15584 = call ptr @strerror(i32 noundef %15583) #10
  %15585 = call ptr @__errno_location() #11
  %15586 = load i32, ptr %15585, align 4, !tbaa !5
  %15587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15574, ptr noundef @.str.5, i32 noundef %15575, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 1055, ptr noundef %15578, ptr noundef %15581, ptr noundef %15584, i32 noundef %15586) #10
  br label %15588

15588:                                            ; preds = %15571, %15554
  call void @llvm.lifetime.end.p0(i64 4, ptr %480) #10
  br label %15589

15589:                                            ; preds = %15588
  br label %15590

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

15591:                                            ; No predecessors!
  br label %15592

15592:                                            ; preds = %15591
  br label %15593

15593:                                            ; preds = %15592, %15534
  br label %15594

15594:                                            ; preds = %15593
  br label %15595

15595:                                            ; preds = %15594
  br label %15596

15596:                                            ; preds = %15595
  %15597 = load i32, ptr @test_count, align 4, !tbaa !5
  %15598 = add nsw i32 %15597, 1
  store i32 %15598, ptr @test_count, align 4, !tbaa !5
  %15599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15600 = load i32, ptr %15599, align 4, !tbaa !5
  %15601 = call ptr @s2n_strerror_debug(i32 noundef %15600, ptr noundef @.str.4)
  %15602 = icmp eq ptr %15601, null
  br i1 %15602, label %15603, label %15656

15603:                                            ; preds = %15596
  br label %15604

15604:                                            ; preds = %15603
  br label %15605

15605:                                            ; preds = %15604
  call void @llvm.lifetime.start.p0(i64 4, ptr %481) #10
  %15606 = call ptr @__errno_location() #11
  %15607 = load i32, ptr %15606, align 4, !tbaa !5
  store i32 %15607, ptr %481, align 4, !tbaa !5
  %15608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15609 = call i32 @s2n_print_stacktrace(ptr noundef %15608)
  %15610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15611 = trunc i8 %15610 to i1
  br i1 %15611, label %15612, label %15634

15612:                                            ; preds = %15605
  %15613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15614 = call i32 @fileno(ptr noundef %15613) #10
  %15615 = call i32 @isatty(i32 noundef %15614) #10
  %15616 = icmp ne i32 %15615, 0
  br i1 %15616, label %15617, label %15634

15617:                                            ; preds = %15612
  %15618 = load i32, ptr %481, align 4, !tbaa !5
  %15619 = call ptr @__errno_location() #11
  store i32 %15618, ptr %15619, align 4, !tbaa !5
  %15620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15621 = load i32, ptr @test_count, align 4, !tbaa !5
  %15622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15623 = load i32, ptr %15622, align 4, !tbaa !5
  %15624 = call ptr @s2n_strerror(i32 noundef %15623, ptr noundef @.str.4)
  %15625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15626 = load i32, ptr %15625, align 4, !tbaa !5
  %15627 = call ptr @s2n_strerror_debug(i32 noundef %15626, ptr noundef @.str.4)
  %15628 = call ptr @__errno_location() #11
  %15629 = load i32, ptr %15628, align 4, !tbaa !5
  %15630 = call ptr @strerror(i32 noundef %15629) #10
  %15631 = call ptr @__errno_location() #11
  %15632 = load i32, ptr %15631, align 4, !tbaa !5
  %15633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15620, ptr noundef @.str.2, i32 noundef %15621, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1055, ptr noundef %15624, ptr noundef %15627, ptr noundef %15630, i32 noundef %15632) #10
  br label %15651

15634:                                            ; preds = %15612, %15605
  %15635 = load i32, ptr %481, align 4, !tbaa !5
  %15636 = call ptr @__errno_location() #11
  store i32 %15635, ptr %15636, align 4, !tbaa !5
  %15637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15638 = load i32, ptr @test_count, align 4, !tbaa !5
  %15639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15640 = load i32, ptr %15639, align 4, !tbaa !5
  %15641 = call ptr @s2n_strerror(i32 noundef %15640, ptr noundef @.str.4)
  %15642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15643 = load i32, ptr %15642, align 4, !tbaa !5
  %15644 = call ptr @s2n_strerror_debug(i32 noundef %15643, ptr noundef @.str.4)
  %15645 = call ptr @__errno_location() #11
  %15646 = load i32, ptr %15645, align 4, !tbaa !5
  %15647 = call ptr @strerror(i32 noundef %15646) #10
  %15648 = call ptr @__errno_location() #11
  %15649 = load i32, ptr %15648, align 4, !tbaa !5
  %15650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15637, ptr noundef @.str.5, i32 noundef %15638, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1055, ptr noundef %15641, ptr noundef %15644, ptr noundef %15647, i32 noundef %15649) #10
  br label %15651

15651:                                            ; preds = %15634, %15617
  call void @llvm.lifetime.end.p0(i64 4, ptr %481) #10
  br label %15652

15652:                                            ; preds = %15651
  br label %15653

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

15654:                                            ; No predecessors!
  br label %15655

15655:                                            ; preds = %15654
  br label %15656

15656:                                            ; preds = %15655, %15596
  br label %15657

15657:                                            ; preds = %15656
  br label %15658

15658:                                            ; preds = %15657
  br label %15659

15659:                                            ; preds = %15658
  br label %15660

15660:                                            ; preds = %15659
  br label %15661

15661:                                            ; preds = %15660
  %15662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %15662, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %15663 = call ptr @__errno_location() #11
  store i32 0, ptr %15663, align 4, !tbaa !5
  br label %15664

15664:                                            ; preds = %15661
  br label %15665

15665:                                            ; preds = %15664
  br label %15666

15666:                                            ; preds = %15665
  br label %15667

15667:                                            ; preds = %15666
  %15668 = call i32 @s2n_stuffer_free(ptr noundef %471)
  call void @llvm.lifetime.end.p0(i64 40, ptr %471) #10
  %15669 = call i32 @s2n_connection_ptr_free(ptr noundef %470)
  %15670 = getelementptr inbounds %struct.s2n_result, ptr %482, i32 0, i32 0
  store i32 %15669, ptr %15670, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %470) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %410) #10
  call void @llvm.lifetime.start.p0(i64 2, ptr %483) #10
  store i16 128, ptr %483, align 2, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 2, ptr %484) #10
  store i16 127, ptr %484, align 2, !tbaa !51
  br label %15671

15671:                                            ; preds = %16210, %15667
  %15672 = load i16, ptr %484, align 2, !tbaa !51
  %15673 = zext i16 %15672 to i32
  %15674 = icmp sle i32 %15673, 129
  br i1 %15674, label %15676, label %15675

15675:                                            ; preds = %15671
  store i32 1434, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %484) #10
  br label %16213

15676:                                            ; preds = %15671
  call void @llvm.lifetime.start.p0(i64 8, ptr %486) #10
  %15677 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %15677, ptr %486, align 8, !tbaa !9
  br label %15678

15678:                                            ; preds = %15676
  %15679 = load i32, ptr @test_count, align 4, !tbaa !5
  %15680 = add nsw i32 %15679, 1
  store i32 %15680, ptr @test_count, align 4, !tbaa !5
  %15681 = load ptr, ptr %486, align 8, !tbaa !9
  %15682 = icmp eq ptr %15681, null
  br i1 %15682, label %15683, label %15736

15683:                                            ; preds = %15678
  br label %15684

15684:                                            ; preds = %15683
  br label %15685

15685:                                            ; preds = %15684
  call void @llvm.lifetime.start.p0(i64 4, ptr %487) #10
  %15686 = call ptr @__errno_location() #11
  %15687 = load i32, ptr %15686, align 4, !tbaa !5
  store i32 %15687, ptr %487, align 4, !tbaa !5
  %15688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15689 = call i32 @s2n_print_stacktrace(ptr noundef %15688)
  %15690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15691 = trunc i8 %15690 to i1
  br i1 %15691, label %15692, label %15714

15692:                                            ; preds = %15685
  %15693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15694 = call i32 @fileno(ptr noundef %15693) #10
  %15695 = call i32 @isatty(i32 noundef %15694) #10
  %15696 = icmp ne i32 %15695, 0
  br i1 %15696, label %15697, label %15714

15697:                                            ; preds = %15692
  %15698 = load i32, ptr %487, align 4, !tbaa !5
  %15699 = call ptr @__errno_location() #11
  store i32 %15698, ptr %15699, align 4, !tbaa !5
  %15700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15701 = load i32, ptr @test_count, align 4, !tbaa !5
  %15702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15703 = load i32, ptr %15702, align 4, !tbaa !5
  %15704 = call ptr @s2n_strerror(i32 noundef %15703, ptr noundef @.str.4)
  %15705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15706 = load i32, ptr %15705, align 4, !tbaa !5
  %15707 = call ptr @s2n_strerror_debug(i32 noundef %15706, ptr noundef @.str.4)
  %15708 = call ptr @__errno_location() #11
  %15709 = load i32, ptr %15708, align 4, !tbaa !5
  %15710 = call ptr @strerror(i32 noundef %15709) #10
  %15711 = call ptr @__errno_location() #11
  %15712 = load i32, ptr %15711, align 4, !tbaa !5
  %15713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15700, ptr noundef @.str.2, i32 noundef %15701, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 1064, ptr noundef %15704, ptr noundef %15707, ptr noundef %15710, i32 noundef %15712) #10
  br label %15731

15714:                                            ; preds = %15692, %15685
  %15715 = load i32, ptr %487, align 4, !tbaa !5
  %15716 = call ptr @__errno_location() #11
  store i32 %15715, ptr %15716, align 4, !tbaa !5
  %15717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15718 = load i32, ptr @test_count, align 4, !tbaa !5
  %15719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15720 = load i32, ptr %15719, align 4, !tbaa !5
  %15721 = call ptr @s2n_strerror(i32 noundef %15720, ptr noundef @.str.4)
  %15722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15723 = load i32, ptr %15722, align 4, !tbaa !5
  %15724 = call ptr @s2n_strerror_debug(i32 noundef %15723, ptr noundef @.str.4)
  %15725 = call ptr @__errno_location() #11
  %15726 = load i32, ptr %15725, align 4, !tbaa !5
  %15727 = call ptr @strerror(i32 noundef %15726) #10
  %15728 = call ptr @__errno_location() #11
  %15729 = load i32, ptr %15728, align 4, !tbaa !5
  %15730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15717, ptr noundef @.str.5, i32 noundef %15718, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 1064, ptr noundef %15721, ptr noundef %15724, ptr noundef %15727, i32 noundef %15729) #10
  br label %15731

15731:                                            ; preds = %15714, %15697
  call void @llvm.lifetime.end.p0(i64 4, ptr %487) #10
  br label %15732

15732:                                            ; preds = %15731
  br label %15733

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

15734:                                            ; No predecessors!
  br label %15735

15735:                                            ; preds = %15734
  br label %15736

15736:                                            ; preds = %15735, %15678
  br label %15737

15737:                                            ; preds = %15736
  br label %15738

15738:                                            ; preds = %15737
  call void @llvm.lifetime.start.p0(i64 40, ptr %488) #10
  call void @llvm.memset.p0.i64(ptr align 8 %488, i8 0, i64 40, i1 false)
  br label %15739

15739:                                            ; preds = %15738
  %15740 = load i32, ptr @test_count, align 4, !tbaa !5
  %15741 = add nsw i32 %15740, 1
  store i32 %15741, ptr @test_count, align 4, !tbaa !5
  %15742 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %488, i32 noundef 0)
  %15743 = icmp eq i32 %15742, -1
  br i1 %15743, label %15744, label %15797

15744:                                            ; preds = %15739
  br label %15745

15745:                                            ; preds = %15744
  br label %15746

15746:                                            ; preds = %15745
  call void @llvm.lifetime.start.p0(i64 4, ptr %489) #10
  %15747 = call ptr @__errno_location() #11
  %15748 = load i32, ptr %15747, align 4, !tbaa !5
  store i32 %15748, ptr %489, align 4, !tbaa !5
  %15749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15750 = call i32 @s2n_print_stacktrace(ptr noundef %15749)
  %15751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15752 = trunc i8 %15751 to i1
  br i1 %15752, label %15753, label %15775

15753:                                            ; preds = %15746
  %15754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15755 = call i32 @fileno(ptr noundef %15754) #10
  %15756 = call i32 @isatty(i32 noundef %15755) #10
  %15757 = icmp ne i32 %15756, 0
  br i1 %15757, label %15758, label %15775

15758:                                            ; preds = %15753
  %15759 = load i32, ptr %489, align 4, !tbaa !5
  %15760 = call ptr @__errno_location() #11
  store i32 %15759, ptr %15760, align 4, !tbaa !5
  %15761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15762 = load i32, ptr @test_count, align 4, !tbaa !5
  %15763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15764 = load i32, ptr %15763, align 4, !tbaa !5
  %15765 = call ptr @s2n_strerror(i32 noundef %15764, ptr noundef @.str.4)
  %15766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15767 = load i32, ptr %15766, align 4, !tbaa !5
  %15768 = call ptr @s2n_strerror_debug(i32 noundef %15767, ptr noundef @.str.4)
  %15769 = call ptr @__errno_location() #11
  %15770 = load i32, ptr %15769, align 4, !tbaa !5
  %15771 = call ptr @strerror(i32 noundef %15770) #10
  %15772 = call ptr @__errno_location() #11
  %15773 = load i32, ptr %15772, align 4, !tbaa !5
  %15774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15761, ptr noundef @.str.2, i32 noundef %15762, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 1067, ptr noundef %15765, ptr noundef %15768, ptr noundef %15771, i32 noundef %15773) #10
  br label %15792

15775:                                            ; preds = %15753, %15746
  %15776 = load i32, ptr %489, align 4, !tbaa !5
  %15777 = call ptr @__errno_location() #11
  store i32 %15776, ptr %15777, align 4, !tbaa !5
  %15778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15779 = load i32, ptr @test_count, align 4, !tbaa !5
  %15780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15781 = load i32, ptr %15780, align 4, !tbaa !5
  %15782 = call ptr @s2n_strerror(i32 noundef %15781, ptr noundef @.str.4)
  %15783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15784 = load i32, ptr %15783, align 4, !tbaa !5
  %15785 = call ptr @s2n_strerror_debug(i32 noundef %15784, ptr noundef @.str.4)
  %15786 = call ptr @__errno_location() #11
  %15787 = load i32, ptr %15786, align 4, !tbaa !5
  %15788 = call ptr @strerror(i32 noundef %15787) #10
  %15789 = call ptr @__errno_location() #11
  %15790 = load i32, ptr %15789, align 4, !tbaa !5
  %15791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15778, ptr noundef @.str.5, i32 noundef %15779, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 1067, ptr noundef %15782, ptr noundef %15785, ptr noundef %15788, i32 noundef %15790) #10
  br label %15792

15792:                                            ; preds = %15775, %15758
  call void @llvm.lifetime.end.p0(i64 4, ptr %489) #10
  br label %15793

15793:                                            ; preds = %15792
  br label %15794

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

15795:                                            ; No predecessors!
  br label %15796

15796:                                            ; preds = %15795
  br label %15797

15797:                                            ; preds = %15796, %15739
  br label %15798

15798:                                            ; preds = %15797
  br label %15799

15799:                                            ; preds = %15798
  call void @llvm.lifetime.start.p0(i64 2, ptr %490) #10
  %15800 = load i16, ptr %484, align 2, !tbaa !51
  %15801 = zext i16 %15800 to i32
  %15802 = mul nsw i32 %15801, 2
  %15803 = trunc i32 %15802 to i16
  store i16 %15803, ptr %490, align 2, !tbaa !51
  br label %15804

15804:                                            ; preds = %15799
  %15805 = load i32, ptr @test_count, align 4, !tbaa !5
  %15806 = add nsw i32 %15805, 1
  store i32 %15806, ptr @test_count, align 4, !tbaa !5
  %15807 = load i16, ptr %490, align 2, !tbaa !51
  %15808 = call i32 @s2n_stuffer_write_uint16(ptr noundef %488, i16 noundef zeroext %15807)
  %15809 = icmp eq i32 %15808, -1
  br i1 %15809, label %15810, label %15863

15810:                                            ; preds = %15804
  br label %15811

15811:                                            ; preds = %15810
  br label %15812

15812:                                            ; preds = %15811
  call void @llvm.lifetime.start.p0(i64 4, ptr %491) #10
  %15813 = call ptr @__errno_location() #11
  %15814 = load i32, ptr %15813, align 4, !tbaa !5
  store i32 %15814, ptr %491, align 4, !tbaa !5
  %15815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15816 = call i32 @s2n_print_stacktrace(ptr noundef %15815)
  %15817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15818 = trunc i8 %15817 to i1
  br i1 %15818, label %15819, label %15841

15819:                                            ; preds = %15812
  %15820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15821 = call i32 @fileno(ptr noundef %15820) #10
  %15822 = call i32 @isatty(i32 noundef %15821) #10
  %15823 = icmp ne i32 %15822, 0
  br i1 %15823, label %15824, label %15841

15824:                                            ; preds = %15819
  %15825 = load i32, ptr %491, align 4, !tbaa !5
  %15826 = call ptr @__errno_location() #11
  store i32 %15825, ptr %15826, align 4, !tbaa !5
  %15827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15828 = load i32, ptr @test_count, align 4, !tbaa !5
  %15829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15830 = load i32, ptr %15829, align 4, !tbaa !5
  %15831 = call ptr @s2n_strerror(i32 noundef %15830, ptr noundef @.str.4)
  %15832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15833 = load i32, ptr %15832, align 4, !tbaa !5
  %15834 = call ptr @s2n_strerror_debug(i32 noundef %15833, ptr noundef @.str.4)
  %15835 = call ptr @__errno_location() #11
  %15836 = load i32, ptr %15835, align 4, !tbaa !5
  %15837 = call ptr @strerror(i32 noundef %15836) #10
  %15838 = call ptr @__errno_location() #11
  %15839 = load i32, ptr %15838, align 4, !tbaa !5
  %15840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15827, ptr noundef @.str.2, i32 noundef %15828, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 1070, ptr noundef %15831, ptr noundef %15834, ptr noundef %15837, i32 noundef %15839) #10
  br label %15858

15841:                                            ; preds = %15819, %15812
  %15842 = load i32, ptr %491, align 4, !tbaa !5
  %15843 = call ptr @__errno_location() #11
  store i32 %15842, ptr %15843, align 4, !tbaa !5
  %15844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15845 = load i32, ptr @test_count, align 4, !tbaa !5
  %15846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15847 = load i32, ptr %15846, align 4, !tbaa !5
  %15848 = call ptr @s2n_strerror(i32 noundef %15847, ptr noundef @.str.4)
  %15849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15850 = load i32, ptr %15849, align 4, !tbaa !5
  %15851 = call ptr @s2n_strerror_debug(i32 noundef %15850, ptr noundef @.str.4)
  %15852 = call ptr @__errno_location() #11
  %15853 = load i32, ptr %15852, align 4, !tbaa !5
  %15854 = call ptr @strerror(i32 noundef %15853) #10
  %15855 = call ptr @__errno_location() #11
  %15856 = load i32, ptr %15855, align 4, !tbaa !5
  %15857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15844, ptr noundef @.str.5, i32 noundef %15845, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 1070, ptr noundef %15848, ptr noundef %15851, ptr noundef %15854, i32 noundef %15856) #10
  br label %15858

15858:                                            ; preds = %15841, %15824
  call void @llvm.lifetime.end.p0(i64 4, ptr %491) #10
  br label %15859

15859:                                            ; preds = %15858
  br label %15860

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

15861:                                            ; No predecessors!
  br label %15862

15862:                                            ; preds = %15861
  br label %15863

15863:                                            ; preds = %15862, %15804
  br label %15864

15864:                                            ; preds = %15863
  br label %15865

15865:                                            ; preds = %15864
  call void @llvm.lifetime.start.p0(i64 8, ptr %492) #10
  store i64 0, ptr %492, align 8, !tbaa !54
  br label %15866

15866:                                            ; preds = %15935, %15865
  %15867 = load i64, ptr %492, align 8, !tbaa !54
  %15868 = load i16, ptr %484, align 2, !tbaa !51
  %15869 = zext i16 %15868 to i64
  %15870 = icmp ult i64 %15867, %15869
  br i1 %15870, label %15872, label %15871

15871:                                            ; preds = %15866
  store i32 1455, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %492) #10
  br label %15938

15872:                                            ; preds = %15866
  br label %15873

15873:                                            ; preds = %15872
  %15874 = load i32, ptr @test_count, align 4, !tbaa !5
  %15875 = add nsw i32 %15874, 1
  store i32 %15875, ptr @test_count, align 4, !tbaa !5
  %15876 = load i16, ptr @s2n_rsa_pkcs1_sha256, align 8, !tbaa !55
  %15877 = call i32 @s2n_stuffer_write_uint16(ptr noundef %488, i16 noundef zeroext %15876)
  %15878 = icmp eq i32 %15877, -1
  br i1 %15878, label %15879, label %15932

15879:                                            ; preds = %15873
  br label %15880

15880:                                            ; preds = %15879
  br label %15881

15881:                                            ; preds = %15880
  call void @llvm.lifetime.start.p0(i64 4, ptr %493) #10
  %15882 = call ptr @__errno_location() #11
  %15883 = load i32, ptr %15882, align 4, !tbaa !5
  store i32 %15883, ptr %493, align 4, !tbaa !5
  %15884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15885 = call i32 @s2n_print_stacktrace(ptr noundef %15884)
  %15886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15887 = trunc i8 %15886 to i1
  br i1 %15887, label %15888, label %15910

15888:                                            ; preds = %15881
  %15889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15890 = call i32 @fileno(ptr noundef %15889) #10
  %15891 = call i32 @isatty(i32 noundef %15890) #10
  %15892 = icmp ne i32 %15891, 0
  br i1 %15892, label %15893, label %15910

15893:                                            ; preds = %15888
  %15894 = load i32, ptr %493, align 4, !tbaa !5
  %15895 = call ptr @__errno_location() #11
  store i32 %15894, ptr %15895, align 4, !tbaa !5
  %15896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15897 = load i32, ptr @test_count, align 4, !tbaa !5
  %15898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15899 = load i32, ptr %15898, align 4, !tbaa !5
  %15900 = call ptr @s2n_strerror(i32 noundef %15899, ptr noundef @.str.4)
  %15901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15902 = load i32, ptr %15901, align 4, !tbaa !5
  %15903 = call ptr @s2n_strerror_debug(i32 noundef %15902, ptr noundef @.str.4)
  %15904 = call ptr @__errno_location() #11
  %15905 = load i32, ptr %15904, align 4, !tbaa !5
  %15906 = call ptr @strerror(i32 noundef %15905) #10
  %15907 = call ptr @__errno_location() #11
  %15908 = load i32, ptr %15907, align 4, !tbaa !5
  %15909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15896, ptr noundef @.str.2, i32 noundef %15897, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 1072, ptr noundef %15900, ptr noundef %15903, ptr noundef %15906, i32 noundef %15908) #10
  br label %15927

15910:                                            ; preds = %15888, %15881
  %15911 = load i32, ptr %493, align 4, !tbaa !5
  %15912 = call ptr @__errno_location() #11
  store i32 %15911, ptr %15912, align 4, !tbaa !5
  %15913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15914 = load i32, ptr @test_count, align 4, !tbaa !5
  %15915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15916 = load i32, ptr %15915, align 4, !tbaa !5
  %15917 = call ptr @s2n_strerror(i32 noundef %15916, ptr noundef @.str.4)
  %15918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15919 = load i32, ptr %15918, align 4, !tbaa !5
  %15920 = call ptr @s2n_strerror_debug(i32 noundef %15919, ptr noundef @.str.4)
  %15921 = call ptr @__errno_location() #11
  %15922 = load i32, ptr %15921, align 4, !tbaa !5
  %15923 = call ptr @strerror(i32 noundef %15922) #10
  %15924 = call ptr @__errno_location() #11
  %15925 = load i32, ptr %15924, align 4, !tbaa !5
  %15926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15913, ptr noundef @.str.5, i32 noundef %15914, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 1072, ptr noundef %15917, ptr noundef %15920, ptr noundef %15923, i32 noundef %15925) #10
  br label %15927

15927:                                            ; preds = %15910, %15893
  call void @llvm.lifetime.end.p0(i64 4, ptr %493) #10
  br label %15928

15928:                                            ; preds = %15927
  br label %15929

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

15930:                                            ; No predecessors!
  br label %15931

15931:                                            ; preds = %15930
  br label %15932

15932:                                            ; preds = %15931, %15873
  br label %15933

15933:                                            ; preds = %15932
  br label %15934

15934:                                            ; preds = %15933
  br label %15935

15935:                                            ; preds = %15934
  %15936 = load i64, ptr %492, align 8, !tbaa !54
  %15937 = add i64 %15936, 1
  store i64 %15937, ptr %492, align 8, !tbaa !54
  br label %15866, !llvm.loop !81

15938:                                            ; preds = %15871
  call void @llvm.lifetime.start.p0(i64 4, ptr %494) #10
  %15939 = load ptr, ptr %486, align 8, !tbaa !9
  %15940 = getelementptr inbounds %struct.s2n_connection, ptr %15939, i32 0, i32 32
  %15941 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %15940, i32 0, i32 4
  %15942 = call i32 @s2n_recv_supported_sig_scheme_list(ptr noundef %488, ptr noundef %15941)
  store i32 %15942, ptr %494, align 4, !tbaa !5
  %15943 = load i16, ptr %484, align 2, !tbaa !51
  %15944 = zext i16 %15943 to i32
  %15945 = icmp sle i32 %15944, 128
  br i1 %15945, label %15946, label %16008

15946:                                            ; preds = %15938
  br label %15947

15947:                                            ; preds = %15946
  %15948 = load i32, ptr @test_count, align 4, !tbaa !5
  %15949 = add nsw i32 %15948, 1
  store i32 %15949, ptr @test_count, align 4, !tbaa !5
  %15950 = load i32, ptr %494, align 4, !tbaa !5
  %15951 = icmp eq i32 %15950, -1
  br i1 %15951, label %15952, label %16005

15952:                                            ; preds = %15947
  br label %15953

15953:                                            ; preds = %15952
  br label %15954

15954:                                            ; preds = %15953
  call void @llvm.lifetime.start.p0(i64 4, ptr %495) #10
  %15955 = call ptr @__errno_location() #11
  %15956 = load i32, ptr %15955, align 4, !tbaa !5
  store i32 %15956, ptr %495, align 4, !tbaa !5
  %15957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15958 = call i32 @s2n_print_stacktrace(ptr noundef %15957)
  %15959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15960 = trunc i8 %15959 to i1
  br i1 %15960, label %15961, label %15983

15961:                                            ; preds = %15954
  %15962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15963 = call i32 @fileno(ptr noundef %15962) #10
  %15964 = call i32 @isatty(i32 noundef %15963) #10
  %15965 = icmp ne i32 %15964, 0
  br i1 %15965, label %15966, label %15983

15966:                                            ; preds = %15961
  %15967 = load i32, ptr %495, align 4, !tbaa !5
  %15968 = call ptr @__errno_location() #11
  store i32 %15967, ptr %15968, align 4, !tbaa !5
  %15969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15970 = load i32, ptr @test_count, align 4, !tbaa !5
  %15971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15972 = load i32, ptr %15971, align 4, !tbaa !5
  %15973 = call ptr @s2n_strerror(i32 noundef %15972, ptr noundef @.str.4)
  %15974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15975 = load i32, ptr %15974, align 4, !tbaa !5
  %15976 = call ptr @s2n_strerror_debug(i32 noundef %15975, ptr noundef @.str.4)
  %15977 = call ptr @__errno_location() #11
  %15978 = load i32, ptr %15977, align 4, !tbaa !5
  %15979 = call ptr @strerror(i32 noundef %15978) #10
  %15980 = call ptr @__errno_location() #11
  %15981 = load i32, ptr %15980, align 4, !tbaa !5
  %15982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15969, ptr noundef @.str.2, i32 noundef %15970, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 1077, ptr noundef %15973, ptr noundef %15976, ptr noundef %15979, i32 noundef %15981) #10
  br label %16000

15983:                                            ; preds = %15961, %15954
  %15984 = load i32, ptr %495, align 4, !tbaa !5
  %15985 = call ptr @__errno_location() #11
  store i32 %15984, ptr %15985, align 4, !tbaa !5
  %15986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15987 = load i32, ptr @test_count, align 4, !tbaa !5
  %15988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15989 = load i32, ptr %15988, align 4, !tbaa !5
  %15990 = call ptr @s2n_strerror(i32 noundef %15989, ptr noundef @.str.4)
  %15991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15992 = load i32, ptr %15991, align 4, !tbaa !5
  %15993 = call ptr @s2n_strerror_debug(i32 noundef %15992, ptr noundef @.str.4)
  %15994 = call ptr @__errno_location() #11
  %15995 = load i32, ptr %15994, align 4, !tbaa !5
  %15996 = call ptr @strerror(i32 noundef %15995) #10
  %15997 = call ptr @__errno_location() #11
  %15998 = load i32, ptr %15997, align 4, !tbaa !5
  %15999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15986, ptr noundef @.str.5, i32 noundef %15987, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 1077, ptr noundef %15990, ptr noundef %15993, ptr noundef %15996, i32 noundef %15998) #10
  br label %16000

16000:                                            ; preds = %15983, %15966
  call void @llvm.lifetime.end.p0(i64 4, ptr %495) #10
  br label %16001

16001:                                            ; preds = %16000
  br label %16002

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

16003:                                            ; No predecessors!
  br label %16004

16004:                                            ; preds = %16003
  br label %16005

16005:                                            ; preds = %16004, %15947
  br label %16006

16006:                                            ; preds = %16005
  br label %16007

16007:                                            ; preds = %16006
  br label %16206

16008:                                            ; preds = %15938
  br label %16009

16009:                                            ; preds = %16008
  br label %16010

16010:                                            ; preds = %16009
  br label %16011

16011:                                            ; preds = %16010
  %16012 = load i32, ptr @test_count, align 4, !tbaa !5
  %16013 = add nsw i32 %16012, 1
  store i32 %16013, ptr @test_count, align 4, !tbaa !5
  %16014 = load i32, ptr %494, align 4, !tbaa !5
  %16015 = icmp eq i32 %16014, -1
  br i1 %16015, label %16069, label %16016

16016:                                            ; preds = %16011
  br label %16017

16017:                                            ; preds = %16016
  br label %16018

16018:                                            ; preds = %16017
  call void @llvm.lifetime.start.p0(i64 4, ptr %496) #10
  %16019 = call ptr @__errno_location() #11
  %16020 = load i32, ptr %16019, align 4, !tbaa !5
  store i32 %16020, ptr %496, align 4, !tbaa !5
  %16021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16022 = call i32 @s2n_print_stacktrace(ptr noundef %16021)
  %16023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16024 = trunc i8 %16023 to i1
  br i1 %16024, label %16025, label %16047

16025:                                            ; preds = %16018
  %16026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16027 = call i32 @fileno(ptr noundef %16026) #10
  %16028 = call i32 @isatty(i32 noundef %16027) #10
  %16029 = icmp ne i32 %16028, 0
  br i1 %16029, label %16030, label %16047

16030:                                            ; preds = %16025
  %16031 = load i32, ptr %496, align 4, !tbaa !5
  %16032 = call ptr @__errno_location() #11
  store i32 %16031, ptr %16032, align 4, !tbaa !5
  %16033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16034 = load i32, ptr @test_count, align 4, !tbaa !5
  %16035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16036 = load i32, ptr %16035, align 4, !tbaa !5
  %16037 = call ptr @s2n_strerror(i32 noundef %16036, ptr noundef @.str.4)
  %16038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16039 = load i32, ptr %16038, align 4, !tbaa !5
  %16040 = call ptr @s2n_strerror_debug(i32 noundef %16039, ptr noundef @.str.4)
  %16041 = call ptr @__errno_location() #11
  %16042 = load i32, ptr %16041, align 4, !tbaa !5
  %16043 = call ptr @strerror(i32 noundef %16042) #10
  %16044 = call ptr @__errno_location() #11
  %16045 = load i32, ptr %16044, align 4, !tbaa !5
  %16046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16033, ptr noundef @.str.2, i32 noundef %16034, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 1079, ptr noundef %16037, ptr noundef %16040, ptr noundef %16043, i32 noundef %16045) #10
  br label %16064

16047:                                            ; preds = %16025, %16018
  %16048 = load i32, ptr %496, align 4, !tbaa !5
  %16049 = call ptr @__errno_location() #11
  store i32 %16048, ptr %16049, align 4, !tbaa !5
  %16050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16051 = load i32, ptr @test_count, align 4, !tbaa !5
  %16052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16053 = load i32, ptr %16052, align 4, !tbaa !5
  %16054 = call ptr @s2n_strerror(i32 noundef %16053, ptr noundef @.str.4)
  %16055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16056 = load i32, ptr %16055, align 4, !tbaa !5
  %16057 = call ptr @s2n_strerror_debug(i32 noundef %16056, ptr noundef @.str.4)
  %16058 = call ptr @__errno_location() #11
  %16059 = load i32, ptr %16058, align 4, !tbaa !5
  %16060 = call ptr @strerror(i32 noundef %16059) #10
  %16061 = call ptr @__errno_location() #11
  %16062 = load i32, ptr %16061, align 4, !tbaa !5
  %16063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16050, ptr noundef @.str.5, i32 noundef %16051, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 1079, ptr noundef %16054, ptr noundef %16057, ptr noundef %16060, i32 noundef %16062) #10
  br label %16064

16064:                                            ; preds = %16047, %16030
  call void @llvm.lifetime.end.p0(i64 4, ptr %496) #10
  br label %16065

16065:                                            ; preds = %16064
  br label %16066

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

16067:                                            ; No predecessors!
  br label %16068

16068:                                            ; preds = %16067
  br label %16069

16069:                                            ; preds = %16068, %16011
  br label %16070

16070:                                            ; preds = %16069
  br label %16071

16071:                                            ; preds = %16070
  br label %16072

16072:                                            ; preds = %16071
  %16073 = load i32, ptr @test_count, align 4, !tbaa !5
  %16074 = add nsw i32 %16073, 1
  store i32 %16074, ptr @test_count, align 4, !tbaa !5
  %16075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16076 = load i32, ptr %16075, align 4, !tbaa !5
  %16077 = icmp eq i32 %16076, 469762053
  br i1 %16077, label %16131, label %16078

16078:                                            ; preds = %16072
  br label %16079

16079:                                            ; preds = %16078
  br label %16080

16080:                                            ; preds = %16079
  call void @llvm.lifetime.start.p0(i64 4, ptr %497) #10
  %16081 = call ptr @__errno_location() #11
  %16082 = load i32, ptr %16081, align 4, !tbaa !5
  store i32 %16082, ptr %497, align 4, !tbaa !5
  %16083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16084 = call i32 @s2n_print_stacktrace(ptr noundef %16083)
  %16085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16086 = trunc i8 %16085 to i1
  br i1 %16086, label %16087, label %16109

16087:                                            ; preds = %16080
  %16088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16089 = call i32 @fileno(ptr noundef %16088) #10
  %16090 = call i32 @isatty(i32 noundef %16089) #10
  %16091 = icmp ne i32 %16090, 0
  br i1 %16091, label %16092, label %16109

16092:                                            ; preds = %16087
  %16093 = load i32, ptr %497, align 4, !tbaa !5
  %16094 = call ptr @__errno_location() #11
  store i32 %16093, ptr %16094, align 4, !tbaa !5
  %16095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16096 = load i32, ptr @test_count, align 4, !tbaa !5
  %16097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16098 = load i32, ptr %16097, align 4, !tbaa !5
  %16099 = call ptr @s2n_strerror(i32 noundef %16098, ptr noundef @.str.4)
  %16100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16101 = load i32, ptr %16100, align 4, !tbaa !5
  %16102 = call ptr @s2n_strerror_debug(i32 noundef %16101, ptr noundef @.str.4)
  %16103 = call ptr @__errno_location() #11
  %16104 = load i32, ptr %16103, align 4, !tbaa !5
  %16105 = call ptr @strerror(i32 noundef %16104) #10
  %16106 = call ptr @__errno_location() #11
  %16107 = load i32, ptr %16106, align 4, !tbaa !5
  %16108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16095, ptr noundef @.str.2, i32 noundef %16096, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 1079, ptr noundef %16099, ptr noundef %16102, ptr noundef %16105, i32 noundef %16107) #10
  br label %16126

16109:                                            ; preds = %16087, %16080
  %16110 = load i32, ptr %497, align 4, !tbaa !5
  %16111 = call ptr @__errno_location() #11
  store i32 %16110, ptr %16111, align 4, !tbaa !5
  %16112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16113 = load i32, ptr @test_count, align 4, !tbaa !5
  %16114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16115 = load i32, ptr %16114, align 4, !tbaa !5
  %16116 = call ptr @s2n_strerror(i32 noundef %16115, ptr noundef @.str.4)
  %16117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16118 = load i32, ptr %16117, align 4, !tbaa !5
  %16119 = call ptr @s2n_strerror_debug(i32 noundef %16118, ptr noundef @.str.4)
  %16120 = call ptr @__errno_location() #11
  %16121 = load i32, ptr %16120, align 4, !tbaa !5
  %16122 = call ptr @strerror(i32 noundef %16121) #10
  %16123 = call ptr @__errno_location() #11
  %16124 = load i32, ptr %16123, align 4, !tbaa !5
  %16125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16112, ptr noundef @.str.5, i32 noundef %16113, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 1079, ptr noundef %16116, ptr noundef %16119, ptr noundef %16122, i32 noundef %16124) #10
  br label %16126

16126:                                            ; preds = %16109, %16092
  call void @llvm.lifetime.end.p0(i64 4, ptr %497) #10
  br label %16127

16127:                                            ; preds = %16126
  br label %16128

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

16129:                                            ; No predecessors!
  br label %16130

16130:                                            ; preds = %16129
  br label %16131

16131:                                            ; preds = %16130, %16072
  br label %16132

16132:                                            ; preds = %16131
  br label %16133

16133:                                            ; preds = %16132
  br label %16134

16134:                                            ; preds = %16133
  %16135 = load i32, ptr @test_count, align 4, !tbaa !5
  %16136 = add nsw i32 %16135, 1
  store i32 %16136, ptr @test_count, align 4, !tbaa !5
  %16137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16138 = load i32, ptr %16137, align 4, !tbaa !5
  %16139 = call ptr @s2n_strerror_debug(i32 noundef %16138, ptr noundef @.str.4)
  %16140 = icmp eq ptr %16139, null
  br i1 %16140, label %16141, label %16194

16141:                                            ; preds = %16134
  br label %16142

16142:                                            ; preds = %16141
  br label %16143

16143:                                            ; preds = %16142
  call void @llvm.lifetime.start.p0(i64 4, ptr %498) #10
  %16144 = call ptr @__errno_location() #11
  %16145 = load i32, ptr %16144, align 4, !tbaa !5
  store i32 %16145, ptr %498, align 4, !tbaa !5
  %16146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16147 = call i32 @s2n_print_stacktrace(ptr noundef %16146)
  %16148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16149 = trunc i8 %16148 to i1
  br i1 %16149, label %16150, label %16172

16150:                                            ; preds = %16143
  %16151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16152 = call i32 @fileno(ptr noundef %16151) #10
  %16153 = call i32 @isatty(i32 noundef %16152) #10
  %16154 = icmp ne i32 %16153, 0
  br i1 %16154, label %16155, label %16172

16155:                                            ; preds = %16150
  %16156 = load i32, ptr %498, align 4, !tbaa !5
  %16157 = call ptr @__errno_location() #11
  store i32 %16156, ptr %16157, align 4, !tbaa !5
  %16158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16159 = load i32, ptr @test_count, align 4, !tbaa !5
  %16160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16161 = load i32, ptr %16160, align 4, !tbaa !5
  %16162 = call ptr @s2n_strerror(i32 noundef %16161, ptr noundef @.str.4)
  %16163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16164 = load i32, ptr %16163, align 4, !tbaa !5
  %16165 = call ptr @s2n_strerror_debug(i32 noundef %16164, ptr noundef @.str.4)
  %16166 = call ptr @__errno_location() #11
  %16167 = load i32, ptr %16166, align 4, !tbaa !5
  %16168 = call ptr @strerror(i32 noundef %16167) #10
  %16169 = call ptr @__errno_location() #11
  %16170 = load i32, ptr %16169, align 4, !tbaa !5
  %16171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16158, ptr noundef @.str.2, i32 noundef %16159, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1079, ptr noundef %16162, ptr noundef %16165, ptr noundef %16168, i32 noundef %16170) #10
  br label %16189

16172:                                            ; preds = %16150, %16143
  %16173 = load i32, ptr %498, align 4, !tbaa !5
  %16174 = call ptr @__errno_location() #11
  store i32 %16173, ptr %16174, align 4, !tbaa !5
  %16175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16176 = load i32, ptr @test_count, align 4, !tbaa !5
  %16177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16178 = load i32, ptr %16177, align 4, !tbaa !5
  %16179 = call ptr @s2n_strerror(i32 noundef %16178, ptr noundef @.str.4)
  %16180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16181 = load i32, ptr %16180, align 4, !tbaa !5
  %16182 = call ptr @s2n_strerror_debug(i32 noundef %16181, ptr noundef @.str.4)
  %16183 = call ptr @__errno_location() #11
  %16184 = load i32, ptr %16183, align 4, !tbaa !5
  %16185 = call ptr @strerror(i32 noundef %16184) #10
  %16186 = call ptr @__errno_location() #11
  %16187 = load i32, ptr %16186, align 4, !tbaa !5
  %16188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16175, ptr noundef @.str.5, i32 noundef %16176, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1079, ptr noundef %16179, ptr noundef %16182, ptr noundef %16185, i32 noundef %16187) #10
  br label %16189

16189:                                            ; preds = %16172, %16155
  call void @llvm.lifetime.end.p0(i64 4, ptr %498) #10
  br label %16190

16190:                                            ; preds = %16189
  br label %16191

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

16192:                                            ; No predecessors!
  br label %16193

16193:                                            ; preds = %16192
  br label %16194

16194:                                            ; preds = %16193, %16134
  br label %16195

16195:                                            ; preds = %16194
  br label %16196

16196:                                            ; preds = %16195
  br label %16197

16197:                                            ; preds = %16196
  br label %16198

16198:                                            ; preds = %16197
  br label %16199

16199:                                            ; preds = %16198
  %16200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %16200, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %16201 = call ptr @__errno_location() #11
  store i32 0, ptr %16201, align 4, !tbaa !5
  br label %16202

16202:                                            ; preds = %16199
  br label %16203

16203:                                            ; preds = %16202
  br label %16204

16204:                                            ; preds = %16203
  br label %16205

16205:                                            ; preds = %16204
  br label %16206

16206:                                            ; preds = %16205, %16007
  call void @llvm.lifetime.end.p0(i64 4, ptr %494) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr %490) #10
  %16207 = call i32 @s2n_stuffer_free(ptr noundef %488)
  call void @llvm.lifetime.end.p0(i64 40, ptr %488) #10
  %16208 = call i32 @s2n_connection_ptr_free(ptr noundef %486)
  %16209 = getelementptr inbounds %struct.s2n_result, ptr %499, i32 0, i32 0
  store i32 %16208, ptr %16209, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %486) #10
  br label %16210

16210:                                            ; preds = %16206
  %16211 = load i16, ptr %484, align 2, !tbaa !51
  %16212 = add i16 %16211, 1
  store i16 %16212, ptr %484, align 2, !tbaa !51
  br label %15671, !llvm.loop !82

16213:                                            ; preds = %15675
  call void @llvm.lifetime.start.p0(i64 8, ptr %500) #10
  store i64 31, ptr %500, align 8, !tbaa !54
  br label %16214

16214:                                            ; preds = %16643, %16213
  %16215 = load i64, ptr %500, align 8, !tbaa !54
  %16216 = icmp ult i64 %16215, 34
  br i1 %16216, label %16218, label %16217

16217:                                            ; preds = %16214
  store i32 1494, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %500) #10
  br label %16646

16218:                                            ; preds = %16214
  call void @llvm.lifetime.start.p0(i64 8, ptr %501) #10
  %16219 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %16219, ptr %501, align 8, !tbaa !9
  br label %16220

16220:                                            ; preds = %16218
  %16221 = load i32, ptr @test_count, align 4, !tbaa !5
  %16222 = add nsw i32 %16221, 1
  store i32 %16222, ptr @test_count, align 4, !tbaa !5
  %16223 = load ptr, ptr %501, align 8, !tbaa !9
  %16224 = icmp eq ptr %16223, null
  br i1 %16224, label %16225, label %16278

16225:                                            ; preds = %16220
  br label %16226

16226:                                            ; preds = %16225
  br label %16227

16227:                                            ; preds = %16226
  call void @llvm.lifetime.start.p0(i64 4, ptr %502) #10
  %16228 = call ptr @__errno_location() #11
  %16229 = load i32, ptr %16228, align 4, !tbaa !5
  store i32 %16229, ptr %502, align 4, !tbaa !5
  %16230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16231 = call i32 @s2n_print_stacktrace(ptr noundef %16230)
  %16232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16233 = trunc i8 %16232 to i1
  br i1 %16233, label %16234, label %16256

16234:                                            ; preds = %16227
  %16235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16236 = call i32 @fileno(ptr noundef %16235) #10
  %16237 = call i32 @isatty(i32 noundef %16236) #10
  %16238 = icmp ne i32 %16237, 0
  br i1 %16238, label %16239, label %16256

16239:                                            ; preds = %16234
  %16240 = load i32, ptr %502, align 4, !tbaa !5
  %16241 = call ptr @__errno_location() #11
  store i32 %16240, ptr %16241, align 4, !tbaa !5
  %16242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16243 = load i32, ptr @test_count, align 4, !tbaa !5
  %16244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16245 = load i32, ptr %16244, align 4, !tbaa !5
  %16246 = call ptr @s2n_strerror(i32 noundef %16245, ptr noundef @.str.4)
  %16247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16248 = load i32, ptr %16247, align 4, !tbaa !5
  %16249 = call ptr @s2n_strerror_debug(i32 noundef %16248, ptr noundef @.str.4)
  %16250 = call ptr @__errno_location() #11
  %16251 = load i32, ptr %16250, align 4, !tbaa !5
  %16252 = call ptr @strerror(i32 noundef %16251) #10
  %16253 = call ptr @__errno_location() #11
  %16254 = load i32, ptr %16253, align 4, !tbaa !5
  %16255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16242, ptr noundef @.str.2, i32 noundef %16243, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 1087, ptr noundef %16246, ptr noundef %16249, ptr noundef %16252, i32 noundef %16254) #10
  br label %16273

16256:                                            ; preds = %16234, %16227
  %16257 = load i32, ptr %502, align 4, !tbaa !5
  %16258 = call ptr @__errno_location() #11
  store i32 %16257, ptr %16258, align 4, !tbaa !5
  %16259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16260 = load i32, ptr @test_count, align 4, !tbaa !5
  %16261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16262 = load i32, ptr %16261, align 4, !tbaa !5
  %16263 = call ptr @s2n_strerror(i32 noundef %16262, ptr noundef @.str.4)
  %16264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16265 = load i32, ptr %16264, align 4, !tbaa !5
  %16266 = call ptr @s2n_strerror_debug(i32 noundef %16265, ptr noundef @.str.4)
  %16267 = call ptr @__errno_location() #11
  %16268 = load i32, ptr %16267, align 4, !tbaa !5
  %16269 = call ptr @strerror(i32 noundef %16268) #10
  %16270 = call ptr @__errno_location() #11
  %16271 = load i32, ptr %16270, align 4, !tbaa !5
  %16272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16259, ptr noundef @.str.5, i32 noundef %16260, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 1087, ptr noundef %16263, ptr noundef %16266, ptr noundef %16269, i32 noundef %16271) #10
  br label %16273

16273:                                            ; preds = %16256, %16239
  call void @llvm.lifetime.end.p0(i64 4, ptr %502) #10
  br label %16274

16274:                                            ; preds = %16273
  br label %16275

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

16276:                                            ; No predecessors!
  br label %16277

16277:                                            ; preds = %16276
  br label %16278

16278:                                            ; preds = %16277, %16220
  br label %16279

16279:                                            ; preds = %16278
  br label %16280

16280:                                            ; preds = %16279
  %16281 = load i64, ptr %500, align 8, !tbaa !54
  %16282 = trunc i64 %16281 to i8
  %16283 = load ptr, ptr %501, align 8, !tbaa !9
  %16284 = getelementptr inbounds %struct.s2n_connection, ptr %16283, i32 0, i32 23
  store i8 %16282, ptr %16284, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr %503) #10
  call void @llvm.memset.p0.i64(ptr align 8 %503, i8 0, i64 40, i1 false)
  br label %16285

16285:                                            ; preds = %16280
  %16286 = load i32, ptr @test_count, align 4, !tbaa !5
  %16287 = add nsw i32 %16286, 1
  store i32 %16287, ptr @test_count, align 4, !tbaa !5
  %16288 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %503, i32 noundef 0)
  %16289 = icmp eq i32 %16288, -1
  br i1 %16289, label %16290, label %16343

16290:                                            ; preds = %16285
  br label %16291

16291:                                            ; preds = %16290
  br label %16292

16292:                                            ; preds = %16291
  call void @llvm.lifetime.start.p0(i64 4, ptr %504) #10
  %16293 = call ptr @__errno_location() #11
  %16294 = load i32, ptr %16293, align 4, !tbaa !5
  store i32 %16294, ptr %504, align 4, !tbaa !5
  %16295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16296 = call i32 @s2n_print_stacktrace(ptr noundef %16295)
  %16297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16298 = trunc i8 %16297 to i1
  br i1 %16298, label %16299, label %16321

16299:                                            ; preds = %16292
  %16300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16301 = call i32 @fileno(ptr noundef %16300) #10
  %16302 = call i32 @isatty(i32 noundef %16301) #10
  %16303 = icmp ne i32 %16302, 0
  br i1 %16303, label %16304, label %16321

16304:                                            ; preds = %16299
  %16305 = load i32, ptr %504, align 4, !tbaa !5
  %16306 = call ptr @__errno_location() #11
  store i32 %16305, ptr %16306, align 4, !tbaa !5
  %16307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16308 = load i32, ptr @test_count, align 4, !tbaa !5
  %16309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16310 = load i32, ptr %16309, align 4, !tbaa !5
  %16311 = call ptr @s2n_strerror(i32 noundef %16310, ptr noundef @.str.4)
  %16312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16313 = load i32, ptr %16312, align 4, !tbaa !5
  %16314 = call ptr @s2n_strerror_debug(i32 noundef %16313, ptr noundef @.str.4)
  %16315 = call ptr @__errno_location() #11
  %16316 = load i32, ptr %16315, align 4, !tbaa !5
  %16317 = call ptr @strerror(i32 noundef %16316) #10
  %16318 = call ptr @__errno_location() #11
  %16319 = load i32, ptr %16318, align 4, !tbaa !5
  %16320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16307, ptr noundef @.str.2, i32 noundef %16308, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 1091, ptr noundef %16311, ptr noundef %16314, ptr noundef %16317, i32 noundef %16319) #10
  br label %16338

16321:                                            ; preds = %16299, %16292
  %16322 = load i32, ptr %504, align 4, !tbaa !5
  %16323 = call ptr @__errno_location() #11
  store i32 %16322, ptr %16323, align 4, !tbaa !5
  %16324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16325 = load i32, ptr @test_count, align 4, !tbaa !5
  %16326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16327 = load i32, ptr %16326, align 4, !tbaa !5
  %16328 = call ptr @s2n_strerror(i32 noundef %16327, ptr noundef @.str.4)
  %16329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16330 = load i32, ptr %16329, align 4, !tbaa !5
  %16331 = call ptr @s2n_strerror_debug(i32 noundef %16330, ptr noundef @.str.4)
  %16332 = call ptr @__errno_location() #11
  %16333 = load i32, ptr %16332, align 4, !tbaa !5
  %16334 = call ptr @strerror(i32 noundef %16333) #10
  %16335 = call ptr @__errno_location() #11
  %16336 = load i32, ptr %16335, align 4, !tbaa !5
  %16337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16324, ptr noundef @.str.5, i32 noundef %16325, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 1091, ptr noundef %16328, ptr noundef %16331, ptr noundef %16334, i32 noundef %16336) #10
  br label %16338

16338:                                            ; preds = %16321, %16304
  call void @llvm.lifetime.end.p0(i64 4, ptr %504) #10
  br label %16339

16339:                                            ; preds = %16338
  br label %16340

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

16341:                                            ; No predecessors!
  br label %16342

16342:                                            ; preds = %16341
  br label %16343

16343:                                            ; preds = %16342, %16285
  br label %16344

16344:                                            ; preds = %16343
  br label %16345

16345:                                            ; preds = %16344
  br label %16346

16346:                                            ; preds = %16345
  %16347 = load i32, ptr @test_count, align 4, !tbaa !5
  %16348 = add nsw i32 %16347, 1
  store i32 %16348, ptr @test_count, align 4, !tbaa !5
  %16349 = load ptr, ptr %501, align 8, !tbaa !9
  %16350 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %16349, ptr noundef %503)
  %16351 = getelementptr inbounds %struct.s2n_result, ptr %505, i32 0, i32 0
  store i32 %16350, ptr %16351, align 4
  %16352 = getelementptr inbounds %struct.s2n_result, ptr %505, i32 0, i32 0
  %16353 = load i32, ptr %16352, align 4
  %16354 = call zeroext i1 @s2n_result_is_ok(i32 %16353)
  br i1 %16354, label %16408, label %16355

16355:                                            ; preds = %16346
  br label %16356

16356:                                            ; preds = %16355
  br label %16357

16357:                                            ; preds = %16356
  call void @llvm.lifetime.start.p0(i64 4, ptr %506) #10
  %16358 = call ptr @__errno_location() #11
  %16359 = load i32, ptr %16358, align 4, !tbaa !5
  store i32 %16359, ptr %506, align 4, !tbaa !5
  %16360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16361 = call i32 @s2n_print_stacktrace(ptr noundef %16360)
  %16362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16363 = trunc i8 %16362 to i1
  br i1 %16363, label %16364, label %16386

16364:                                            ; preds = %16357
  %16365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16366 = call i32 @fileno(ptr noundef %16365) #10
  %16367 = call i32 @isatty(i32 noundef %16366) #10
  %16368 = icmp ne i32 %16367, 0
  br i1 %16368, label %16369, label %16386

16369:                                            ; preds = %16364
  %16370 = load i32, ptr %506, align 4, !tbaa !5
  %16371 = call ptr @__errno_location() #11
  store i32 %16370, ptr %16371, align 4, !tbaa !5
  %16372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16373 = load i32, ptr @test_count, align 4, !tbaa !5
  %16374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16375 = load i32, ptr %16374, align 4, !tbaa !5
  %16376 = call ptr @s2n_strerror(i32 noundef %16375, ptr noundef @.str.4)
  %16377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16378 = load i32, ptr %16377, align 4, !tbaa !5
  %16379 = call ptr @s2n_strerror_debug(i32 noundef %16378, ptr noundef @.str.4)
  %16380 = call ptr @__errno_location() #11
  %16381 = load i32, ptr %16380, align 4, !tbaa !5
  %16382 = call ptr @strerror(i32 noundef %16381) #10
  %16383 = call ptr @__errno_location() #11
  %16384 = load i32, ptr %16383, align 4, !tbaa !5
  %16385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16372, ptr noundef @.str.2, i32 noundef %16373, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 1092, ptr noundef %16376, ptr noundef %16379, ptr noundef %16382, i32 noundef %16384) #10
  br label %16403

16386:                                            ; preds = %16364, %16357
  %16387 = load i32, ptr %506, align 4, !tbaa !5
  %16388 = call ptr @__errno_location() #11
  store i32 %16387, ptr %16388, align 4, !tbaa !5
  %16389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16390 = load i32, ptr @test_count, align 4, !tbaa !5
  %16391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16392 = load i32, ptr %16391, align 4, !tbaa !5
  %16393 = call ptr @s2n_strerror(i32 noundef %16392, ptr noundef @.str.4)
  %16394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16395 = load i32, ptr %16394, align 4, !tbaa !5
  %16396 = call ptr @s2n_strerror_debug(i32 noundef %16395, ptr noundef @.str.4)
  %16397 = call ptr @__errno_location() #11
  %16398 = load i32, ptr %16397, align 4, !tbaa !5
  %16399 = call ptr @strerror(i32 noundef %16398) #10
  %16400 = call ptr @__errno_location() #11
  %16401 = load i32, ptr %16400, align 4, !tbaa !5
  %16402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16389, ptr noundef @.str.5, i32 noundef %16390, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 1092, ptr noundef %16393, ptr noundef %16396, ptr noundef %16399, i32 noundef %16401) #10
  br label %16403

16403:                                            ; preds = %16386, %16369
  call void @llvm.lifetime.end.p0(i64 4, ptr %506) #10
  br label %16404

16404:                                            ; preds = %16403
  br label %16405

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

16406:                                            ; No predecessors!
  br label %16407

16407:                                            ; preds = %16406
  br label %16408

16408:                                            ; preds = %16407, %16346
  br label %16409

16409:                                            ; preds = %16408
  br label %16410

16410:                                            ; preds = %16409
  call void @llvm.lifetime.start.p0(i64 258, ptr %507) #10
  call void @llvm.memset.p0.i64(ptr align 2 %507, i8 0, i64 258, i1 false)
  br label %16411

16411:                                            ; preds = %16410
  %16412 = load i32, ptr @test_count, align 4, !tbaa !5
  %16413 = add nsw i32 %16412, 1
  store i32 %16413, ptr @test_count, align 4, !tbaa !5
  %16414 = call i32 @s2n_recv_supported_sig_scheme_list(ptr noundef %503, ptr noundef %507)
  %16415 = icmp eq i32 %16414, -1
  br i1 %16415, label %16416, label %16469

16416:                                            ; preds = %16411
  br label %16417

16417:                                            ; preds = %16416
  br label %16418

16418:                                            ; preds = %16417
  call void @llvm.lifetime.start.p0(i64 4, ptr %508) #10
  %16419 = call ptr @__errno_location() #11
  %16420 = load i32, ptr %16419, align 4, !tbaa !5
  store i32 %16420, ptr %508, align 4, !tbaa !5
  %16421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16422 = call i32 @s2n_print_stacktrace(ptr noundef %16421)
  %16423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16424 = trunc i8 %16423 to i1
  br i1 %16424, label %16425, label %16447

16425:                                            ; preds = %16418
  %16426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16427 = call i32 @fileno(ptr noundef %16426) #10
  %16428 = call i32 @isatty(i32 noundef %16427) #10
  %16429 = icmp ne i32 %16428, 0
  br i1 %16429, label %16430, label %16447

16430:                                            ; preds = %16425
  %16431 = load i32, ptr %508, align 4, !tbaa !5
  %16432 = call ptr @__errno_location() #11
  store i32 %16431, ptr %16432, align 4, !tbaa !5
  %16433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16434 = load i32, ptr @test_count, align 4, !tbaa !5
  %16435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16436 = load i32, ptr %16435, align 4, !tbaa !5
  %16437 = call ptr @s2n_strerror(i32 noundef %16436, ptr noundef @.str.4)
  %16438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16439 = load i32, ptr %16438, align 4, !tbaa !5
  %16440 = call ptr @s2n_strerror_debug(i32 noundef %16439, ptr noundef @.str.4)
  %16441 = call ptr @__errno_location() #11
  %16442 = load i32, ptr %16441, align 4, !tbaa !5
  %16443 = call ptr @strerror(i32 noundef %16442) #10
  %16444 = call ptr @__errno_location() #11
  %16445 = load i32, ptr %16444, align 4, !tbaa !5
  %16446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16433, ptr noundef @.str.2, i32 noundef %16434, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 1095, ptr noundef %16437, ptr noundef %16440, ptr noundef %16443, i32 noundef %16445) #10
  br label %16464

16447:                                            ; preds = %16425, %16418
  %16448 = load i32, ptr %508, align 4, !tbaa !5
  %16449 = call ptr @__errno_location() #11
  store i32 %16448, ptr %16449, align 4, !tbaa !5
  %16450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16451 = load i32, ptr @test_count, align 4, !tbaa !5
  %16452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16453 = load i32, ptr %16452, align 4, !tbaa !5
  %16454 = call ptr @s2n_strerror(i32 noundef %16453, ptr noundef @.str.4)
  %16455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16456 = load i32, ptr %16455, align 4, !tbaa !5
  %16457 = call ptr @s2n_strerror_debug(i32 noundef %16456, ptr noundef @.str.4)
  %16458 = call ptr @__errno_location() #11
  %16459 = load i32, ptr %16458, align 4, !tbaa !5
  %16460 = call ptr @strerror(i32 noundef %16459) #10
  %16461 = call ptr @__errno_location() #11
  %16462 = load i32, ptr %16461, align 4, !tbaa !5
  %16463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16450, ptr noundef @.str.5, i32 noundef %16451, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 1095, ptr noundef %16454, ptr noundef %16457, ptr noundef %16460, i32 noundef %16462) #10
  br label %16464

16464:                                            ; preds = %16447, %16430
  call void @llvm.lifetime.end.p0(i64 4, ptr %508) #10
  br label %16465

16465:                                            ; preds = %16464
  br label %16466

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

16467:                                            ; No predecessors!
  br label %16468

16468:                                            ; preds = %16467
  br label %16469

16469:                                            ; preds = %16468, %16411
  br label %16470

16470:                                            ; preds = %16469
  br label %16471

16471:                                            ; preds = %16470
  br label %16472

16472:                                            ; preds = %16471
  %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 = getelementptr inbounds %struct.s2n_stuffer, ptr %503, i32 0, i32 2
  %16476 = load i32, ptr %16475, align 4, !tbaa !52
  %16477 = getelementptr inbounds %struct.s2n_stuffer, ptr %503, i32 0, i32 1
  %16478 = load i32, ptr %16477, align 8, !tbaa !53
  %16479 = sub i32 %16476, %16478
  %16480 = icmp eq i32 %16479, 0
  br i1 %16480, label %16534, label %16481

16481:                                            ; preds = %16472
  br label %16482

16482:                                            ; preds = %16481
  br label %16483

16483:                                            ; preds = %16482
  call void @llvm.lifetime.start.p0(i64 4, ptr %509) #10
  %16484 = call ptr @__errno_location() #11
  %16485 = load i32, ptr %16484, align 4, !tbaa !5
  store i32 %16485, ptr %509, align 4, !tbaa !5
  %16486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16487 = call i32 @s2n_print_stacktrace(ptr noundef %16486)
  %16488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16489 = trunc i8 %16488 to i1
  br i1 %16489, label %16490, label %16512

16490:                                            ; preds = %16483
  %16491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16492 = call i32 @fileno(ptr noundef %16491) #10
  %16493 = call i32 @isatty(i32 noundef %16492) #10
  %16494 = icmp ne i32 %16493, 0
  br i1 %16494, label %16495, label %16512

16495:                                            ; preds = %16490
  %16496 = load i32, ptr %509, align 4, !tbaa !5
  %16497 = call ptr @__errno_location() #11
  store i32 %16496, ptr %16497, align 4, !tbaa !5
  %16498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16499 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %16501, ptr noundef @.str.4)
  %16503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16504 = load i32, ptr %16503, align 4, !tbaa !5
  %16505 = call ptr @s2n_strerror_debug(i32 noundef %16504, ptr noundef @.str.4)
  %16506 = call ptr @__errno_location() #11
  %16507 = load i32, ptr %16506, align 4, !tbaa !5
  %16508 = call ptr @strerror(i32 noundef %16507) #10
  %16509 = call ptr @__errno_location() #11
  %16510 = load i32, ptr %16509, align 4, !tbaa !5
  %16511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16498, ptr noundef @.str.2, i32 noundef %16499, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1096, ptr noundef %16502, ptr noundef %16505, ptr noundef %16508, i32 noundef %16510) #10
  br label %16529

16512:                                            ; preds = %16490, %16483
  %16513 = load i32, ptr %509, align 4, !tbaa !5
  %16514 = call ptr @__errno_location() #11
  store i32 %16513, ptr %16514, align 4, !tbaa !5
  %16515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16516 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %16518, ptr noundef @.str.4)
  %16520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16521 = load i32, ptr %16520, align 4, !tbaa !5
  %16522 = call ptr @s2n_strerror_debug(i32 noundef %16521, ptr noundef @.str.4)
  %16523 = call ptr @__errno_location() #11
  %16524 = load i32, ptr %16523, align 4, !tbaa !5
  %16525 = call ptr @strerror(i32 noundef %16524) #10
  %16526 = call ptr @__errno_location() #11
  %16527 = load i32, ptr %16526, align 4, !tbaa !5
  %16528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16515, ptr noundef @.str.5, i32 noundef %16516, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1096, ptr noundef %16519, ptr noundef %16522, ptr noundef %16525, i32 noundef %16527) #10
  br label %16529

16529:                                            ; preds = %16512, %16495
  call void @llvm.lifetime.end.p0(i64 4, ptr %509) #10
  br label %16530

16530:                                            ; preds = %16529
  br label %16531

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

16532:                                            ; No predecessors!
  br label %16533

16533:                                            ; preds = %16532
  br label %16534

16534:                                            ; preds = %16533, %16472
  br label %16535

16535:                                            ; preds = %16534
  br label %16536

16536:                                            ; preds = %16535
  call void @llvm.lifetime.start.p0(i64 2, ptr %510) #10
  store i16 0, ptr %510, align 2, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 2, ptr %511) #10
  store i16 0, ptr %511, align 2, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %512) #10
  store i64 0, ptr %512, align 8, !tbaa !54
  br label %16537

16537:                                            ; preds = %16636, %16536
  %16538 = load i64, ptr %512, align 8, !tbaa !54
  %16539 = getelementptr inbounds %struct.s2n_sig_scheme_list, ptr %507, i32 0, i32 1
  %16540 = load i8, ptr %16539, align 2, !tbaa !60
  %16541 = zext i8 %16540 to i64
  %16542 = icmp ult i64 %16538, %16541
  br i1 %16542, label %16544, label %16543

16543:                                            ; preds = %16537
  store i32 1527, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %512) #10
  br label %16639

16544:                                            ; preds = %16537
  %16545 = getelementptr inbounds %struct.s2n_sig_scheme_list, ptr %507, i32 0, i32 0
  %16546 = load i64, ptr %512, align 8, !tbaa !54
  %16547 = getelementptr inbounds [128 x i16], ptr %16545, i64 0, i64 %16546
  %16548 = load i16, ptr %16547, align 2, !tbaa !51
  store i16 %16548, ptr %510, align 2, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 4, ptr %513) #10
  store i32 0, ptr %513, align 4, !tbaa !5
  br label %16549

16549:                                            ; preds = %16632, %16544
  %16550 = load i32, ptr %513, align 4, !tbaa !5
  %16551 = getelementptr inbounds %struct.s2n_sig_scheme_list, ptr %507, i32 0, i32 1
  %16552 = load i8, ptr %16551, align 2, !tbaa !60
  %16553 = zext i8 %16552 to i32
  %16554 = icmp slt i32 %16550, %16553
  br i1 %16554, label %16556, label %16555

16555:                                            ; preds = %16549
  store i32 1530, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %513) #10
  br label %16635

16556:                                            ; preds = %16549
  %16557 = load i64, ptr %512, align 8, !tbaa !54
  %16558 = load i32, ptr %513, align 4, !tbaa !5
  %16559 = sext i32 %16558 to i64
  %16560 = icmp eq i64 %16557, %16559
  br i1 %16560, label %16561, label %16562

16561:                                            ; preds = %16556
  br label %16632

16562:                                            ; preds = %16556
  %16563 = getelementptr inbounds %struct.s2n_sig_scheme_list, ptr %507, i32 0, i32 0
  %16564 = load i32, ptr %513, align 4, !tbaa !5
  %16565 = sext i32 %16564 to i64
  %16566 = getelementptr inbounds [128 x i16], ptr %16563, i64 0, i64 %16565
  %16567 = load i16, ptr %16566, align 2, !tbaa !51
  store i16 %16567, ptr %511, align 2, !tbaa !51
  br label %16568

16568:                                            ; preds = %16562
  %16569 = load i32, ptr @test_count, align 4, !tbaa !5
  %16570 = add nsw i32 %16569, 1
  store i32 %16570, ptr @test_count, align 4, !tbaa !5
  %16571 = load i16, ptr %510, align 2, !tbaa !51
  %16572 = zext i16 %16571 to i32
  %16573 = load i16, ptr %511, align 2, !tbaa !51
  %16574 = zext i16 %16573 to i32
  %16575 = icmp eq i32 %16572, %16574
  br i1 %16575, label %16576, label %16629

16576:                                            ; preds = %16568
  br label %16577

16577:                                            ; preds = %16576
  br label %16578

16578:                                            ; preds = %16577
  call void @llvm.lifetime.start.p0(i64 4, ptr %514) #10
  %16579 = call ptr @__errno_location() #11
  %16580 = load i32, ptr %16579, align 4, !tbaa !5
  store i32 %16580, ptr %514, align 4, !tbaa !5
  %16581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16582 = call i32 @s2n_print_stacktrace(ptr noundef %16581)
  %16583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16584 = trunc i8 %16583 to i1
  br i1 %16584, label %16585, label %16607

16585:                                            ; preds = %16578
  %16586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16587 = call i32 @fileno(ptr noundef %16586) #10
  %16588 = call i32 @isatty(i32 noundef %16587) #10
  %16589 = icmp ne i32 %16588, 0
  br i1 %16589, label %16590, label %16607

16590:                                            ; preds = %16585
  %16591 = load i32, ptr %514, align 4, !tbaa !5
  %16592 = call ptr @__errno_location() #11
  store i32 %16591, ptr %16592, align 4, !tbaa !5
  %16593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16594 = load i32, ptr @test_count, align 4, !tbaa !5
  %16595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16596 = load i32, ptr %16595, align 4, !tbaa !5
  %16597 = call ptr @s2n_strerror(i32 noundef %16596, ptr noundef @.str.4)
  %16598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16599 = load i32, ptr %16598, align 4, !tbaa !5
  %16600 = call ptr @s2n_strerror_debug(i32 noundef %16599, ptr noundef @.str.4)
  %16601 = call ptr @__errno_location() #11
  %16602 = load i32, ptr %16601, align 4, !tbaa !5
  %16603 = call ptr @strerror(i32 noundef %16602) #10
  %16604 = call ptr @__errno_location() #11
  %16605 = load i32, ptr %16604, align 4, !tbaa !5
  %16606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16593, ptr noundef @.str.2, i32 noundef %16594, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 1108, ptr noundef %16597, ptr noundef %16600, ptr noundef %16603, i32 noundef %16605) #10
  br label %16624

16607:                                            ; preds = %16585, %16578
  %16608 = load i32, ptr %514, align 4, !tbaa !5
  %16609 = call ptr @__errno_location() #11
  store i32 %16608, ptr %16609, align 4, !tbaa !5
  %16610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16611 = load i32, ptr @test_count, align 4, !tbaa !5
  %16612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16613 = load i32, ptr %16612, align 4, !tbaa !5
  %16614 = call ptr @s2n_strerror(i32 noundef %16613, ptr noundef @.str.4)
  %16615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16616 = load i32, ptr %16615, align 4, !tbaa !5
  %16617 = call ptr @s2n_strerror_debug(i32 noundef %16616, ptr noundef @.str.4)
  %16618 = call ptr @__errno_location() #11
  %16619 = load i32, ptr %16618, align 4, !tbaa !5
  %16620 = call ptr @strerror(i32 noundef %16619) #10
  %16621 = call ptr @__errno_location() #11
  %16622 = load i32, ptr %16621, align 4, !tbaa !5
  %16623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16610, ptr noundef @.str.5, i32 noundef %16611, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 1108, ptr noundef %16614, ptr noundef %16617, ptr noundef %16620, i32 noundef %16622) #10
  br label %16624

16624:                                            ; preds = %16607, %16590
  call void @llvm.lifetime.end.p0(i64 4, ptr %514) #10
  br label %16625

16625:                                            ; preds = %16624
  br label %16626

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

16627:                                            ; No predecessors!
  br label %16628

16628:                                            ; preds = %16627
  br label %16629

16629:                                            ; preds = %16628, %16568
  br label %16630

16630:                                            ; preds = %16629
  br label %16631

16631:                                            ; preds = %16630
  br label %16632

16632:                                            ; preds = %16631, %16561
  %16633 = load i32, ptr %513, align 4, !tbaa !5
  %16634 = add nsw i32 %16633, 1
  store i32 %16634, ptr %513, align 4, !tbaa !5
  br label %16549, !llvm.loop !83

16635:                                            ; preds = %16555
  br label %16636

16636:                                            ; preds = %16635
  %16637 = load i64, ptr %512, align 8, !tbaa !54
  %16638 = add i64 %16637, 1
  store i64 %16638, ptr %512, align 8, !tbaa !54
  br label %16537, !llvm.loop !84

16639:                                            ; preds = %16543
  call void @llvm.lifetime.end.p0(i64 2, ptr %511) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr %510) #10
  call void @llvm.lifetime.end.p0(i64 258, ptr %507) #10
  %16640 = call i32 @s2n_stuffer_free(ptr noundef %503)
  call void @llvm.lifetime.end.p0(i64 40, ptr %503) #10
  %16641 = call i32 @s2n_connection_ptr_free(ptr noundef %501)
  %16642 = getelementptr inbounds %struct.s2n_result, ptr %515, i32 0, i32 0
  store i32 %16641, ptr %16642, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %501) #10
  br label %16643

16643:                                            ; preds = %16639
  %16644 = load i64, ptr %500, align 8, !tbaa !54
  %16645 = add i64 %16644, 1
  store i64 %16645, ptr %500, align 8, !tbaa !54
  br label %16214, !llvm.loop !85

16646:                                            ; preds = %16217
  call void @llvm.lifetime.start.p0(i64 16, ptr %516) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %516, ptr align 16 @__const.main.pss_test_signature_schemes, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %517) #10
  %16647 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %517, i32 0, i32 0
  store i8 2, ptr %16647, align 8, !tbaa !76
  %16648 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %517, i32 0, i32 1
  %16649 = getelementptr inbounds [2 x ptr], ptr %516, i64 0, i64 0
  store ptr %16649, ptr %16648, align 8, !tbaa !78
  call void @llvm.lifetime.start.p0(i64 8, ptr %518) #10
  %16650 = call ptr @s2n_config_new()
  store ptr %16650, ptr %518, align 8, !tbaa !9
  br label %16651

16651:                                            ; preds = %16646
  %16652 = load i32, ptr @test_count, align 4, !tbaa !5
  %16653 = add nsw i32 %16652, 1
  store i32 %16653, ptr @test_count, align 4, !tbaa !5
  %16654 = load ptr, ptr %518, align 8, !tbaa !9
  %16655 = load ptr, ptr %10, align 8, !tbaa !9
  %16656 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %16654, ptr noundef %16655)
  %16657 = icmp eq i32 %16656, -1
  br i1 %16657, label %16658, label %16711

16658:                                            ; preds = %16651
  br label %16659

16659:                                            ; preds = %16658
  br label %16660

16660:                                            ; preds = %16659
  call void @llvm.lifetime.start.p0(i64 4, ptr %519) #10
  %16661 = call ptr @__errno_location() #11
  %16662 = load i32, ptr %16661, align 4, !tbaa !5
  store i32 %16662, ptr %519, align 4, !tbaa !5
  %16663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16664 = call i32 @s2n_print_stacktrace(ptr noundef %16663)
  %16665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16666 = trunc i8 %16665 to i1
  br i1 %16666, label %16667, label %16689

16667:                                            ; preds = %16660
  %16668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16669 = call i32 @fileno(ptr noundef %16668) #10
  %16670 = call i32 @isatty(i32 noundef %16669) #10
  %16671 = icmp ne i32 %16670, 0
  br i1 %16671, label %16672, label %16689

16672:                                            ; preds = %16667
  %16673 = load i32, ptr %519, align 4, !tbaa !5
  %16674 = call ptr @__errno_location() #11
  store i32 %16673, ptr %16674, align 4, !tbaa !5
  %16675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16676 = load i32, ptr @test_count, align 4, !tbaa !5
  %16677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16678 = load i32, ptr %16677, align 4, !tbaa !5
  %16679 = call ptr @s2n_strerror(i32 noundef %16678, ptr noundef @.str.4)
  %16680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16681 = load i32, ptr %16680, align 4, !tbaa !5
  %16682 = call ptr @s2n_strerror_debug(i32 noundef %16681, ptr noundef @.str.4)
  %16683 = call ptr @__errno_location() #11
  %16684 = load i32, ptr %16683, align 4, !tbaa !5
  %16685 = call ptr @strerror(i32 noundef %16684) #10
  %16686 = call ptr @__errno_location() #11
  %16687 = load i32, ptr %16686, align 4, !tbaa !5
  %16688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16675, ptr noundef @.str.2, i32 noundef %16676, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 1126, ptr noundef %16679, ptr noundef %16682, ptr noundef %16685, i32 noundef %16687) #10
  br label %16706

16689:                                            ; preds = %16667, %16660
  %16690 = load i32, ptr %519, align 4, !tbaa !5
  %16691 = call ptr @__errno_location() #11
  store i32 %16690, ptr %16691, align 4, !tbaa !5
  %16692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16693 = load i32, ptr @test_count, align 4, !tbaa !5
  %16694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16695 = load i32, ptr %16694, align 4, !tbaa !5
  %16696 = call ptr @s2n_strerror(i32 noundef %16695, ptr noundef @.str.4)
  %16697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16698 = load i32, ptr %16697, align 4, !tbaa !5
  %16699 = call ptr @s2n_strerror_debug(i32 noundef %16698, ptr noundef @.str.4)
  %16700 = call ptr @__errno_location() #11
  %16701 = load i32, ptr %16700, align 4, !tbaa !5
  %16702 = call ptr @strerror(i32 noundef %16701) #10
  %16703 = call ptr @__errno_location() #11
  %16704 = load i32, ptr %16703, align 4, !tbaa !5
  %16705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16692, ptr noundef @.str.5, i32 noundef %16693, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 1126, ptr noundef %16696, ptr noundef %16699, ptr noundef %16702, i32 noundef %16704) #10
  br label %16706

16706:                                            ; preds = %16689, %16672
  call void @llvm.lifetime.end.p0(i64 4, ptr %519) #10
  br label %16707

16707:                                            ; preds = %16706
  br label %16708

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

16709:                                            ; No predecessors!
  br label %16710

16710:                                            ; preds = %16709
  br label %16711

16711:                                            ; preds = %16710, %16651
  br label %16712

16712:                                            ; preds = %16711
  br label %16713

16713:                                            ; preds = %16712
  call void @llvm.lifetime.start.p0(i64 64, ptr %520) #10
  %16714 = call ptr @s2n_fetch_default_config()
  %16715 = getelementptr inbounds %struct.s2n_config, ptr %16714, i32 0, i32 7
  %16716 = load ptr, ptr %16715, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %520, ptr align 8 %16716, i64 64, i1 false), !tbaa.struct !22
  %16717 = getelementptr inbounds %struct.s2n_security_policy, ptr %520, i32 0, i32 3
  store ptr %517, ptr %16717, align 8, !tbaa !24
  %16718 = load ptr, ptr %518, align 8, !tbaa !9
  %16719 = getelementptr inbounds %struct.s2n_config, ptr %16718, i32 0, i32 7
  store ptr %520, ptr %16719, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %521) #10
  %16720 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %16720, ptr %521, align 8, !tbaa !9
  %16721 = load ptr, ptr %521, align 8, !tbaa !9
  %16722 = getelementptr inbounds %struct.s2n_connection, ptr %16721, i32 0, i32 27
  %16723 = load ptr, ptr %16722, align 8, !tbaa !66
  %16724 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %16723, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %16724, align 8, !tbaa !67
  %16725 = load ptr, ptr %521, align 8, !tbaa !9
  %16726 = getelementptr inbounds %struct.s2n_connection, ptr %16725, i32 0, i32 23
  store i8 34, ptr %16726, align 4, !tbaa !50
  br label %16727

16727:                                            ; preds = %16713
  %16728 = load i32, ptr @test_count, align 4, !tbaa !5
  %16729 = add nsw i32 %16728, 1
  store i32 %16729, ptr @test_count, align 4, !tbaa !5
  %16730 = load ptr, ptr %521, align 8, !tbaa !9
  %16731 = load ptr, ptr %518, align 8, !tbaa !9
  %16732 = call i32 @s2n_connection_set_config(ptr noundef %16730, ptr noundef %16731)
  %16733 = icmp eq i32 %16732, -1
  br i1 %16733, label %16734, label %16787

16734:                                            ; preds = %16727
  br label %16735

16735:                                            ; preds = %16734
  br label %16736

16736:                                            ; preds = %16735
  call void @llvm.lifetime.start.p0(i64 4, ptr %522) #10
  %16737 = call ptr @__errno_location() #11
  %16738 = load i32, ptr %16737, align 4, !tbaa !5
  store i32 %16738, ptr %522, align 4, !tbaa !5
  %16739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16740 = call i32 @s2n_print_stacktrace(ptr noundef %16739)
  %16741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16742 = trunc i8 %16741 to i1
  br i1 %16742, label %16743, label %16765

16743:                                            ; preds = %16736
  %16744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16745 = call i32 @fileno(ptr noundef %16744) #10
  %16746 = call i32 @isatty(i32 noundef %16745) #10
  %16747 = icmp ne i32 %16746, 0
  br i1 %16747, label %16748, label %16765

16748:                                            ; preds = %16743
  %16749 = load i32, ptr %522, align 4, !tbaa !5
  %16750 = call ptr @__errno_location() #11
  store i32 %16749, ptr %16750, align 4, !tbaa !5
  %16751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16752 = load i32, ptr @test_count, align 4, !tbaa !5
  %16753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16754 = load i32, ptr %16753, align 4, !tbaa !5
  %16755 = call ptr @s2n_strerror(i32 noundef %16754, ptr noundef @.str.4)
  %16756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16757 = load i32, ptr %16756, align 4, !tbaa !5
  %16758 = call ptr @s2n_strerror_debug(i32 noundef %16757, ptr noundef @.str.4)
  %16759 = call ptr @__errno_location() #11
  %16760 = load i32, ptr %16759, align 4, !tbaa !5
  %16761 = call ptr @strerror(i32 noundef %16760) #10
  %16762 = call ptr @__errno_location() #11
  %16763 = load i32, ptr %16762, align 4, !tbaa !5
  %16764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16751, ptr noundef @.str.2, i32 noundef %16752, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 1139, ptr noundef %16755, ptr noundef %16758, ptr noundef %16761, i32 noundef %16763) #10
  br label %16782

16765:                                            ; preds = %16743, %16736
  %16766 = load i32, ptr %522, align 4, !tbaa !5
  %16767 = call ptr @__errno_location() #11
  store i32 %16766, ptr %16767, align 4, !tbaa !5
  %16768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16769 = load i32, ptr @test_count, align 4, !tbaa !5
  %16770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16771 = load i32, ptr %16770, align 4, !tbaa !5
  %16772 = call ptr @s2n_strerror(i32 noundef %16771, ptr noundef @.str.4)
  %16773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16774 = load i32, ptr %16773, align 4, !tbaa !5
  %16775 = call ptr @s2n_strerror_debug(i32 noundef %16774, ptr noundef @.str.4)
  %16776 = call ptr @__errno_location() #11
  %16777 = load i32, ptr %16776, align 4, !tbaa !5
  %16778 = call ptr @strerror(i32 noundef %16777) #10
  %16779 = call ptr @__errno_location() #11
  %16780 = load i32, ptr %16779, align 4, !tbaa !5
  %16781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16768, ptr noundef @.str.5, i32 noundef %16769, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 1139, ptr noundef %16772, ptr noundef %16775, ptr noundef %16778, i32 noundef %16780) #10
  br label %16782

16782:                                            ; preds = %16765, %16748
  call void @llvm.lifetime.end.p0(i64 4, ptr %522) #10
  br label %16783

16783:                                            ; preds = %16782
  br label %16784

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

16785:                                            ; No predecessors!
  br label %16786

16786:                                            ; preds = %16785
  br label %16787

16787:                                            ; preds = %16786, %16727
  br label %16788

16788:                                            ; preds = %16787
  br label %16789

16789:                                            ; preds = %16788
  call void @llvm.lifetime.start.p0(i64 40, ptr %523) #10
  call void @llvm.memset.p0.i64(ptr align 8 %523, i8 0, i64 40, i1 false)
  br label %16790

16790:                                            ; preds = %16789
  %16791 = load i32, ptr @test_count, align 4, !tbaa !5
  %16792 = add nsw i32 %16791, 1
  store i32 %16792, ptr @test_count, align 4, !tbaa !5
  %16793 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %523, i32 noundef 0)
  %16794 = icmp eq i32 %16793, -1
  br i1 %16794, label %16795, label %16848

16795:                                            ; preds = %16790
  br label %16796

16796:                                            ; preds = %16795
  br label %16797

16797:                                            ; preds = %16796
  call void @llvm.lifetime.start.p0(i64 4, ptr %524) #10
  %16798 = call ptr @__errno_location() #11
  %16799 = load i32, ptr %16798, align 4, !tbaa !5
  store i32 %16799, ptr %524, align 4, !tbaa !5
  %16800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16801 = call i32 @s2n_print_stacktrace(ptr noundef %16800)
  %16802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16803 = trunc i8 %16802 to i1
  br i1 %16803, label %16804, label %16826

16804:                                            ; preds = %16797
  %16805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16806 = call i32 @fileno(ptr noundef %16805) #10
  %16807 = call i32 @isatty(i32 noundef %16806) #10
  %16808 = icmp ne i32 %16807, 0
  br i1 %16808, label %16809, label %16826

16809:                                            ; preds = %16804
  %16810 = load i32, ptr %524, align 4, !tbaa !5
  %16811 = call ptr @__errno_location() #11
  store i32 %16810, ptr %16811, align 4, !tbaa !5
  %16812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16813 = load i32, ptr @test_count, align 4, !tbaa !5
  %16814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16815 = load i32, ptr %16814, align 4, !tbaa !5
  %16816 = call ptr @s2n_strerror(i32 noundef %16815, ptr noundef @.str.4)
  %16817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16818 = load i32, ptr %16817, align 4, !tbaa !5
  %16819 = call ptr @s2n_strerror_debug(i32 noundef %16818, ptr noundef @.str.4)
  %16820 = call ptr @__errno_location() #11
  %16821 = load i32, ptr %16820, align 4, !tbaa !5
  %16822 = call ptr @strerror(i32 noundef %16821) #10
  %16823 = call ptr @__errno_location() #11
  %16824 = load i32, ptr %16823, align 4, !tbaa !5
  %16825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16812, ptr noundef @.str.2, i32 noundef %16813, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 1142, ptr noundef %16816, ptr noundef %16819, ptr noundef %16822, i32 noundef %16824) #10
  br label %16843

16826:                                            ; preds = %16804, %16797
  %16827 = load i32, ptr %524, align 4, !tbaa !5
  %16828 = call ptr @__errno_location() #11
  store i32 %16827, ptr %16828, align 4, !tbaa !5
  %16829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16830 = load i32, ptr @test_count, align 4, !tbaa !5
  %16831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16832 = load i32, ptr %16831, align 4, !tbaa !5
  %16833 = call ptr @s2n_strerror(i32 noundef %16832, ptr noundef @.str.4)
  %16834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16835 = load i32, ptr %16834, align 4, !tbaa !5
  %16836 = call ptr @s2n_strerror_debug(i32 noundef %16835, ptr noundef @.str.4)
  %16837 = call ptr @__errno_location() #11
  %16838 = load i32, ptr %16837, align 4, !tbaa !5
  %16839 = call ptr @strerror(i32 noundef %16838) #10
  %16840 = call ptr @__errno_location() #11
  %16841 = load i32, ptr %16840, align 4, !tbaa !5
  %16842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16829, ptr noundef @.str.5, i32 noundef %16830, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 1142, ptr noundef %16833, ptr noundef %16836, ptr noundef %16839, i32 noundef %16841) #10
  br label %16843

16843:                                            ; preds = %16826, %16809
  call void @llvm.lifetime.end.p0(i64 4, ptr %524) #10
  br label %16844

16844:                                            ; preds = %16843
  br label %16845

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

16846:                                            ; No predecessors!
  br label %16847

16847:                                            ; preds = %16846
  br label %16848

16848:                                            ; preds = %16847, %16790
  br label %16849

16849:                                            ; preds = %16848
  br label %16850

16850:                                            ; preds = %16849
  br label %16851

16851:                                            ; preds = %16850
  %16852 = load i32, ptr @test_count, align 4, !tbaa !5
  %16853 = add nsw i32 %16852, 1
  store i32 %16853, ptr @test_count, align 4, !tbaa !5
  %16854 = load ptr, ptr %521, align 8, !tbaa !9
  %16855 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %16854, ptr noundef %523)
  %16856 = getelementptr inbounds %struct.s2n_result, ptr %525, i32 0, i32 0
  store i32 %16855, ptr %16856, align 4
  %16857 = getelementptr inbounds %struct.s2n_result, ptr %525, i32 0, i32 0
  %16858 = load i32, ptr %16857, align 4
  %16859 = call zeroext i1 @s2n_result_is_ok(i32 %16858)
  br i1 %16859, label %16913, label %16860

16860:                                            ; preds = %16851
  br label %16861

16861:                                            ; preds = %16860
  br label %16862

16862:                                            ; preds = %16861
  call void @llvm.lifetime.start.p0(i64 4, ptr %526) #10
  %16863 = call ptr @__errno_location() #11
  %16864 = load i32, ptr %16863, align 4, !tbaa !5
  store i32 %16864, ptr %526, align 4, !tbaa !5
  %16865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16866 = call i32 @s2n_print_stacktrace(ptr noundef %16865)
  %16867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16868 = trunc i8 %16867 to i1
  br i1 %16868, label %16869, label %16891

16869:                                            ; preds = %16862
  %16870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16871 = call i32 @fileno(ptr noundef %16870) #10
  %16872 = call i32 @isatty(i32 noundef %16871) #10
  %16873 = icmp ne i32 %16872, 0
  br i1 %16873, label %16874, label %16891

16874:                                            ; preds = %16869
  %16875 = load i32, ptr %526, align 4, !tbaa !5
  %16876 = call ptr @__errno_location() #11
  store i32 %16875, ptr %16876, align 4, !tbaa !5
  %16877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16878 = load i32, ptr @test_count, align 4, !tbaa !5
  %16879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16880 = load i32, ptr %16879, align 4, !tbaa !5
  %16881 = call ptr @s2n_strerror(i32 noundef %16880, ptr noundef @.str.4)
  %16882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16883 = load i32, ptr %16882, align 4, !tbaa !5
  %16884 = call ptr @s2n_strerror_debug(i32 noundef %16883, ptr noundef @.str.4)
  %16885 = call ptr @__errno_location() #11
  %16886 = load i32, ptr %16885, align 4, !tbaa !5
  %16887 = call ptr @strerror(i32 noundef %16886) #10
  %16888 = call ptr @__errno_location() #11
  %16889 = load i32, ptr %16888, align 4, !tbaa !5
  %16890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16877, ptr noundef @.str.2, i32 noundef %16878, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 1143, ptr noundef %16881, ptr noundef %16884, ptr noundef %16887, i32 noundef %16889) #10
  br label %16908

16891:                                            ; preds = %16869, %16862
  %16892 = load i32, ptr %526, align 4, !tbaa !5
  %16893 = call ptr @__errno_location() #11
  store i32 %16892, ptr %16893, align 4, !tbaa !5
  %16894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16895 = load i32, ptr @test_count, align 4, !tbaa !5
  %16896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16897 = load i32, ptr %16896, align 4, !tbaa !5
  %16898 = call ptr @s2n_strerror(i32 noundef %16897, ptr noundef @.str.4)
  %16899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16900 = load i32, ptr %16899, align 4, !tbaa !5
  %16901 = call ptr @s2n_strerror_debug(i32 noundef %16900, ptr noundef @.str.4)
  %16902 = call ptr @__errno_location() #11
  %16903 = load i32, ptr %16902, align 4, !tbaa !5
  %16904 = call ptr @strerror(i32 noundef %16903) #10
  %16905 = call ptr @__errno_location() #11
  %16906 = load i32, ptr %16905, align 4, !tbaa !5
  %16907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16894, ptr noundef @.str.5, i32 noundef %16895, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 1143, ptr noundef %16898, ptr noundef %16901, ptr noundef %16904, i32 noundef %16906) #10
  br label %16908

16908:                                            ; preds = %16891, %16874
  call void @llvm.lifetime.end.p0(i64 4, ptr %526) #10
  br label %16909

16909:                                            ; preds = %16908
  br label %16910

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

16911:                                            ; No predecessors!
  br label %16912

16912:                                            ; preds = %16911
  br label %16913

16913:                                            ; preds = %16912, %16851
  br label %16914

16914:                                            ; preds = %16913
  br label %16915

16915:                                            ; preds = %16914
  call void @llvm.lifetime.start.p0(i64 2, ptr %527) #10
  store i16 0, ptr %527, align 2, !tbaa !51
  br label %16916

16916:                                            ; preds = %16915
  %16917 = load i32, ptr @test_count, align 4, !tbaa !5
  %16918 = add nsw i32 %16917, 1
  store i32 %16918, ptr @test_count, align 4, !tbaa !5
  %16919 = call i32 @s2n_stuffer_read_uint16(ptr noundef %523, ptr noundef %527)
  %16920 = icmp eq i32 %16919, -1
  br i1 %16920, label %16921, label %16974

16921:                                            ; preds = %16916
  br label %16922

16922:                                            ; preds = %16921
  br label %16923

16923:                                            ; preds = %16922
  call void @llvm.lifetime.start.p0(i64 4, ptr %528) #10
  %16924 = call ptr @__errno_location() #11
  %16925 = load i32, ptr %16924, align 4, !tbaa !5
  store i32 %16925, ptr %528, align 4, !tbaa !5
  %16926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16927 = call i32 @s2n_print_stacktrace(ptr noundef %16926)
  %16928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16929 = trunc i8 %16928 to i1
  br i1 %16929, label %16930, label %16952

16930:                                            ; preds = %16923
  %16931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16932 = call i32 @fileno(ptr noundef %16931) #10
  %16933 = call i32 @isatty(i32 noundef %16932) #10
  %16934 = icmp ne i32 %16933, 0
  br i1 %16934, label %16935, label %16952

16935:                                            ; preds = %16930
  %16936 = load i32, ptr %528, align 4, !tbaa !5
  %16937 = call ptr @__errno_location() #11
  store i32 %16936, ptr %16937, align 4, !tbaa !5
  %16938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16939 = load i32, ptr @test_count, align 4, !tbaa !5
  %16940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16941 = load i32, ptr %16940, align 4, !tbaa !5
  %16942 = call ptr @s2n_strerror(i32 noundef %16941, ptr noundef @.str.4)
  %16943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16944 = load i32, ptr %16943, align 4, !tbaa !5
  %16945 = call ptr @s2n_strerror_debug(i32 noundef %16944, ptr noundef @.str.4)
  %16946 = call ptr @__errno_location() #11
  %16947 = load i32, ptr %16946, align 4, !tbaa !5
  %16948 = call ptr @strerror(i32 noundef %16947) #10
  %16949 = call ptr @__errno_location() #11
  %16950 = load i32, ptr %16949, align 4, !tbaa !5
  %16951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16938, ptr noundef @.str.2, i32 noundef %16939, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 1146, ptr noundef %16942, ptr noundef %16945, ptr noundef %16948, i32 noundef %16950) #10
  br label %16969

16952:                                            ; preds = %16930, %16923
  %16953 = load i32, ptr %528, align 4, !tbaa !5
  %16954 = call ptr @__errno_location() #11
  store i32 %16953, ptr %16954, align 4, !tbaa !5
  %16955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16956 = load i32, ptr @test_count, align 4, !tbaa !5
  %16957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16958 = load i32, ptr %16957, align 4, !tbaa !5
  %16959 = call ptr @s2n_strerror(i32 noundef %16958, ptr noundef @.str.4)
  %16960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16961 = load i32, ptr %16960, align 4, !tbaa !5
  %16962 = call ptr @s2n_strerror_debug(i32 noundef %16961, ptr noundef @.str.4)
  %16963 = call ptr @__errno_location() #11
  %16964 = load i32, ptr %16963, align 4, !tbaa !5
  %16965 = call ptr @strerror(i32 noundef %16964) #10
  %16966 = call ptr @__errno_location() #11
  %16967 = load i32, ptr %16966, align 4, !tbaa !5
  %16968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16955, ptr noundef @.str.5, i32 noundef %16956, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 1146, ptr noundef %16959, ptr noundef %16962, ptr noundef %16965, i32 noundef %16967) #10
  br label %16969

16969:                                            ; preds = %16952, %16935
  call void @llvm.lifetime.end.p0(i64 4, ptr %528) #10
  br label %16970

16970:                                            ; preds = %16969
  br label %16971

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

16972:                                            ; No predecessors!
  br label %16973

16973:                                            ; preds = %16972
  br label %16974

16974:                                            ; preds = %16973, %16916
  br label %16975

16975:                                            ; preds = %16974
  br label %16976

16976:                                            ; preds = %16975
  br label %16977

16977:                                            ; preds = %16976
  %16978 = load i32, ptr @test_count, align 4, !tbaa !5
  %16979 = add nsw i32 %16978, 1
  store i32 %16979, ptr @test_count, align 4, !tbaa !5
  %16980 = load i16, ptr %527, align 2, !tbaa !51
  %16981 = zext i16 %16980 to i32
  %16982 = getelementptr inbounds %struct.s2n_stuffer, ptr %523, i32 0, i32 2
  %16983 = load i32, ptr %16982, align 4, !tbaa !52
  %16984 = getelementptr inbounds %struct.s2n_stuffer, ptr %523, i32 0, i32 1
  %16985 = load i32, ptr %16984, align 8, !tbaa !53
  %16986 = sub i32 %16983, %16985
  %16987 = icmp eq i32 %16981, %16986
  br i1 %16987, label %17041, label %16988

16988:                                            ; preds = %16977
  br label %16989

16989:                                            ; preds = %16988
  br label %16990

16990:                                            ; preds = %16989
  call void @llvm.lifetime.start.p0(i64 4, ptr %529) #10
  %16991 = call ptr @__errno_location() #11
  %16992 = load i32, ptr %16991, align 4, !tbaa !5
  store i32 %16992, ptr %529, align 4, !tbaa !5
  %16993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16994 = call i32 @s2n_print_stacktrace(ptr noundef %16993)
  %16995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16996 = trunc i8 %16995 to i1
  br i1 %16996, label %16997, label %17019

16997:                                            ; preds = %16990
  %16998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16999 = call i32 @fileno(ptr noundef %16998) #10
  %17000 = call i32 @isatty(i32 noundef %16999) #10
  %17001 = icmp ne i32 %17000, 0
  br i1 %17001, label %17002, label %17019

17002:                                            ; preds = %16997
  %17003 = load i32, ptr %529, align 4, !tbaa !5
  %17004 = call ptr @__errno_location() #11
  store i32 %17003, ptr %17004, align 4, !tbaa !5
  %17005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17006 = load i32, ptr @test_count, align 4, !tbaa !5
  %17007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17008 = load i32, ptr %17007, align 4, !tbaa !5
  %17009 = call ptr @s2n_strerror(i32 noundef %17008, ptr noundef @.str.4)
  %17010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17011 = load i32, ptr %17010, align 4, !tbaa !5
  %17012 = call ptr @s2n_strerror_debug(i32 noundef %17011, ptr noundef @.str.4)
  %17013 = call ptr @__errno_location() #11
  %17014 = load i32, ptr %17013, align 4, !tbaa !5
  %17015 = call ptr @strerror(i32 noundef %17014) #10
  %17016 = call ptr @__errno_location() #11
  %17017 = load i32, ptr %17016, align 4, !tbaa !5
  %17018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17005, ptr noundef @.str.2, i32 noundef %17006, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 1147, ptr noundef %17009, ptr noundef %17012, ptr noundef %17015, i32 noundef %17017) #10
  br label %17036

17019:                                            ; preds = %16997, %16990
  %17020 = load i32, ptr %529, align 4, !tbaa !5
  %17021 = call ptr @__errno_location() #11
  store i32 %17020, ptr %17021, align 4, !tbaa !5
  %17022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17023 = load i32, ptr @test_count, align 4, !tbaa !5
  %17024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17025 = load i32, ptr %17024, align 4, !tbaa !5
  %17026 = call ptr @s2n_strerror(i32 noundef %17025, ptr noundef @.str.4)
  %17027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17028 = load i32, ptr %17027, align 4, !tbaa !5
  %17029 = call ptr @s2n_strerror_debug(i32 noundef %17028, ptr noundef @.str.4)
  %17030 = call ptr @__errno_location() #11
  %17031 = load i32, ptr %17030, align 4, !tbaa !5
  %17032 = call ptr @strerror(i32 noundef %17031) #10
  %17033 = call ptr @__errno_location() #11
  %17034 = load i32, ptr %17033, align 4, !tbaa !5
  %17035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17022, ptr noundef @.str.5, i32 noundef %17023, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 1147, ptr noundef %17026, ptr noundef %17029, ptr noundef %17032, i32 noundef %17034) #10
  br label %17036

17036:                                            ; preds = %17019, %17002
  call void @llvm.lifetime.end.p0(i64 4, ptr %529) #10
  br label %17037

17037:                                            ; preds = %17036
  br label %17038

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

17039:                                            ; No predecessors!
  br label %17040

17040:                                            ; preds = %17039
  br label %17041

17041:                                            ; preds = %17040, %16977
  br label %17042

17042:                                            ; preds = %17041
  br label %17043

17043:                                            ; preds = %17042
  %17044 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported()
  br i1 %17044, label %17045, label %17108

17045:                                            ; preds = %17043
  br label %17046

17046:                                            ; preds = %17045
  %17047 = load i32, ptr @test_count, align 4, !tbaa !5
  %17048 = add nsw i32 %17047, 1
  store i32 %17048, ptr @test_count, align 4, !tbaa !5
  %17049 = load i16, ptr %527, align 2, !tbaa !51
  %17050 = zext i16 %17049 to i64
  %17051 = icmp eq i64 %17050, 4
  br i1 %17051, label %17105, label %17052

17052:                                            ; preds = %17046
  br label %17053

17053:                                            ; preds = %17052
  br label %17054

17054:                                            ; preds = %17053
  call void @llvm.lifetime.start.p0(i64 4, ptr %530) #10
  %17055 = call ptr @__errno_location() #11
  %17056 = load i32, ptr %17055, align 4, !tbaa !5
  store i32 %17056, ptr %530, align 4, !tbaa !5
  %17057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17058 = call i32 @s2n_print_stacktrace(ptr noundef %17057)
  %17059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17060 = trunc i8 %17059 to i1
  br i1 %17060, label %17061, label %17083

17061:                                            ; preds = %17054
  %17062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17063 = call i32 @fileno(ptr noundef %17062) #10
  %17064 = call i32 @isatty(i32 noundef %17063) #10
  %17065 = icmp ne i32 %17064, 0
  br i1 %17065, label %17066, label %17083

17066:                                            ; preds = %17061
  %17067 = load i32, ptr %530, align 4, !tbaa !5
  %17068 = call ptr @__errno_location() #11
  store i32 %17067, ptr %17068, align 4, !tbaa !5
  %17069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17070 = load i32, ptr @test_count, align 4, !tbaa !5
  %17071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17072 = load i32, ptr %17071, align 4, !tbaa !5
  %17073 = call ptr @s2n_strerror(i32 noundef %17072, ptr noundef @.str.4)
  %17074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17075 = load i32, ptr %17074, align 4, !tbaa !5
  %17076 = call ptr @s2n_strerror_debug(i32 noundef %17075, ptr noundef @.str.4)
  %17077 = call ptr @__errno_location() #11
  %17078 = load i32, ptr %17077, align 4, !tbaa !5
  %17079 = call ptr @strerror(i32 noundef %17078) #10
  %17080 = call ptr @__errno_location() #11
  %17081 = load i32, ptr %17080, align 4, !tbaa !5
  %17082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17069, ptr noundef @.str.2, i32 noundef %17070, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 1149, ptr noundef %17073, ptr noundef %17076, ptr noundef %17079, i32 noundef %17081) #10
  br label %17100

17083:                                            ; preds = %17061, %17054
  %17084 = load i32, ptr %530, align 4, !tbaa !5
  %17085 = call ptr @__errno_location() #11
  store i32 %17084, ptr %17085, align 4, !tbaa !5
  %17086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17087 = load i32, ptr @test_count, align 4, !tbaa !5
  %17088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17089 = load i32, ptr %17088, align 4, !tbaa !5
  %17090 = call ptr @s2n_strerror(i32 noundef %17089, ptr noundef @.str.4)
  %17091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17092 = load i32, ptr %17091, align 4, !tbaa !5
  %17093 = call ptr @s2n_strerror_debug(i32 noundef %17092, ptr noundef @.str.4)
  %17094 = call ptr @__errno_location() #11
  %17095 = load i32, ptr %17094, align 4, !tbaa !5
  %17096 = call ptr @strerror(i32 noundef %17095) #10
  %17097 = call ptr @__errno_location() #11
  %17098 = load i32, ptr %17097, align 4, !tbaa !5
  %17099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17086, ptr noundef @.str.5, i32 noundef %17087, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 1149, ptr noundef %17090, ptr noundef %17093, ptr noundef %17096, i32 noundef %17098) #10
  br label %17100

17100:                                            ; preds = %17083, %17066
  call void @llvm.lifetime.end.p0(i64 4, ptr %530) #10
  br label %17101

17101:                                            ; preds = %17100
  br label %17102

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

17103:                                            ; No predecessors!
  br label %17104

17104:                                            ; preds = %17103
  br label %17105

17105:                                            ; preds = %17104, %17046
  br label %17106

17106:                                            ; preds = %17105
  br label %17107

17107:                                            ; preds = %17106
  br label %17237

17108:                                            ; preds = %17043
  %17109 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported()
  br i1 %17109, label %17110, label %17173

17110:                                            ; preds = %17108
  br label %17111

17111:                                            ; preds = %17110
  %17112 = load i32, ptr @test_count, align 4, !tbaa !5
  %17113 = add nsw i32 %17112, 1
  store i32 %17113, ptr @test_count, align 4, !tbaa !5
  %17114 = load i16, ptr %527, align 2, !tbaa !51
  %17115 = zext i16 %17114 to i64
  %17116 = icmp eq i64 %17115, 2
  br i1 %17116, label %17170, label %17117

17117:                                            ; preds = %17111
  br label %17118

17118:                                            ; preds = %17117
  br label %17119

17119:                                            ; preds = %17118
  call void @llvm.lifetime.start.p0(i64 4, ptr %531) #10
  %17120 = call ptr @__errno_location() #11
  %17121 = load i32, ptr %17120, align 4, !tbaa !5
  store i32 %17121, ptr %531, align 4, !tbaa !5
  %17122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17123 = call i32 @s2n_print_stacktrace(ptr noundef %17122)
  %17124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17125 = trunc i8 %17124 to i1
  br i1 %17125, label %17126, label %17148

17126:                                            ; preds = %17119
  %17127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17128 = call i32 @fileno(ptr noundef %17127) #10
  %17129 = call i32 @isatty(i32 noundef %17128) #10
  %17130 = icmp ne i32 %17129, 0
  br i1 %17130, label %17131, label %17148

17131:                                            ; preds = %17126
  %17132 = load i32, ptr %531, align 4, !tbaa !5
  %17133 = call ptr @__errno_location() #11
  store i32 %17132, ptr %17133, align 4, !tbaa !5
  %17134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17135 = load i32, ptr @test_count, align 4, !tbaa !5
  %17136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17137 = load i32, ptr %17136, align 4, !tbaa !5
  %17138 = call ptr @s2n_strerror(i32 noundef %17137, ptr noundef @.str.4)
  %17139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17140 = load i32, ptr %17139, align 4, !tbaa !5
  %17141 = call ptr @s2n_strerror_debug(i32 noundef %17140, ptr noundef @.str.4)
  %17142 = call ptr @__errno_location() #11
  %17143 = load i32, ptr %17142, align 4, !tbaa !5
  %17144 = call ptr @strerror(i32 noundef %17143) #10
  %17145 = call ptr @__errno_location() #11
  %17146 = load i32, ptr %17145, align 4, !tbaa !5
  %17147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17134, ptr noundef @.str.2, i32 noundef %17135, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 1151, ptr noundef %17138, ptr noundef %17141, ptr noundef %17144, i32 noundef %17146) #10
  br label %17165

17148:                                            ; preds = %17126, %17119
  %17149 = load i32, ptr %531, align 4, !tbaa !5
  %17150 = call ptr @__errno_location() #11
  store i32 %17149, ptr %17150, align 4, !tbaa !5
  %17151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17152 = load i32, ptr @test_count, align 4, !tbaa !5
  %17153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17154 = load i32, ptr %17153, align 4, !tbaa !5
  %17155 = call ptr @s2n_strerror(i32 noundef %17154, ptr noundef @.str.4)
  %17156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17157 = load i32, ptr %17156, align 4, !tbaa !5
  %17158 = call ptr @s2n_strerror_debug(i32 noundef %17157, ptr noundef @.str.4)
  %17159 = call ptr @__errno_location() #11
  %17160 = load i32, ptr %17159, align 4, !tbaa !5
  %17161 = call ptr @strerror(i32 noundef %17160) #10
  %17162 = call ptr @__errno_location() #11
  %17163 = load i32, ptr %17162, align 4, !tbaa !5
  %17164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17151, ptr noundef @.str.5, i32 noundef %17152, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 1151, ptr noundef %17155, ptr noundef %17158, ptr noundef %17161, i32 noundef %17163) #10
  br label %17165

17165:                                            ; preds = %17148, %17131
  call void @llvm.lifetime.end.p0(i64 4, ptr %531) #10
  br label %17166

17166:                                            ; preds = %17165
  br label %17167

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

17168:                                            ; No predecessors!
  br label %17169

17169:                                            ; preds = %17168
  br label %17170

17170:                                            ; preds = %17169, %17111
  br label %17171

17171:                                            ; preds = %17170
  br label %17172

17172:                                            ; preds = %17171
  br label %17236

17173:                                            ; preds = %17108
  br label %17174

17174:                                            ; preds = %17173
  %17175 = load i32, ptr @test_count, align 4, !tbaa !5
  %17176 = add nsw i32 %17175, 1
  store i32 %17176, ptr @test_count, align 4, !tbaa !5
  %17177 = load i16, ptr %527, align 2, !tbaa !51
  %17178 = zext i16 %17177 to i32
  %17179 = icmp eq i32 %17178, 0
  br i1 %17179, label %17233, label %17180

17180:                                            ; preds = %17174
  br label %17181

17181:                                            ; preds = %17180
  br label %17182

17182:                                            ; preds = %17181
  call void @llvm.lifetime.start.p0(i64 4, ptr %532) #10
  %17183 = call ptr @__errno_location() #11
  %17184 = load i32, ptr %17183, align 4, !tbaa !5
  store i32 %17184, ptr %532, align 4, !tbaa !5
  %17185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17186 = call i32 @s2n_print_stacktrace(ptr noundef %17185)
  %17187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17188 = trunc i8 %17187 to i1
  br i1 %17188, label %17189, label %17211

17189:                                            ; preds = %17182
  %17190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17191 = call i32 @fileno(ptr noundef %17190) #10
  %17192 = call i32 @isatty(i32 noundef %17191) #10
  %17193 = icmp ne i32 %17192, 0
  br i1 %17193, label %17194, label %17211

17194:                                            ; preds = %17189
  %17195 = load i32, ptr %532, align 4, !tbaa !5
  %17196 = call ptr @__errno_location() #11
  store i32 %17195, ptr %17196, align 4, !tbaa !5
  %17197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17198 = load i32, ptr @test_count, align 4, !tbaa !5
  %17199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17200 = load i32, ptr %17199, align 4, !tbaa !5
  %17201 = call ptr @s2n_strerror(i32 noundef %17200, ptr noundef @.str.4)
  %17202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17203 = load i32, ptr %17202, align 4, !tbaa !5
  %17204 = call ptr @s2n_strerror_debug(i32 noundef %17203, ptr noundef @.str.4)
  %17205 = call ptr @__errno_location() #11
  %17206 = load i32, ptr %17205, align 4, !tbaa !5
  %17207 = call ptr @strerror(i32 noundef %17206) #10
  %17208 = call ptr @__errno_location() #11
  %17209 = load i32, ptr %17208, align 4, !tbaa !5
  %17210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17197, ptr noundef @.str.2, i32 noundef %17198, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 1153, ptr noundef %17201, ptr noundef %17204, ptr noundef %17207, i32 noundef %17209) #10
  br label %17228

17211:                                            ; preds = %17189, %17182
  %17212 = load i32, ptr %532, align 4, !tbaa !5
  %17213 = call ptr @__errno_location() #11
  store i32 %17212, ptr %17213, align 4, !tbaa !5
  %17214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17215 = load i32, ptr @test_count, align 4, !tbaa !5
  %17216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17217 = load i32, ptr %17216, align 4, !tbaa !5
  %17218 = call ptr @s2n_strerror(i32 noundef %17217, ptr noundef @.str.4)
  %17219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17220 = load i32, ptr %17219, align 4, !tbaa !5
  %17221 = call ptr @s2n_strerror_debug(i32 noundef %17220, ptr noundef @.str.4)
  %17222 = call ptr @__errno_location() #11
  %17223 = load i32, ptr %17222, align 4, !tbaa !5
  %17224 = call ptr @strerror(i32 noundef %17223) #10
  %17225 = call ptr @__errno_location() #11
  %17226 = load i32, ptr %17225, align 4, !tbaa !5
  %17227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17214, ptr noundef @.str.5, i32 noundef %17215, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 1153, ptr noundef %17218, ptr noundef %17221, ptr noundef %17224, i32 noundef %17226) #10
  br label %17228

17228:                                            ; preds = %17211, %17194
  call void @llvm.lifetime.end.p0(i64 4, ptr %532) #10
  br label %17229

17229:                                            ; preds = %17228
  br label %17230

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

17231:                                            ; No predecessors!
  br label %17232

17232:                                            ; preds = %17231
  br label %17233

17233:                                            ; preds = %17232, %17174
  br label %17234

17234:                                            ; preds = %17233
  br label %17235

17235:                                            ; preds = %17234
  br label %17236

17236:                                            ; preds = %17235, %17172
  br label %17237

17237:                                            ; preds = %17236, %17107
  call void @llvm.lifetime.end.p0(i64 2, ptr %527) #10
  %17238 = call i32 @s2n_stuffer_free(ptr noundef %523)
  call void @llvm.lifetime.end.p0(i64 40, ptr %523) #10
  %17239 = call i32 @s2n_connection_ptr_free(ptr noundef %521)
  %17240 = getelementptr inbounds %struct.s2n_result, ptr %533, i32 0, i32 0
  store i32 %17239, ptr %17240, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %521) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %534) #10
  %17241 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %17241, ptr %534, align 8, !tbaa !9
  %17242 = load ptr, ptr %534, align 8, !tbaa !9
  %17243 = getelementptr inbounds %struct.s2n_connection, ptr %17242, i32 0, i32 27
  %17244 = load ptr, ptr %17243, align 8, !tbaa !66
  %17245 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %17244, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %17245, align 8, !tbaa !67
  %17246 = load ptr, ptr %534, align 8, !tbaa !9
  %17247 = getelementptr inbounds %struct.s2n_connection, ptr %17246, i32 0, i32 23
  store i8 34, ptr %17247, align 4, !tbaa !50
  br label %17248

17248:                                            ; preds = %17237
  %17249 = load i32, ptr @test_count, align 4, !tbaa !5
  %17250 = add nsw i32 %17249, 1
  store i32 %17250, ptr @test_count, align 4, !tbaa !5
  %17251 = load ptr, ptr %534, align 8, !tbaa !9
  %17252 = load ptr, ptr %518, align 8, !tbaa !9
  %17253 = call i32 @s2n_connection_set_config(ptr noundef %17251, ptr noundef %17252)
  %17254 = icmp eq i32 %17253, -1
  br i1 %17254, label %17255, label %17308

17255:                                            ; preds = %17248
  br label %17256

17256:                                            ; preds = %17255
  br label %17257

17257:                                            ; preds = %17256
  call void @llvm.lifetime.start.p0(i64 4, ptr %535) #10
  %17258 = call ptr @__errno_location() #11
  %17259 = load i32, ptr %17258, align 4, !tbaa !5
  store i32 %17259, ptr %535, align 4, !tbaa !5
  %17260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17261 = call i32 @s2n_print_stacktrace(ptr noundef %17260)
  %17262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17263 = trunc i8 %17262 to i1
  br i1 %17263, label %17264, label %17286

17264:                                            ; preds = %17257
  %17265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17266 = call i32 @fileno(ptr noundef %17265) #10
  %17267 = call i32 @isatty(i32 noundef %17266) #10
  %17268 = icmp ne i32 %17267, 0
  br i1 %17268, label %17269, label %17286

17269:                                            ; preds = %17264
  %17270 = load i32, ptr %535, align 4, !tbaa !5
  %17271 = call ptr @__errno_location() #11
  store i32 %17270, ptr %17271, align 4, !tbaa !5
  %17272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17273 = load i32, ptr @test_count, align 4, !tbaa !5
  %17274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17275 = load i32, ptr %17274, align 4, !tbaa !5
  %17276 = call ptr @s2n_strerror(i32 noundef %17275, ptr noundef @.str.4)
  %17277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17278 = load i32, ptr %17277, align 4, !tbaa !5
  %17279 = call ptr @s2n_strerror_debug(i32 noundef %17278, ptr noundef @.str.4)
  %17280 = call ptr @__errno_location() #11
  %17281 = load i32, ptr %17280, align 4, !tbaa !5
  %17282 = call ptr @strerror(i32 noundef %17281) #10
  %17283 = call ptr @__errno_location() #11
  %17284 = load i32, ptr %17283, align 4, !tbaa !5
  %17285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17272, ptr noundef @.str.2, i32 noundef %17273, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 1164, ptr noundef %17276, ptr noundef %17279, ptr noundef %17282, i32 noundef %17284) #10
  br label %17303

17286:                                            ; preds = %17264, %17257
  %17287 = load i32, ptr %535, align 4, !tbaa !5
  %17288 = call ptr @__errno_location() #11
  store i32 %17287, ptr %17288, align 4, !tbaa !5
  %17289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17290 = load i32, ptr @test_count, align 4, !tbaa !5
  %17291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17292 = load i32, ptr %17291, align 4, !tbaa !5
  %17293 = call ptr @s2n_strerror(i32 noundef %17292, ptr noundef @.str.4)
  %17294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17295 = load i32, ptr %17294, align 4, !tbaa !5
  %17296 = call ptr @s2n_strerror_debug(i32 noundef %17295, ptr noundef @.str.4)
  %17297 = call ptr @__errno_location() #11
  %17298 = load i32, ptr %17297, align 4, !tbaa !5
  %17299 = call ptr @strerror(i32 noundef %17298) #10
  %17300 = call ptr @__errno_location() #11
  %17301 = load i32, ptr %17300, align 4, !tbaa !5
  %17302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17289, ptr noundef @.str.5, i32 noundef %17290, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 1164, ptr noundef %17293, ptr noundef %17296, ptr noundef %17299, i32 noundef %17301) #10
  br label %17303

17303:                                            ; preds = %17286, %17269
  call void @llvm.lifetime.end.p0(i64 4, ptr %535) #10
  br label %17304

17304:                                            ; preds = %17303
  br label %17305

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

17306:                                            ; No predecessors!
  br label %17307

17307:                                            ; preds = %17306
  br label %17308

17308:                                            ; preds = %17307, %17248
  br label %17309

17309:                                            ; preds = %17308
  br label %17310

17310:                                            ; preds = %17309
  call void @llvm.lifetime.start.p0(i64 40, ptr %536) #10
  call void @llvm.memset.p0.i64(ptr align 8 %536, i8 0, i64 40, i1 false)
  br label %17311

17311:                                            ; preds = %17310
  %17312 = load i32, ptr @test_count, align 4, !tbaa !5
  %17313 = add nsw i32 %17312, 1
  store i32 %17313, ptr @test_count, align 4, !tbaa !5
  %17314 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %536, i32 noundef 0)
  %17315 = icmp eq i32 %17314, -1
  br i1 %17315, label %17316, label %17369

17316:                                            ; preds = %17311
  br label %17317

17317:                                            ; preds = %17316
  br label %17318

17318:                                            ; preds = %17317
  call void @llvm.lifetime.start.p0(i64 4, ptr %537) #10
  %17319 = call ptr @__errno_location() #11
  %17320 = load i32, ptr %17319, align 4, !tbaa !5
  store i32 %17320, ptr %537, align 4, !tbaa !5
  %17321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17322 = call i32 @s2n_print_stacktrace(ptr noundef %17321)
  %17323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17324 = trunc i8 %17323 to i1
  br i1 %17324, label %17325, label %17347

17325:                                            ; preds = %17318
  %17326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17327 = call i32 @fileno(ptr noundef %17326) #10
  %17328 = call i32 @isatty(i32 noundef %17327) #10
  %17329 = icmp ne i32 %17328, 0
  br i1 %17329, label %17330, label %17347

17330:                                            ; preds = %17325
  %17331 = load i32, ptr %537, align 4, !tbaa !5
  %17332 = call ptr @__errno_location() #11
  store i32 %17331, ptr %17332, align 4, !tbaa !5
  %17333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17334 = load i32, ptr @test_count, align 4, !tbaa !5
  %17335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17336 = load i32, ptr %17335, align 4, !tbaa !5
  %17337 = call ptr @s2n_strerror(i32 noundef %17336, ptr noundef @.str.4)
  %17338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17339 = load i32, ptr %17338, align 4, !tbaa !5
  %17340 = call ptr @s2n_strerror_debug(i32 noundef %17339, ptr noundef @.str.4)
  %17341 = call ptr @__errno_location() #11
  %17342 = load i32, ptr %17341, align 4, !tbaa !5
  %17343 = call ptr @strerror(i32 noundef %17342) #10
  %17344 = call ptr @__errno_location() #11
  %17345 = load i32, ptr %17344, align 4, !tbaa !5
  %17346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17333, ptr noundef @.str.2, i32 noundef %17334, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 1167, ptr noundef %17337, ptr noundef %17340, ptr noundef %17343, i32 noundef %17345) #10
  br label %17364

17347:                                            ; preds = %17325, %17318
  %17348 = load i32, ptr %537, align 4, !tbaa !5
  %17349 = call ptr @__errno_location() #11
  store i32 %17348, ptr %17349, align 4, !tbaa !5
  %17350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17351 = load i32, ptr @test_count, align 4, !tbaa !5
  %17352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17353 = load i32, ptr %17352, align 4, !tbaa !5
  %17354 = call ptr @s2n_strerror(i32 noundef %17353, ptr noundef @.str.4)
  %17355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17356 = load i32, ptr %17355, align 4, !tbaa !5
  %17357 = call ptr @s2n_strerror_debug(i32 noundef %17356, ptr noundef @.str.4)
  %17358 = call ptr @__errno_location() #11
  %17359 = load i32, ptr %17358, align 4, !tbaa !5
  %17360 = call ptr @strerror(i32 noundef %17359) #10
  %17361 = call ptr @__errno_location() #11
  %17362 = load i32, ptr %17361, align 4, !tbaa !5
  %17363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17350, ptr noundef @.str.5, i32 noundef %17351, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 1167, ptr noundef %17354, ptr noundef %17357, ptr noundef %17360, i32 noundef %17362) #10
  br label %17364

17364:                                            ; preds = %17347, %17330
  call void @llvm.lifetime.end.p0(i64 4, ptr %537) #10
  br label %17365

17365:                                            ; preds = %17364
  br label %17366

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

17367:                                            ; No predecessors!
  br label %17368

17368:                                            ; preds = %17367
  br label %17369

17369:                                            ; preds = %17368, %17311
  br label %17370

17370:                                            ; preds = %17369
  br label %17371

17371:                                            ; preds = %17370
  br label %17372

17372:                                            ; preds = %17371
  %17373 = load i32, ptr @test_count, align 4, !tbaa !5
  %17374 = add nsw i32 %17373, 1
  store i32 %17374, ptr @test_count, align 4, !tbaa !5
  %17375 = load i16, ptr @s2n_rsa_pss_rsae_sha256, align 8, !tbaa !55
  %17376 = call i32 @s2n_stuffer_write_uint16(ptr noundef %536, i16 noundef zeroext %17375)
  %17377 = icmp eq i32 %17376, -1
  br i1 %17377, label %17378, label %17431

17378:                                            ; preds = %17372
  br label %17379

17379:                                            ; preds = %17378
  br label %17380

17380:                                            ; preds = %17379
  call void @llvm.lifetime.start.p0(i64 4, ptr %538) #10
  %17381 = call ptr @__errno_location() #11
  %17382 = load i32, ptr %17381, align 4, !tbaa !5
  store i32 %17382, ptr %538, align 4, !tbaa !5
  %17383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17384 = call i32 @s2n_print_stacktrace(ptr noundef %17383)
  %17385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17386 = trunc i8 %17385 to i1
  br i1 %17386, label %17387, label %17409

17387:                                            ; preds = %17380
  %17388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17389 = call i32 @fileno(ptr noundef %17388) #10
  %17390 = call i32 @isatty(i32 noundef %17389) #10
  %17391 = icmp ne i32 %17390, 0
  br i1 %17391, label %17392, label %17409

17392:                                            ; preds = %17387
  %17393 = load i32, ptr %538, align 4, !tbaa !5
  %17394 = call ptr @__errno_location() #11
  store i32 %17393, ptr %17394, align 4, !tbaa !5
  %17395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17396 = load i32, ptr @test_count, align 4, !tbaa !5
  %17397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17398 = load i32, ptr %17397, align 4, !tbaa !5
  %17399 = call ptr @s2n_strerror(i32 noundef %17398, ptr noundef @.str.4)
  %17400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17401 = load i32, ptr %17400, align 4, !tbaa !5
  %17402 = call ptr @s2n_strerror_debug(i32 noundef %17401, ptr noundef @.str.4)
  %17403 = call ptr @__errno_location() #11
  %17404 = load i32, ptr %17403, align 4, !tbaa !5
  %17405 = call ptr @strerror(i32 noundef %17404) #10
  %17406 = call ptr @__errno_location() #11
  %17407 = load i32, ptr %17406, align 4, !tbaa !5
  %17408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17395, ptr noundef @.str.2, i32 noundef %17396, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 1168, ptr noundef %17399, ptr noundef %17402, ptr noundef %17405, i32 noundef %17407) #10
  br label %17426

17409:                                            ; preds = %17387, %17380
  %17410 = load i32, ptr %538, align 4, !tbaa !5
  %17411 = call ptr @__errno_location() #11
  store i32 %17410, ptr %17411, align 4, !tbaa !5
  %17412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17413 = load i32, ptr @test_count, align 4, !tbaa !5
  %17414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17415 = load i32, ptr %17414, align 4, !tbaa !5
  %17416 = call ptr @s2n_strerror(i32 noundef %17415, ptr noundef @.str.4)
  %17417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17418 = load i32, ptr %17417, align 4, !tbaa !5
  %17419 = call ptr @s2n_strerror_debug(i32 noundef %17418, ptr noundef @.str.4)
  %17420 = call ptr @__errno_location() #11
  %17421 = load i32, ptr %17420, align 4, !tbaa !5
  %17422 = call ptr @strerror(i32 noundef %17421) #10
  %17423 = call ptr @__errno_location() #11
  %17424 = load i32, ptr %17423, align 4, !tbaa !5
  %17425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17412, ptr noundef @.str.5, i32 noundef %17413, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 1168, ptr noundef %17416, ptr noundef %17419, ptr noundef %17422, i32 noundef %17424) #10
  br label %17426

17426:                                            ; preds = %17409, %17392
  call void @llvm.lifetime.end.p0(i64 4, ptr %538) #10
  br label %17427

17427:                                            ; preds = %17426
  br label %17428

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

17429:                                            ; No predecessors!
  br label %17430

17430:                                            ; preds = %17429
  br label %17431

17431:                                            ; preds = %17430, %17372
  br label %17432

17432:                                            ; preds = %17431
  br label %17433

17433:                                            ; preds = %17432
  %17434 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported()
  br i1 %17434, label %17435, label %17565

17435:                                            ; preds = %17433
  br label %17436

17436:                                            ; preds = %17435
  %17437 = load i32, ptr @test_count, align 4, !tbaa !5
  %17438 = add nsw i32 %17437, 1
  store i32 %17438, ptr @test_count, align 4, !tbaa !5
  %17439 = load ptr, ptr %534, align 8, !tbaa !9
  %17440 = call i32 @s2n_signature_algorithm_recv(ptr noundef %17439, ptr noundef %536)
  %17441 = getelementptr inbounds %struct.s2n_result, ptr %539, i32 0, i32 0
  store i32 %17440, ptr %17441, align 4
  %17442 = getelementptr inbounds %struct.s2n_result, ptr %539, i32 0, i32 0
  %17443 = load i32, ptr %17442, align 4
  %17444 = call zeroext i1 @s2n_result_is_ok(i32 %17443)
  br i1 %17444, label %17498, label %17445

17445:                                            ; preds = %17436
  br label %17446

17446:                                            ; preds = %17445
  br label %17447

17447:                                            ; preds = %17446
  call void @llvm.lifetime.start.p0(i64 4, ptr %540) #10
  %17448 = call ptr @__errno_location() #11
  %17449 = load i32, ptr %17448, align 4, !tbaa !5
  store i32 %17449, ptr %540, align 4, !tbaa !5
  %17450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17451 = call i32 @s2n_print_stacktrace(ptr noundef %17450)
  %17452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17453 = trunc i8 %17452 to i1
  br i1 %17453, label %17454, label %17476

17454:                                            ; preds = %17447
  %17455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17456 = call i32 @fileno(ptr noundef %17455) #10
  %17457 = call i32 @isatty(i32 noundef %17456) #10
  %17458 = icmp ne i32 %17457, 0
  br i1 %17458, label %17459, label %17476

17459:                                            ; preds = %17454
  %17460 = load i32, ptr %540, align 4, !tbaa !5
  %17461 = call ptr @__errno_location() #11
  store i32 %17460, ptr %17461, align 4, !tbaa !5
  %17462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17463 = load i32, ptr @test_count, align 4, !tbaa !5
  %17464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17465 = load i32, ptr %17464, align 4, !tbaa !5
  %17466 = call ptr @s2n_strerror(i32 noundef %17465, ptr noundef @.str.4)
  %17467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17468 = load i32, ptr %17467, align 4, !tbaa !5
  %17469 = call ptr @s2n_strerror_debug(i32 noundef %17468, ptr noundef @.str.4)
  %17470 = call ptr @__errno_location() #11
  %17471 = load i32, ptr %17470, align 4, !tbaa !5
  %17472 = call ptr @strerror(i32 noundef %17471) #10
  %17473 = call ptr @__errno_location() #11
  %17474 = load i32, ptr %17473, align 4, !tbaa !5
  %17475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17462, ptr noundef @.str.2, i32 noundef %17463, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 1171, ptr noundef %17466, ptr noundef %17469, ptr noundef %17472, i32 noundef %17474) #10
  br label %17493

17476:                                            ; preds = %17454, %17447
  %17477 = load i32, ptr %540, align 4, !tbaa !5
  %17478 = call ptr @__errno_location() #11
  store i32 %17477, ptr %17478, align 4, !tbaa !5
  %17479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17480 = load i32, ptr @test_count, align 4, !tbaa !5
  %17481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17482 = load i32, ptr %17481, align 4, !tbaa !5
  %17483 = call ptr @s2n_strerror(i32 noundef %17482, ptr noundef @.str.4)
  %17484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17485 = load i32, ptr %17484, align 4, !tbaa !5
  %17486 = call ptr @s2n_strerror_debug(i32 noundef %17485, ptr noundef @.str.4)
  %17487 = call ptr @__errno_location() #11
  %17488 = load i32, ptr %17487, align 4, !tbaa !5
  %17489 = call ptr @strerror(i32 noundef %17488) #10
  %17490 = call ptr @__errno_location() #11
  %17491 = load i32, ptr %17490, align 4, !tbaa !5
  %17492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17479, ptr noundef @.str.5, i32 noundef %17480, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 1171, ptr noundef %17483, ptr noundef %17486, ptr noundef %17489, i32 noundef %17491) #10
  br label %17493

17493:                                            ; preds = %17476, %17459
  call void @llvm.lifetime.end.p0(i64 4, ptr %540) #10
  br label %17494

17494:                                            ; preds = %17493
  br label %17495

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

17496:                                            ; No predecessors!
  br label %17497

17497:                                            ; preds = %17496
  br label %17498

17498:                                            ; preds = %17497, %17436
  br label %17499

17499:                                            ; preds = %17498
  br label %17500

17500:                                            ; preds = %17499
  br label %17501

17501:                                            ; preds = %17500
  %17502 = load i32, ptr @test_count, align 4, !tbaa !5
  %17503 = add nsw i32 %17502, 1
  store i32 %17503, ptr @test_count, align 4, !tbaa !5
  %17504 = load ptr, ptr %534, align 8, !tbaa !9
  %17505 = getelementptr inbounds %struct.s2n_connection, ptr %17504, i32 0, i32 32
  %17506 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %17505, i32 0, i32 5
  %17507 = load ptr, ptr %17506, align 8, !tbaa !72
  %17508 = icmp eq ptr %17507, @s2n_rsa_pss_rsae_sha256
  br i1 %17508, label %17562, label %17509

17509:                                            ; preds = %17501
  br label %17510

17510:                                            ; preds = %17509
  br label %17511

17511:                                            ; preds = %17510
  call void @llvm.lifetime.start.p0(i64 4, ptr %541) #10
  %17512 = call ptr @__errno_location() #11
  %17513 = load i32, ptr %17512, align 4, !tbaa !5
  store i32 %17513, ptr %541, align 4, !tbaa !5
  %17514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17515 = call i32 @s2n_print_stacktrace(ptr noundef %17514)
  %17516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17517 = trunc i8 %17516 to i1
  br i1 %17517, label %17518, label %17540

17518:                                            ; preds = %17511
  %17519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17520 = call i32 @fileno(ptr noundef %17519) #10
  %17521 = call i32 @isatty(i32 noundef %17520) #10
  %17522 = icmp ne i32 %17521, 0
  br i1 %17522, label %17523, label %17540

17523:                                            ; preds = %17518
  %17524 = load i32, ptr %541, align 4, !tbaa !5
  %17525 = call ptr @__errno_location() #11
  store i32 %17524, ptr %17525, align 4, !tbaa !5
  %17526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17527 = load i32, ptr @test_count, align 4, !tbaa !5
  %17528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17529 = load i32, ptr %17528, align 4, !tbaa !5
  %17530 = call ptr @s2n_strerror(i32 noundef %17529, ptr noundef @.str.4)
  %17531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17532 = load i32, ptr %17531, align 4, !tbaa !5
  %17533 = call ptr @s2n_strerror_debug(i32 noundef %17532, ptr noundef @.str.4)
  %17534 = call ptr @__errno_location() #11
  %17535 = load i32, ptr %17534, align 4, !tbaa !5
  %17536 = call ptr @strerror(i32 noundef %17535) #10
  %17537 = call ptr @__errno_location() #11
  %17538 = load i32, ptr %17537, align 4, !tbaa !5
  %17539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17526, ptr noundef @.str.2, i32 noundef %17527, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 1172, ptr noundef %17530, ptr noundef %17533, ptr noundef %17536, i32 noundef %17538) #10
  br label %17557

17540:                                            ; preds = %17518, %17511
  %17541 = load i32, ptr %541, align 4, !tbaa !5
  %17542 = call ptr @__errno_location() #11
  store i32 %17541, ptr %17542, align 4, !tbaa !5
  %17543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17544 = load i32, ptr @test_count, align 4, !tbaa !5
  %17545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17546 = load i32, ptr %17545, align 4, !tbaa !5
  %17547 = call ptr @s2n_strerror(i32 noundef %17546, ptr noundef @.str.4)
  %17548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17549 = load i32, ptr %17548, align 4, !tbaa !5
  %17550 = call ptr @s2n_strerror_debug(i32 noundef %17549, ptr noundef @.str.4)
  %17551 = call ptr @__errno_location() #11
  %17552 = load i32, ptr %17551, align 4, !tbaa !5
  %17553 = call ptr @strerror(i32 noundef %17552) #10
  %17554 = call ptr @__errno_location() #11
  %17555 = load i32, ptr %17554, align 4, !tbaa !5
  %17556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17543, ptr noundef @.str.5, i32 noundef %17544, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 1172, ptr noundef %17547, ptr noundef %17550, ptr noundef %17553, i32 noundef %17555) #10
  br label %17557

17557:                                            ; preds = %17540, %17523
  call void @llvm.lifetime.end.p0(i64 4, ptr %541) #10
  br label %17558

17558:                                            ; preds = %17557
  br label %17559

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

17560:                                            ; No predecessors!
  br label %17561

17561:                                            ; preds = %17560
  br label %17562

17562:                                            ; preds = %17561, %17501
  br label %17563

17563:                                            ; preds = %17562
  br label %17564

17564:                                            ; preds = %17563
  br label %17767

17565:                                            ; preds = %17433
  br label %17566

17566:                                            ; preds = %17565
  br label %17567

17567:                                            ; preds = %17566
  br label %17568

17568:                                            ; preds = %17567
  %17569 = load i32, ptr @test_count, align 4, !tbaa !5
  %17570 = add nsw i32 %17569, 1
  store i32 %17570, ptr @test_count, align 4, !tbaa !5
  %17571 = load ptr, ptr %534, align 8, !tbaa !9
  %17572 = call i32 @s2n_signature_algorithm_recv(ptr noundef %17571, ptr noundef %536)
  %17573 = getelementptr inbounds %struct.s2n_result, ptr %542, i32 0, i32 0
  store i32 %17572, ptr %17573, align 4
  %17574 = getelementptr inbounds %struct.s2n_result, ptr %542, i32 0, i32 0
  %17575 = load i32, ptr %17574, align 4
  %17576 = call zeroext i1 @s2n_result_is_error(i32 %17575)
  br i1 %17576, label %17630, label %17577

17577:                                            ; preds = %17568
  br label %17578

17578:                                            ; preds = %17577
  br label %17579

17579:                                            ; preds = %17578
  call void @llvm.lifetime.start.p0(i64 4, ptr %543) #10
  %17580 = call ptr @__errno_location() #11
  %17581 = load i32, ptr %17580, align 4, !tbaa !5
  store i32 %17581, ptr %543, align 4, !tbaa !5
  %17582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17583 = call i32 @s2n_print_stacktrace(ptr noundef %17582)
  %17584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17585 = trunc i8 %17584 to i1
  br i1 %17585, label %17586, label %17608

17586:                                            ; preds = %17579
  %17587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17588 = call i32 @fileno(ptr noundef %17587) #10
  %17589 = call i32 @isatty(i32 noundef %17588) #10
  %17590 = icmp ne i32 %17589, 0
  br i1 %17590, label %17591, label %17608

17591:                                            ; preds = %17586
  %17592 = load i32, ptr %543, align 4, !tbaa !5
  %17593 = call ptr @__errno_location() #11
  store i32 %17592, ptr %17593, align 4, !tbaa !5
  %17594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17595 = load i32, ptr @test_count, align 4, !tbaa !5
  %17596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17597 = load i32, ptr %17596, align 4, !tbaa !5
  %17598 = call ptr @s2n_strerror(i32 noundef %17597, ptr noundef @.str.4)
  %17599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17600 = load i32, ptr %17599, align 4, !tbaa !5
  %17601 = call ptr @s2n_strerror_debug(i32 noundef %17600, ptr noundef @.str.4)
  %17602 = call ptr @__errno_location() #11
  %17603 = load i32, ptr %17602, align 4, !tbaa !5
  %17604 = call ptr @strerror(i32 noundef %17603) #10
  %17605 = call ptr @__errno_location() #11
  %17606 = load i32, ptr %17605, align 4, !tbaa !5
  %17607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17594, ptr noundef @.str.2, i32 noundef %17595, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 1175, ptr noundef %17598, ptr noundef %17601, ptr noundef %17604, i32 noundef %17606) #10
  br label %17625

17608:                                            ; preds = %17586, %17579
  %17609 = load i32, ptr %543, align 4, !tbaa !5
  %17610 = call ptr @__errno_location() #11
  store i32 %17609, ptr %17610, align 4, !tbaa !5
  %17611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17612 = load i32, ptr @test_count, align 4, !tbaa !5
  %17613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17614 = load i32, ptr %17613, align 4, !tbaa !5
  %17615 = call ptr @s2n_strerror(i32 noundef %17614, ptr noundef @.str.4)
  %17616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17617 = load i32, ptr %17616, align 4, !tbaa !5
  %17618 = call ptr @s2n_strerror_debug(i32 noundef %17617, ptr noundef @.str.4)
  %17619 = call ptr @__errno_location() #11
  %17620 = load i32, ptr %17619, align 4, !tbaa !5
  %17621 = call ptr @strerror(i32 noundef %17620) #10
  %17622 = call ptr @__errno_location() #11
  %17623 = load i32, ptr %17622, align 4, !tbaa !5
  %17624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17611, ptr noundef @.str.5, i32 noundef %17612, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 1175, ptr noundef %17615, ptr noundef %17618, ptr noundef %17621, i32 noundef %17623) #10
  br label %17625

17625:                                            ; preds = %17608, %17591
  call void @llvm.lifetime.end.p0(i64 4, ptr %543) #10
  br label %17626

17626:                                            ; preds = %17625
  br label %17627

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

17628:                                            ; No predecessors!
  br label %17629

17629:                                            ; preds = %17628
  br label %17630

17630:                                            ; preds = %17629, %17568
  br label %17631

17631:                                            ; preds = %17630
  br label %17632

17632:                                            ; preds = %17631
  br label %17633

17633:                                            ; preds = %17632
  %17634 = load i32, ptr @test_count, align 4, !tbaa !5
  %17635 = add nsw i32 %17634, 1
  store i32 %17635, ptr @test_count, align 4, !tbaa !5
  %17636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17637 = load i32, ptr %17636, align 4, !tbaa !5
  %17638 = icmp eq i32 %17637, 335544348
  br i1 %17638, label %17692, label %17639

17639:                                            ; preds = %17633
  br label %17640

17640:                                            ; preds = %17639
  br label %17641

17641:                                            ; preds = %17640
  call void @llvm.lifetime.start.p0(i64 4, ptr %544) #10
  %17642 = call ptr @__errno_location() #11
  %17643 = load i32, ptr %17642, align 4, !tbaa !5
  store i32 %17643, ptr %544, align 4, !tbaa !5
  %17644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17645 = call i32 @s2n_print_stacktrace(ptr noundef %17644)
  %17646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17647 = trunc i8 %17646 to i1
  br i1 %17647, label %17648, label %17670

17648:                                            ; preds = %17641
  %17649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17650 = call i32 @fileno(ptr noundef %17649) #10
  %17651 = call i32 @isatty(i32 noundef %17650) #10
  %17652 = icmp ne i32 %17651, 0
  br i1 %17652, label %17653, label %17670

17653:                                            ; preds = %17648
  %17654 = load i32, ptr %544, align 4, !tbaa !5
  %17655 = call ptr @__errno_location() #11
  store i32 %17654, ptr %17655, align 4, !tbaa !5
  %17656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17657 = load i32, ptr @test_count, align 4, !tbaa !5
  %17658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17659 = load i32, ptr %17658, align 4, !tbaa !5
  %17660 = call ptr @s2n_strerror(i32 noundef %17659, ptr noundef @.str.4)
  %17661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17662 = load i32, ptr %17661, align 4, !tbaa !5
  %17663 = call ptr @s2n_strerror_debug(i32 noundef %17662, ptr noundef @.str.4)
  %17664 = call ptr @__errno_location() #11
  %17665 = load i32, ptr %17664, align 4, !tbaa !5
  %17666 = call ptr @strerror(i32 noundef %17665) #10
  %17667 = call ptr @__errno_location() #11
  %17668 = load i32, ptr %17667, align 4, !tbaa !5
  %17669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17656, ptr noundef @.str.2, i32 noundef %17657, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 1175, ptr noundef %17660, ptr noundef %17663, ptr noundef %17666, i32 noundef %17668) #10
  br label %17687

17670:                                            ; preds = %17648, %17641
  %17671 = load i32, ptr %544, align 4, !tbaa !5
  %17672 = call ptr @__errno_location() #11
  store i32 %17671, ptr %17672, align 4, !tbaa !5
  %17673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17674 = load i32, ptr @test_count, align 4, !tbaa !5
  %17675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17676 = load i32, ptr %17675, align 4, !tbaa !5
  %17677 = call ptr @s2n_strerror(i32 noundef %17676, ptr noundef @.str.4)
  %17678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17679 = load i32, ptr %17678, align 4, !tbaa !5
  %17680 = call ptr @s2n_strerror_debug(i32 noundef %17679, ptr noundef @.str.4)
  %17681 = call ptr @__errno_location() #11
  %17682 = load i32, ptr %17681, align 4, !tbaa !5
  %17683 = call ptr @strerror(i32 noundef %17682) #10
  %17684 = call ptr @__errno_location() #11
  %17685 = load i32, ptr %17684, align 4, !tbaa !5
  %17686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17673, ptr noundef @.str.5, i32 noundef %17674, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 1175, ptr noundef %17677, ptr noundef %17680, ptr noundef %17683, i32 noundef %17685) #10
  br label %17687

17687:                                            ; preds = %17670, %17653
  call void @llvm.lifetime.end.p0(i64 4, ptr %544) #10
  br label %17688

17688:                                            ; preds = %17687
  br label %17689

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

17690:                                            ; No predecessors!
  br label %17691

17691:                                            ; preds = %17690
  br label %17692

17692:                                            ; preds = %17691, %17633
  br label %17693

17693:                                            ; preds = %17692
  br label %17694

17694:                                            ; preds = %17693
  br label %17695

17695:                                            ; preds = %17694
  %17696 = load i32, ptr @test_count, align 4, !tbaa !5
  %17697 = add nsw i32 %17696, 1
  store i32 %17697, ptr @test_count, align 4, !tbaa !5
  %17698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17699 = load i32, ptr %17698, align 4, !tbaa !5
  %17700 = call ptr @s2n_strerror_debug(i32 noundef %17699, ptr noundef @.str.4)
  %17701 = icmp eq ptr %17700, null
  br i1 %17701, label %17702, label %17755

17702:                                            ; preds = %17695
  br label %17703

17703:                                            ; preds = %17702
  br label %17704

17704:                                            ; preds = %17703
  call void @llvm.lifetime.start.p0(i64 4, ptr %545) #10
  %17705 = call ptr @__errno_location() #11
  %17706 = load i32, ptr %17705, align 4, !tbaa !5
  store i32 %17706, ptr %545, align 4, !tbaa !5
  %17707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17708 = call i32 @s2n_print_stacktrace(ptr noundef %17707)
  %17709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17710 = trunc i8 %17709 to i1
  br i1 %17710, label %17711, label %17733

17711:                                            ; preds = %17704
  %17712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17713 = call i32 @fileno(ptr noundef %17712) #10
  %17714 = call i32 @isatty(i32 noundef %17713) #10
  %17715 = icmp ne i32 %17714, 0
  br i1 %17715, label %17716, label %17733

17716:                                            ; preds = %17711
  %17717 = load i32, ptr %545, align 4, !tbaa !5
  %17718 = call ptr @__errno_location() #11
  store i32 %17717, ptr %17718, align 4, !tbaa !5
  %17719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17720 = load i32, ptr @test_count, align 4, !tbaa !5
  %17721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17722 = load i32, ptr %17721, align 4, !tbaa !5
  %17723 = call ptr @s2n_strerror(i32 noundef %17722, ptr noundef @.str.4)
  %17724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17725 = load i32, ptr %17724, align 4, !tbaa !5
  %17726 = call ptr @s2n_strerror_debug(i32 noundef %17725, ptr noundef @.str.4)
  %17727 = call ptr @__errno_location() #11
  %17728 = load i32, ptr %17727, align 4, !tbaa !5
  %17729 = call ptr @strerror(i32 noundef %17728) #10
  %17730 = call ptr @__errno_location() #11
  %17731 = load i32, ptr %17730, align 4, !tbaa !5
  %17732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17719, ptr noundef @.str.2, i32 noundef %17720, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1175, ptr noundef %17723, ptr noundef %17726, ptr noundef %17729, i32 noundef %17731) #10
  br label %17750

17733:                                            ; preds = %17711, %17704
  %17734 = load i32, ptr %545, align 4, !tbaa !5
  %17735 = call ptr @__errno_location() #11
  store i32 %17734, ptr %17735, align 4, !tbaa !5
  %17736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17737 = load i32, ptr @test_count, align 4, !tbaa !5
  %17738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17739 = load i32, ptr %17738, align 4, !tbaa !5
  %17740 = call ptr @s2n_strerror(i32 noundef %17739, ptr noundef @.str.4)
  %17741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17742 = load i32, ptr %17741, align 4, !tbaa !5
  %17743 = call ptr @s2n_strerror_debug(i32 noundef %17742, ptr noundef @.str.4)
  %17744 = call ptr @__errno_location() #11
  %17745 = load i32, ptr %17744, align 4, !tbaa !5
  %17746 = call ptr @strerror(i32 noundef %17745) #10
  %17747 = call ptr @__errno_location() #11
  %17748 = load i32, ptr %17747, align 4, !tbaa !5
  %17749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17736, ptr noundef @.str.5, i32 noundef %17737, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1175, ptr noundef %17740, ptr noundef %17743, ptr noundef %17746, i32 noundef %17748) #10
  br label %17750

17750:                                            ; preds = %17733, %17716
  call void @llvm.lifetime.end.p0(i64 4, ptr %545) #10
  br label %17751

17751:                                            ; preds = %17750
  br label %17752

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

17753:                                            ; No predecessors!
  br label %17754

17754:                                            ; preds = %17753
  br label %17755

17755:                                            ; preds = %17754, %17695
  br label %17756

17756:                                            ; preds = %17755
  br label %17757

17757:                                            ; preds = %17756
  br label %17758

17758:                                            ; preds = %17757
  br label %17759

17759:                                            ; preds = %17758
  br label %17760

17760:                                            ; preds = %17759
  %17761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %17761, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %17762 = call ptr @__errno_location() #11
  store i32 0, ptr %17762, align 4, !tbaa !5
  br label %17763

17763:                                            ; preds = %17760
  br label %17764

17764:                                            ; preds = %17763
  br label %17765

17765:                                            ; preds = %17764
  br label %17766

17766:                                            ; preds = %17765
  br label %17767

17767:                                            ; preds = %17766, %17564
  %17768 = call i32 @s2n_stuffer_free(ptr noundef %536)
  call void @llvm.lifetime.end.p0(i64 40, ptr %536) #10
  %17769 = call i32 @s2n_connection_ptr_free(ptr noundef %534)
  %17770 = getelementptr inbounds %struct.s2n_result, ptr %546, i32 0, i32 0
  store i32 %17769, ptr %17770, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %534) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %547) #10
  %17771 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %17771, ptr %547, align 8, !tbaa !9
  %17772 = load ptr, ptr %547, align 8, !tbaa !9
  %17773 = getelementptr inbounds %struct.s2n_connection, ptr %17772, i32 0, i32 27
  %17774 = load ptr, ptr %17773, align 8, !tbaa !66
  %17775 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %17774, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %17775, align 8, !tbaa !67
  %17776 = load ptr, ptr %547, align 8, !tbaa !9
  %17777 = getelementptr inbounds %struct.s2n_connection, ptr %17776, i32 0, i32 23
  store i8 34, ptr %17777, align 4, !tbaa !50
  br label %17778

17778:                                            ; preds = %17767
  %17779 = load i32, ptr @test_count, align 4, !tbaa !5
  %17780 = add nsw i32 %17779, 1
  store i32 %17780, ptr @test_count, align 4, !tbaa !5
  %17781 = load ptr, ptr %547, align 8, !tbaa !9
  %17782 = load ptr, ptr %518, align 8, !tbaa !9
  %17783 = call i32 @s2n_connection_set_config(ptr noundef %17781, ptr noundef %17782)
  %17784 = icmp eq i32 %17783, -1
  br i1 %17784, label %17785, label %17838

17785:                                            ; preds = %17778
  br label %17786

17786:                                            ; preds = %17785
  br label %17787

17787:                                            ; preds = %17786
  call void @llvm.lifetime.start.p0(i64 4, ptr %548) #10
  %17788 = call ptr @__errno_location() #11
  %17789 = load i32, ptr %17788, align 4, !tbaa !5
  store i32 %17789, ptr %548, align 4, !tbaa !5
  %17790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17791 = call i32 @s2n_print_stacktrace(ptr noundef %17790)
  %17792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17793 = trunc i8 %17792 to i1
  br i1 %17793, label %17794, label %17816

17794:                                            ; preds = %17787
  %17795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17796 = call i32 @fileno(ptr noundef %17795) #10
  %17797 = call i32 @isatty(i32 noundef %17796) #10
  %17798 = icmp ne i32 %17797, 0
  br i1 %17798, label %17799, label %17816

17799:                                            ; preds = %17794
  %17800 = load i32, ptr %548, align 4, !tbaa !5
  %17801 = call ptr @__errno_location() #11
  store i32 %17800, ptr %17801, align 4, !tbaa !5
  %17802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17803 = load i32, ptr @test_count, align 4, !tbaa !5
  %17804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17805 = load i32, ptr %17804, align 4, !tbaa !5
  %17806 = call ptr @s2n_strerror(i32 noundef %17805, ptr noundef @.str.4)
  %17807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17808 = load i32, ptr %17807, align 4, !tbaa !5
  %17809 = call ptr @s2n_strerror_debug(i32 noundef %17808, ptr noundef @.str.4)
  %17810 = call ptr @__errno_location() #11
  %17811 = load i32, ptr %17810, align 4, !tbaa !5
  %17812 = call ptr @strerror(i32 noundef %17811) #10
  %17813 = call ptr @__errno_location() #11
  %17814 = load i32, ptr %17813, align 4, !tbaa !5
  %17815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17802, ptr noundef @.str.2, i32 noundef %17803, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 1186, ptr noundef %17806, ptr noundef %17809, ptr noundef %17812, i32 noundef %17814) #10
  br label %17833

17816:                                            ; preds = %17794, %17787
  %17817 = load i32, ptr %548, align 4, !tbaa !5
  %17818 = call ptr @__errno_location() #11
  store i32 %17817, ptr %17818, align 4, !tbaa !5
  %17819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17820 = load i32, ptr @test_count, align 4, !tbaa !5
  %17821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17822 = load i32, ptr %17821, align 4, !tbaa !5
  %17823 = call ptr @s2n_strerror(i32 noundef %17822, ptr noundef @.str.4)
  %17824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17825 = load i32, ptr %17824, align 4, !tbaa !5
  %17826 = call ptr @s2n_strerror_debug(i32 noundef %17825, ptr noundef @.str.4)
  %17827 = call ptr @__errno_location() #11
  %17828 = load i32, ptr %17827, align 4, !tbaa !5
  %17829 = call ptr @strerror(i32 noundef %17828) #10
  %17830 = call ptr @__errno_location() #11
  %17831 = load i32, ptr %17830, align 4, !tbaa !5
  %17832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17819, ptr noundef @.str.5, i32 noundef %17820, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 1186, ptr noundef %17823, ptr noundef %17826, ptr noundef %17829, i32 noundef %17831) #10
  br label %17833

17833:                                            ; preds = %17816, %17799
  call void @llvm.lifetime.end.p0(i64 4, ptr %548) #10
  br label %17834

17834:                                            ; preds = %17833
  br label %17835

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

17836:                                            ; No predecessors!
  br label %17837

17837:                                            ; preds = %17836
  br label %17838

17838:                                            ; preds = %17837, %17778
  br label %17839

17839:                                            ; preds = %17838
  br label %17840

17840:                                            ; preds = %17839
  call void @llvm.lifetime.start.p0(i64 8, ptr %549) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %549, ptr align 8 @__const.main.schemes, i64 8, i1 false)
  br label %17841

17841:                                            ; preds = %17840
  %17842 = load i32, ptr @test_count, align 4, !tbaa !5
  %17843 = add nsw i32 %17842, 1
  store i32 %17843, ptr @test_count, align 4, !tbaa !5
  %17844 = load ptr, ptr %547, align 8, !tbaa !9
  %17845 = getelementptr inbounds %struct.s2n_connection, ptr %17844, i32 0, i32 32
  %17846 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %17845, i32 0, i32 4
  %17847 = getelementptr inbounds [1 x ptr], ptr %549, i64 0, i64 0
  %17848 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %17846, ptr noundef %17847, i64 noundef 1)
  %17849 = getelementptr inbounds %struct.s2n_result, ptr %550, i32 0, i32 0
  store i32 %17848, ptr %17849, align 4
  %17850 = getelementptr inbounds %struct.s2n_result, ptr %550, i32 0, i32 0
  %17851 = load i32, ptr %17850, align 4
  %17852 = call zeroext i1 @s2n_result_is_ok(i32 %17851)
  br i1 %17852, label %17906, label %17853

17853:                                            ; preds = %17841
  br label %17854

17854:                                            ; preds = %17853
  br label %17855

17855:                                            ; preds = %17854
  call void @llvm.lifetime.start.p0(i64 4, ptr %551) #10
  %17856 = call ptr @__errno_location() #11
  %17857 = load i32, ptr %17856, align 4, !tbaa !5
  store i32 %17857, ptr %551, align 4, !tbaa !5
  %17858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17859 = call i32 @s2n_print_stacktrace(ptr noundef %17858)
  %17860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17861 = trunc i8 %17860 to i1
  br i1 %17861, label %17862, label %17884

17862:                                            ; preds = %17855
  %17863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17864 = call i32 @fileno(ptr noundef %17863) #10
  %17865 = call i32 @isatty(i32 noundef %17864) #10
  %17866 = icmp ne i32 %17865, 0
  br i1 %17866, label %17867, label %17884

17867:                                            ; preds = %17862
  %17868 = load i32, ptr %551, align 4, !tbaa !5
  %17869 = call ptr @__errno_location() #11
  store i32 %17868, ptr %17869, align 4, !tbaa !5
  %17870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17871 = load i32, ptr @test_count, align 4, !tbaa !5
  %17872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17873 = load i32, ptr %17872, align 4, !tbaa !5
  %17874 = call ptr @s2n_strerror(i32 noundef %17873, ptr noundef @.str.4)
  %17875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17876 = load i32, ptr %17875, align 4, !tbaa !5
  %17877 = call ptr @s2n_strerror_debug(i32 noundef %17876, ptr noundef @.str.4)
  %17878 = call ptr @__errno_location() #11
  %17879 = load i32, ptr %17878, align 4, !tbaa !5
  %17880 = call ptr @strerror(i32 noundef %17879) #10
  %17881 = call ptr @__errno_location() #11
  %17882 = load i32, ptr %17881, align 4, !tbaa !5
  %17883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17870, ptr noundef @.str.2, i32 noundef %17871, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 1190, ptr noundef %17874, ptr noundef %17877, ptr noundef %17880, i32 noundef %17882) #10
  br label %17901

17884:                                            ; preds = %17862, %17855
  %17885 = load i32, ptr %551, align 4, !tbaa !5
  %17886 = call ptr @__errno_location() #11
  store i32 %17885, ptr %17886, align 4, !tbaa !5
  %17887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17888 = load i32, ptr @test_count, align 4, !tbaa !5
  %17889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17890 = load i32, ptr %17889, align 4, !tbaa !5
  %17891 = call ptr @s2n_strerror(i32 noundef %17890, ptr noundef @.str.4)
  %17892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17893 = load i32, ptr %17892, align 4, !tbaa !5
  %17894 = call ptr @s2n_strerror_debug(i32 noundef %17893, ptr noundef @.str.4)
  %17895 = call ptr @__errno_location() #11
  %17896 = load i32, ptr %17895, align 4, !tbaa !5
  %17897 = call ptr @strerror(i32 noundef %17896) #10
  %17898 = call ptr @__errno_location() #11
  %17899 = load i32, ptr %17898, align 4, !tbaa !5
  %17900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17887, ptr noundef @.str.5, i32 noundef %17888, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 1190, ptr noundef %17891, ptr noundef %17894, ptr noundef %17897, i32 noundef %17899) #10
  br label %17901

17901:                                            ; preds = %17884, %17867
  call void @llvm.lifetime.end.p0(i64 4, ptr %551) #10
  br label %17902

17902:                                            ; preds = %17901
  br label %17903

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

17904:                                            ; No predecessors!
  br label %17905

17905:                                            ; preds = %17904
  br label %17906

17906:                                            ; preds = %17905, %17841
  br label %17907

17907:                                            ; preds = %17906
  br label %17908

17908:                                            ; preds = %17907
  %17909 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported()
  br i1 %17909, label %17910, label %18040

17910:                                            ; preds = %17908
  br label %17911

17911:                                            ; preds = %17910
  %17912 = load i32, ptr @test_count, align 4, !tbaa !5
  %17913 = add nsw i32 %17912, 1
  store i32 %17913, ptr @test_count, align 4, !tbaa !5
  %17914 = load ptr, ptr %547, align 8, !tbaa !9
  %17915 = call i32 @s2n_signature_algorithm_select(ptr noundef %17914)
  %17916 = getelementptr inbounds %struct.s2n_result, ptr %552, i32 0, i32 0
  store i32 %17915, ptr %17916, align 4
  %17917 = getelementptr inbounds %struct.s2n_result, ptr %552, i32 0, i32 0
  %17918 = load i32, ptr %17917, align 4
  %17919 = call zeroext i1 @s2n_result_is_ok(i32 %17918)
  br i1 %17919, label %17973, label %17920

17920:                                            ; preds = %17911
  br label %17921

17921:                                            ; preds = %17920
  br label %17922

17922:                                            ; preds = %17921
  call void @llvm.lifetime.start.p0(i64 4, ptr %553) #10
  %17923 = call ptr @__errno_location() #11
  %17924 = load i32, ptr %17923, align 4, !tbaa !5
  store i32 %17924, ptr %553, align 4, !tbaa !5
  %17925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17926 = call i32 @s2n_print_stacktrace(ptr noundef %17925)
  %17927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17928 = trunc i8 %17927 to i1
  br i1 %17928, label %17929, label %17951

17929:                                            ; preds = %17922
  %17930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17931 = call i32 @fileno(ptr noundef %17930) #10
  %17932 = call i32 @isatty(i32 noundef %17931) #10
  %17933 = icmp ne i32 %17932, 0
  br i1 %17933, label %17934, label %17951

17934:                                            ; preds = %17929
  %17935 = load i32, ptr %553, align 4, !tbaa !5
  %17936 = call ptr @__errno_location() #11
  store i32 %17935, ptr %17936, align 4, !tbaa !5
  %17937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17938 = load i32, ptr @test_count, align 4, !tbaa !5
  %17939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17940 = load i32, ptr %17939, align 4, !tbaa !5
  %17941 = call ptr @s2n_strerror(i32 noundef %17940, ptr noundef @.str.4)
  %17942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17943 = load i32, ptr %17942, align 4, !tbaa !5
  %17944 = call ptr @s2n_strerror_debug(i32 noundef %17943, ptr noundef @.str.4)
  %17945 = call ptr @__errno_location() #11
  %17946 = load i32, ptr %17945, align 4, !tbaa !5
  %17947 = call ptr @strerror(i32 noundef %17946) #10
  %17948 = call ptr @__errno_location() #11
  %17949 = load i32, ptr %17948, align 4, !tbaa !5
  %17950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17937, ptr noundef @.str.2, i32 noundef %17938, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 1193, ptr noundef %17941, ptr noundef %17944, ptr noundef %17947, i32 noundef %17949) #10
  br label %17968

17951:                                            ; preds = %17929, %17922
  %17952 = load i32, ptr %553, align 4, !tbaa !5
  %17953 = call ptr @__errno_location() #11
  store i32 %17952, ptr %17953, align 4, !tbaa !5
  %17954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17955 = load i32, ptr @test_count, align 4, !tbaa !5
  %17956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17957 = load i32, ptr %17956, align 4, !tbaa !5
  %17958 = call ptr @s2n_strerror(i32 noundef %17957, ptr noundef @.str.4)
  %17959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17960 = load i32, ptr %17959, align 4, !tbaa !5
  %17961 = call ptr @s2n_strerror_debug(i32 noundef %17960, ptr noundef @.str.4)
  %17962 = call ptr @__errno_location() #11
  %17963 = load i32, ptr %17962, align 4, !tbaa !5
  %17964 = call ptr @strerror(i32 noundef %17963) #10
  %17965 = call ptr @__errno_location() #11
  %17966 = load i32, ptr %17965, align 4, !tbaa !5
  %17967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17954, ptr noundef @.str.5, i32 noundef %17955, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 1193, ptr noundef %17958, ptr noundef %17961, ptr noundef %17964, i32 noundef %17966) #10
  br label %17968

17968:                                            ; preds = %17951, %17934
  call void @llvm.lifetime.end.p0(i64 4, ptr %553) #10
  br label %17969

17969:                                            ; preds = %17968
  br label %17970

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

17971:                                            ; No predecessors!
  br label %17972

17972:                                            ; preds = %17971
  br label %17973

17973:                                            ; preds = %17972, %17911
  br label %17974

17974:                                            ; preds = %17973
  br label %17975

17975:                                            ; preds = %17974
  br label %17976

17976:                                            ; preds = %17975
  %17977 = load i32, ptr @test_count, align 4, !tbaa !5
  %17978 = add nsw i32 %17977, 1
  store i32 %17978, ptr @test_count, align 4, !tbaa !5
  %17979 = load ptr, ptr %547, align 8, !tbaa !9
  %17980 = getelementptr inbounds %struct.s2n_connection, ptr %17979, i32 0, i32 32
  %17981 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %17980, i32 0, i32 6
  %17982 = load ptr, ptr %17981, align 8, !tbaa !65
  %17983 = icmp eq ptr %17982, @s2n_rsa_pss_rsae_sha256
  br i1 %17983, label %18037, label %17984

17984:                                            ; preds = %17976
  br label %17985

17985:                                            ; preds = %17984
  br label %17986

17986:                                            ; preds = %17985
  call void @llvm.lifetime.start.p0(i64 4, ptr %554) #10
  %17987 = call ptr @__errno_location() #11
  %17988 = load i32, ptr %17987, align 4, !tbaa !5
  store i32 %17988, ptr %554, align 4, !tbaa !5
  %17989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17990 = call i32 @s2n_print_stacktrace(ptr noundef %17989)
  %17991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17992 = trunc i8 %17991 to i1
  br i1 %17992, label %17993, label %18015

17993:                                            ; preds = %17986
  %17994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17995 = call i32 @fileno(ptr noundef %17994) #10
  %17996 = call i32 @isatty(i32 noundef %17995) #10
  %17997 = icmp ne i32 %17996, 0
  br i1 %17997, label %17998, label %18015

17998:                                            ; preds = %17993
  %17999 = load i32, ptr %554, align 4, !tbaa !5
  %18000 = call ptr @__errno_location() #11
  store i32 %17999, ptr %18000, align 4, !tbaa !5
  %18001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18002 = load i32, ptr @test_count, align 4, !tbaa !5
  %18003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18004 = load i32, ptr %18003, align 4, !tbaa !5
  %18005 = call ptr @s2n_strerror(i32 noundef %18004, ptr noundef @.str.4)
  %18006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18007 = load i32, ptr %18006, align 4, !tbaa !5
  %18008 = call ptr @s2n_strerror_debug(i32 noundef %18007, ptr noundef @.str.4)
  %18009 = call ptr @__errno_location() #11
  %18010 = load i32, ptr %18009, align 4, !tbaa !5
  %18011 = call ptr @strerror(i32 noundef %18010) #10
  %18012 = call ptr @__errno_location() #11
  %18013 = load i32, ptr %18012, align 4, !tbaa !5
  %18014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18001, ptr noundef @.str.2, i32 noundef %18002, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 1195, ptr noundef %18005, ptr noundef %18008, ptr noundef %18011, i32 noundef %18013) #10
  br label %18032

18015:                                            ; preds = %17993, %17986
  %18016 = load i32, ptr %554, align 4, !tbaa !5
  %18017 = call ptr @__errno_location() #11
  store i32 %18016, ptr %18017, align 4, !tbaa !5
  %18018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18019 = load i32, ptr @test_count, align 4, !tbaa !5
  %18020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18021 = load i32, ptr %18020, align 4, !tbaa !5
  %18022 = call ptr @s2n_strerror(i32 noundef %18021, ptr noundef @.str.4)
  %18023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18024 = load i32, ptr %18023, align 4, !tbaa !5
  %18025 = call ptr @s2n_strerror_debug(i32 noundef %18024, ptr noundef @.str.4)
  %18026 = call ptr @__errno_location() #11
  %18027 = load i32, ptr %18026, align 4, !tbaa !5
  %18028 = call ptr @strerror(i32 noundef %18027) #10
  %18029 = call ptr @__errno_location() #11
  %18030 = load i32, ptr %18029, align 4, !tbaa !5
  %18031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18018, ptr noundef @.str.5, i32 noundef %18019, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 1195, ptr noundef %18022, ptr noundef %18025, ptr noundef %18028, i32 noundef %18030) #10
  br label %18032

18032:                                            ; preds = %18015, %17998
  call void @llvm.lifetime.end.p0(i64 4, ptr %554) #10
  br label %18033

18033:                                            ; preds = %18032
  br label %18034

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

18035:                                            ; No predecessors!
  br label %18036

18036:                                            ; preds = %18035
  br label %18037

18037:                                            ; preds = %18036, %17976
  br label %18038

18038:                                            ; preds = %18037
  br label %18039

18039:                                            ; preds = %18038
  br label %18242

18040:                                            ; preds = %17908
  br label %18041

18041:                                            ; preds = %18040
  br label %18042

18042:                                            ; preds = %18041
  br label %18043

18043:                                            ; preds = %18042
  %18044 = load i32, ptr @test_count, align 4, !tbaa !5
  %18045 = add nsw i32 %18044, 1
  store i32 %18045, ptr @test_count, align 4, !tbaa !5
  %18046 = load ptr, ptr %547, align 8, !tbaa !9
  %18047 = call i32 @s2n_signature_algorithm_select(ptr noundef %18046)
  %18048 = getelementptr inbounds %struct.s2n_result, ptr %555, i32 0, i32 0
  store i32 %18047, ptr %18048, align 4
  %18049 = getelementptr inbounds %struct.s2n_result, ptr %555, i32 0, i32 0
  %18050 = load i32, ptr %18049, align 4
  %18051 = call zeroext i1 @s2n_result_is_error(i32 %18050)
  br i1 %18051, label %18105, label %18052

18052:                                            ; preds = %18043
  br label %18053

18053:                                            ; preds = %18052
  br label %18054

18054:                                            ; preds = %18053
  call void @llvm.lifetime.start.p0(i64 4, ptr %556) #10
  %18055 = call ptr @__errno_location() #11
  %18056 = load i32, ptr %18055, align 4, !tbaa !5
  store i32 %18056, ptr %556, align 4, !tbaa !5
  %18057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18058 = call i32 @s2n_print_stacktrace(ptr noundef %18057)
  %18059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18060 = trunc i8 %18059 to i1
  br i1 %18060, label %18061, label %18083

18061:                                            ; preds = %18054
  %18062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18063 = call i32 @fileno(ptr noundef %18062) #10
  %18064 = call i32 @isatty(i32 noundef %18063) #10
  %18065 = icmp ne i32 %18064, 0
  br i1 %18065, label %18066, label %18083

18066:                                            ; preds = %18061
  %18067 = load i32, ptr %556, align 4, !tbaa !5
  %18068 = call ptr @__errno_location() #11
  store i32 %18067, ptr %18068, align 4, !tbaa !5
  %18069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18070 = load i32, ptr @test_count, align 4, !tbaa !5
  %18071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18072 = load i32, ptr %18071, align 4, !tbaa !5
  %18073 = call ptr @s2n_strerror(i32 noundef %18072, ptr noundef @.str.4)
  %18074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18075 = load i32, ptr %18074, align 4, !tbaa !5
  %18076 = call ptr @s2n_strerror_debug(i32 noundef %18075, ptr noundef @.str.4)
  %18077 = call ptr @__errno_location() #11
  %18078 = load i32, ptr %18077, align 4, !tbaa !5
  %18079 = call ptr @strerror(i32 noundef %18078) #10
  %18080 = call ptr @__errno_location() #11
  %18081 = load i32, ptr %18080, align 4, !tbaa !5
  %18082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18069, ptr noundef @.str.2, i32 noundef %18070, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 1199, ptr noundef %18073, ptr noundef %18076, ptr noundef %18079, i32 noundef %18081) #10
  br label %18100

18083:                                            ; preds = %18061, %18054
  %18084 = load i32, ptr %556, align 4, !tbaa !5
  %18085 = call ptr @__errno_location() #11
  store i32 %18084, ptr %18085, align 4, !tbaa !5
  %18086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18087 = load i32, ptr @test_count, align 4, !tbaa !5
  %18088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18089 = load i32, ptr %18088, align 4, !tbaa !5
  %18090 = call ptr @s2n_strerror(i32 noundef %18089, ptr noundef @.str.4)
  %18091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18092 = load i32, ptr %18091, align 4, !tbaa !5
  %18093 = call ptr @s2n_strerror_debug(i32 noundef %18092, ptr noundef @.str.4)
  %18094 = call ptr @__errno_location() #11
  %18095 = load i32, ptr %18094, align 4, !tbaa !5
  %18096 = call ptr @strerror(i32 noundef %18095) #10
  %18097 = call ptr @__errno_location() #11
  %18098 = load i32, ptr %18097, align 4, !tbaa !5
  %18099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18086, ptr noundef @.str.5, i32 noundef %18087, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 1199, ptr noundef %18090, ptr noundef %18093, ptr noundef %18096, i32 noundef %18098) #10
  br label %18100

18100:                                            ; preds = %18083, %18066
  call void @llvm.lifetime.end.p0(i64 4, ptr %556) #10
  br label %18101

18101:                                            ; preds = %18100
  br label %18102

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

18103:                                            ; No predecessors!
  br label %18104

18104:                                            ; preds = %18103
  br label %18105

18105:                                            ; preds = %18104, %18043
  br label %18106

18106:                                            ; preds = %18105
  br label %18107

18107:                                            ; preds = %18106
  br label %18108

18108:                                            ; preds = %18107
  %18109 = load i32, ptr @test_count, align 4, !tbaa !5
  %18110 = add nsw i32 %18109, 1
  store i32 %18110, ptr @test_count, align 4, !tbaa !5
  %18111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18112 = load i32, ptr %18111, align 4, !tbaa !5
  %18113 = icmp eq i32 %18112, 335544349
  br i1 %18113, label %18167, label %18114

18114:                                            ; preds = %18108
  br label %18115

18115:                                            ; preds = %18114
  br label %18116

18116:                                            ; preds = %18115
  call void @llvm.lifetime.start.p0(i64 4, ptr %557) #10
  %18117 = call ptr @__errno_location() #11
  %18118 = load i32, ptr %18117, align 4, !tbaa !5
  store i32 %18118, ptr %557, align 4, !tbaa !5
  %18119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18120 = call i32 @s2n_print_stacktrace(ptr noundef %18119)
  %18121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18122 = trunc i8 %18121 to i1
  br i1 %18122, label %18123, label %18145

18123:                                            ; preds = %18116
  %18124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18125 = call i32 @fileno(ptr noundef %18124) #10
  %18126 = call i32 @isatty(i32 noundef %18125) #10
  %18127 = icmp ne i32 %18126, 0
  br i1 %18127, label %18128, label %18145

18128:                                            ; preds = %18123
  %18129 = load i32, ptr %557, align 4, !tbaa !5
  %18130 = call ptr @__errno_location() #11
  store i32 %18129, ptr %18130, align 4, !tbaa !5
  %18131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18132 = load i32, ptr @test_count, align 4, !tbaa !5
  %18133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18134 = load i32, ptr %18133, align 4, !tbaa !5
  %18135 = call ptr @s2n_strerror(i32 noundef %18134, ptr noundef @.str.4)
  %18136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18137 = load i32, ptr %18136, align 4, !tbaa !5
  %18138 = call ptr @s2n_strerror_debug(i32 noundef %18137, ptr noundef @.str.4)
  %18139 = call ptr @__errno_location() #11
  %18140 = load i32, ptr %18139, align 4, !tbaa !5
  %18141 = call ptr @strerror(i32 noundef %18140) #10
  %18142 = call ptr @__errno_location() #11
  %18143 = load i32, ptr %18142, align 4, !tbaa !5
  %18144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18131, ptr noundef @.str.2, i32 noundef %18132, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 1199, ptr noundef %18135, ptr noundef %18138, ptr noundef %18141, i32 noundef %18143) #10
  br label %18162

18145:                                            ; preds = %18123, %18116
  %18146 = load i32, ptr %557, align 4, !tbaa !5
  %18147 = call ptr @__errno_location() #11
  store i32 %18146, ptr %18147, align 4, !tbaa !5
  %18148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18149 = load i32, ptr @test_count, align 4, !tbaa !5
  %18150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18151 = load i32, ptr %18150, align 4, !tbaa !5
  %18152 = call ptr @s2n_strerror(i32 noundef %18151, ptr noundef @.str.4)
  %18153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18154 = load i32, ptr %18153, align 4, !tbaa !5
  %18155 = call ptr @s2n_strerror_debug(i32 noundef %18154, ptr noundef @.str.4)
  %18156 = call ptr @__errno_location() #11
  %18157 = load i32, ptr %18156, align 4, !tbaa !5
  %18158 = call ptr @strerror(i32 noundef %18157) #10
  %18159 = call ptr @__errno_location() #11
  %18160 = load i32, ptr %18159, align 4, !tbaa !5
  %18161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18148, ptr noundef @.str.5, i32 noundef %18149, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 1199, ptr noundef %18152, ptr noundef %18155, ptr noundef %18158, i32 noundef %18160) #10
  br label %18162

18162:                                            ; preds = %18145, %18128
  call void @llvm.lifetime.end.p0(i64 4, ptr %557) #10
  br label %18163

18163:                                            ; preds = %18162
  br label %18164

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

18165:                                            ; No predecessors!
  br label %18166

18166:                                            ; preds = %18165
  br label %18167

18167:                                            ; preds = %18166, %18108
  br label %18168

18168:                                            ; preds = %18167
  br label %18169

18169:                                            ; preds = %18168
  br label %18170

18170:                                            ; preds = %18169
  %18171 = load i32, ptr @test_count, align 4, !tbaa !5
  %18172 = add nsw i32 %18171, 1
  store i32 %18172, ptr @test_count, align 4, !tbaa !5
  %18173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18174 = load i32, ptr %18173, align 4, !tbaa !5
  %18175 = call ptr @s2n_strerror_debug(i32 noundef %18174, ptr noundef @.str.4)
  %18176 = icmp eq ptr %18175, null
  br i1 %18176, label %18177, label %18230

18177:                                            ; preds = %18170
  br label %18178

18178:                                            ; preds = %18177
  br label %18179

18179:                                            ; preds = %18178
  call void @llvm.lifetime.start.p0(i64 4, ptr %558) #10
  %18180 = call ptr @__errno_location() #11
  %18181 = load i32, ptr %18180, align 4, !tbaa !5
  store i32 %18181, ptr %558, align 4, !tbaa !5
  %18182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18183 = call i32 @s2n_print_stacktrace(ptr noundef %18182)
  %18184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18185 = trunc i8 %18184 to i1
  br i1 %18185, label %18186, label %18208

18186:                                            ; preds = %18179
  %18187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18188 = call i32 @fileno(ptr noundef %18187) #10
  %18189 = call i32 @isatty(i32 noundef %18188) #10
  %18190 = icmp ne i32 %18189, 0
  br i1 %18190, label %18191, label %18208

18191:                                            ; preds = %18186
  %18192 = load i32, ptr %558, align 4, !tbaa !5
  %18193 = call ptr @__errno_location() #11
  store i32 %18192, ptr %18193, align 4, !tbaa !5
  %18194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18195 = load i32, ptr @test_count, align 4, !tbaa !5
  %18196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18197 = load i32, ptr %18196, align 4, !tbaa !5
  %18198 = call ptr @s2n_strerror(i32 noundef %18197, ptr noundef @.str.4)
  %18199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18200 = load i32, ptr %18199, align 4, !tbaa !5
  %18201 = call ptr @s2n_strerror_debug(i32 noundef %18200, ptr noundef @.str.4)
  %18202 = call ptr @__errno_location() #11
  %18203 = load i32, ptr %18202, align 4, !tbaa !5
  %18204 = call ptr @strerror(i32 noundef %18203) #10
  %18205 = call ptr @__errno_location() #11
  %18206 = load i32, ptr %18205, align 4, !tbaa !5
  %18207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18194, ptr noundef @.str.2, i32 noundef %18195, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1199, ptr noundef %18198, ptr noundef %18201, ptr noundef %18204, i32 noundef %18206) #10
  br label %18225

18208:                                            ; preds = %18186, %18179
  %18209 = load i32, ptr %558, align 4, !tbaa !5
  %18210 = call ptr @__errno_location() #11
  store i32 %18209, ptr %18210, align 4, !tbaa !5
  %18211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18212 = load i32, ptr @test_count, align 4, !tbaa !5
  %18213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18214 = load i32, ptr %18213, align 4, !tbaa !5
  %18215 = call ptr @s2n_strerror(i32 noundef %18214, ptr noundef @.str.4)
  %18216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18217 = load i32, ptr %18216, align 4, !tbaa !5
  %18218 = call ptr @s2n_strerror_debug(i32 noundef %18217, ptr noundef @.str.4)
  %18219 = call ptr @__errno_location() #11
  %18220 = load i32, ptr %18219, align 4, !tbaa !5
  %18221 = call ptr @strerror(i32 noundef %18220) #10
  %18222 = call ptr @__errno_location() #11
  %18223 = load i32, ptr %18222, align 4, !tbaa !5
  %18224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18211, ptr noundef @.str.5, i32 noundef %18212, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1199, ptr noundef %18215, ptr noundef %18218, ptr noundef %18221, i32 noundef %18223) #10
  br label %18225

18225:                                            ; preds = %18208, %18191
  call void @llvm.lifetime.end.p0(i64 4, ptr %558) #10
  br label %18226

18226:                                            ; preds = %18225
  br label %18227

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

18228:                                            ; No predecessors!
  br label %18229

18229:                                            ; preds = %18228
  br label %18230

18230:                                            ; preds = %18229, %18170
  br label %18231

18231:                                            ; preds = %18230
  br label %18232

18232:                                            ; preds = %18231
  br label %18233

18233:                                            ; preds = %18232
  br label %18234

18234:                                            ; preds = %18233
  br label %18235

18235:                                            ; preds = %18234
  %18236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %18236, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %18237 = call ptr @__errno_location() #11
  store i32 0, ptr %18237, align 4, !tbaa !5
  br label %18238

18238:                                            ; preds = %18235
  br label %18239

18239:                                            ; preds = %18238
  br label %18240

18240:                                            ; preds = %18239
  br label %18241

18241:                                            ; preds = %18240
  br label %18242

18242:                                            ; preds = %18241, %18039
  call void @llvm.lifetime.end.p0(i64 8, ptr %549) #10
  %18243 = call i32 @s2n_connection_ptr_free(ptr noundef %547)
  %18244 = getelementptr inbounds %struct.s2n_result, ptr %559, i32 0, i32 0
  store i32 %18243, ptr %18244, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %547) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %560) #10
  %18245 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %18245, ptr %560, align 8, !tbaa !9
  %18246 = load ptr, ptr %560, align 8, !tbaa !9
  %18247 = getelementptr inbounds %struct.s2n_connection, ptr %18246, i32 0, i32 27
  %18248 = load ptr, ptr %18247, align 8, !tbaa !66
  %18249 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %18248, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %18249, align 8, !tbaa !67
  %18250 = load ptr, ptr %560, align 8, !tbaa !9
  %18251 = getelementptr inbounds %struct.s2n_connection, ptr %18250, i32 0, i32 23
  store i8 34, ptr %18251, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr %561) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %561, ptr align 8 @__const.main.peer_schemes, i64 8, i1 false)
  br label %18252

18252:                                            ; preds = %18242
  %18253 = load i32, ptr @test_count, align 4, !tbaa !5
  %18254 = add nsw i32 %18253, 1
  store i32 %18254, ptr @test_count, align 4, !tbaa !5
  %18255 = load ptr, ptr %560, align 8, !tbaa !9
  %18256 = getelementptr inbounds %struct.s2n_connection, ptr %18255, i32 0, i32 32
  %18257 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %18256, i32 0, i32 4
  %18258 = getelementptr inbounds [1 x ptr], ptr %561, i64 0, i64 0
  %18259 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef %18257, ptr noundef %18258, i64 noundef 1)
  %18260 = getelementptr inbounds %struct.s2n_result, ptr %562, i32 0, i32 0
  store i32 %18259, ptr %18260, align 4
  %18261 = getelementptr inbounds %struct.s2n_result, ptr %562, i32 0, i32 0
  %18262 = load i32, ptr %18261, align 4
  %18263 = call zeroext i1 @s2n_result_is_ok(i32 %18262)
  br i1 %18263, label %18317, label %18264

18264:                                            ; preds = %18252
  br label %18265

18265:                                            ; preds = %18264
  br label %18266

18266:                                            ; preds = %18265
  call void @llvm.lifetime.start.p0(i64 4, ptr %563) #10
  %18267 = call ptr @__errno_location() #11
  %18268 = load i32, ptr %18267, align 4, !tbaa !5
  store i32 %18268, ptr %563, align 4, !tbaa !5
  %18269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18270 = call i32 @s2n_print_stacktrace(ptr noundef %18269)
  %18271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18272 = trunc i8 %18271 to i1
  br i1 %18272, label %18273, label %18295

18273:                                            ; preds = %18266
  %18274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18275 = call i32 @fileno(ptr noundef %18274) #10
  %18276 = call i32 @isatty(i32 noundef %18275) #10
  %18277 = icmp ne i32 %18276, 0
  br i1 %18277, label %18278, label %18295

18278:                                            ; preds = %18273
  %18279 = load i32, ptr %563, align 4, !tbaa !5
  %18280 = call ptr @__errno_location() #11
  store i32 %18279, ptr %18280, align 4, !tbaa !5
  %18281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18282 = load i32, ptr @test_count, align 4, !tbaa !5
  %18283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18284 = load i32, ptr %18283, align 4, !tbaa !5
  %18285 = call ptr @s2n_strerror(i32 noundef %18284, ptr noundef @.str.4)
  %18286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18287 = load i32, ptr %18286, align 4, !tbaa !5
  %18288 = call ptr @s2n_strerror_debug(i32 noundef %18287, ptr noundef @.str.4)
  %18289 = call ptr @__errno_location() #11
  %18290 = load i32, ptr %18289, align 4, !tbaa !5
  %18291 = call ptr @strerror(i32 noundef %18290) #10
  %18292 = call ptr @__errno_location() #11
  %18293 = load i32, ptr %18292, align 4, !tbaa !5
  %18294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18281, ptr noundef @.str.2, i32 noundef %18282, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 1215, ptr noundef %18285, ptr noundef %18288, ptr noundef %18291, i32 noundef %18293) #10
  br label %18312

18295:                                            ; preds = %18273, %18266
  %18296 = load i32, ptr %563, align 4, !tbaa !5
  %18297 = call ptr @__errno_location() #11
  store i32 %18296, ptr %18297, align 4, !tbaa !5
  %18298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18299 = load i32, ptr @test_count, align 4, !tbaa !5
  %18300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18301 = load i32, ptr %18300, align 4, !tbaa !5
  %18302 = call ptr @s2n_strerror(i32 noundef %18301, ptr noundef @.str.4)
  %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_debug(i32 noundef %18304, ptr noundef @.str.4)
  %18306 = call ptr @__errno_location() #11
  %18307 = load i32, ptr %18306, align 4, !tbaa !5
  %18308 = call ptr @strerror(i32 noundef %18307) #10
  %18309 = call ptr @__errno_location() #11
  %18310 = load i32, ptr %18309, align 4, !tbaa !5
  %18311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18298, ptr noundef @.str.5, i32 noundef %18299, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 1215, ptr noundef %18302, ptr noundef %18305, ptr noundef %18308, i32 noundef %18310) #10
  br label %18312

18312:                                            ; preds = %18295, %18278
  call void @llvm.lifetime.end.p0(i64 4, ptr %563) #10
  br label %18313

18313:                                            ; preds = %18312
  br label %18314

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

18315:                                            ; No predecessors!
  br label %18316

18316:                                            ; preds = %18315
  br label %18317

18317:                                            ; preds = %18316, %18252
  br label %18318

18318:                                            ; preds = %18317
  br label %18319

18319:                                            ; preds = %18318
  call void @llvm.lifetime.start.p0(i64 24, ptr %564) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %564, ptr align 16 @__const.main.local_schemes, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr %565) #10
  call void @llvm.memset.p0.i64(ptr align 8 %565, i8 0, i64 80, i1 false)
  br label %18320

18320:                                            ; preds = %18319
  %18321 = load i32, ptr @test_count, align 4, !tbaa !5
  %18322 = add nsw i32 %18321, 1
  store i32 %18322, ptr @test_count, align 4, !tbaa !5
  %18323 = load ptr, ptr %560, align 8, !tbaa !9
  %18324 = getelementptr inbounds [3 x ptr], ptr %564, i64 0, i64 0
  %18325 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %18323, ptr noundef %565, ptr noundef %18324, i64 noundef 3)
  %18326 = getelementptr inbounds %struct.s2n_result, ptr %566, i32 0, i32 0
  store i32 %18325, ptr %18326, align 4
  %18327 = getelementptr inbounds %struct.s2n_result, ptr %566, i32 0, i32 0
  %18328 = load i32, ptr %18327, align 4
  %18329 = call zeroext i1 @s2n_result_is_ok(i32 %18328)
  br i1 %18329, label %18383, label %18330

18330:                                            ; preds = %18320
  br label %18331

18331:                                            ; preds = %18330
  br label %18332

18332:                                            ; preds = %18331
  call void @llvm.lifetime.start.p0(i64 4, ptr %567) #10
  %18333 = call ptr @__errno_location() #11
  %18334 = load i32, ptr %18333, align 4, !tbaa !5
  store i32 %18334, ptr %567, align 4, !tbaa !5
  %18335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18336 = call i32 @s2n_print_stacktrace(ptr noundef %18335)
  %18337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18338 = trunc i8 %18337 to i1
  br i1 %18338, label %18339, label %18361

18339:                                            ; preds = %18332
  %18340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18341 = call i32 @fileno(ptr noundef %18340) #10
  %18342 = call i32 @isatty(i32 noundef %18341) #10
  %18343 = icmp ne i32 %18342, 0
  br i1 %18343, label %18344, label %18361

18344:                                            ; preds = %18339
  %18345 = load i32, ptr %567, align 4, !tbaa !5
  %18346 = call ptr @__errno_location() #11
  store i32 %18345, ptr %18346, align 4, !tbaa !5
  %18347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18348 = load i32, ptr @test_count, align 4, !tbaa !5
  %18349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18350 = load i32, ptr %18349, align 4, !tbaa !5
  %18351 = call ptr @s2n_strerror(i32 noundef %18350, ptr noundef @.str.4)
  %18352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18353 = load i32, ptr %18352, align 4, !tbaa !5
  %18354 = call ptr @s2n_strerror_debug(i32 noundef %18353, ptr noundef @.str.4)
  %18355 = call ptr @__errno_location() #11
  %18356 = load i32, ptr %18355, align 4, !tbaa !5
  %18357 = call ptr @strerror(i32 noundef %18356) #10
  %18358 = call ptr @__errno_location() #11
  %18359 = load i32, ptr %18358, align 4, !tbaa !5
  %18360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18347, ptr noundef @.str.2, i32 noundef %18348, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 1225, ptr noundef %18351, ptr noundef %18354, ptr noundef %18357, i32 noundef %18359) #10
  br label %18378

18361:                                            ; preds = %18339, %18332
  %18362 = load i32, ptr %567, align 4, !tbaa !5
  %18363 = call ptr @__errno_location() #11
  store i32 %18362, ptr %18363, align 4, !tbaa !5
  %18364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18365 = load i32, ptr @test_count, align 4, !tbaa !5
  %18366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18367 = load i32, ptr %18366, align 4, !tbaa !5
  %18368 = call ptr @s2n_strerror(i32 noundef %18367, ptr noundef @.str.4)
  %18369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18370 = load i32, ptr %18369, align 4, !tbaa !5
  %18371 = call ptr @s2n_strerror_debug(i32 noundef %18370, ptr noundef @.str.4)
  %18372 = call ptr @__errno_location() #11
  %18373 = load i32, ptr %18372, align 4, !tbaa !5
  %18374 = call ptr @strerror(i32 noundef %18373) #10
  %18375 = call ptr @__errno_location() #11
  %18376 = load i32, ptr %18375, align 4, !tbaa !5
  %18377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18364, ptr noundef @.str.5, i32 noundef %18365, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 1225, ptr noundef %18368, ptr noundef %18371, ptr noundef %18374, i32 noundef %18376) #10
  br label %18378

18378:                                            ; preds = %18361, %18344
  call void @llvm.lifetime.end.p0(i64 4, ptr %567) #10
  br label %18379

18379:                                            ; preds = %18378
  br label %18380

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

18381:                                            ; No predecessors!
  br label %18382

18382:                                            ; preds = %18381
  br label %18383

18383:                                            ; preds = %18382, %18320
  br label %18384

18384:                                            ; preds = %18383
  br label %18385

18385:                                            ; preds = %18384
  br label %18386

18386:                                            ; preds = %18385
  br label %18387

18387:                                            ; preds = %18386
  br label %18388

18388:                                            ; preds = %18387
  %18389 = load i32, ptr @test_count, align 4, !tbaa !5
  %18390 = add nsw i32 %18389, 1
  store i32 %18390, ptr @test_count, align 4, !tbaa !5
  %18391 = load ptr, ptr %560, align 8, !tbaa !9
  %18392 = call i32 @s2n_signature_algorithm_select(ptr noundef %18391)
  %18393 = getelementptr inbounds %struct.s2n_result, ptr %568, i32 0, i32 0
  store i32 %18392, ptr %18393, align 4
  %18394 = getelementptr inbounds %struct.s2n_result, ptr %568, i32 0, i32 0
  %18395 = load i32, ptr %18394, align 4
  %18396 = call zeroext i1 @s2n_result_is_error(i32 %18395)
  br i1 %18396, label %18450, label %18397

18397:                                            ; preds = %18388
  br label %18398

18398:                                            ; preds = %18397
  br label %18399

18399:                                            ; preds = %18398
  call void @llvm.lifetime.start.p0(i64 4, ptr %569) #10
  %18400 = call ptr @__errno_location() #11
  %18401 = load i32, ptr %18400, align 4, !tbaa !5
  store i32 %18401, ptr %569, align 4, !tbaa !5
  %18402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18403 = call i32 @s2n_print_stacktrace(ptr noundef %18402)
  %18404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18405 = trunc i8 %18404 to i1
  br i1 %18405, label %18406, label %18428

18406:                                            ; preds = %18399
  %18407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18408 = call i32 @fileno(ptr noundef %18407) #10
  %18409 = call i32 @isatty(i32 noundef %18408) #10
  %18410 = icmp ne i32 %18409, 0
  br i1 %18410, label %18411, label %18428

18411:                                            ; preds = %18406
  %18412 = load i32, ptr %569, align 4, !tbaa !5
  %18413 = call ptr @__errno_location() #11
  store i32 %18412, ptr %18413, align 4, !tbaa !5
  %18414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18415 = load i32, ptr @test_count, align 4, !tbaa !5
  %18416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18417 = load i32, ptr %18416, align 4, !tbaa !5
  %18418 = call ptr @s2n_strerror(i32 noundef %18417, ptr noundef @.str.4)
  %18419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18420 = load i32, ptr %18419, align 4, !tbaa !5
  %18421 = call ptr @s2n_strerror_debug(i32 noundef %18420, ptr noundef @.str.4)
  %18422 = call ptr @__errno_location() #11
  %18423 = load i32, ptr %18422, align 4, !tbaa !5
  %18424 = call ptr @strerror(i32 noundef %18423) #10
  %18425 = call ptr @__errno_location() #11
  %18426 = load i32, ptr %18425, align 4, !tbaa !5
  %18427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18414, ptr noundef @.str.2, i32 noundef %18415, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 1230, ptr noundef %18418, ptr noundef %18421, ptr noundef %18424, i32 noundef %18426) #10
  br label %18445

18428:                                            ; preds = %18406, %18399
  %18429 = load i32, ptr %569, align 4, !tbaa !5
  %18430 = call ptr @__errno_location() #11
  store i32 %18429, ptr %18430, align 4, !tbaa !5
  %18431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18432 = load i32, ptr @test_count, align 4, !tbaa !5
  %18433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18434 = load i32, ptr %18433, align 4, !tbaa !5
  %18435 = call ptr @s2n_strerror(i32 noundef %18434, ptr noundef @.str.4)
  %18436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18437 = load i32, ptr %18436, align 4, !tbaa !5
  %18438 = call ptr @s2n_strerror_debug(i32 noundef %18437, ptr noundef @.str.4)
  %18439 = call ptr @__errno_location() #11
  %18440 = load i32, ptr %18439, align 4, !tbaa !5
  %18441 = call ptr @strerror(i32 noundef %18440) #10
  %18442 = call ptr @__errno_location() #11
  %18443 = load i32, ptr %18442, align 4, !tbaa !5
  %18444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18431, ptr noundef @.str.5, i32 noundef %18432, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 1230, ptr noundef %18435, ptr noundef %18438, ptr noundef %18441, i32 noundef %18443) #10
  br label %18445

18445:                                            ; preds = %18428, %18411
  call void @llvm.lifetime.end.p0(i64 4, ptr %569) #10
  br label %18446

18446:                                            ; preds = %18445
  br label %18447

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

18448:                                            ; No predecessors!
  br label %18449

18449:                                            ; preds = %18448
  br label %18450

18450:                                            ; preds = %18449, %18388
  br label %18451

18451:                                            ; preds = %18450
  br label %18452

18452:                                            ; preds = %18451
  br label %18453

18453:                                            ; preds = %18452
  %18454 = load i32, ptr @test_count, align 4, !tbaa !5
  %18455 = add nsw i32 %18454, 1
  store i32 %18455, ptr @test_count, align 4, !tbaa !5
  %18456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18457 = load i32, ptr %18456, align 4, !tbaa !5
  %18458 = icmp eq i32 %18457, 335544349
  br i1 %18458, label %18512, label %18459

18459:                                            ; preds = %18453
  br label %18460

18460:                                            ; preds = %18459
  br label %18461

18461:                                            ; preds = %18460
  call void @llvm.lifetime.start.p0(i64 4, ptr %570) #10
  %18462 = call ptr @__errno_location() #11
  %18463 = load i32, ptr %18462, align 4, !tbaa !5
  store i32 %18463, ptr %570, align 4, !tbaa !5
  %18464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18465 = call i32 @s2n_print_stacktrace(ptr noundef %18464)
  %18466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18467 = trunc i8 %18466 to i1
  br i1 %18467, label %18468, label %18490

18468:                                            ; preds = %18461
  %18469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18470 = call i32 @fileno(ptr noundef %18469) #10
  %18471 = call i32 @isatty(i32 noundef %18470) #10
  %18472 = icmp ne i32 %18471, 0
  br i1 %18472, label %18473, label %18490

18473:                                            ; preds = %18468
  %18474 = load i32, ptr %570, align 4, !tbaa !5
  %18475 = call ptr @__errno_location() #11
  store i32 %18474, ptr %18475, align 4, !tbaa !5
  %18476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18477 = load i32, ptr @test_count, align 4, !tbaa !5
  %18478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18479 = load i32, ptr %18478, align 4, !tbaa !5
  %18480 = call ptr @s2n_strerror(i32 noundef %18479, ptr noundef @.str.4)
  %18481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18482 = load i32, ptr %18481, align 4, !tbaa !5
  %18483 = call ptr @s2n_strerror_debug(i32 noundef %18482, ptr noundef @.str.4)
  %18484 = call ptr @__errno_location() #11
  %18485 = load i32, ptr %18484, align 4, !tbaa !5
  %18486 = call ptr @strerror(i32 noundef %18485) #10
  %18487 = call ptr @__errno_location() #11
  %18488 = load i32, ptr %18487, align 4, !tbaa !5
  %18489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18476, ptr noundef @.str.2, i32 noundef %18477, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 1230, ptr noundef %18480, ptr noundef %18483, ptr noundef %18486, i32 noundef %18488) #10
  br label %18507

18490:                                            ; preds = %18468, %18461
  %18491 = load i32, ptr %570, align 4, !tbaa !5
  %18492 = call ptr @__errno_location() #11
  store i32 %18491, ptr %18492, align 4, !tbaa !5
  %18493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18494 = load i32, ptr @test_count, align 4, !tbaa !5
  %18495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18496 = load i32, ptr %18495, align 4, !tbaa !5
  %18497 = call ptr @s2n_strerror(i32 noundef %18496, ptr noundef @.str.4)
  %18498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18499 = load i32, ptr %18498, align 4, !tbaa !5
  %18500 = call ptr @s2n_strerror_debug(i32 noundef %18499, ptr noundef @.str.4)
  %18501 = call ptr @__errno_location() #11
  %18502 = load i32, ptr %18501, align 4, !tbaa !5
  %18503 = call ptr @strerror(i32 noundef %18502) #10
  %18504 = call ptr @__errno_location() #11
  %18505 = load i32, ptr %18504, align 4, !tbaa !5
  %18506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18493, ptr noundef @.str.5, i32 noundef %18494, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 1230, ptr noundef %18497, ptr noundef %18500, ptr noundef %18503, i32 noundef %18505) #10
  br label %18507

18507:                                            ; preds = %18490, %18473
  call void @llvm.lifetime.end.p0(i64 4, ptr %570) #10
  br label %18508

18508:                                            ; preds = %18507
  br label %18509

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

18510:                                            ; No predecessors!
  br label %18511

18511:                                            ; preds = %18510
  br label %18512

18512:                                            ; preds = %18511, %18453
  br label %18513

18513:                                            ; preds = %18512
  br label %18514

18514:                                            ; preds = %18513
  br label %18515

18515:                                            ; preds = %18514
  %18516 = load i32, ptr @test_count, align 4, !tbaa !5
  %18517 = add nsw i32 %18516, 1
  store i32 %18517, ptr @test_count, align 4, !tbaa !5
  %18518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18519 = load i32, ptr %18518, align 4, !tbaa !5
  %18520 = call ptr @s2n_strerror_debug(i32 noundef %18519, ptr noundef @.str.4)
  %18521 = icmp eq ptr %18520, null
  br i1 %18521, label %18522, label %18575

18522:                                            ; preds = %18515
  br label %18523

18523:                                            ; preds = %18522
  br label %18524

18524:                                            ; preds = %18523
  call void @llvm.lifetime.start.p0(i64 4, ptr %571) #10
  %18525 = call ptr @__errno_location() #11
  %18526 = load i32, ptr %18525, align 4, !tbaa !5
  store i32 %18526, ptr %571, align 4, !tbaa !5
  %18527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18528 = call i32 @s2n_print_stacktrace(ptr noundef %18527)
  %18529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18530 = trunc i8 %18529 to i1
  br i1 %18530, label %18531, label %18553

18531:                                            ; preds = %18524
  %18532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18533 = call i32 @fileno(ptr noundef %18532) #10
  %18534 = call i32 @isatty(i32 noundef %18533) #10
  %18535 = icmp ne i32 %18534, 0
  br i1 %18535, label %18536, label %18553

18536:                                            ; preds = %18531
  %18537 = load i32, ptr %571, align 4, !tbaa !5
  %18538 = call ptr @__errno_location() #11
  store i32 %18537, ptr %18538, align 4, !tbaa !5
  %18539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18540 = load i32, ptr @test_count, align 4, !tbaa !5
  %18541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18542 = load i32, ptr %18541, align 4, !tbaa !5
  %18543 = call ptr @s2n_strerror(i32 noundef %18542, ptr noundef @.str.4)
  %18544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18545 = load i32, ptr %18544, align 4, !tbaa !5
  %18546 = call ptr @s2n_strerror_debug(i32 noundef %18545, ptr noundef @.str.4)
  %18547 = call ptr @__errno_location() #11
  %18548 = load i32, ptr %18547, align 4, !tbaa !5
  %18549 = call ptr @strerror(i32 noundef %18548) #10
  %18550 = call ptr @__errno_location() #11
  %18551 = load i32, ptr %18550, align 4, !tbaa !5
  %18552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18539, ptr noundef @.str.2, i32 noundef %18540, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1230, ptr noundef %18543, ptr noundef %18546, ptr noundef %18549, i32 noundef %18551) #10
  br label %18570

18553:                                            ; preds = %18531, %18524
  %18554 = load i32, ptr %571, align 4, !tbaa !5
  %18555 = call ptr @__errno_location() #11
  store i32 %18554, ptr %18555, align 4, !tbaa !5
  %18556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18557 = load i32, ptr @test_count, align 4, !tbaa !5
  %18558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18559 = load i32, ptr %18558, align 4, !tbaa !5
  %18560 = call ptr @s2n_strerror(i32 noundef %18559, ptr noundef @.str.4)
  %18561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18562 = load i32, ptr %18561, align 4, !tbaa !5
  %18563 = call ptr @s2n_strerror_debug(i32 noundef %18562, ptr noundef @.str.4)
  %18564 = call ptr @__errno_location() #11
  %18565 = load i32, ptr %18564, align 4, !tbaa !5
  %18566 = call ptr @strerror(i32 noundef %18565) #10
  %18567 = call ptr @__errno_location() #11
  %18568 = load i32, ptr %18567, align 4, !tbaa !5
  %18569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18556, ptr noundef @.str.5, i32 noundef %18557, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1230, ptr noundef %18560, ptr noundef %18563, ptr noundef %18566, i32 noundef %18568) #10
  br label %18570

18570:                                            ; preds = %18553, %18536
  call void @llvm.lifetime.end.p0(i64 4, ptr %571) #10
  br label %18571

18571:                                            ; preds = %18570
  br label %18572

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

18573:                                            ; No predecessors!
  br label %18574

18574:                                            ; preds = %18573
  br label %18575

18575:                                            ; preds = %18574, %18515
  br label %18576

18576:                                            ; preds = %18575
  br label %18577

18577:                                            ; preds = %18576
  br label %18578

18578:                                            ; preds = %18577
  br label %18579

18579:                                            ; preds = %18578
  br label %18580

18580:                                            ; preds = %18579
  %18581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %18581, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %18582 = call ptr @__errno_location() #11
  store i32 0, ptr %18582, align 4, !tbaa !5
  br label %18583

18583:                                            ; preds = %18580
  br label %18584

18584:                                            ; preds = %18583
  br label %18585

18585:                                            ; preds = %18584
  br label %18586

18586:                                            ; preds = %18585
  br label %18587

18587:                                            ; preds = %18586
  %18588 = load i32, ptr @test_count, align 4, !tbaa !5
  %18589 = add nsw i32 %18588, 1
  store i32 %18589, ptr @test_count, align 4, !tbaa !5
  %18590 = load ptr, ptr %560, align 8, !tbaa !9
  %18591 = load ptr, ptr %518, align 8, !tbaa !9
  %18592 = call i32 @s2n_connection_set_config(ptr noundef %18590, ptr noundef %18591)
  %18593 = icmp eq i32 %18592, -1
  br i1 %18593, label %18594, label %18647

18594:                                            ; preds = %18587
  br label %18595

18595:                                            ; preds = %18594
  br label %18596

18596:                                            ; preds = %18595
  call void @llvm.lifetime.start.p0(i64 4, ptr %572) #10
  %18597 = call ptr @__errno_location() #11
  %18598 = load i32, ptr %18597, align 4, !tbaa !5
  store i32 %18598, ptr %572, align 4, !tbaa !5
  %18599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18600 = call i32 @s2n_print_stacktrace(ptr noundef %18599)
  %18601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18602 = trunc i8 %18601 to i1
  br i1 %18602, label %18603, label %18625

18603:                                            ; preds = %18596
  %18604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18605 = call i32 @fileno(ptr noundef %18604) #10
  %18606 = call i32 @isatty(i32 noundef %18605) #10
  %18607 = icmp ne i32 %18606, 0
  br i1 %18607, label %18608, label %18625

18608:                                            ; preds = %18603
  %18609 = load i32, ptr %572, align 4, !tbaa !5
  %18610 = call ptr @__errno_location() #11
  store i32 %18609, ptr %18610, align 4, !tbaa !5
  %18611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18612 = load i32, ptr @test_count, align 4, !tbaa !5
  %18613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18614 = load i32, ptr %18613, align 4, !tbaa !5
  %18615 = call ptr @s2n_strerror(i32 noundef %18614, ptr noundef @.str.4)
  %18616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18617 = load i32, ptr %18616, align 4, !tbaa !5
  %18618 = call ptr @s2n_strerror_debug(i32 noundef %18617, ptr noundef @.str.4)
  %18619 = call ptr @__errno_location() #11
  %18620 = load i32, ptr %18619, align 4, !tbaa !5
  %18621 = call ptr @strerror(i32 noundef %18620) #10
  %18622 = call ptr @__errno_location() #11
  %18623 = load i32, ptr %18622, align 4, !tbaa !5
  %18624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18611, ptr noundef @.str.2, i32 noundef %18612, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 1233, ptr noundef %18615, ptr noundef %18618, ptr noundef %18621, i32 noundef %18623) #10
  br label %18642

18625:                                            ; preds = %18603, %18596
  %18626 = load i32, ptr %572, align 4, !tbaa !5
  %18627 = call ptr @__errno_location() #11
  store i32 %18626, ptr %18627, align 4, !tbaa !5
  %18628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18629 = load i32, ptr @test_count, align 4, !tbaa !5
  %18630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18631 = load i32, ptr %18630, align 4, !tbaa !5
  %18632 = call ptr @s2n_strerror(i32 noundef %18631, ptr noundef @.str.4)
  %18633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18634 = load i32, ptr %18633, align 4, !tbaa !5
  %18635 = call ptr @s2n_strerror_debug(i32 noundef %18634, ptr noundef @.str.4)
  %18636 = call ptr @__errno_location() #11
  %18637 = load i32, ptr %18636, align 4, !tbaa !5
  %18638 = call ptr @strerror(i32 noundef %18637) #10
  %18639 = call ptr @__errno_location() #11
  %18640 = load i32, ptr %18639, align 4, !tbaa !5
  %18641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18628, ptr noundef @.str.5, i32 noundef %18629, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 1233, ptr noundef %18632, ptr noundef %18635, ptr noundef %18638, i32 noundef %18640) #10
  br label %18642

18642:                                            ; preds = %18625, %18608
  call void @llvm.lifetime.end.p0(i64 4, ptr %572) #10
  br label %18643

18643:                                            ; preds = %18642
  br label %18644

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

18645:                                            ; No predecessors!
  br label %18646

18646:                                            ; preds = %18645
  br label %18647

18647:                                            ; preds = %18646, %18587
  br label %18648

18648:                                            ; preds = %18647
  br label %18649

18649:                                            ; preds = %18648
  %18650 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported()
  br i1 %18650, label %18651, label %18781

18651:                                            ; preds = %18649
  br label %18652

18652:                                            ; preds = %18651
  %18653 = load i32, ptr @test_count, align 4, !tbaa !5
  %18654 = add nsw i32 %18653, 1
  store i32 %18654, ptr @test_count, align 4, !tbaa !5
  %18655 = load ptr, ptr %560, align 8, !tbaa !9
  %18656 = call i32 @s2n_signature_algorithm_select(ptr noundef %18655)
  %18657 = getelementptr inbounds %struct.s2n_result, ptr %573, i32 0, i32 0
  store i32 %18656, ptr %18657, align 4
  %18658 = getelementptr inbounds %struct.s2n_result, ptr %573, i32 0, i32 0
  %18659 = load i32, ptr %18658, align 4
  %18660 = call zeroext i1 @s2n_result_is_ok(i32 %18659)
  br i1 %18660, label %18714, label %18661

18661:                                            ; preds = %18652
  br label %18662

18662:                                            ; preds = %18661
  br label %18663

18663:                                            ; preds = %18662
  call void @llvm.lifetime.start.p0(i64 4, ptr %574) #10
  %18664 = call ptr @__errno_location() #11
  %18665 = load i32, ptr %18664, align 4, !tbaa !5
  store i32 %18665, ptr %574, align 4, !tbaa !5
  %18666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18667 = call i32 @s2n_print_stacktrace(ptr noundef %18666)
  %18668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18669 = trunc i8 %18668 to i1
  br i1 %18669, label %18670, label %18692

18670:                                            ; preds = %18663
  %18671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18672 = call i32 @fileno(ptr noundef %18671) #10
  %18673 = call i32 @isatty(i32 noundef %18672) #10
  %18674 = icmp ne i32 %18673, 0
  br i1 %18674, label %18675, label %18692

18675:                                            ; preds = %18670
  %18676 = load i32, ptr %574, align 4, !tbaa !5
  %18677 = call ptr @__errno_location() #11
  store i32 %18676, ptr %18677, align 4, !tbaa !5
  %18678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18679 = load i32, ptr @test_count, align 4, !tbaa !5
  %18680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18681 = load i32, ptr %18680, align 4, !tbaa !5
  %18682 = call ptr @s2n_strerror(i32 noundef %18681, ptr noundef @.str.4)
  %18683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18684 = load i32, ptr %18683, align 4, !tbaa !5
  %18685 = call ptr @s2n_strerror_debug(i32 noundef %18684, ptr noundef @.str.4)
  %18686 = call ptr @__errno_location() #11
  %18687 = load i32, ptr %18686, align 4, !tbaa !5
  %18688 = call ptr @strerror(i32 noundef %18687) #10
  %18689 = call ptr @__errno_location() #11
  %18690 = load i32, ptr %18689, align 4, !tbaa !5
  %18691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18678, ptr noundef @.str.2, i32 noundef %18679, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 1237, ptr noundef %18682, ptr noundef %18685, ptr noundef %18688, i32 noundef %18690) #10
  br label %18709

18692:                                            ; preds = %18670, %18663
  %18693 = load i32, ptr %574, align 4, !tbaa !5
  %18694 = call ptr @__errno_location() #11
  store i32 %18693, ptr %18694, align 4, !tbaa !5
  %18695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18696 = load i32, ptr @test_count, align 4, !tbaa !5
  %18697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18698 = load i32, ptr %18697, align 4, !tbaa !5
  %18699 = call ptr @s2n_strerror(i32 noundef %18698, ptr noundef @.str.4)
  %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_debug(i32 noundef %18701, ptr noundef @.str.4)
  %18703 = call ptr @__errno_location() #11
  %18704 = load i32, ptr %18703, align 4, !tbaa !5
  %18705 = call ptr @strerror(i32 noundef %18704) #10
  %18706 = call ptr @__errno_location() #11
  %18707 = load i32, ptr %18706, align 4, !tbaa !5
  %18708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18695, ptr noundef @.str.5, i32 noundef %18696, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 1237, ptr noundef %18699, ptr noundef %18702, ptr noundef %18705, i32 noundef %18707) #10
  br label %18709

18709:                                            ; preds = %18692, %18675
  call void @llvm.lifetime.end.p0(i64 4, ptr %574) #10
  br label %18710

18710:                                            ; preds = %18709
  br label %18711

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

18712:                                            ; No predecessors!
  br label %18713

18713:                                            ; preds = %18712
  br label %18714

18714:                                            ; preds = %18713, %18652
  br label %18715

18715:                                            ; preds = %18714
  br label %18716

18716:                                            ; preds = %18715
  br label %18717

18717:                                            ; preds = %18716
  %18718 = load i32, ptr @test_count, align 4, !tbaa !5
  %18719 = add nsw i32 %18718, 1
  store i32 %18719, ptr @test_count, align 4, !tbaa !5
  %18720 = load ptr, ptr %560, align 8, !tbaa !9
  %18721 = getelementptr inbounds %struct.s2n_connection, ptr %18720, i32 0, i32 32
  %18722 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %18721, i32 0, i32 5
  %18723 = load ptr, ptr %18722, align 8, !tbaa !72
  %18724 = icmp eq ptr %18723, @s2n_rsa_pss_rsae_sha256
  br i1 %18724, label %18778, label %18725

18725:                                            ; preds = %18717
  br label %18726

18726:                                            ; preds = %18725
  br label %18727

18727:                                            ; preds = %18726
  call void @llvm.lifetime.start.p0(i64 4, ptr %575) #10
  %18728 = call ptr @__errno_location() #11
  %18729 = load i32, ptr %18728, align 4, !tbaa !5
  store i32 %18729, ptr %575, align 4, !tbaa !5
  %18730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18731 = call i32 @s2n_print_stacktrace(ptr noundef %18730)
  %18732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18733 = trunc i8 %18732 to i1
  br i1 %18733, label %18734, label %18756

18734:                                            ; preds = %18727
  %18735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18736 = call i32 @fileno(ptr noundef %18735) #10
  %18737 = call i32 @isatty(i32 noundef %18736) #10
  %18738 = icmp ne i32 %18737, 0
  br i1 %18738, label %18739, label %18756

18739:                                            ; preds = %18734
  %18740 = load i32, ptr %575, align 4, !tbaa !5
  %18741 = call ptr @__errno_location() #11
  store i32 %18740, ptr %18741, align 4, !tbaa !5
  %18742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18743 = load i32, ptr @test_count, align 4, !tbaa !5
  %18744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18745 = load i32, ptr %18744, align 4, !tbaa !5
  %18746 = call ptr @s2n_strerror(i32 noundef %18745, ptr noundef @.str.4)
  %18747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18748 = load i32, ptr %18747, align 4, !tbaa !5
  %18749 = call ptr @s2n_strerror_debug(i32 noundef %18748, ptr noundef @.str.4)
  %18750 = call ptr @__errno_location() #11
  %18751 = load i32, ptr %18750, align 4, !tbaa !5
  %18752 = call ptr @strerror(i32 noundef %18751) #10
  %18753 = call ptr @__errno_location() #11
  %18754 = load i32, ptr %18753, align 4, !tbaa !5
  %18755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18742, ptr noundef @.str.2, i32 noundef %18743, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 1239, ptr noundef %18746, ptr noundef %18749, ptr noundef %18752, i32 noundef %18754) #10
  br label %18773

18756:                                            ; preds = %18734, %18727
  %18757 = load i32, ptr %575, align 4, !tbaa !5
  %18758 = call ptr @__errno_location() #11
  store i32 %18757, ptr %18758, align 4, !tbaa !5
  %18759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18760 = load i32, ptr @test_count, align 4, !tbaa !5
  %18761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18762 = load i32, ptr %18761, align 4, !tbaa !5
  %18763 = call ptr @s2n_strerror(i32 noundef %18762, ptr noundef @.str.4)
  %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_debug(i32 noundef %18765, ptr noundef @.str.4)
  %18767 = call ptr @__errno_location() #11
  %18768 = load i32, ptr %18767, align 4, !tbaa !5
  %18769 = call ptr @strerror(i32 noundef %18768) #10
  %18770 = call ptr @__errno_location() #11
  %18771 = load i32, ptr %18770, align 4, !tbaa !5
  %18772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18759, ptr noundef @.str.5, i32 noundef %18760, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 1239, ptr noundef %18763, ptr noundef %18766, ptr noundef %18769, i32 noundef %18771) #10
  br label %18773

18773:                                            ; preds = %18756, %18739
  call void @llvm.lifetime.end.p0(i64 4, ptr %575) #10
  br label %18774

18774:                                            ; preds = %18773
  br label %18775

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

18776:                                            ; No predecessors!
  br label %18777

18777:                                            ; preds = %18776
  br label %18778

18778:                                            ; preds = %18777, %18717
  br label %18779

18779:                                            ; preds = %18778
  br label %18780

18780:                                            ; preds = %18779
  br label %18983

18781:                                            ; preds = %18649
  br label %18782

18782:                                            ; preds = %18781
  br label %18783

18783:                                            ; preds = %18782
  br label %18784

18784:                                            ; preds = %18783
  %18785 = load i32, ptr @test_count, align 4, !tbaa !5
  %18786 = add nsw i32 %18785, 1
  store i32 %18786, ptr @test_count, align 4, !tbaa !5
  %18787 = load ptr, ptr %560, align 8, !tbaa !9
  %18788 = call i32 @s2n_signature_algorithm_select(ptr noundef %18787)
  %18789 = getelementptr inbounds %struct.s2n_result, ptr %576, i32 0, i32 0
  store i32 %18788, ptr %18789, align 4
  %18790 = getelementptr inbounds %struct.s2n_result, ptr %576, i32 0, i32 0
  %18791 = load i32, ptr %18790, align 4
  %18792 = call zeroext i1 @s2n_result_is_error(i32 %18791)
  br i1 %18792, label %18846, label %18793

18793:                                            ; preds = %18784
  br label %18794

18794:                                            ; preds = %18793
  br label %18795

18795:                                            ; preds = %18794
  call void @llvm.lifetime.start.p0(i64 4, ptr %577) #10
  %18796 = call ptr @__errno_location() #11
  %18797 = load i32, ptr %18796, align 4, !tbaa !5
  store i32 %18797, ptr %577, align 4, !tbaa !5
  %18798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18799 = call i32 @s2n_print_stacktrace(ptr noundef %18798)
  %18800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18801 = trunc i8 %18800 to i1
  br i1 %18801, label %18802, label %18824

18802:                                            ; preds = %18795
  %18803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18804 = call i32 @fileno(ptr noundef %18803) #10
  %18805 = call i32 @isatty(i32 noundef %18804) #10
  %18806 = icmp ne i32 %18805, 0
  br i1 %18806, label %18807, label %18824

18807:                                            ; preds = %18802
  %18808 = load i32, ptr %577, align 4, !tbaa !5
  %18809 = call ptr @__errno_location() #11
  store i32 %18808, ptr %18809, align 4, !tbaa !5
  %18810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18811 = load i32, ptr @test_count, align 4, !tbaa !5
  %18812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18813 = load i32, ptr %18812, align 4, !tbaa !5
  %18814 = call ptr @s2n_strerror(i32 noundef %18813, ptr noundef @.str.4)
  %18815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18816 = load i32, ptr %18815, align 4, !tbaa !5
  %18817 = call ptr @s2n_strerror_debug(i32 noundef %18816, ptr noundef @.str.4)
  %18818 = call ptr @__errno_location() #11
  %18819 = load i32, ptr %18818, align 4, !tbaa !5
  %18820 = call ptr @strerror(i32 noundef %18819) #10
  %18821 = call ptr @__errno_location() #11
  %18822 = load i32, ptr %18821, align 4, !tbaa !5
  %18823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18810, ptr noundef @.str.2, i32 noundef %18811, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 1243, ptr noundef %18814, ptr noundef %18817, ptr noundef %18820, i32 noundef %18822) #10
  br label %18841

18824:                                            ; preds = %18802, %18795
  %18825 = load i32, ptr %577, align 4, !tbaa !5
  %18826 = call ptr @__errno_location() #11
  store i32 %18825, ptr %18826, align 4, !tbaa !5
  %18827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18828 = load i32, ptr @test_count, align 4, !tbaa !5
  %18829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18830 = load i32, ptr %18829, align 4, !tbaa !5
  %18831 = call ptr @s2n_strerror(i32 noundef %18830, ptr noundef @.str.4)
  %18832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18833 = load i32, ptr %18832, align 4, !tbaa !5
  %18834 = call ptr @s2n_strerror_debug(i32 noundef %18833, ptr noundef @.str.4)
  %18835 = call ptr @__errno_location() #11
  %18836 = load i32, ptr %18835, align 4, !tbaa !5
  %18837 = call ptr @strerror(i32 noundef %18836) #10
  %18838 = call ptr @__errno_location() #11
  %18839 = load i32, ptr %18838, align 4, !tbaa !5
  %18840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18827, ptr noundef @.str.5, i32 noundef %18828, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 1243, ptr noundef %18831, ptr noundef %18834, ptr noundef %18837, i32 noundef %18839) #10
  br label %18841

18841:                                            ; preds = %18824, %18807
  call void @llvm.lifetime.end.p0(i64 4, ptr %577) #10
  br label %18842

18842:                                            ; preds = %18841
  br label %18843

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

18844:                                            ; No predecessors!
  br label %18845

18845:                                            ; preds = %18844
  br label %18846

18846:                                            ; preds = %18845, %18784
  br label %18847

18847:                                            ; preds = %18846
  br label %18848

18848:                                            ; preds = %18847
  br label %18849

18849:                                            ; preds = %18848
  %18850 = load i32, ptr @test_count, align 4, !tbaa !5
  %18851 = add nsw i32 %18850, 1
  store i32 %18851, ptr @test_count, align 4, !tbaa !5
  %18852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18853 = load i32, ptr %18852, align 4, !tbaa !5
  %18854 = icmp eq i32 %18853, 335544349
  br i1 %18854, label %18908, label %18855

18855:                                            ; preds = %18849
  br label %18856

18856:                                            ; preds = %18855
  br label %18857

18857:                                            ; preds = %18856
  call void @llvm.lifetime.start.p0(i64 4, ptr %578) #10
  %18858 = call ptr @__errno_location() #11
  %18859 = load i32, ptr %18858, align 4, !tbaa !5
  store i32 %18859, ptr %578, align 4, !tbaa !5
  %18860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18861 = call i32 @s2n_print_stacktrace(ptr noundef %18860)
  %18862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18863 = trunc i8 %18862 to i1
  br i1 %18863, label %18864, label %18886

18864:                                            ; preds = %18857
  %18865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18866 = call i32 @fileno(ptr noundef %18865) #10
  %18867 = call i32 @isatty(i32 noundef %18866) #10
  %18868 = icmp ne i32 %18867, 0
  br i1 %18868, label %18869, label %18886

18869:                                            ; preds = %18864
  %18870 = load i32, ptr %578, align 4, !tbaa !5
  %18871 = call ptr @__errno_location() #11
  store i32 %18870, ptr %18871, align 4, !tbaa !5
  %18872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18873 = load i32, ptr @test_count, align 4, !tbaa !5
  %18874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18875 = load i32, ptr %18874, align 4, !tbaa !5
  %18876 = call ptr @s2n_strerror(i32 noundef %18875, ptr noundef @.str.4)
  %18877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18878 = load i32, ptr %18877, align 4, !tbaa !5
  %18879 = call ptr @s2n_strerror_debug(i32 noundef %18878, ptr noundef @.str.4)
  %18880 = call ptr @__errno_location() #11
  %18881 = load i32, ptr %18880, align 4, !tbaa !5
  %18882 = call ptr @strerror(i32 noundef %18881) #10
  %18883 = call ptr @__errno_location() #11
  %18884 = load i32, ptr %18883, align 4, !tbaa !5
  %18885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18872, ptr noundef @.str.2, i32 noundef %18873, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 1243, ptr noundef %18876, ptr noundef %18879, ptr noundef %18882, i32 noundef %18884) #10
  br label %18903

18886:                                            ; preds = %18864, %18857
  %18887 = load i32, ptr %578, align 4, !tbaa !5
  %18888 = call ptr @__errno_location() #11
  store i32 %18887, ptr %18888, align 4, !tbaa !5
  %18889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18890 = load i32, ptr @test_count, align 4, !tbaa !5
  %18891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18892 = load i32, ptr %18891, align 4, !tbaa !5
  %18893 = call ptr @s2n_strerror(i32 noundef %18892, ptr noundef @.str.4)
  %18894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18895 = load i32, ptr %18894, align 4, !tbaa !5
  %18896 = call ptr @s2n_strerror_debug(i32 noundef %18895, ptr noundef @.str.4)
  %18897 = call ptr @__errno_location() #11
  %18898 = load i32, ptr %18897, align 4, !tbaa !5
  %18899 = call ptr @strerror(i32 noundef %18898) #10
  %18900 = call ptr @__errno_location() #11
  %18901 = load i32, ptr %18900, align 4, !tbaa !5
  %18902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18889, ptr noundef @.str.5, i32 noundef %18890, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 1243, ptr noundef %18893, ptr noundef %18896, ptr noundef %18899, i32 noundef %18901) #10
  br label %18903

18903:                                            ; preds = %18886, %18869
  call void @llvm.lifetime.end.p0(i64 4, ptr %578) #10
  br label %18904

18904:                                            ; preds = %18903
  br label %18905

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

18906:                                            ; No predecessors!
  br label %18907

18907:                                            ; preds = %18906
  br label %18908

18908:                                            ; preds = %18907, %18849
  br label %18909

18909:                                            ; preds = %18908
  br label %18910

18910:                                            ; preds = %18909
  br label %18911

18911:                                            ; preds = %18910
  %18912 = load i32, ptr @test_count, align 4, !tbaa !5
  %18913 = add nsw i32 %18912, 1
  store i32 %18913, ptr @test_count, align 4, !tbaa !5
  %18914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18915 = load i32, ptr %18914, align 4, !tbaa !5
  %18916 = call ptr @s2n_strerror_debug(i32 noundef %18915, ptr noundef @.str.4)
  %18917 = icmp eq ptr %18916, null
  br i1 %18917, label %18918, label %18971

18918:                                            ; preds = %18911
  br label %18919

18919:                                            ; preds = %18918
  br label %18920

18920:                                            ; preds = %18919
  call void @llvm.lifetime.start.p0(i64 4, ptr %579) #10
  %18921 = call ptr @__errno_location() #11
  %18922 = load i32, ptr %18921, align 4, !tbaa !5
  store i32 %18922, ptr %579, align 4, !tbaa !5
  %18923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18924 = call i32 @s2n_print_stacktrace(ptr noundef %18923)
  %18925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18926 = trunc i8 %18925 to i1
  br i1 %18926, label %18927, label %18949

18927:                                            ; preds = %18920
  %18928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18929 = call i32 @fileno(ptr noundef %18928) #10
  %18930 = call i32 @isatty(i32 noundef %18929) #10
  %18931 = icmp ne i32 %18930, 0
  br i1 %18931, label %18932, label %18949

18932:                                            ; preds = %18927
  %18933 = load i32, ptr %579, align 4, !tbaa !5
  %18934 = call ptr @__errno_location() #11
  store i32 %18933, ptr %18934, align 4, !tbaa !5
  %18935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18936 = load i32, ptr @test_count, align 4, !tbaa !5
  %18937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18938 = load i32, ptr %18937, align 4, !tbaa !5
  %18939 = call ptr @s2n_strerror(i32 noundef %18938, ptr noundef @.str.4)
  %18940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18941 = load i32, ptr %18940, align 4, !tbaa !5
  %18942 = call ptr @s2n_strerror_debug(i32 noundef %18941, ptr noundef @.str.4)
  %18943 = call ptr @__errno_location() #11
  %18944 = load i32, ptr %18943, align 4, !tbaa !5
  %18945 = call ptr @strerror(i32 noundef %18944) #10
  %18946 = call ptr @__errno_location() #11
  %18947 = load i32, ptr %18946, align 4, !tbaa !5
  %18948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18935, ptr noundef @.str.2, i32 noundef %18936, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1243, ptr noundef %18939, ptr noundef %18942, ptr noundef %18945, i32 noundef %18947) #10
  br label %18966

18949:                                            ; preds = %18927, %18920
  %18950 = load i32, ptr %579, align 4, !tbaa !5
  %18951 = call ptr @__errno_location() #11
  store i32 %18950, ptr %18951, align 4, !tbaa !5
  %18952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18953 = load i32, ptr @test_count, align 4, !tbaa !5
  %18954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18955 = load i32, ptr %18954, align 4, !tbaa !5
  %18956 = call ptr @s2n_strerror(i32 noundef %18955, ptr noundef @.str.4)
  %18957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18958 = load i32, ptr %18957, align 4, !tbaa !5
  %18959 = call ptr @s2n_strerror_debug(i32 noundef %18958, ptr noundef @.str.4)
  %18960 = call ptr @__errno_location() #11
  %18961 = load i32, ptr %18960, align 4, !tbaa !5
  %18962 = call ptr @strerror(i32 noundef %18961) #10
  %18963 = call ptr @__errno_location() #11
  %18964 = load i32, ptr %18963, align 4, !tbaa !5
  %18965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18952, ptr noundef @.str.5, i32 noundef %18953, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1243, ptr noundef %18956, ptr noundef %18959, ptr noundef %18962, i32 noundef %18964) #10
  br label %18966

18966:                                            ; preds = %18949, %18932
  call void @llvm.lifetime.end.p0(i64 4, ptr %579) #10
  br label %18967

18967:                                            ; preds = %18966
  br label %18968

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

18969:                                            ; No predecessors!
  br label %18970

18970:                                            ; preds = %18969
  br label %18971

18971:                                            ; preds = %18970, %18911
  br label %18972

18972:                                            ; preds = %18971
  br label %18973

18973:                                            ; preds = %18972
  br label %18974

18974:                                            ; preds = %18973
  br label %18975

18975:                                            ; preds = %18974
  br label %18976

18976:                                            ; preds = %18975
  %18977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %18977, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %18978 = call ptr @__errno_location() #11
  store i32 0, ptr %18978, align 4, !tbaa !5
  br label %18979

18979:                                            ; preds = %18976
  br label %18980

18980:                                            ; preds = %18979
  br label %18981

18981:                                            ; preds = %18980
  br label %18982

18982:                                            ; preds = %18981
  br label %18983

18983:                                            ; preds = %18982, %18780
  call void @llvm.lifetime.end.p0(i64 80, ptr %565) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %564) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %561) #10
  %18984 = call i32 @s2n_connection_ptr_free(ptr noundef %560)
  %18985 = getelementptr inbounds %struct.s2n_result, ptr %580, i32 0, i32 0
  store i32 %18984, ptr %18985, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %560) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %520) #10
  %18986 = call i32 @s2n_config_ptr_free(ptr noundef %518)
  %18987 = getelementptr inbounds %struct.s2n_result, ptr %581, i32 0, i32 0
  store i32 %18986, ptr %18987, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %518) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %517) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %516) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %582) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %582, ptr align 16 @__const.main.default_schemes, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %583) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %583, ptr align 16 @__const.main.sha256_schemes, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %584) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %584, ptr align 16 @__const.main.sha384_schemes, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %585) #10
  %18988 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %585, i32 0, i32 0
  store i8 2, ptr %18988, align 8, !tbaa !76
  %18989 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %585, i32 0, i32 1
  %18990 = getelementptr inbounds [2 x ptr], ptr %582, i64 0, i64 0
  store ptr %18990, ptr %18989, align 8, !tbaa !78
  call void @llvm.lifetime.start.p0(i64 16, ptr %586) #10
  %18991 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %586, i32 0, i32 0
  store i8 2, ptr %18991, align 8, !tbaa !76
  %18992 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %586, i32 0, i32 1
  %18993 = getelementptr inbounds [2 x ptr], ptr %583, i64 0, i64 0
  store ptr %18993, ptr %18992, align 8, !tbaa !78
  call void @llvm.lifetime.start.p0(i64 8, ptr %587) #10
  store i64 0, ptr %587, align 8, !tbaa !54
  br label %18994

18994:                                            ; preds = %19090, %18983
  %18995 = load i64, ptr %587, align 8, !tbaa !54
  %18996 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %586, i32 0, i32 0
  %18997 = load i8, ptr %18996, align 8, !tbaa !76
  %18998 = zext i8 %18997 to i64
  %18999 = icmp ult i64 %18995, %18998
  br i1 %18999, label %19001, label %19000

19000:                                            ; preds = %18994
  store i32 1773, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %587) #10
  br label %19093

19001:                                            ; preds = %18994
  call void @llvm.lifetime.start.p0(i64 8, ptr %588) #10
  store i64 0, ptr %588, align 8, !tbaa !54
  br label %19002

19002:                                            ; preds = %19086, %19001
  %19003 = load i64, ptr %588, align 8, !tbaa !54
  %19004 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %585, i32 0, i32 0
  %19005 = load i8, ptr %19004, align 8, !tbaa !76
  %19006 = zext i8 %19005 to i64
  %19007 = icmp ult i64 %19003, %19006
  br i1 %19007, label %19009, label %19008

19008:                                            ; preds = %19002
  store i32 1776, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %588) #10
  br label %19089

19009:                                            ; preds = %19002
  br label %19010

19010:                                            ; preds = %19009
  %19011 = load i32, ptr @test_count, align 4, !tbaa !5
  %19012 = add nsw i32 %19011, 1
  store i32 %19012, ptr @test_count, align 4, !tbaa !5
  %19013 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %586, i32 0, i32 1
  %19014 = load ptr, ptr %19013, align 8, !tbaa !78
  %19015 = load i64, ptr %587, align 8, !tbaa !54
  %19016 = getelementptr inbounds ptr, ptr %19014, i64 %19015
  %19017 = load ptr, ptr %19016, align 8, !tbaa !9
  %19018 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %19017, i32 0, i32 0
  %19019 = load i16, ptr %19018, align 8, !tbaa !55
  %19020 = zext i16 %19019 to i32
  %19021 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %585, i32 0, i32 1
  %19022 = load ptr, ptr %19021, align 8, !tbaa !78
  %19023 = load i64, ptr %588, align 8, !tbaa !54
  %19024 = getelementptr inbounds ptr, ptr %19022, i64 %19023
  %19025 = load ptr, ptr %19024, align 8, !tbaa !9
  %19026 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %19025, i32 0, i32 0
  %19027 = load i16, ptr %19026, align 8, !tbaa !55
  %19028 = zext i16 %19027 to i32
  %19029 = icmp eq i32 %19020, %19028
  br i1 %19029, label %19030, label %19083

19030:                                            ; preds = %19010
  br label %19031

19031:                                            ; preds = %19030
  br label %19032

19032:                                            ; preds = %19031
  call void @llvm.lifetime.start.p0(i64 4, ptr %589) #10
  %19033 = call ptr @__errno_location() #11
  %19034 = load i32, ptr %19033, align 4, !tbaa !5
  store i32 %19034, ptr %589, align 4, !tbaa !5
  %19035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19036 = call i32 @s2n_print_stacktrace(ptr noundef %19035)
  %19037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19038 = trunc i8 %19037 to i1
  br i1 %19038, label %19039, label %19061

19039:                                            ; preds = %19032
  %19040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19041 = call i32 @fileno(ptr noundef %19040) #10
  %19042 = call i32 @isatty(i32 noundef %19041) #10
  %19043 = icmp ne i32 %19042, 0
  br i1 %19043, label %19044, label %19061

19044:                                            ; preds = %19039
  %19045 = load i32, ptr %589, align 4, !tbaa !5
  %19046 = call ptr @__errno_location() #11
  store i32 %19045, ptr %19046, align 4, !tbaa !5
  %19047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19048 = load i32, ptr @test_count, align 4, !tbaa !5
  %19049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19050 = load i32, ptr %19049, align 4, !tbaa !5
  %19051 = call ptr @s2n_strerror(i32 noundef %19050, ptr noundef @.str.4)
  %19052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19053 = load i32, ptr %19052, align 4, !tbaa !5
  %19054 = call ptr @s2n_strerror_debug(i32 noundef %19053, ptr noundef @.str.4)
  %19055 = call ptr @__errno_location() #11
  %19056 = load i32, ptr %19055, align 4, !tbaa !5
  %19057 = call ptr @strerror(i32 noundef %19056) #10
  %19058 = call ptr @__errno_location() #11
  %19059 = load i32, ptr %19058, align 4, !tbaa !5
  %19060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19047, ptr noundef @.str.2, i32 noundef %19048, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 1277, ptr noundef %19051, ptr noundef %19054, ptr noundef %19057, i32 noundef %19059) #10
  br label %19078

19061:                                            ; preds = %19039, %19032
  %19062 = load i32, ptr %589, align 4, !tbaa !5
  %19063 = call ptr @__errno_location() #11
  store i32 %19062, ptr %19063, align 4, !tbaa !5
  %19064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19065 = load i32, ptr @test_count, align 4, !tbaa !5
  %19066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19067 = load i32, ptr %19066, align 4, !tbaa !5
  %19068 = call ptr @s2n_strerror(i32 noundef %19067, ptr noundef @.str.4)
  %19069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19070 = load i32, ptr %19069, align 4, !tbaa !5
  %19071 = call ptr @s2n_strerror_debug(i32 noundef %19070, ptr noundef @.str.4)
  %19072 = call ptr @__errno_location() #11
  %19073 = load i32, ptr %19072, align 4, !tbaa !5
  %19074 = call ptr @strerror(i32 noundef %19073) #10
  %19075 = call ptr @__errno_location() #11
  %19076 = load i32, ptr %19075, align 4, !tbaa !5
  %19077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19064, ptr noundef @.str.5, i32 noundef %19065, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 1277, ptr noundef %19068, ptr noundef %19071, ptr noundef %19074, i32 noundef %19076) #10
  br label %19078

19078:                                            ; preds = %19061, %19044
  call void @llvm.lifetime.end.p0(i64 4, ptr %589) #10
  br label %19079

19079:                                            ; preds = %19078
  br label %19080

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

19081:                                            ; No predecessors!
  br label %19082

19082:                                            ; preds = %19081
  br label %19083

19083:                                            ; preds = %19082, %19010
  br label %19084

19084:                                            ; preds = %19083
  br label %19085

19085:                                            ; preds = %19084
  br label %19086

19086:                                            ; preds = %19085
  %19087 = load i64, ptr %588, align 8, !tbaa !54
  %19088 = add i64 %19087, 1
  store i64 %19088, ptr %588, align 8, !tbaa !54
  br label %19002, !llvm.loop !86

19089:                                            ; preds = %19008
  br label %19090

19090:                                            ; preds = %19089
  %19091 = load i64, ptr %587, align 8, !tbaa !54
  %19092 = add i64 %19091, 1
  store i64 %19092, ptr %587, align 8, !tbaa !54
  br label %18994, !llvm.loop !87

19093:                                            ; preds = %19000
  call void @llvm.lifetime.start.p0(i64 16, ptr %590) #10
  %19094 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %590, i32 0, i32 0
  store i8 2, ptr %19094, align 8, !tbaa !76
  %19095 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %590, i32 0, i32 1
  %19096 = getelementptr inbounds [2 x ptr], ptr %584, i64 0, i64 0
  store ptr %19096, ptr %19095, align 8, !tbaa !78
  call void @llvm.lifetime.start.p0(i64 8, ptr %591) #10
  store i64 0, ptr %591, align 8, !tbaa !54
  br label %19097

19097:                                            ; preds = %19193, %19093
  %19098 = load i64, ptr %591, align 8, !tbaa !54
  %19099 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %590, i32 0, i32 0
  %19100 = load i8, ptr %19099, align 8, !tbaa !76
  %19101 = zext i8 %19100 to i64
  %19102 = icmp ult i64 %19098, %19101
  br i1 %19102, label %19104, label %19103

19103:                                            ; preds = %19097
  store i32 1785, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %591) #10
  br label %19196

19104:                                            ; preds = %19097
  call void @llvm.lifetime.start.p0(i64 8, ptr %592) #10
  store i64 0, ptr %592, align 8, !tbaa !54
  br label %19105

19105:                                            ; preds = %19189, %19104
  %19106 = load i64, ptr %592, align 8, !tbaa !54
  %19107 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %585, i32 0, i32 0
  %19108 = load i8, ptr %19107, align 8, !tbaa !76
  %19109 = zext i8 %19108 to i64
  %19110 = icmp ult i64 %19106, %19109
  br i1 %19110, label %19112, label %19111

19111:                                            ; preds = %19105
  store i32 1788, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %592) #10
  br label %19192

19112:                                            ; preds = %19105
  br label %19113

19113:                                            ; preds = %19112
  %19114 = load i32, ptr @test_count, align 4, !tbaa !5
  %19115 = add nsw i32 %19114, 1
  store i32 %19115, ptr @test_count, align 4, !tbaa !5
  %19116 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %590, i32 0, i32 1
  %19117 = load ptr, ptr %19116, align 8, !tbaa !78
  %19118 = load i64, ptr %591, align 8, !tbaa !54
  %19119 = getelementptr inbounds ptr, ptr %19117, i64 %19118
  %19120 = load ptr, ptr %19119, align 8, !tbaa !9
  %19121 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %19120, i32 0, i32 0
  %19122 = load i16, ptr %19121, align 8, !tbaa !55
  %19123 = zext i16 %19122 to i32
  %19124 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %585, i32 0, i32 1
  %19125 = load ptr, ptr %19124, align 8, !tbaa !78
  %19126 = load i64, ptr %592, align 8, !tbaa !54
  %19127 = getelementptr inbounds ptr, ptr %19125, i64 %19126
  %19128 = load ptr, ptr %19127, align 8, !tbaa !9
  %19129 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %19128, i32 0, i32 0
  %19130 = load i16, ptr %19129, align 8, !tbaa !55
  %19131 = zext i16 %19130 to i32
  %19132 = icmp eq i32 %19123, %19131
  br i1 %19132, label %19133, label %19186

19133:                                            ; preds = %19113
  br label %19134

19134:                                            ; preds = %19133
  br label %19135

19135:                                            ; preds = %19134
  call void @llvm.lifetime.start.p0(i64 4, ptr %593) #10
  %19136 = call ptr @__errno_location() #11
  %19137 = load i32, ptr %19136, align 4, !tbaa !5
  store i32 %19137, ptr %593, align 4, !tbaa !5
  %19138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19139 = call i32 @s2n_print_stacktrace(ptr noundef %19138)
  %19140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19141 = trunc i8 %19140 to i1
  br i1 %19141, label %19142, label %19164

19142:                                            ; preds = %19135
  %19143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19144 = call i32 @fileno(ptr noundef %19143) #10
  %19145 = call i32 @isatty(i32 noundef %19144) #10
  %19146 = icmp ne i32 %19145, 0
  br i1 %19146, label %19147, label %19164

19147:                                            ; preds = %19142
  %19148 = load i32, ptr %593, align 4, !tbaa !5
  %19149 = call ptr @__errno_location() #11
  store i32 %19148, ptr %19149, align 4, !tbaa !5
  %19150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19151 = load i32, ptr @test_count, align 4, !tbaa !5
  %19152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19153 = load i32, ptr %19152, align 4, !tbaa !5
  %19154 = call ptr @s2n_strerror(i32 noundef %19153, ptr noundef @.str.4)
  %19155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19156 = load i32, ptr %19155, align 4, !tbaa !5
  %19157 = call ptr @s2n_strerror_debug(i32 noundef %19156, ptr noundef @.str.4)
  %19158 = call ptr @__errno_location() #11
  %19159 = load i32, ptr %19158, align 4, !tbaa !5
  %19160 = call ptr @strerror(i32 noundef %19159) #10
  %19161 = call ptr @__errno_location() #11
  %19162 = load i32, ptr %19161, align 4, !tbaa !5
  %19163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19150, ptr noundef @.str.2, i32 noundef %19151, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 1288, ptr noundef %19154, ptr noundef %19157, ptr noundef %19160, i32 noundef %19162) #10
  br label %19181

19164:                                            ; preds = %19142, %19135
  %19165 = load i32, ptr %593, align 4, !tbaa !5
  %19166 = call ptr @__errno_location() #11
  store i32 %19165, ptr %19166, align 4, !tbaa !5
  %19167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19168 = load i32, ptr @test_count, align 4, !tbaa !5
  %19169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19170 = load i32, ptr %19169, align 4, !tbaa !5
  %19171 = call ptr @s2n_strerror(i32 noundef %19170, ptr noundef @.str.4)
  %19172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19173 = load i32, ptr %19172, align 4, !tbaa !5
  %19174 = call ptr @s2n_strerror_debug(i32 noundef %19173, ptr noundef @.str.4)
  %19175 = call ptr @__errno_location() #11
  %19176 = load i32, ptr %19175, align 4, !tbaa !5
  %19177 = call ptr @strerror(i32 noundef %19176) #10
  %19178 = call ptr @__errno_location() #11
  %19179 = load i32, ptr %19178, align 4, !tbaa !5
  %19180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19167, ptr noundef @.str.5, i32 noundef %19168, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 1288, ptr noundef %19171, ptr noundef %19174, ptr noundef %19177, i32 noundef %19179) #10
  br label %19181

19181:                                            ; preds = %19164, %19147
  call void @llvm.lifetime.end.p0(i64 4, ptr %593) #10
  br label %19182

19182:                                            ; preds = %19181
  br label %19183

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

19184:                                            ; No predecessors!
  br label %19185

19185:                                            ; preds = %19184
  br label %19186

19186:                                            ; preds = %19185, %19113
  br label %19187

19187:                                            ; preds = %19186
  br label %19188

19188:                                            ; preds = %19187
  br label %19189

19189:                                            ; preds = %19188
  %19190 = load i64, ptr %592, align 8, !tbaa !54
  %19191 = add i64 %19190, 1
  store i64 %19191, ptr %592, align 8, !tbaa !54
  br label %19105, !llvm.loop !88

19192:                                            ; preds = %19111
  br label %19193

19193:                                            ; preds = %19192
  %19194 = load i64, ptr %591, align 8, !tbaa !54
  %19195 = add i64 %19194, 1
  store i64 %19195, ptr %591, align 8, !tbaa !54
  br label %19097, !llvm.loop !89

19196:                                            ; preds = %19103
  call void @llvm.lifetime.start.p0(i64 64, ptr %594) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %594, ptr align 8 @security_policy_20190214, i64 64, i1 false), !tbaa.struct !22
  %19197 = getelementptr inbounds %struct.s2n_security_policy, ptr %594, i32 0, i32 3
  store ptr %585, ptr %19197, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 64, ptr %595) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %595, ptr align 8 @security_policy_20190214, i64 64, i1 false), !tbaa.struct !22
  %19198 = getelementptr inbounds %struct.s2n_security_policy, ptr %595, i32 0, i32 3
  store ptr %586, ptr %19198, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 64, ptr %596) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %596, ptr align 8 @security_policy_20190214, i64 64, i1 false), !tbaa.struct !22
  %19199 = getelementptr inbounds %struct.s2n_security_policy, ptr %596, i32 0, i32 3
  store ptr %590, ptr %19199, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %597) #10
  store i64 0, ptr %597, align 8, !tbaa !54
  br label %19200

19200:                                            ; preds = %19848, %19196
  %19201 = load i64, ptr %597, align 8, !tbaa !54
  %19202 = icmp ult i64 %19201, 2
  br i1 %19202, label %19204, label %19203

19203:                                            ; preds = %19200
  store i32 1797, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %597) #10
  br label %19851

19204:                                            ; preds = %19200
  call void @llvm.lifetime.start.p0(i64 8, ptr %598) #10
  %19205 = call ptr @s2n_config_new()
  store ptr %19205, ptr %598, align 8, !tbaa !9
  br label %19206

19206:                                            ; preds = %19204
  %19207 = load i32, ptr @test_count, align 4, !tbaa !5
  %19208 = add nsw i32 %19207, 1
  store i32 %19208, ptr @test_count, align 4, !tbaa !5
  %19209 = load ptr, ptr %598, align 8, !tbaa !9
  %19210 = icmp eq ptr %19209, null
  br i1 %19210, label %19211, label %19264

19211:                                            ; preds = %19206
  br label %19212

19212:                                            ; preds = %19211
  br label %19213

19213:                                            ; preds = %19212
  call void @llvm.lifetime.start.p0(i64 4, ptr %599) #10
  %19214 = call ptr @__errno_location() #11
  %19215 = load i32, ptr %19214, align 4, !tbaa !5
  store i32 %19215, ptr %599, align 4, !tbaa !5
  %19216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19217 = call i32 @s2n_print_stacktrace(ptr noundef %19216)
  %19218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19219 = trunc i8 %19218 to i1
  br i1 %19219, label %19220, label %19242

19220:                                            ; preds = %19213
  %19221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19222 = call i32 @fileno(ptr noundef %19221) #10
  %19223 = call i32 @isatty(i32 noundef %19222) #10
  %19224 = icmp ne i32 %19223, 0
  br i1 %19224, label %19225, label %19242

19225:                                            ; preds = %19220
  %19226 = load i32, ptr %599, align 4, !tbaa !5
  %19227 = call ptr @__errno_location() #11
  store i32 %19226, ptr %19227, align 4, !tbaa !5
  %19228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19229 = load i32, ptr @test_count, align 4, !tbaa !5
  %19230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19231 = load i32, ptr %19230, align 4, !tbaa !5
  %19232 = call ptr @s2n_strerror(i32 noundef %19231, ptr noundef @.str.4)
  %19233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19234 = load i32, ptr %19233, align 4, !tbaa !5
  %19235 = call ptr @s2n_strerror_debug(i32 noundef %19234, ptr noundef @.str.4)
  %19236 = call ptr @__errno_location() #11
  %19237 = load i32, ptr %19236, align 4, !tbaa !5
  %19238 = call ptr @strerror(i32 noundef %19237) #10
  %19239 = call ptr @__errno_location() #11
  %19240 = load i32, ptr %19239, align 4, !tbaa !5
  %19241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19228, ptr noundef @.str.2, i32 noundef %19229, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 1304, ptr noundef %19232, ptr noundef %19235, ptr noundef %19238, i32 noundef %19240) #10
  br label %19259

19242:                                            ; preds = %19220, %19213
  %19243 = load i32, ptr %599, align 4, !tbaa !5
  %19244 = call ptr @__errno_location() #11
  store i32 %19243, ptr %19244, align 4, !tbaa !5
  %19245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19246 = load i32, ptr @test_count, align 4, !tbaa !5
  %19247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19248 = load i32, ptr %19247, align 4, !tbaa !5
  %19249 = call ptr @s2n_strerror(i32 noundef %19248, ptr noundef @.str.4)
  %19250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19251 = load i32, ptr %19250, align 4, !tbaa !5
  %19252 = call ptr @s2n_strerror_debug(i32 noundef %19251, ptr noundef @.str.4)
  %19253 = call ptr @__errno_location() #11
  %19254 = load i32, ptr %19253, align 4, !tbaa !5
  %19255 = call ptr @strerror(i32 noundef %19254) #10
  %19256 = call ptr @__errno_location() #11
  %19257 = load i32, ptr %19256, align 4, !tbaa !5
  %19258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19245, ptr noundef @.str.5, i32 noundef %19246, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 1304, ptr noundef %19249, ptr noundef %19252, ptr noundef %19255, i32 noundef %19257) #10
  br label %19259

19259:                                            ; preds = %19242, %19225
  call void @llvm.lifetime.end.p0(i64 4, ptr %599) #10
  br label %19260

19260:                                            ; preds = %19259
  br label %19261

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

19262:                                            ; No predecessors!
  br label %19263

19263:                                            ; preds = %19262
  br label %19264

19264:                                            ; preds = %19263, %19206
  br label %19265

19265:                                            ; preds = %19264
  br label %19266

19266:                                            ; preds = %19265
  br label %19267

19267:                                            ; preds = %19266
  %19268 = load i32, ptr @test_count, align 4, !tbaa !5
  %19269 = add nsw i32 %19268, 1
  store i32 %19269, ptr @test_count, align 4, !tbaa !5
  %19270 = load ptr, ptr %598, align 8, !tbaa !9
  %19271 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %19270)
  %19272 = icmp eq i32 %19271, -1
  br i1 %19272, label %19273, label %19326

19273:                                            ; preds = %19267
  br label %19274

19274:                                            ; preds = %19273
  br label %19275

19275:                                            ; preds = %19274
  call void @llvm.lifetime.start.p0(i64 4, ptr %600) #10
  %19276 = call ptr @__errno_location() #11
  %19277 = load i32, ptr %19276, align 4, !tbaa !5
  store i32 %19277, ptr %600, align 4, !tbaa !5
  %19278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19279 = call i32 @s2n_print_stacktrace(ptr noundef %19278)
  %19280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19281 = trunc i8 %19280 to i1
  br i1 %19281, label %19282, label %19304

19282:                                            ; preds = %19275
  %19283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19284 = call i32 @fileno(ptr noundef %19283) #10
  %19285 = call i32 @isatty(i32 noundef %19284) #10
  %19286 = icmp ne i32 %19285, 0
  br i1 %19286, label %19287, label %19304

19287:                                            ; preds = %19282
  %19288 = load i32, ptr %600, align 4, !tbaa !5
  %19289 = call ptr @__errno_location() #11
  store i32 %19288, ptr %19289, align 4, !tbaa !5
  %19290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19291 = load i32, ptr @test_count, align 4, !tbaa !5
  %19292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19293 = load i32, ptr %19292, align 4, !tbaa !5
  %19294 = call ptr @s2n_strerror(i32 noundef %19293, ptr noundef @.str.4)
  %19295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19296 = load i32, ptr %19295, align 4, !tbaa !5
  %19297 = call ptr @s2n_strerror_debug(i32 noundef %19296, ptr noundef @.str.4)
  %19298 = call ptr @__errno_location() #11
  %19299 = load i32, ptr %19298, align 4, !tbaa !5
  %19300 = call ptr @strerror(i32 noundef %19299) #10
  %19301 = call ptr @__errno_location() #11
  %19302 = load i32, ptr %19301, align 4, !tbaa !5
  %19303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19290, ptr noundef @.str.2, i32 noundef %19291, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 1305, ptr noundef %19294, ptr noundef %19297, ptr noundef %19300, i32 noundef %19302) #10
  br label %19321

19304:                                            ; preds = %19282, %19275
  %19305 = load i32, ptr %600, align 4, !tbaa !5
  %19306 = call ptr @__errno_location() #11
  store i32 %19305, ptr %19306, align 4, !tbaa !5
  %19307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19308 = load i32, ptr @test_count, align 4, !tbaa !5
  %19309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19310 = load i32, ptr %19309, align 4, !tbaa !5
  %19311 = call ptr @s2n_strerror(i32 noundef %19310, ptr noundef @.str.4)
  %19312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19313 = load i32, ptr %19312, align 4, !tbaa !5
  %19314 = call ptr @s2n_strerror_debug(i32 noundef %19313, ptr noundef @.str.4)
  %19315 = call ptr @__errno_location() #11
  %19316 = load i32, ptr %19315, align 4, !tbaa !5
  %19317 = call ptr @strerror(i32 noundef %19316) #10
  %19318 = call ptr @__errno_location() #11
  %19319 = load i32, ptr %19318, align 4, !tbaa !5
  %19320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19307, ptr noundef @.str.5, i32 noundef %19308, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 1305, ptr noundef %19311, ptr noundef %19314, ptr noundef %19317, i32 noundef %19319) #10
  br label %19321

19321:                                            ; preds = %19304, %19287
  call void @llvm.lifetime.end.p0(i64 4, ptr %600) #10
  br label %19322

19322:                                            ; preds = %19321
  br label %19323

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

19324:                                            ; No predecessors!
  br label %19325

19325:                                            ; preds = %19324
  br label %19326

19326:                                            ; preds = %19325, %19267
  br label %19327

19327:                                            ; preds = %19326
  br label %19328

19328:                                            ; preds = %19327
  br label %19329

19329:                                            ; preds = %19328
  %19330 = load i32, ptr @test_count, align 4, !tbaa !5
  %19331 = add nsw i32 %19330, 1
  store i32 %19331, ptr @test_count, align 4, !tbaa !5
  %19332 = load ptr, ptr %598, align 8, !tbaa !9
  %19333 = load i64, ptr %597, align 8, !tbaa !54
  %19334 = getelementptr inbounds [2 x ptr], ptr %14, i64 0, i64 %19333
  %19335 = load ptr, ptr %19334, align 8, !tbaa !9
  %19336 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %19332, ptr noundef %19335)
  %19337 = icmp eq i32 %19336, -1
  br i1 %19337, label %19338, label %19391

19338:                                            ; preds = %19329
  br label %19339

19339:                                            ; preds = %19338
  br label %19340

19340:                                            ; preds = %19339
  call void @llvm.lifetime.start.p0(i64 4, ptr %601) #10
  %19341 = call ptr @__errno_location() #11
  %19342 = load i32, ptr %19341, align 4, !tbaa !5
  store i32 %19342, ptr %601, 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) #10
  %19350 = call i32 @isatty(i32 noundef %19349) #10
  %19351 = icmp ne i32 %19350, 0
  br i1 %19351, label %19352, label %19369

19352:                                            ; preds = %19347
  %19353 = load i32, ptr %601, align 4, !tbaa !5
  %19354 = call ptr @__errno_location() #11
  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() #11
  %19364 = load i32, ptr %19363, align 4, !tbaa !5
  %19365 = call ptr @strerror(i32 noundef %19364) #10
  %19366 = call ptr @__errno_location() #11
  %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.104, ptr noundef @.str.1, i32 noundef 1306, ptr noundef %19359, ptr noundef %19362, ptr noundef %19365, i32 noundef %19367) #10
  br label %19386

19369:                                            ; preds = %19347, %19340
  %19370 = load i32, ptr %601, align 4, !tbaa !5
  %19371 = call ptr @__errno_location() #11
  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() #11
  %19381 = load i32, ptr %19380, align 4, !tbaa !5
  %19382 = call ptr @strerror(i32 noundef %19381) #10
  %19383 = call ptr @__errno_location() #11
  %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.104, ptr noundef @.str.1, i32 noundef 1306, ptr noundef %19376, ptr noundef %19379, ptr noundef %19382, i32 noundef %19384) #10
  br label %19386

19386:                                            ; preds = %19369, %19352
  call void @llvm.lifetime.end.p0(i64 4, ptr %601) #10
  br label %19387

19387:                                            ; preds = %19386
  br label %19388

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

19389:                                            ; No predecessors!
  br label %19390

19390:                                            ; preds = %19389
  br label %19391

19391:                                            ; preds = %19390, %19329
  br label %19392

19392:                                            ; preds = %19391
  br label %19393

19393:                                            ; preds = %19392
  call void @llvm.lifetime.start.p0(i64 8, ptr %602) #10
  %19394 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %19394, ptr %602, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %603) #10
  %19395 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %19395, ptr %603, align 8, !tbaa !9
  br label %19396

19396:                                            ; preds = %19393
  %19397 = load i32, ptr @test_count, align 4, !tbaa !5
  %19398 = add nsw i32 %19397, 1
  store i32 %19398, ptr @test_count, align 4, !tbaa !5
  %19399 = load ptr, ptr %602, align 8, !tbaa !9
  %19400 = load ptr, ptr %598, align 8, !tbaa !9
  %19401 = call i32 @s2n_connection_set_config(ptr noundef %19399, ptr noundef %19400)
  %19402 = icmp eq i32 %19401, -1
  br i1 %19402, label %19403, label %19456

19403:                                            ; preds = %19396
  br label %19404

19404:                                            ; preds = %19403
  br label %19405

19405:                                            ; preds = %19404
  call void @llvm.lifetime.start.p0(i64 4, ptr %604) #10
  %19406 = call ptr @__errno_location() #11
  %19407 = load i32, ptr %19406, align 4, !tbaa !5
  store i32 %19407, ptr %604, align 4, !tbaa !5
  %19408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19409 = call i32 @s2n_print_stacktrace(ptr noundef %19408)
  %19410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19411 = trunc i8 %19410 to i1
  br i1 %19411, label %19412, label %19434

19412:                                            ; preds = %19405
  %19413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19414 = call i32 @fileno(ptr noundef %19413) #10
  %19415 = call i32 @isatty(i32 noundef %19414) #10
  %19416 = icmp ne i32 %19415, 0
  br i1 %19416, label %19417, label %19434

19417:                                            ; preds = %19412
  %19418 = load i32, ptr %604, align 4, !tbaa !5
  %19419 = call ptr @__errno_location() #11
  store i32 %19418, ptr %19419, align 4, !tbaa !5
  %19420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19421 = load i32, ptr @test_count, align 4, !tbaa !5
  %19422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19423 = load i32, ptr %19422, align 4, !tbaa !5
  %19424 = call ptr @s2n_strerror(i32 noundef %19423, ptr noundef @.str.4)
  %19425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19426 = load i32, ptr %19425, align 4, !tbaa !5
  %19427 = call ptr @s2n_strerror_debug(i32 noundef %19426, ptr noundef @.str.4)
  %19428 = call ptr @__errno_location() #11
  %19429 = load i32, ptr %19428, align 4, !tbaa !5
  %19430 = call ptr @strerror(i32 noundef %19429) #10
  %19431 = call ptr @__errno_location() #11
  %19432 = load i32, ptr %19431, align 4, !tbaa !5
  %19433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19420, ptr noundef @.str.2, i32 noundef %19421, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 1313, ptr noundef %19424, ptr noundef %19427, ptr noundef %19430, i32 noundef %19432) #10
  br label %19451

19434:                                            ; preds = %19412, %19405
  %19435 = load i32, ptr %604, align 4, !tbaa !5
  %19436 = call ptr @__errno_location() #11
  store i32 %19435, ptr %19436, align 4, !tbaa !5
  %19437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19438 = load i32, ptr @test_count, align 4, !tbaa !5
  %19439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19440 = load i32, ptr %19439, align 4, !tbaa !5
  %19441 = call ptr @s2n_strerror(i32 noundef %19440, ptr noundef @.str.4)
  %19442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19443 = load i32, ptr %19442, align 4, !tbaa !5
  %19444 = call ptr @s2n_strerror_debug(i32 noundef %19443, ptr noundef @.str.4)
  %19445 = call ptr @__errno_location() #11
  %19446 = load i32, ptr %19445, align 4, !tbaa !5
  %19447 = call ptr @strerror(i32 noundef %19446) #10
  %19448 = call ptr @__errno_location() #11
  %19449 = load i32, ptr %19448, align 4, !tbaa !5
  %19450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19437, ptr noundef @.str.5, i32 noundef %19438, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 1313, ptr noundef %19441, ptr noundef %19444, ptr noundef %19447, i32 noundef %19449) #10
  br label %19451

19451:                                            ; preds = %19434, %19417
  call void @llvm.lifetime.end.p0(i64 4, ptr %604) #10
  br label %19452

19452:                                            ; preds = %19451
  br label %19453

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

19454:                                            ; No predecessors!
  br label %19455

19455:                                            ; preds = %19454
  br label %19456

19456:                                            ; preds = %19455, %19396
  br label %19457

19457:                                            ; preds = %19456
  br label %19458

19458:                                            ; preds = %19457
  br label %19459

19459:                                            ; preds = %19458
  %19460 = load i32, ptr @test_count, align 4, !tbaa !5
  %19461 = add nsw i32 %19460, 1
  store i32 %19461, ptr @test_count, align 4, !tbaa !5
  %19462 = load ptr, ptr %603, align 8, !tbaa !9
  %19463 = load ptr, ptr %598, align 8, !tbaa !9
  %19464 = call i32 @s2n_connection_set_config(ptr noundef %19462, ptr noundef %19463)
  %19465 = icmp eq i32 %19464, -1
  br i1 %19465, label %19466, label %19519

19466:                                            ; preds = %19459
  br label %19467

19467:                                            ; preds = %19466
  br label %19468

19468:                                            ; preds = %19467
  call void @llvm.lifetime.start.p0(i64 4, ptr %605) #10
  %19469 = call ptr @__errno_location() #11
  %19470 = load i32, ptr %19469, align 4, !tbaa !5
  store i32 %19470, ptr %605, align 4, !tbaa !5
  %19471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19472 = call i32 @s2n_print_stacktrace(ptr noundef %19471)
  %19473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19474 = trunc i8 %19473 to i1
  br i1 %19474, label %19475, label %19497

19475:                                            ; preds = %19468
  %19476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19477 = call i32 @fileno(ptr noundef %19476) #10
  %19478 = call i32 @isatty(i32 noundef %19477) #10
  %19479 = icmp ne i32 %19478, 0
  br i1 %19479, label %19480, label %19497

19480:                                            ; preds = %19475
  %19481 = load i32, ptr %605, align 4, !tbaa !5
  %19482 = call ptr @__errno_location() #11
  store i32 %19481, ptr %19482, align 4, !tbaa !5
  %19483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19484 = load i32, ptr @test_count, align 4, !tbaa !5
  %19485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19486 = load i32, ptr %19485, align 4, !tbaa !5
  %19487 = call ptr @s2n_strerror(i32 noundef %19486, ptr noundef @.str.4)
  %19488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19489 = load i32, ptr %19488, align 4, !tbaa !5
  %19490 = call ptr @s2n_strerror_debug(i32 noundef %19489, ptr noundef @.str.4)
  %19491 = call ptr @__errno_location() #11
  %19492 = load i32, ptr %19491, align 4, !tbaa !5
  %19493 = call ptr @strerror(i32 noundef %19492) #10
  %19494 = call ptr @__errno_location() #11
  %19495 = load i32, ptr %19494, align 4, !tbaa !5
  %19496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19483, ptr noundef @.str.2, i32 noundef %19484, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 1314, ptr noundef %19487, ptr noundef %19490, ptr noundef %19493, i32 noundef %19495) #10
  br label %19514

19497:                                            ; preds = %19475, %19468
  %19498 = load i32, ptr %605, align 4, !tbaa !5
  %19499 = call ptr @__errno_location() #11
  store i32 %19498, ptr %19499, align 4, !tbaa !5
  %19500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19501 = load i32, ptr @test_count, align 4, !tbaa !5
  %19502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19503 = load i32, ptr %19502, align 4, !tbaa !5
  %19504 = call ptr @s2n_strerror(i32 noundef %19503, ptr noundef @.str.4)
  %19505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19506 = load i32, ptr %19505, align 4, !tbaa !5
  %19507 = call ptr @s2n_strerror_debug(i32 noundef %19506, ptr noundef @.str.4)
  %19508 = call ptr @__errno_location() #11
  %19509 = load i32, ptr %19508, align 4, !tbaa !5
  %19510 = call ptr @strerror(i32 noundef %19509) #10
  %19511 = call ptr @__errno_location() #11
  %19512 = load i32, ptr %19511, align 4, !tbaa !5
  %19513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19500, ptr noundef @.str.5, i32 noundef %19501, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 1314, ptr noundef %19504, ptr noundef %19507, ptr noundef %19510, i32 noundef %19512) #10
  br label %19514

19514:                                            ; preds = %19497, %19480
  call void @llvm.lifetime.end.p0(i64 4, ptr %605) #10
  br label %19515

19515:                                            ; preds = %19514
  br label %19516

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

19517:                                            ; No predecessors!
  br label %19518

19518:                                            ; preds = %19517
  br label %19519

19519:                                            ; preds = %19518, %19459
  br label %19520

19520:                                            ; preds = %19519
  br label %19521

19521:                                            ; preds = %19520
  call void @llvm.lifetime.start.p0(i64 8, ptr %606) #10
  br label %19522

19522:                                            ; preds = %19521
  %19523 = load i32, ptr @test_count, align 4, !tbaa !5
  %19524 = add nsw i32 %19523, 1
  store i32 %19524, ptr @test_count, align 4, !tbaa !5
  %19525 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %606)
  %19526 = icmp eq i32 %19525, -1
  br i1 %19526, label %19527, label %19580

19527:                                            ; preds = %19522
  br label %19528

19528:                                            ; preds = %19527
  br label %19529

19529:                                            ; preds = %19528
  call void @llvm.lifetime.start.p0(i64 4, ptr %607) #10
  %19530 = call ptr @__errno_location() #11
  %19531 = load i32, ptr %19530, align 4, !tbaa !5
  store i32 %19531, ptr %607, align 4, !tbaa !5
  %19532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19533 = call i32 @s2n_print_stacktrace(ptr noundef %19532)
  %19534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19535 = trunc i8 %19534 to i1
  br i1 %19535, label %19536, label %19558

19536:                                            ; preds = %19529
  %19537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19538 = call i32 @fileno(ptr noundef %19537) #10
  %19539 = call i32 @isatty(i32 noundef %19538) #10
  %19540 = icmp ne i32 %19539, 0
  br i1 %19540, label %19541, label %19558

19541:                                            ; preds = %19536
  %19542 = load i32, ptr %607, align 4, !tbaa !5
  %19543 = call ptr @__errno_location() #11
  store i32 %19542, ptr %19543, align 4, !tbaa !5
  %19544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19545 = load i32, ptr @test_count, align 4, !tbaa !5
  %19546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19547 = load i32, ptr %19546, align 4, !tbaa !5
  %19548 = call ptr @s2n_strerror(i32 noundef %19547, ptr noundef @.str.4)
  %19549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19550 = load i32, ptr %19549, align 4, !tbaa !5
  %19551 = call ptr @s2n_strerror_debug(i32 noundef %19550, ptr noundef @.str.4)
  %19552 = call ptr @__errno_location() #11
  %19553 = load i32, ptr %19552, align 4, !tbaa !5
  %19554 = call ptr @strerror(i32 noundef %19553) #10
  %19555 = call ptr @__errno_location() #11
  %19556 = load i32, ptr %19555, align 4, !tbaa !5
  %19557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19544, ptr noundef @.str.2, i32 noundef %19545, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 1318, ptr noundef %19548, ptr noundef %19551, ptr noundef %19554, i32 noundef %19556) #10
  br label %19575

19558:                                            ; preds = %19536, %19529
  %19559 = load i32, ptr %607, align 4, !tbaa !5
  %19560 = call ptr @__errno_location() #11
  store i32 %19559, ptr %19560, align 4, !tbaa !5
  %19561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19562 = load i32, ptr @test_count, align 4, !tbaa !5
  %19563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19564 = load i32, ptr %19563, align 4, !tbaa !5
  %19565 = call ptr @s2n_strerror(i32 noundef %19564, ptr noundef @.str.4)
  %19566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19567 = load i32, ptr %19566, align 4, !tbaa !5
  %19568 = call ptr @s2n_strerror_debug(i32 noundef %19567, ptr noundef @.str.4)
  %19569 = call ptr @__errno_location() #11
  %19570 = load i32, ptr %19569, align 4, !tbaa !5
  %19571 = call ptr @strerror(i32 noundef %19570) #10
  %19572 = call ptr @__errno_location() #11
  %19573 = load i32, ptr %19572, align 4, !tbaa !5
  %19574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19561, ptr noundef @.str.5, i32 noundef %19562, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 1318, ptr noundef %19565, ptr noundef %19568, ptr noundef %19571, i32 noundef %19573) #10
  br label %19575

19575:                                            ; preds = %19558, %19541
  call void @llvm.lifetime.end.p0(i64 4, ptr %607) #10
  br label %19576

19576:                                            ; preds = %19575
  br label %19577

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

19578:                                            ; No predecessors!
  br label %19579

19579:                                            ; preds = %19578
  br label %19580

19580:                                            ; preds = %19579, %19522
  br label %19581

19581:                                            ; preds = %19580
  br label %19582

19582:                                            ; preds = %19581
  br label %19583

19583:                                            ; preds = %19582
  %19584 = load i32, ptr @test_count, align 4, !tbaa !5
  %19585 = add nsw i32 %19584, 1
  store i32 %19585, ptr @test_count, align 4, !tbaa !5
  %19586 = load ptr, ptr %602, align 8, !tbaa !9
  %19587 = load ptr, ptr %603, align 8, !tbaa !9
  %19588 = call i32 @s2n_connections_set_io_pair(ptr noundef %19586, ptr noundef %19587, ptr noundef %606)
  %19589 = icmp eq i32 %19588, -1
  br i1 %19589, label %19590, label %19643

19590:                                            ; preds = %19583
  br label %19591

19591:                                            ; preds = %19590
  br label %19592

19592:                                            ; preds = %19591
  call void @llvm.lifetime.start.p0(i64 4, ptr %608) #10
  %19593 = call ptr @__errno_location() #11
  %19594 = load i32, ptr %19593, align 4, !tbaa !5
  store i32 %19594, ptr %608, align 4, !tbaa !5
  %19595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19596 = call i32 @s2n_print_stacktrace(ptr noundef %19595)
  %19597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19598 = trunc i8 %19597 to i1
  br i1 %19598, label %19599, label %19621

19599:                                            ; preds = %19592
  %19600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19601 = call i32 @fileno(ptr noundef %19600) #10
  %19602 = call i32 @isatty(i32 noundef %19601) #10
  %19603 = icmp ne i32 %19602, 0
  br i1 %19603, label %19604, label %19621

19604:                                            ; preds = %19599
  %19605 = load i32, ptr %608, align 4, !tbaa !5
  %19606 = call ptr @__errno_location() #11
  store i32 %19605, ptr %19606, align 4, !tbaa !5
  %19607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19608 = load i32, ptr @test_count, align 4, !tbaa !5
  %19609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19610 = load i32, ptr %19609, align 4, !tbaa !5
  %19611 = call ptr @s2n_strerror(i32 noundef %19610, ptr noundef @.str.4)
  %19612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19613 = load i32, ptr %19612, align 4, !tbaa !5
  %19614 = call ptr @s2n_strerror_debug(i32 noundef %19613, ptr noundef @.str.4)
  %19615 = call ptr @__errno_location() #11
  %19616 = load i32, ptr %19615, align 4, !tbaa !5
  %19617 = call ptr @strerror(i32 noundef %19616) #10
  %19618 = call ptr @__errno_location() #11
  %19619 = load i32, ptr %19618, align 4, !tbaa !5
  %19620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19607, ptr noundef @.str.2, i32 noundef %19608, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 1319, ptr noundef %19611, ptr noundef %19614, ptr noundef %19617, i32 noundef %19619) #10
  br label %19638

19621:                                            ; preds = %19599, %19592
  %19622 = load i32, ptr %608, align 4, !tbaa !5
  %19623 = call ptr @__errno_location() #11
  store i32 %19622, ptr %19623, align 4, !tbaa !5
  %19624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19625 = load i32, ptr @test_count, align 4, !tbaa !5
  %19626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19627 = load i32, ptr %19626, align 4, !tbaa !5
  %19628 = call ptr @s2n_strerror(i32 noundef %19627, ptr noundef @.str.4)
  %19629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19630 = load i32, ptr %19629, align 4, !tbaa !5
  %19631 = call ptr @s2n_strerror_debug(i32 noundef %19630, ptr noundef @.str.4)
  %19632 = call ptr @__errno_location() #11
  %19633 = load i32, ptr %19632, align 4, !tbaa !5
  %19634 = call ptr @strerror(i32 noundef %19633) #10
  %19635 = call ptr @__errno_location() #11
  %19636 = load i32, ptr %19635, align 4, !tbaa !5
  %19637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19624, ptr noundef @.str.5, i32 noundef %19625, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 1319, ptr noundef %19628, ptr noundef %19631, ptr noundef %19634, i32 noundef %19636) #10
  br label %19638

19638:                                            ; preds = %19621, %19604
  call void @llvm.lifetime.end.p0(i64 4, ptr %608) #10
  br label %19639

19639:                                            ; preds = %19638
  br label %19640

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

19641:                                            ; No predecessors!
  br label %19642

19642:                                            ; preds = %19641
  br label %19643

19643:                                            ; preds = %19642, %19583
  br label %19644

19644:                                            ; preds = %19643
  br label %19645

19645:                                            ; preds = %19644
  %19646 = load ptr, ptr %602, align 8, !tbaa !9
  %19647 = getelementptr inbounds %struct.s2n_connection, ptr %19646, i32 0, i32 2
  store ptr %595, ptr %19647, align 8, !tbaa !26
  %19648 = load ptr, ptr %603, align 8, !tbaa !9
  %19649 = getelementptr inbounds %struct.s2n_connection, ptr %19648, i32 0, i32 2
  store ptr %595, ptr %19649, align 8, !tbaa !26
  br label %19650

19650:                                            ; preds = %19645
  %19651 = load i32, ptr @test_count, align 4, !tbaa !5
  %19652 = add nsw i32 %19651, 1
  store i32 %19652, ptr @test_count, align 4, !tbaa !5
  %19653 = load ptr, ptr %603, align 8, !tbaa !9
  %19654 = load ptr, ptr %602, align 8, !tbaa !9
  %19655 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %19653, ptr noundef %19654)
  %19656 = icmp eq i32 %19655, -1
  br i1 %19656, label %19657, label %19710

19657:                                            ; preds = %19650
  br label %19658

19658:                                            ; preds = %19657
  br label %19659

19659:                                            ; preds = %19658
  call void @llvm.lifetime.start.p0(i64 4, ptr %609) #10
  %19660 = call ptr @__errno_location() #11
  %19661 = load i32, ptr %19660, align 4, !tbaa !5
  store i32 %19661, ptr %609, align 4, !tbaa !5
  %19662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19663 = call i32 @s2n_print_stacktrace(ptr noundef %19662)
  %19664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19665 = trunc i8 %19664 to i1
  br i1 %19665, label %19666, label %19688

19666:                                            ; preds = %19659
  %19667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19668 = call i32 @fileno(ptr noundef %19667) #10
  %19669 = call i32 @isatty(i32 noundef %19668) #10
  %19670 = icmp ne i32 %19669, 0
  br i1 %19670, label %19671, label %19688

19671:                                            ; preds = %19666
  %19672 = load i32, ptr %609, align 4, !tbaa !5
  %19673 = call ptr @__errno_location() #11
  store i32 %19672, ptr %19673, align 4, !tbaa !5
  %19674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19675 = load i32, ptr @test_count, align 4, !tbaa !5
  %19676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19677 = load i32, ptr %19676, align 4, !tbaa !5
  %19678 = call ptr @s2n_strerror(i32 noundef %19677, ptr noundef @.str.4)
  %19679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19680 = load i32, ptr %19679, align 4, !tbaa !5
  %19681 = call ptr @s2n_strerror_debug(i32 noundef %19680, ptr noundef @.str.4)
  %19682 = call ptr @__errno_location() #11
  %19683 = load i32, ptr %19682, align 4, !tbaa !5
  %19684 = call ptr @strerror(i32 noundef %19683) #10
  %19685 = call ptr @__errno_location() #11
  %19686 = load i32, ptr %19685, align 4, !tbaa !5
  %19687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19674, ptr noundef @.str.2, i32 noundef %19675, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 1325, ptr noundef %19678, ptr noundef %19681, ptr noundef %19684, i32 noundef %19686) #10
  br label %19705

19688:                                            ; preds = %19666, %19659
  %19689 = load i32, ptr %609, align 4, !tbaa !5
  %19690 = call ptr @__errno_location() #11
  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() #11
  %19700 = load i32, ptr %19699, align 4, !tbaa !5
  %19701 = call ptr @strerror(i32 noundef %19700) #10
  %19702 = call ptr @__errno_location() #11
  %19703 = load i32, ptr %19702, align 4, !tbaa !5
  %19704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19691, ptr noundef @.str.5, i32 noundef %19692, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 1325, ptr noundef %19695, ptr noundef %19698, ptr noundef %19701, i32 noundef %19703) #10
  br label %19705

19705:                                            ; preds = %19688, %19671
  call void @llvm.lifetime.end.p0(i64 4, ptr %609) #10
  br label %19706

19706:                                            ; preds = %19705
  br label %19707

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

19708:                                            ; No predecessors!
  br label %19709

19709:                                            ; preds = %19708
  br label %19710

19710:                                            ; preds = %19709, %19650
  br label %19711

19711:                                            ; preds = %19710
  br label %19712

19712:                                            ; preds = %19711
  br label %19713

19713:                                            ; preds = %19712
  %19714 = load i32, ptr @test_count, align 4, !tbaa !5
  %19715 = add nsw i32 %19714, 1
  store i32 %19715, ptr @test_count, align 4, !tbaa !5
  %19716 = load ptr, ptr %602, align 8, !tbaa !9
  %19717 = getelementptr inbounds %struct.s2n_connection, ptr %19716, i32 0, i32 23
  %19718 = load i8, ptr %19717, align 4, !tbaa !50
  %19719 = zext i8 %19718 to i32
  %19720 = icmp eq i32 %19719, 33
  br i1 %19720, label %19774, label %19721

19721:                                            ; preds = %19713
  br label %19722

19722:                                            ; preds = %19721
  br label %19723

19723:                                            ; preds = %19722
  call void @llvm.lifetime.start.p0(i64 4, ptr %610) #10
  %19724 = call ptr @__errno_location() #11
  %19725 = load i32, ptr %19724, align 4, !tbaa !5
  store i32 %19725, ptr %610, align 4, !tbaa !5
  %19726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19727 = call i32 @s2n_print_stacktrace(ptr noundef %19726)
  %19728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19729 = trunc i8 %19728 to i1
  br i1 %19729, label %19730, label %19752

19730:                                            ; preds = %19723
  %19731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19732 = call i32 @fileno(ptr noundef %19731) #10
  %19733 = call i32 @isatty(i32 noundef %19732) #10
  %19734 = icmp ne i32 %19733, 0
  br i1 %19734, label %19735, label %19752

19735:                                            ; preds = %19730
  %19736 = load i32, ptr %610, align 4, !tbaa !5
  %19737 = call ptr @__errno_location() #11
  store i32 %19736, ptr %19737, align 4, !tbaa !5
  %19738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19739 = load i32, ptr @test_count, align 4, !tbaa !5
  %19740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19741 = load i32, ptr %19740, align 4, !tbaa !5
  %19742 = call ptr @s2n_strerror(i32 noundef %19741, ptr noundef @.str.4)
  %19743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19744 = load i32, ptr %19743, align 4, !tbaa !5
  %19745 = call ptr @s2n_strerror_debug(i32 noundef %19744, ptr noundef @.str.4)
  %19746 = call ptr @__errno_location() #11
  %19747 = load i32, ptr %19746, align 4, !tbaa !5
  %19748 = call ptr @strerror(i32 noundef %19747) #10
  %19749 = call ptr @__errno_location() #11
  %19750 = load i32, ptr %19749, align 4, !tbaa !5
  %19751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19738, ptr noundef @.str.2, i32 noundef %19739, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 1326, ptr noundef %19742, ptr noundef %19745, ptr noundef %19748, i32 noundef %19750) #10
  br label %19769

19752:                                            ; preds = %19730, %19723
  %19753 = load i32, ptr %610, align 4, !tbaa !5
  %19754 = call ptr @__errno_location() #11
  store i32 %19753, ptr %19754, align 4, !tbaa !5
  %19755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19756 = load i32, ptr @test_count, align 4, !tbaa !5
  %19757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19758 = load i32, ptr %19757, align 4, !tbaa !5
  %19759 = call ptr @s2n_strerror(i32 noundef %19758, ptr noundef @.str.4)
  %19760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19761 = load i32, ptr %19760, align 4, !tbaa !5
  %19762 = call ptr @s2n_strerror_debug(i32 noundef %19761, ptr noundef @.str.4)
  %19763 = call ptr @__errno_location() #11
  %19764 = load i32, ptr %19763, align 4, !tbaa !5
  %19765 = call ptr @strerror(i32 noundef %19764) #10
  %19766 = call ptr @__errno_location() #11
  %19767 = load i32, ptr %19766, align 4, !tbaa !5
  %19768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19755, ptr noundef @.str.5, i32 noundef %19756, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 1326, ptr noundef %19759, ptr noundef %19762, ptr noundef %19765, i32 noundef %19767) #10
  br label %19769

19769:                                            ; preds = %19752, %19735
  call void @llvm.lifetime.end.p0(i64 4, ptr %610) #10
  br label %19770

19770:                                            ; preds = %19769
  br label %19771

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

19772:                                            ; No predecessors!
  br label %19773

19773:                                            ; preds = %19772
  br label %19774

19774:                                            ; preds = %19773, %19713
  br label %19775

19775:                                            ; preds = %19774
  br label %19776

19776:                                            ; preds = %19775
  br label %19777

19777:                                            ; preds = %19776
  %19778 = load i32, ptr @test_count, align 4, !tbaa !5
  %19779 = add nsw i32 %19778, 1
  store i32 %19779, ptr @test_count, align 4, !tbaa !5
  %19780 = load ptr, ptr %603, align 8, !tbaa !9
  %19781 = getelementptr inbounds %struct.s2n_connection, ptr %19780, i32 0, i32 23
  %19782 = load i8, ptr %19781, align 4, !tbaa !50
  %19783 = zext i8 %19782 to i32
  %19784 = icmp eq i32 %19783, 33
  br i1 %19784, label %19838, label %19785

19785:                                            ; preds = %19777
  br label %19786

19786:                                            ; preds = %19785
  br label %19787

19787:                                            ; preds = %19786
  call void @llvm.lifetime.start.p0(i64 4, ptr %611) #10
  %19788 = call ptr @__errno_location() #11
  %19789 = load i32, ptr %19788, align 4, !tbaa !5
  store i32 %19789, ptr %611, align 4, !tbaa !5
  %19790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19791 = call i32 @s2n_print_stacktrace(ptr noundef %19790)
  %19792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19793 = trunc i8 %19792 to i1
  br i1 %19793, label %19794, label %19816

19794:                                            ; preds = %19787
  %19795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19796 = call i32 @fileno(ptr noundef %19795) #10
  %19797 = call i32 @isatty(i32 noundef %19796) #10
  %19798 = icmp ne i32 %19797, 0
  br i1 %19798, label %19799, label %19816

19799:                                            ; preds = %19794
  %19800 = load i32, ptr %611, align 4, !tbaa !5
  %19801 = call ptr @__errno_location() #11
  store i32 %19800, ptr %19801, align 4, !tbaa !5
  %19802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19803 = load i32, ptr @test_count, align 4, !tbaa !5
  %19804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19805 = load i32, ptr %19804, align 4, !tbaa !5
  %19806 = call ptr @s2n_strerror(i32 noundef %19805, ptr noundef @.str.4)
  %19807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19808 = load i32, ptr %19807, align 4, !tbaa !5
  %19809 = call ptr @s2n_strerror_debug(i32 noundef %19808, ptr noundef @.str.4)
  %19810 = call ptr @__errno_location() #11
  %19811 = load i32, ptr %19810, align 4, !tbaa !5
  %19812 = call ptr @strerror(i32 noundef %19811) #10
  %19813 = call ptr @__errno_location() #11
  %19814 = load i32, ptr %19813, align 4, !tbaa !5
  %19815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19802, ptr noundef @.str.2, i32 noundef %19803, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 1327, ptr noundef %19806, ptr noundef %19809, ptr noundef %19812, i32 noundef %19814) #10
  br label %19833

19816:                                            ; preds = %19794, %19787
  %19817 = load i32, ptr %611, align 4, !tbaa !5
  %19818 = call ptr @__errno_location() #11
  store i32 %19817, ptr %19818, align 4, !tbaa !5
  %19819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19820 = load i32, ptr @test_count, align 4, !tbaa !5
  %19821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19822 = load i32, ptr %19821, align 4, !tbaa !5
  %19823 = call ptr @s2n_strerror(i32 noundef %19822, ptr noundef @.str.4)
  %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_debug(i32 noundef %19825, ptr noundef @.str.4)
  %19827 = call ptr @__errno_location() #11
  %19828 = load i32, ptr %19827, align 4, !tbaa !5
  %19829 = call ptr @strerror(i32 noundef %19828) #10
  %19830 = call ptr @__errno_location() #11
  %19831 = load i32, ptr %19830, align 4, !tbaa !5
  %19832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19819, ptr noundef @.str.5, i32 noundef %19820, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 1327, ptr noundef %19823, ptr noundef %19826, ptr noundef %19829, i32 noundef %19831) #10
  br label %19833

19833:                                            ; preds = %19816, %19799
  call void @llvm.lifetime.end.p0(i64 4, ptr %611) #10
  br label %19834

19834:                                            ; preds = %19833
  br label %19835

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

19836:                                            ; No predecessors!
  br label %19837

19837:                                            ; preds = %19836
  br label %19838

19838:                                            ; preds = %19837, %19777
  br label %19839

19839:                                            ; preds = %19838
  br label %19840

19840:                                            ; preds = %19839
  %19841 = call i32 @s2n_io_pair_close(ptr noundef %606)
  call void @llvm.lifetime.end.p0(i64 8, ptr %606) #10
  %19842 = call i32 @s2n_connection_ptr_free(ptr noundef %603)
  %19843 = getelementptr inbounds %struct.s2n_result, ptr %612, i32 0, i32 0
  store i32 %19842, ptr %19843, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %603) #10
  %19844 = call i32 @s2n_connection_ptr_free(ptr noundef %602)
  %19845 = getelementptr inbounds %struct.s2n_result, ptr %613, i32 0, i32 0
  store i32 %19844, ptr %19845, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %602) #10
  %19846 = call i32 @s2n_config_ptr_free(ptr noundef %598)
  %19847 = getelementptr inbounds %struct.s2n_result, ptr %614, i32 0, i32 0
  store i32 %19846, ptr %19847, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %598) #10
  br label %19848

19848:                                            ; preds = %19840
  %19849 = load i64, ptr %597, align 8, !tbaa !54
  %19850 = add i64 %19849, 1
  store i64 %19850, ptr %597, align 8, !tbaa !54
  br label %19200, !llvm.loop !90

19851:                                            ; preds = %19203
  call void @llvm.lifetime.start.p0(i64 8, ptr %615) #10
  store i64 0, ptr %615, align 8, !tbaa !54
  br label %19852

19852:                                            ; preds = %20760, %19851
  %19853 = load i64, ptr %615, align 8, !tbaa !54
  %19854 = icmp ult i64 %19853, 2
  br i1 %19854, label %19856, label %19855

19855:                                            ; preds = %19852
  store i32 1860, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %615) #10
  br label %20763

19856:                                            ; preds = %19852
  call void @llvm.lifetime.start.p0(i64 8, ptr %616) #10
  %19857 = call ptr @s2n_config_new()
  store ptr %19857, ptr %616, align 8, !tbaa !9
  br label %19858

19858:                                            ; preds = %19856
  %19859 = load i32, ptr @test_count, align 4, !tbaa !5
  %19860 = add nsw i32 %19859, 1
  store i32 %19860, ptr @test_count, align 4, !tbaa !5
  %19861 = load ptr, ptr %616, align 8, !tbaa !9
  %19862 = icmp eq ptr %19861, null
  br i1 %19862, label %19863, label %19916

19863:                                            ; preds = %19858
  br label %19864

19864:                                            ; preds = %19863
  br label %19865

19865:                                            ; preds = %19864
  call void @llvm.lifetime.start.p0(i64 4, ptr %617) #10
  %19866 = call ptr @__errno_location() #11
  %19867 = load i32, ptr %19866, align 4, !tbaa !5
  store i32 %19867, ptr %617, align 4, !tbaa !5
  %19868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19869 = call i32 @s2n_print_stacktrace(ptr noundef %19868)
  %19870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19871 = trunc i8 %19870 to i1
  br i1 %19871, label %19872, label %19894

19872:                                            ; preds = %19865
  %19873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19874 = call i32 @fileno(ptr noundef %19873) #10
  %19875 = call i32 @isatty(i32 noundef %19874) #10
  %19876 = icmp ne i32 %19875, 0
  br i1 %19876, label %19877, label %19894

19877:                                            ; preds = %19872
  %19878 = load i32, ptr %617, align 4, !tbaa !5
  %19879 = call ptr @__errno_location() #11
  store i32 %19878, ptr %19879, align 4, !tbaa !5
  %19880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19881 = load i32, ptr @test_count, align 4, !tbaa !5
  %19882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19883 = load i32, ptr %19882, align 4, !tbaa !5
  %19884 = call ptr @s2n_strerror(i32 noundef %19883, ptr noundef @.str.4)
  %19885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19886 = load i32, ptr %19885, align 4, !tbaa !5
  %19887 = call ptr @s2n_strerror_debug(i32 noundef %19886, ptr noundef @.str.4)
  %19888 = call ptr @__errno_location() #11
  %19889 = load i32, ptr %19888, align 4, !tbaa !5
  %19890 = call ptr @strerror(i32 noundef %19889) #10
  %19891 = call ptr @__errno_location() #11
  %19892 = load i32, ptr %19891, align 4, !tbaa !5
  %19893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19880, ptr noundef @.str.2, i32 noundef %19881, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 1334, ptr noundef %19884, ptr noundef %19887, ptr noundef %19890, i32 noundef %19892) #10
  br label %19911

19894:                                            ; preds = %19872, %19865
  %19895 = load i32, ptr %617, align 4, !tbaa !5
  %19896 = call ptr @__errno_location() #11
  store i32 %19895, ptr %19896, align 4, !tbaa !5
  %19897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19898 = load i32, ptr @test_count, align 4, !tbaa !5
  %19899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19900 = load i32, ptr %19899, align 4, !tbaa !5
  %19901 = call ptr @s2n_strerror(i32 noundef %19900, ptr noundef @.str.4)
  %19902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19903 = load i32, ptr %19902, align 4, !tbaa !5
  %19904 = call ptr @s2n_strerror_debug(i32 noundef %19903, ptr noundef @.str.4)
  %19905 = call ptr @__errno_location() #11
  %19906 = load i32, ptr %19905, align 4, !tbaa !5
  %19907 = call ptr @strerror(i32 noundef %19906) #10
  %19908 = call ptr @__errno_location() #11
  %19909 = load i32, ptr %19908, align 4, !tbaa !5
  %19910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19897, ptr noundef @.str.5, i32 noundef %19898, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 1334, ptr noundef %19901, ptr noundef %19904, ptr noundef %19907, i32 noundef %19909) #10
  br label %19911

19911:                                            ; preds = %19894, %19877
  call void @llvm.lifetime.end.p0(i64 4, ptr %617) #10
  br label %19912

19912:                                            ; preds = %19911
  br label %19913

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

19914:                                            ; No predecessors!
  br label %19915

19915:                                            ; preds = %19914
  br label %19916

19916:                                            ; preds = %19915, %19858
  br label %19917

19917:                                            ; preds = %19916
  br label %19918

19918:                                            ; preds = %19917
  br label %19919

19919:                                            ; preds = %19918
  %19920 = load i32, ptr @test_count, align 4, !tbaa !5
  %19921 = add nsw i32 %19920, 1
  store i32 %19921, ptr @test_count, align 4, !tbaa !5
  %19922 = load ptr, ptr %616, align 8, !tbaa !9
  %19923 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %19922)
  %19924 = icmp eq i32 %19923, -1
  br i1 %19924, label %19925, label %19978

19925:                                            ; preds = %19919
  br label %19926

19926:                                            ; preds = %19925
  br label %19927

19927:                                            ; preds = %19926
  call void @llvm.lifetime.start.p0(i64 4, ptr %618) #10
  %19928 = call ptr @__errno_location() #11
  %19929 = load i32, ptr %19928, align 4, !tbaa !5
  store i32 %19929, ptr %618, align 4, !tbaa !5
  %19930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19931 = call i32 @s2n_print_stacktrace(ptr noundef %19930)
  %19932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19933 = trunc i8 %19932 to i1
  br i1 %19933, label %19934, label %19956

19934:                                            ; preds = %19927
  %19935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19936 = call i32 @fileno(ptr noundef %19935) #10
  %19937 = call i32 @isatty(i32 noundef %19936) #10
  %19938 = icmp ne i32 %19937, 0
  br i1 %19938, label %19939, label %19956

19939:                                            ; preds = %19934
  %19940 = load i32, ptr %618, align 4, !tbaa !5
  %19941 = call ptr @__errno_location() #11
  store i32 %19940, ptr %19941, align 4, !tbaa !5
  %19942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19943 = load i32, ptr @test_count, align 4, !tbaa !5
  %19944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19945 = load i32, ptr %19944, align 4, !tbaa !5
  %19946 = call ptr @s2n_strerror(i32 noundef %19945, ptr noundef @.str.4)
  %19947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19948 = load i32, ptr %19947, align 4, !tbaa !5
  %19949 = call ptr @s2n_strerror_debug(i32 noundef %19948, ptr noundef @.str.4)
  %19950 = call ptr @__errno_location() #11
  %19951 = load i32, ptr %19950, align 4, !tbaa !5
  %19952 = call ptr @strerror(i32 noundef %19951) #10
  %19953 = call ptr @__errno_location() #11
  %19954 = load i32, ptr %19953, align 4, !tbaa !5
  %19955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19942, ptr noundef @.str.2, i32 noundef %19943, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 1335, ptr noundef %19946, ptr noundef %19949, ptr noundef %19952, i32 noundef %19954) #10
  br label %19973

19956:                                            ; preds = %19934, %19927
  %19957 = load i32, ptr %618, align 4, !tbaa !5
  %19958 = call ptr @__errno_location() #11
  store i32 %19957, ptr %19958, align 4, !tbaa !5
  %19959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19960 = load i32, ptr @test_count, align 4, !tbaa !5
  %19961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19962 = load i32, ptr %19961, align 4, !tbaa !5
  %19963 = call ptr @s2n_strerror(i32 noundef %19962, ptr noundef @.str.4)
  %19964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19965 = load i32, ptr %19964, align 4, !tbaa !5
  %19966 = call ptr @s2n_strerror_debug(i32 noundef %19965, ptr noundef @.str.4)
  %19967 = call ptr @__errno_location() #11
  %19968 = load i32, ptr %19967, align 4, !tbaa !5
  %19969 = call ptr @strerror(i32 noundef %19968) #10
  %19970 = call ptr @__errno_location() #11
  %19971 = load i32, ptr %19970, align 4, !tbaa !5
  %19972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19959, ptr noundef @.str.5, i32 noundef %19960, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 1335, ptr noundef %19963, ptr noundef %19966, ptr noundef %19969, i32 noundef %19971) #10
  br label %19973

19973:                                            ; preds = %19956, %19939
  call void @llvm.lifetime.end.p0(i64 4, ptr %618) #10
  br label %19974

19974:                                            ; preds = %19973
  br label %19975

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

19976:                                            ; No predecessors!
  br label %19977

19977:                                            ; preds = %19976
  br label %19978

19978:                                            ; preds = %19977, %19919
  br label %19979

19979:                                            ; preds = %19978
  br label %19980

19980:                                            ; preds = %19979
  br label %19981

19981:                                            ; preds = %19980
  %19982 = load i32, ptr @test_count, align 4, !tbaa !5
  %19983 = add nsw i32 %19982, 1
  store i32 %19983, ptr @test_count, align 4, !tbaa !5
  %19984 = load ptr, ptr %616, align 8, !tbaa !9
  %19985 = load i64, ptr %615, align 8, !tbaa !54
  %19986 = getelementptr inbounds [2 x ptr], ptr %14, i64 0, i64 %19985
  %19987 = load ptr, ptr %19986, align 8, !tbaa !9
  %19988 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %19984, ptr noundef %19987)
  %19989 = icmp eq i32 %19988, -1
  br i1 %19989, label %19990, label %20043

19990:                                            ; preds = %19981
  br label %19991

19991:                                            ; preds = %19990
  br label %19992

19992:                                            ; preds = %19991
  call void @llvm.lifetime.start.p0(i64 4, ptr %619) #10
  %19993 = call ptr @__errno_location() #11
  %19994 = load i32, ptr %19993, align 4, !tbaa !5
  store i32 %19994, ptr %619, align 4, !tbaa !5
  %19995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19996 = call i32 @s2n_print_stacktrace(ptr noundef %19995)
  %19997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19998 = trunc i8 %19997 to i1
  br i1 %19998, label %19999, label %20021

19999:                                            ; preds = %19992
  %20000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20001 = call i32 @fileno(ptr noundef %20000) #10
  %20002 = call i32 @isatty(i32 noundef %20001) #10
  %20003 = icmp ne i32 %20002, 0
  br i1 %20003, label %20004, label %20021

20004:                                            ; preds = %19999
  %20005 = load i32, ptr %619, align 4, !tbaa !5
  %20006 = call ptr @__errno_location() #11
  store i32 %20005, ptr %20006, align 4, !tbaa !5
  %20007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20008 = load i32, ptr @test_count, align 4, !tbaa !5
  %20009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20010 = load i32, ptr %20009, align 4, !tbaa !5
  %20011 = call ptr @s2n_strerror(i32 noundef %20010, ptr noundef @.str.4)
  %20012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20013 = load i32, ptr %20012, align 4, !tbaa !5
  %20014 = call ptr @s2n_strerror_debug(i32 noundef %20013, ptr noundef @.str.4)
  %20015 = call ptr @__errno_location() #11
  %20016 = load i32, ptr %20015, align 4, !tbaa !5
  %20017 = call ptr @strerror(i32 noundef %20016) #10
  %20018 = call ptr @__errno_location() #11
  %20019 = load i32, ptr %20018, align 4, !tbaa !5
  %20020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20007, ptr noundef @.str.2, i32 noundef %20008, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 1336, ptr noundef %20011, ptr noundef %20014, ptr noundef %20017, i32 noundef %20019) #10
  br label %20038

20021:                                            ; preds = %19999, %19992
  %20022 = load i32, ptr %619, align 4, !tbaa !5
  %20023 = call ptr @__errno_location() #11
  store i32 %20022, ptr %20023, align 4, !tbaa !5
  %20024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20025 = load i32, ptr @test_count, align 4, !tbaa !5
  %20026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20027 = load i32, ptr %20026, align 4, !tbaa !5
  %20028 = call ptr @s2n_strerror(i32 noundef %20027, ptr noundef @.str.4)
  %20029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20030 = load i32, ptr %20029, align 4, !tbaa !5
  %20031 = call ptr @s2n_strerror_debug(i32 noundef %20030, ptr noundef @.str.4)
  %20032 = call ptr @__errno_location() #11
  %20033 = load i32, ptr %20032, align 4, !tbaa !5
  %20034 = call ptr @strerror(i32 noundef %20033) #10
  %20035 = call ptr @__errno_location() #11
  %20036 = load i32, ptr %20035, align 4, !tbaa !5
  %20037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20024, ptr noundef @.str.5, i32 noundef %20025, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 1336, ptr noundef %20028, ptr noundef %20031, ptr noundef %20034, i32 noundef %20036) #10
  br label %20038

20038:                                            ; preds = %20021, %20004
  call void @llvm.lifetime.end.p0(i64 4, ptr %619) #10
  br label %20039

20039:                                            ; preds = %20038
  br label %20040

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

20041:                                            ; No predecessors!
  br label %20042

20042:                                            ; preds = %20041
  br label %20043

20043:                                            ; preds = %20042, %19981
  br label %20044

20044:                                            ; preds = %20043
  br label %20045

20045:                                            ; preds = %20044
  call void @llvm.lifetime.start.p0(i64 8, ptr %620) #10
  %20046 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %20046, ptr %620, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %621) #10
  %20047 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %20047, ptr %621, align 8, !tbaa !9
  br label %20048

20048:                                            ; preds = %20045
  %20049 = load i32, ptr @test_count, align 4, !tbaa !5
  %20050 = add nsw i32 %20049, 1
  store i32 %20050, ptr @test_count, align 4, !tbaa !5
  %20051 = load ptr, ptr %620, align 8, !tbaa !9
  %20052 = load ptr, ptr %616, align 8, !tbaa !9
  %20053 = call i32 @s2n_connection_set_config(ptr noundef %20051, ptr noundef %20052)
  %20054 = icmp eq i32 %20053, -1
  br i1 %20054, label %20055, label %20108

20055:                                            ; preds = %20048
  br label %20056

20056:                                            ; preds = %20055
  br label %20057

20057:                                            ; preds = %20056
  call void @llvm.lifetime.start.p0(i64 4, ptr %622) #10
  %20058 = call ptr @__errno_location() #11
  %20059 = load i32, ptr %20058, align 4, !tbaa !5
  store i32 %20059, ptr %622, align 4, !tbaa !5
  %20060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20061 = call i32 @s2n_print_stacktrace(ptr noundef %20060)
  %20062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20063 = trunc i8 %20062 to i1
  br i1 %20063, label %20064, label %20086

20064:                                            ; preds = %20057
  %20065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20066 = call i32 @fileno(ptr noundef %20065) #10
  %20067 = call i32 @isatty(i32 noundef %20066) #10
  %20068 = icmp ne i32 %20067, 0
  br i1 %20068, label %20069, label %20086

20069:                                            ; preds = %20064
  %20070 = load i32, ptr %622, align 4, !tbaa !5
  %20071 = call ptr @__errno_location() #11
  store i32 %20070, ptr %20071, align 4, !tbaa !5
  %20072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20073 = load i32, ptr @test_count, align 4, !tbaa !5
  %20074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20075 = load i32, ptr %20074, align 4, !tbaa !5
  %20076 = call ptr @s2n_strerror(i32 noundef %20075, ptr noundef @.str.4)
  %20077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20078 = load i32, ptr %20077, align 4, !tbaa !5
  %20079 = call ptr @s2n_strerror_debug(i32 noundef %20078, ptr noundef @.str.4)
  %20080 = call ptr @__errno_location() #11
  %20081 = load i32, ptr %20080, align 4, !tbaa !5
  %20082 = call ptr @strerror(i32 noundef %20081) #10
  %20083 = call ptr @__errno_location() #11
  %20084 = load i32, ptr %20083, align 4, !tbaa !5
  %20085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20072, ptr noundef @.str.2, i32 noundef %20073, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 1343, ptr noundef %20076, ptr noundef %20079, ptr noundef %20082, i32 noundef %20084) #10
  br label %20103

20086:                                            ; preds = %20064, %20057
  %20087 = load i32, ptr %622, align 4, !tbaa !5
  %20088 = call ptr @__errno_location() #11
  store i32 %20087, ptr %20088, align 4, !tbaa !5
  %20089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20090 = load i32, ptr @test_count, align 4, !tbaa !5
  %20091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20092 = load i32, ptr %20091, align 4, !tbaa !5
  %20093 = call ptr @s2n_strerror(i32 noundef %20092, ptr noundef @.str.4)
  %20094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20095 = load i32, ptr %20094, align 4, !tbaa !5
  %20096 = call ptr @s2n_strerror_debug(i32 noundef %20095, ptr noundef @.str.4)
  %20097 = call ptr @__errno_location() #11
  %20098 = load i32, ptr %20097, align 4, !tbaa !5
  %20099 = call ptr @strerror(i32 noundef %20098) #10
  %20100 = call ptr @__errno_location() #11
  %20101 = load i32, ptr %20100, align 4, !tbaa !5
  %20102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20089, ptr noundef @.str.5, i32 noundef %20090, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 1343, ptr noundef %20093, ptr noundef %20096, ptr noundef %20099, i32 noundef %20101) #10
  br label %20103

20103:                                            ; preds = %20086, %20069
  call void @llvm.lifetime.end.p0(i64 4, ptr %622) #10
  br label %20104

20104:                                            ; preds = %20103
  br label %20105

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

20106:                                            ; No predecessors!
  br label %20107

20107:                                            ; preds = %20106
  br label %20108

20108:                                            ; preds = %20107, %20048
  br label %20109

20109:                                            ; preds = %20108
  br label %20110

20110:                                            ; preds = %20109
  br label %20111

20111:                                            ; preds = %20110
  %20112 = load i32, ptr @test_count, align 4, !tbaa !5
  %20113 = add nsw i32 %20112, 1
  store i32 %20113, ptr @test_count, align 4, !tbaa !5
  %20114 = load ptr, ptr %621, align 8, !tbaa !9
  %20115 = load ptr, ptr %616, align 8, !tbaa !9
  %20116 = call i32 @s2n_connection_set_config(ptr noundef %20114, ptr noundef %20115)
  %20117 = icmp eq i32 %20116, -1
  br i1 %20117, label %20118, label %20171

20118:                                            ; preds = %20111
  br label %20119

20119:                                            ; preds = %20118
  br label %20120

20120:                                            ; preds = %20119
  call void @llvm.lifetime.start.p0(i64 4, ptr %623) #10
  %20121 = call ptr @__errno_location() #11
  %20122 = load i32, ptr %20121, align 4, !tbaa !5
  store i32 %20122, ptr %623, align 4, !tbaa !5
  %20123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20124 = call i32 @s2n_print_stacktrace(ptr noundef %20123)
  %20125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20126 = trunc i8 %20125 to i1
  br i1 %20126, label %20127, label %20149

20127:                                            ; preds = %20120
  %20128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20129 = call i32 @fileno(ptr noundef %20128) #10
  %20130 = call i32 @isatty(i32 noundef %20129) #10
  %20131 = icmp ne i32 %20130, 0
  br i1 %20131, label %20132, label %20149

20132:                                            ; preds = %20127
  %20133 = load i32, ptr %623, align 4, !tbaa !5
  %20134 = call ptr @__errno_location() #11
  store i32 %20133, ptr %20134, align 4, !tbaa !5
  %20135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20136 = load i32, ptr @test_count, align 4, !tbaa !5
  %20137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20138 = load i32, ptr %20137, align 4, !tbaa !5
  %20139 = call ptr @s2n_strerror(i32 noundef %20138, ptr noundef @.str.4)
  %20140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20141 = load i32, ptr %20140, align 4, !tbaa !5
  %20142 = call ptr @s2n_strerror_debug(i32 noundef %20141, ptr noundef @.str.4)
  %20143 = call ptr @__errno_location() #11
  %20144 = load i32, ptr %20143, align 4, !tbaa !5
  %20145 = call ptr @strerror(i32 noundef %20144) #10
  %20146 = call ptr @__errno_location() #11
  %20147 = load i32, ptr %20146, align 4, !tbaa !5
  %20148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20135, ptr noundef @.str.2, i32 noundef %20136, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 1344, ptr noundef %20139, ptr noundef %20142, ptr noundef %20145, i32 noundef %20147) #10
  br label %20166

20149:                                            ; preds = %20127, %20120
  %20150 = load i32, ptr %623, align 4, !tbaa !5
  %20151 = call ptr @__errno_location() #11
  store i32 %20150, ptr %20151, align 4, !tbaa !5
  %20152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20153 = load i32, ptr @test_count, align 4, !tbaa !5
  %20154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20155 = load i32, ptr %20154, align 4, !tbaa !5
  %20156 = call ptr @s2n_strerror(i32 noundef %20155, ptr noundef @.str.4)
  %20157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20158 = load i32, ptr %20157, align 4, !tbaa !5
  %20159 = call ptr @s2n_strerror_debug(i32 noundef %20158, ptr noundef @.str.4)
  %20160 = call ptr @__errno_location() #11
  %20161 = load i32, ptr %20160, align 4, !tbaa !5
  %20162 = call ptr @strerror(i32 noundef %20161) #10
  %20163 = call ptr @__errno_location() #11
  %20164 = load i32, ptr %20163, align 4, !tbaa !5
  %20165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20152, ptr noundef @.str.5, i32 noundef %20153, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 1344, ptr noundef %20156, ptr noundef %20159, ptr noundef %20162, i32 noundef %20164) #10
  br label %20166

20166:                                            ; preds = %20149, %20132
  call void @llvm.lifetime.end.p0(i64 4, ptr %623) #10
  br label %20167

20167:                                            ; preds = %20166
  br label %20168

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

20169:                                            ; No predecessors!
  br label %20170

20170:                                            ; preds = %20169
  br label %20171

20171:                                            ; preds = %20170, %20111
  br label %20172

20172:                                            ; preds = %20171
  br label %20173

20173:                                            ; preds = %20172
  br label %20174

20174:                                            ; preds = %20173
  %20175 = load i32, ptr @test_count, align 4, !tbaa !5
  %20176 = add nsw i32 %20175, 1
  store i32 %20176, ptr @test_count, align 4, !tbaa !5
  %20177 = load ptr, ptr %620, align 8, !tbaa !9
  %20178 = call i32 @s2n_connection_set_blinding(ptr noundef %20177, i32 noundef 1)
  %20179 = icmp eq i32 %20178, -1
  br i1 %20179, label %20180, label %20233

20180:                                            ; preds = %20174
  br label %20181

20181:                                            ; preds = %20180
  br label %20182

20182:                                            ; preds = %20181
  call void @llvm.lifetime.start.p0(i64 4, ptr %624) #10
  %20183 = call ptr @__errno_location() #11
  %20184 = load i32, ptr %20183, align 4, !tbaa !5
  store i32 %20184, ptr %624, align 4, !tbaa !5
  %20185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20186 = call i32 @s2n_print_stacktrace(ptr noundef %20185)
  %20187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20188 = trunc i8 %20187 to i1
  br i1 %20188, label %20189, label %20211

20189:                                            ; preds = %20182
  %20190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20191 = call i32 @fileno(ptr noundef %20190) #10
  %20192 = call i32 @isatty(i32 noundef %20191) #10
  %20193 = icmp ne i32 %20192, 0
  br i1 %20193, label %20194, label %20211

20194:                                            ; preds = %20189
  %20195 = load i32, ptr %624, align 4, !tbaa !5
  %20196 = call ptr @__errno_location() #11
  store i32 %20195, ptr %20196, align 4, !tbaa !5
  %20197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20198 = load i32, ptr @test_count, align 4, !tbaa !5
  %20199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20200 = load i32, ptr %20199, align 4, !tbaa !5
  %20201 = call ptr @s2n_strerror(i32 noundef %20200, ptr noundef @.str.4)
  %20202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20203 = load i32, ptr %20202, align 4, !tbaa !5
  %20204 = call ptr @s2n_strerror_debug(i32 noundef %20203, ptr noundef @.str.4)
  %20205 = call ptr @__errno_location() #11
  %20206 = load i32, ptr %20205, align 4, !tbaa !5
  %20207 = call ptr @strerror(i32 noundef %20206) #10
  %20208 = call ptr @__errno_location() #11
  %20209 = load i32, ptr %20208, align 4, !tbaa !5
  %20210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20197, ptr noundef @.str.2, i32 noundef %20198, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 1345, ptr noundef %20201, ptr noundef %20204, ptr noundef %20207, i32 noundef %20209) #10
  br label %20228

20211:                                            ; preds = %20189, %20182
  %20212 = load i32, ptr %624, align 4, !tbaa !5
  %20213 = call ptr @__errno_location() #11
  store i32 %20212, ptr %20213, align 4, !tbaa !5
  %20214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20215 = load i32, ptr @test_count, align 4, !tbaa !5
  %20216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20217 = load i32, ptr %20216, align 4, !tbaa !5
  %20218 = call ptr @s2n_strerror(i32 noundef %20217, ptr noundef @.str.4)
  %20219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20220 = load i32, ptr %20219, align 4, !tbaa !5
  %20221 = call ptr @s2n_strerror_debug(i32 noundef %20220, ptr noundef @.str.4)
  %20222 = call ptr @__errno_location() #11
  %20223 = load i32, ptr %20222, align 4, !tbaa !5
  %20224 = call ptr @strerror(i32 noundef %20223) #10
  %20225 = call ptr @__errno_location() #11
  %20226 = load i32, ptr %20225, align 4, !tbaa !5
  %20227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20214, ptr noundef @.str.5, i32 noundef %20215, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 1345, ptr noundef %20218, ptr noundef %20221, ptr noundef %20224, i32 noundef %20226) #10
  br label %20228

20228:                                            ; preds = %20211, %20194
  call void @llvm.lifetime.end.p0(i64 4, ptr %624) #10
  br label %20229

20229:                                            ; preds = %20228
  br label %20230

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

20231:                                            ; No predecessors!
  br label %20232

20232:                                            ; preds = %20231
  br label %20233

20233:                                            ; preds = %20232, %20174
  br label %20234

20234:                                            ; preds = %20233
  br label %20235

20235:                                            ; preds = %20234
  br label %20236

20236:                                            ; preds = %20235
  %20237 = load i32, ptr @test_count, align 4, !tbaa !5
  %20238 = add nsw i32 %20237, 1
  store i32 %20238, ptr @test_count, align 4, !tbaa !5
  %20239 = load ptr, ptr %621, align 8, !tbaa !9
  %20240 = call i32 @s2n_connection_set_blinding(ptr noundef %20239, i32 noundef 1)
  %20241 = icmp eq i32 %20240, -1
  br i1 %20241, label %20242, label %20295

20242:                                            ; preds = %20236
  br label %20243

20243:                                            ; preds = %20242
  br label %20244

20244:                                            ; preds = %20243
  call void @llvm.lifetime.start.p0(i64 4, ptr %625) #10
  %20245 = call ptr @__errno_location() #11
  %20246 = load i32, ptr %20245, align 4, !tbaa !5
  store i32 %20246, ptr %625, align 4, !tbaa !5
  %20247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20248 = call i32 @s2n_print_stacktrace(ptr noundef %20247)
  %20249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20250 = trunc i8 %20249 to i1
  br i1 %20250, label %20251, label %20273

20251:                                            ; preds = %20244
  %20252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20253 = call i32 @fileno(ptr noundef %20252) #10
  %20254 = call i32 @isatty(i32 noundef %20253) #10
  %20255 = icmp ne i32 %20254, 0
  br i1 %20255, label %20256, label %20273

20256:                                            ; preds = %20251
  %20257 = load i32, ptr %625, align 4, !tbaa !5
  %20258 = call ptr @__errno_location() #11
  store i32 %20257, ptr %20258, align 4, !tbaa !5
  %20259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20260 = load i32, ptr @test_count, align 4, !tbaa !5
  %20261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20262 = load i32, ptr %20261, align 4, !tbaa !5
  %20263 = call ptr @s2n_strerror(i32 noundef %20262, ptr noundef @.str.4)
  %20264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20265 = load i32, ptr %20264, align 4, !tbaa !5
  %20266 = call ptr @s2n_strerror_debug(i32 noundef %20265, ptr noundef @.str.4)
  %20267 = call ptr @__errno_location() #11
  %20268 = load i32, ptr %20267, align 4, !tbaa !5
  %20269 = call ptr @strerror(i32 noundef %20268) #10
  %20270 = call ptr @__errno_location() #11
  %20271 = load i32, ptr %20270, align 4, !tbaa !5
  %20272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20259, ptr noundef @.str.2, i32 noundef %20260, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 1346, ptr noundef %20263, ptr noundef %20266, ptr noundef %20269, i32 noundef %20271) #10
  br label %20290

20273:                                            ; preds = %20251, %20244
  %20274 = load i32, ptr %625, align 4, !tbaa !5
  %20275 = call ptr @__errno_location() #11
  store i32 %20274, ptr %20275, align 4, !tbaa !5
  %20276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20277 = load i32, ptr @test_count, align 4, !tbaa !5
  %20278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20279 = load i32, ptr %20278, align 4, !tbaa !5
  %20280 = call ptr @s2n_strerror(i32 noundef %20279, ptr noundef @.str.4)
  %20281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20282 = load i32, ptr %20281, align 4, !tbaa !5
  %20283 = call ptr @s2n_strerror_debug(i32 noundef %20282, ptr noundef @.str.4)
  %20284 = call ptr @__errno_location() #11
  %20285 = load i32, ptr %20284, align 4, !tbaa !5
  %20286 = call ptr @strerror(i32 noundef %20285) #10
  %20287 = call ptr @__errno_location() #11
  %20288 = load i32, ptr %20287, align 4, !tbaa !5
  %20289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20276, ptr noundef @.str.5, i32 noundef %20277, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 1346, ptr noundef %20280, ptr noundef %20283, ptr noundef %20286, i32 noundef %20288) #10
  br label %20290

20290:                                            ; preds = %20273, %20256
  call void @llvm.lifetime.end.p0(i64 4, ptr %625) #10
  br label %20291

20291:                                            ; preds = %20290
  br label %20292

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

20293:                                            ; No predecessors!
  br label %20294

20294:                                            ; preds = %20293
  br label %20295

20295:                                            ; preds = %20294, %20236
  br label %20296

20296:                                            ; preds = %20295
  br label %20297

20297:                                            ; preds = %20296
  call void @llvm.lifetime.start.p0(i64 8, ptr %626) #10
  br label %20298

20298:                                            ; preds = %20297
  %20299 = load i32, ptr @test_count, align 4, !tbaa !5
  %20300 = add nsw i32 %20299, 1
  store i32 %20300, ptr @test_count, align 4, !tbaa !5
  %20301 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %626)
  %20302 = icmp eq i32 %20301, -1
  br i1 %20302, label %20303, label %20356

20303:                                            ; preds = %20298
  br label %20304

20304:                                            ; preds = %20303
  br label %20305

20305:                                            ; preds = %20304
  call void @llvm.lifetime.start.p0(i64 4, ptr %627) #10
  %20306 = call ptr @__errno_location() #11
  %20307 = load i32, ptr %20306, align 4, !tbaa !5
  store i32 %20307, ptr %627, align 4, !tbaa !5
  %20308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20309 = call i32 @s2n_print_stacktrace(ptr noundef %20308)
  %20310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20311 = trunc i8 %20310 to i1
  br i1 %20311, label %20312, label %20334

20312:                                            ; preds = %20305
  %20313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20314 = call i32 @fileno(ptr noundef %20313) #10
  %20315 = call i32 @isatty(i32 noundef %20314) #10
  %20316 = icmp ne i32 %20315, 0
  br i1 %20316, label %20317, label %20334

20317:                                            ; preds = %20312
  %20318 = load i32, ptr %627, align 4, !tbaa !5
  %20319 = call ptr @__errno_location() #11
  store i32 %20318, ptr %20319, align 4, !tbaa !5
  %20320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20321 = load i32, ptr @test_count, align 4, !tbaa !5
  %20322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20323 = load i32, ptr %20322, align 4, !tbaa !5
  %20324 = call ptr @s2n_strerror(i32 noundef %20323, ptr noundef @.str.4)
  %20325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20326 = load i32, ptr %20325, align 4, !tbaa !5
  %20327 = call ptr @s2n_strerror_debug(i32 noundef %20326, ptr noundef @.str.4)
  %20328 = call ptr @__errno_location() #11
  %20329 = load i32, ptr %20328, align 4, !tbaa !5
  %20330 = call ptr @strerror(i32 noundef %20329) #10
  %20331 = call ptr @__errno_location() #11
  %20332 = load i32, ptr %20331, align 4, !tbaa !5
  %20333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20320, ptr noundef @.str.2, i32 noundef %20321, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 1350, ptr noundef %20324, ptr noundef %20327, ptr noundef %20330, i32 noundef %20332) #10
  br label %20351

20334:                                            ; preds = %20312, %20305
  %20335 = load i32, ptr %627, align 4, !tbaa !5
  %20336 = call ptr @__errno_location() #11
  store i32 %20335, ptr %20336, align 4, !tbaa !5
  %20337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20338 = load i32, ptr @test_count, align 4, !tbaa !5
  %20339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20340 = load i32, ptr %20339, align 4, !tbaa !5
  %20341 = call ptr @s2n_strerror(i32 noundef %20340, ptr noundef @.str.4)
  %20342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20343 = load i32, ptr %20342, align 4, !tbaa !5
  %20344 = call ptr @s2n_strerror_debug(i32 noundef %20343, ptr noundef @.str.4)
  %20345 = call ptr @__errno_location() #11
  %20346 = load i32, ptr %20345, align 4, !tbaa !5
  %20347 = call ptr @strerror(i32 noundef %20346) #10
  %20348 = call ptr @__errno_location() #11
  %20349 = load i32, ptr %20348, align 4, !tbaa !5
  %20350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20337, ptr noundef @.str.5, i32 noundef %20338, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 1350, ptr noundef %20341, ptr noundef %20344, ptr noundef %20347, i32 noundef %20349) #10
  br label %20351

20351:                                            ; preds = %20334, %20317
  call void @llvm.lifetime.end.p0(i64 4, ptr %627) #10
  br label %20352

20352:                                            ; preds = %20351
  br label %20353

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

20354:                                            ; No predecessors!
  br label %20355

20355:                                            ; preds = %20354
  br label %20356

20356:                                            ; preds = %20355, %20298
  br label %20357

20357:                                            ; preds = %20356
  br label %20358

20358:                                            ; preds = %20357
  br label %20359

20359:                                            ; preds = %20358
  %20360 = load i32, ptr @test_count, align 4, !tbaa !5
  %20361 = add nsw i32 %20360, 1
  store i32 %20361, ptr @test_count, align 4, !tbaa !5
  %20362 = load ptr, ptr %620, align 8, !tbaa !9
  %20363 = load ptr, ptr %621, align 8, !tbaa !9
  %20364 = call i32 @s2n_connections_set_io_pair(ptr noundef %20362, ptr noundef %20363, ptr noundef %626)
  %20365 = icmp eq i32 %20364, -1
  br i1 %20365, label %20366, label %20419

20366:                                            ; preds = %20359
  br label %20367

20367:                                            ; preds = %20366
  br label %20368

20368:                                            ; preds = %20367
  call void @llvm.lifetime.start.p0(i64 4, ptr %628) #10
  %20369 = call ptr @__errno_location() #11
  %20370 = load i32, ptr %20369, align 4, !tbaa !5
  store i32 %20370, ptr %628, align 4, !tbaa !5
  %20371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20372 = call i32 @s2n_print_stacktrace(ptr noundef %20371)
  %20373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20374 = trunc i8 %20373 to i1
  br i1 %20374, label %20375, label %20397

20375:                                            ; preds = %20368
  %20376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20377 = call i32 @fileno(ptr noundef %20376) #10
  %20378 = call i32 @isatty(i32 noundef %20377) #10
  %20379 = icmp ne i32 %20378, 0
  br i1 %20379, label %20380, label %20397

20380:                                            ; preds = %20375
  %20381 = load i32, ptr %628, align 4, !tbaa !5
  %20382 = call ptr @__errno_location() #11
  store i32 %20381, ptr %20382, align 4, !tbaa !5
  %20383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20384 = load i32, ptr @test_count, align 4, !tbaa !5
  %20385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20386 = load i32, ptr %20385, align 4, !tbaa !5
  %20387 = call ptr @s2n_strerror(i32 noundef %20386, ptr noundef @.str.4)
  %20388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20389 = load i32, ptr %20388, align 4, !tbaa !5
  %20390 = call ptr @s2n_strerror_debug(i32 noundef %20389, ptr noundef @.str.4)
  %20391 = call ptr @__errno_location() #11
  %20392 = load i32, ptr %20391, align 4, !tbaa !5
  %20393 = call ptr @strerror(i32 noundef %20392) #10
  %20394 = call ptr @__errno_location() #11
  %20395 = load i32, ptr %20394, align 4, !tbaa !5
  %20396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20383, ptr noundef @.str.2, i32 noundef %20384, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 1351, ptr noundef %20387, ptr noundef %20390, ptr noundef %20393, i32 noundef %20395) #10
  br label %20414

20397:                                            ; preds = %20375, %20368
  %20398 = load i32, ptr %628, align 4, !tbaa !5
  %20399 = call ptr @__errno_location() #11
  store i32 %20398, ptr %20399, align 4, !tbaa !5
  %20400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20401 = load i32, ptr @test_count, align 4, !tbaa !5
  %20402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20403 = load i32, ptr %20402, align 4, !tbaa !5
  %20404 = call ptr @s2n_strerror(i32 noundef %20403, ptr noundef @.str.4)
  %20405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20406 = load i32, ptr %20405, align 4, !tbaa !5
  %20407 = call ptr @s2n_strerror_debug(i32 noundef %20406, ptr noundef @.str.4)
  %20408 = call ptr @__errno_location() #11
  %20409 = load i32, ptr %20408, align 4, !tbaa !5
  %20410 = call ptr @strerror(i32 noundef %20409) #10
  %20411 = call ptr @__errno_location() #11
  %20412 = load i32, ptr %20411, align 4, !tbaa !5
  %20413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20400, ptr noundef @.str.5, i32 noundef %20401, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 1351, ptr noundef %20404, ptr noundef %20407, ptr noundef %20410, i32 noundef %20412) #10
  br label %20414

20414:                                            ; preds = %20397, %20380
  call void @llvm.lifetime.end.p0(i64 4, ptr %628) #10
  br label %20415

20415:                                            ; preds = %20414
  br label %20416

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

20417:                                            ; No predecessors!
  br label %20418

20418:                                            ; preds = %20417
  br label %20419

20419:                                            ; preds = %20418, %20359
  br label %20420

20420:                                            ; preds = %20419
  br label %20421

20421:                                            ; preds = %20420
  %20422 = load ptr, ptr %620, align 8, !tbaa !9
  %20423 = getelementptr inbounds %struct.s2n_connection, ptr %20422, i32 0, i32 2
  store ptr %595, ptr %20423, align 8, !tbaa !26
  %20424 = load ptr, ptr %621, align 8, !tbaa !9
  %20425 = getelementptr inbounds %struct.s2n_connection, ptr %20424, i32 0, i32 2
  store ptr %596, ptr %20425, align 8, !tbaa !26
  br label %20426

20426:                                            ; preds = %20421
  br label %20427

20427:                                            ; preds = %20426
  br label %20428

20428:                                            ; preds = %20427
  %20429 = load i32, ptr @test_count, align 4, !tbaa !5
  %20430 = add nsw i32 %20429, 1
  store i32 %20430, ptr @test_count, align 4, !tbaa !5
  %20431 = load ptr, ptr %621, align 8, !tbaa !9
  %20432 = load ptr, ptr %620, align 8, !tbaa !9
  %20433 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %20431, ptr noundef %20432)
  %20434 = icmp eq i32 %20433, -1
  br i1 %20434, label %20488, label %20435

20435:                                            ; preds = %20428
  br label %20436

20436:                                            ; preds = %20435
  br label %20437

20437:                                            ; preds = %20436
  call void @llvm.lifetime.start.p0(i64 4, ptr %629) #10
  %20438 = call ptr @__errno_location() #11
  %20439 = load i32, ptr %20438, align 4, !tbaa !5
  store i32 %20439, ptr %629, align 4, !tbaa !5
  %20440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20441 = call i32 @s2n_print_stacktrace(ptr noundef %20440)
  %20442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20443 = trunc i8 %20442 to i1
  br i1 %20443, label %20444, label %20466

20444:                                            ; preds = %20437
  %20445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20446 = call i32 @fileno(ptr noundef %20445) #10
  %20447 = call i32 @isatty(i32 noundef %20446) #10
  %20448 = icmp ne i32 %20447, 0
  br i1 %20448, label %20449, label %20466

20449:                                            ; preds = %20444
  %20450 = load i32, ptr %629, align 4, !tbaa !5
  %20451 = call ptr @__errno_location() #11
  store i32 %20450, ptr %20451, align 4, !tbaa !5
  %20452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20453 = load i32, ptr @test_count, align 4, !tbaa !5
  %20454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20455 = load i32, ptr %20454, align 4, !tbaa !5
  %20456 = call ptr @s2n_strerror(i32 noundef %20455, ptr noundef @.str.4)
  %20457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20458 = load i32, ptr %20457, align 4, !tbaa !5
  %20459 = call ptr @s2n_strerror_debug(i32 noundef %20458, ptr noundef @.str.4)
  %20460 = call ptr @__errno_location() #11
  %20461 = load i32, ptr %20460, align 4, !tbaa !5
  %20462 = call ptr @strerror(i32 noundef %20461) #10
  %20463 = call ptr @__errno_location() #11
  %20464 = load i32, ptr %20463, align 4, !tbaa !5
  %20465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20452, ptr noundef @.str.2, i32 noundef %20453, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 1360, ptr noundef %20456, ptr noundef %20459, ptr noundef %20462, i32 noundef %20464) #10
  br label %20483

20466:                                            ; preds = %20444, %20437
  %20467 = load i32, ptr %629, align 4, !tbaa !5
  %20468 = call ptr @__errno_location() #11
  store i32 %20467, ptr %20468, align 4, !tbaa !5
  %20469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20470 = load i32, ptr @test_count, align 4, !tbaa !5
  %20471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20472 = load i32, ptr %20471, align 4, !tbaa !5
  %20473 = call ptr @s2n_strerror(i32 noundef %20472, ptr noundef @.str.4)
  %20474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20475 = load i32, ptr %20474, align 4, !tbaa !5
  %20476 = call ptr @s2n_strerror_debug(i32 noundef %20475, ptr noundef @.str.4)
  %20477 = call ptr @__errno_location() #11
  %20478 = load i32, ptr %20477, align 4, !tbaa !5
  %20479 = call ptr @strerror(i32 noundef %20478) #10
  %20480 = call ptr @__errno_location() #11
  %20481 = load i32, ptr %20480, align 4, !tbaa !5
  %20482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20469, ptr noundef @.str.5, i32 noundef %20470, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 1360, ptr noundef %20473, ptr noundef %20476, ptr noundef %20479, i32 noundef %20481) #10
  br label %20483

20483:                                            ; preds = %20466, %20449
  call void @llvm.lifetime.end.p0(i64 4, ptr %629) #10
  br label %20484

20484:                                            ; preds = %20483
  br label %20485

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

20486:                                            ; No predecessors!
  br label %20487

20487:                                            ; preds = %20486
  br label %20488

20488:                                            ; preds = %20487, %20428
  br label %20489

20489:                                            ; preds = %20488
  br label %20490

20490:                                            ; preds = %20489
  br label %20491

20491:                                            ; preds = %20490
  %20492 = load i32, ptr @test_count, align 4, !tbaa !5
  %20493 = add nsw i32 %20492, 1
  store i32 %20493, ptr @test_count, align 4, !tbaa !5
  %20494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20495 = load i32, ptr %20494, align 4, !tbaa !5
  %20496 = icmp eq i32 %20495, 335544348
  br i1 %20496, label %20550, label %20497

20497:                                            ; preds = %20491
  br label %20498

20498:                                            ; preds = %20497
  br label %20499

20499:                                            ; preds = %20498
  call void @llvm.lifetime.start.p0(i64 4, ptr %630) #10
  %20500 = call ptr @__errno_location() #11
  %20501 = load i32, ptr %20500, align 4, !tbaa !5
  store i32 %20501, ptr %630, align 4, !tbaa !5
  %20502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20503 = call i32 @s2n_print_stacktrace(ptr noundef %20502)
  %20504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20505 = trunc i8 %20504 to i1
  br i1 %20505, label %20506, label %20528

20506:                                            ; preds = %20499
  %20507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20508 = call i32 @fileno(ptr noundef %20507) #10
  %20509 = call i32 @isatty(i32 noundef %20508) #10
  %20510 = icmp ne i32 %20509, 0
  br i1 %20510, label %20511, label %20528

20511:                                            ; preds = %20506
  %20512 = load i32, ptr %630, align 4, !tbaa !5
  %20513 = call ptr @__errno_location() #11
  store i32 %20512, ptr %20513, align 4, !tbaa !5
  %20514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20515 = load i32, ptr @test_count, align 4, !tbaa !5
  %20516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20517 = load i32, ptr %20516, align 4, !tbaa !5
  %20518 = call ptr @s2n_strerror(i32 noundef %20517, ptr noundef @.str.4)
  %20519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20520 = load i32, ptr %20519, align 4, !tbaa !5
  %20521 = call ptr @s2n_strerror_debug(i32 noundef %20520, ptr noundef @.str.4)
  %20522 = call ptr @__errno_location() #11
  %20523 = load i32, ptr %20522, align 4, !tbaa !5
  %20524 = call ptr @strerror(i32 noundef %20523) #10
  %20525 = call ptr @__errno_location() #11
  %20526 = load i32, ptr %20525, align 4, !tbaa !5
  %20527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20514, ptr noundef @.str.2, i32 noundef %20515, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 1360, ptr noundef %20518, ptr noundef %20521, ptr noundef %20524, i32 noundef %20526) #10
  br label %20545

20528:                                            ; preds = %20506, %20499
  %20529 = load i32, ptr %630, align 4, !tbaa !5
  %20530 = call ptr @__errno_location() #11
  store i32 %20529, ptr %20530, align 4, !tbaa !5
  %20531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20532 = load i32, ptr @test_count, align 4, !tbaa !5
  %20533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20534 = load i32, ptr %20533, align 4, !tbaa !5
  %20535 = call ptr @s2n_strerror(i32 noundef %20534, ptr noundef @.str.4)
  %20536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20537 = load i32, ptr %20536, align 4, !tbaa !5
  %20538 = call ptr @s2n_strerror_debug(i32 noundef %20537, ptr noundef @.str.4)
  %20539 = call ptr @__errno_location() #11
  %20540 = load i32, ptr %20539, align 4, !tbaa !5
  %20541 = call ptr @strerror(i32 noundef %20540) #10
  %20542 = call ptr @__errno_location() #11
  %20543 = load i32, ptr %20542, align 4, !tbaa !5
  %20544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20531, ptr noundef @.str.5, i32 noundef %20532, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 1360, ptr noundef %20535, ptr noundef %20538, ptr noundef %20541, i32 noundef %20543) #10
  br label %20545

20545:                                            ; preds = %20528, %20511
  call void @llvm.lifetime.end.p0(i64 4, ptr %630) #10
  br label %20546

20546:                                            ; preds = %20545
  br label %20547

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

20548:                                            ; No predecessors!
  br label %20549

20549:                                            ; preds = %20548
  br label %20550

20550:                                            ; preds = %20549, %20491
  br label %20551

20551:                                            ; preds = %20550
  br label %20552

20552:                                            ; preds = %20551
  br label %20553

20553:                                            ; preds = %20552
  %20554 = load i32, ptr @test_count, align 4, !tbaa !5
  %20555 = add nsw i32 %20554, 1
  store i32 %20555, ptr @test_count, align 4, !tbaa !5
  %20556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20557 = load i32, ptr %20556, align 4, !tbaa !5
  %20558 = call ptr @s2n_strerror_debug(i32 noundef %20557, ptr noundef @.str.4)
  %20559 = icmp eq ptr %20558, null
  br i1 %20559, label %20560, label %20613

20560:                                            ; preds = %20553
  br label %20561

20561:                                            ; preds = %20560
  br label %20562

20562:                                            ; preds = %20561
  call void @llvm.lifetime.start.p0(i64 4, ptr %631) #10
  %20563 = call ptr @__errno_location() #11
  %20564 = load i32, ptr %20563, align 4, !tbaa !5
  store i32 %20564, ptr %631, align 4, !tbaa !5
  %20565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20566 = call i32 @s2n_print_stacktrace(ptr noundef %20565)
  %20567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20568 = trunc i8 %20567 to i1
  br i1 %20568, label %20569, label %20591

20569:                                            ; preds = %20562
  %20570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20571 = call i32 @fileno(ptr noundef %20570) #10
  %20572 = call i32 @isatty(i32 noundef %20571) #10
  %20573 = icmp ne i32 %20572, 0
  br i1 %20573, label %20574, label %20591

20574:                                            ; preds = %20569
  %20575 = load i32, ptr %631, align 4, !tbaa !5
  %20576 = call ptr @__errno_location() #11
  store i32 %20575, ptr %20576, align 4, !tbaa !5
  %20577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20578 = load i32, ptr @test_count, align 4, !tbaa !5
  %20579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20580 = load i32, ptr %20579, align 4, !tbaa !5
  %20581 = call ptr @s2n_strerror(i32 noundef %20580, ptr noundef @.str.4)
  %20582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20583 = load i32, ptr %20582, align 4, !tbaa !5
  %20584 = call ptr @s2n_strerror_debug(i32 noundef %20583, ptr noundef @.str.4)
  %20585 = call ptr @__errno_location() #11
  %20586 = load i32, ptr %20585, align 4, !tbaa !5
  %20587 = call ptr @strerror(i32 noundef %20586) #10
  %20588 = call ptr @__errno_location() #11
  %20589 = load i32, ptr %20588, align 4, !tbaa !5
  %20590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20577, ptr noundef @.str.2, i32 noundef %20578, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1360, ptr noundef %20581, ptr noundef %20584, ptr noundef %20587, i32 noundef %20589) #10
  br label %20608

20591:                                            ; preds = %20569, %20562
  %20592 = load i32, ptr %631, align 4, !tbaa !5
  %20593 = call ptr @__errno_location() #11
  store i32 %20592, ptr %20593, align 4, !tbaa !5
  %20594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20595 = load i32, ptr @test_count, align 4, !tbaa !5
  %20596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20597 = load i32, ptr %20596, align 4, !tbaa !5
  %20598 = call ptr @s2n_strerror(i32 noundef %20597, ptr noundef @.str.4)
  %20599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20600 = load i32, ptr %20599, align 4, !tbaa !5
  %20601 = call ptr @s2n_strerror_debug(i32 noundef %20600, ptr noundef @.str.4)
  %20602 = call ptr @__errno_location() #11
  %20603 = load i32, ptr %20602, align 4, !tbaa !5
  %20604 = call ptr @strerror(i32 noundef %20603) #10
  %20605 = call ptr @__errno_location() #11
  %20606 = load i32, ptr %20605, align 4, !tbaa !5
  %20607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20594, ptr noundef @.str.5, i32 noundef %20595, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1360, ptr noundef %20598, ptr noundef %20601, ptr noundef %20604, i32 noundef %20606) #10
  br label %20608

20608:                                            ; preds = %20591, %20574
  call void @llvm.lifetime.end.p0(i64 4, ptr %631) #10
  br label %20609

20609:                                            ; preds = %20608
  br label %20610

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

20611:                                            ; No predecessors!
  br label %20612

20612:                                            ; preds = %20611
  br label %20613

20613:                                            ; preds = %20612, %20553
  br label %20614

20614:                                            ; preds = %20613
  br label %20615

20615:                                            ; preds = %20614
  br label %20616

20616:                                            ; preds = %20615
  br label %20617

20617:                                            ; preds = %20616
  br label %20618

20618:                                            ; preds = %20617
  %20619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %20619, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %20620 = call ptr @__errno_location() #11
  store i32 0, ptr %20620, align 4, !tbaa !5
  br label %20621

20621:                                            ; preds = %20618
  br label %20622

20622:                                            ; preds = %20621
  br label %20623

20623:                                            ; preds = %20622
  br label %20624

20624:                                            ; preds = %20623
  br label %20625

20625:                                            ; preds = %20624
  %20626 = load i32, ptr @test_count, align 4, !tbaa !5
  %20627 = add nsw i32 %20626, 1
  store i32 %20627, ptr @test_count, align 4, !tbaa !5
  %20628 = load ptr, ptr %620, align 8, !tbaa !9
  %20629 = getelementptr inbounds %struct.s2n_connection, ptr %20628, i32 0, i32 23
  %20630 = load i8, ptr %20629, align 4, !tbaa !50
  %20631 = zext i8 %20630 to i32
  %20632 = icmp eq i32 %20631, 33
  br i1 %20632, label %20686, label %20633

20633:                                            ; preds = %20625
  br label %20634

20634:                                            ; preds = %20633
  br label %20635

20635:                                            ; preds = %20634
  call void @llvm.lifetime.start.p0(i64 4, ptr %632) #10
  %20636 = call ptr @__errno_location() #11
  %20637 = load i32, ptr %20636, align 4, !tbaa !5
  store i32 %20637, ptr %632, align 4, !tbaa !5
  %20638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20639 = call i32 @s2n_print_stacktrace(ptr noundef %20638)
  %20640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20641 = trunc i8 %20640 to i1
  br i1 %20641, label %20642, label %20664

20642:                                            ; preds = %20635
  %20643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20644 = call i32 @fileno(ptr noundef %20643) #10
  %20645 = call i32 @isatty(i32 noundef %20644) #10
  %20646 = icmp ne i32 %20645, 0
  br i1 %20646, label %20647, label %20664

20647:                                            ; preds = %20642
  %20648 = load i32, ptr %632, align 4, !tbaa !5
  %20649 = call ptr @__errno_location() #11
  store i32 %20648, ptr %20649, align 4, !tbaa !5
  %20650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20651 = load i32, ptr @test_count, align 4, !tbaa !5
  %20652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20653 = load i32, ptr %20652, align 4, !tbaa !5
  %20654 = call ptr @s2n_strerror(i32 noundef %20653, ptr noundef @.str.4)
  %20655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20656 = load i32, ptr %20655, align 4, !tbaa !5
  %20657 = call ptr @s2n_strerror_debug(i32 noundef %20656, ptr noundef @.str.4)
  %20658 = call ptr @__errno_location() #11
  %20659 = load i32, ptr %20658, align 4, !tbaa !5
  %20660 = call ptr @strerror(i32 noundef %20659) #10
  %20661 = call ptr @__errno_location() #11
  %20662 = load i32, ptr %20661, align 4, !tbaa !5
  %20663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20650, ptr noundef @.str.2, i32 noundef %20651, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 1361, ptr noundef %20654, ptr noundef %20657, ptr noundef %20660, i32 noundef %20662) #10
  br label %20681

20664:                                            ; preds = %20642, %20635
  %20665 = load i32, ptr %632, align 4, !tbaa !5
  %20666 = call ptr @__errno_location() #11
  store i32 %20665, ptr %20666, align 4, !tbaa !5
  %20667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20668 = load i32, ptr @test_count, align 4, !tbaa !5
  %20669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20670 = load i32, ptr %20669, align 4, !tbaa !5
  %20671 = call ptr @s2n_strerror(i32 noundef %20670, ptr noundef @.str.4)
  %20672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20673 = load i32, ptr %20672, align 4, !tbaa !5
  %20674 = call ptr @s2n_strerror_debug(i32 noundef %20673, ptr noundef @.str.4)
  %20675 = call ptr @__errno_location() #11
  %20676 = load i32, ptr %20675, align 4, !tbaa !5
  %20677 = call ptr @strerror(i32 noundef %20676) #10
  %20678 = call ptr @__errno_location() #11
  %20679 = load i32, ptr %20678, align 4, !tbaa !5
  %20680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20667, ptr noundef @.str.5, i32 noundef %20668, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 1361, ptr noundef %20671, ptr noundef %20674, ptr noundef %20677, i32 noundef %20679) #10
  br label %20681

20681:                                            ; preds = %20664, %20647
  call void @llvm.lifetime.end.p0(i64 4, ptr %632) #10
  br label %20682

20682:                                            ; preds = %20681
  br label %20683

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

20684:                                            ; No predecessors!
  br label %20685

20685:                                            ; preds = %20684
  br label %20686

20686:                                            ; preds = %20685, %20625
  br label %20687

20687:                                            ; preds = %20686
  br label %20688

20688:                                            ; preds = %20687
  br label %20689

20689:                                            ; preds = %20688
  %20690 = load i32, ptr @test_count, align 4, !tbaa !5
  %20691 = add nsw i32 %20690, 1
  store i32 %20691, ptr @test_count, align 4, !tbaa !5
  %20692 = load ptr, ptr %621, align 8, !tbaa !9
  %20693 = getelementptr inbounds %struct.s2n_connection, ptr %20692, i32 0, i32 23
  %20694 = load i8, ptr %20693, align 4, !tbaa !50
  %20695 = zext i8 %20694 to i32
  %20696 = icmp eq i32 %20695, 33
  br i1 %20696, label %20750, label %20697

20697:                                            ; preds = %20689
  br label %20698

20698:                                            ; preds = %20697
  br label %20699

20699:                                            ; preds = %20698
  call void @llvm.lifetime.start.p0(i64 4, ptr %633) #10
  %20700 = call ptr @__errno_location() #11
  %20701 = load i32, ptr %20700, align 4, !tbaa !5
  store i32 %20701, ptr %633, align 4, !tbaa !5
  %20702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20703 = call i32 @s2n_print_stacktrace(ptr noundef %20702)
  %20704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20705 = trunc i8 %20704 to i1
  br i1 %20705, label %20706, label %20728

20706:                                            ; preds = %20699
  %20707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20708 = call i32 @fileno(ptr noundef %20707) #10
  %20709 = call i32 @isatty(i32 noundef %20708) #10
  %20710 = icmp ne i32 %20709, 0
  br i1 %20710, label %20711, label %20728

20711:                                            ; preds = %20706
  %20712 = load i32, ptr %633, align 4, !tbaa !5
  %20713 = call ptr @__errno_location() #11
  store i32 %20712, ptr %20713, align 4, !tbaa !5
  %20714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20715 = load i32, ptr @test_count, align 4, !tbaa !5
  %20716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20717 = load i32, ptr %20716, align 4, !tbaa !5
  %20718 = call ptr @s2n_strerror(i32 noundef %20717, ptr noundef @.str.4)
  %20719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20720 = load i32, ptr %20719, align 4, !tbaa !5
  %20721 = call ptr @s2n_strerror_debug(i32 noundef %20720, ptr noundef @.str.4)
  %20722 = call ptr @__errno_location() #11
  %20723 = load i32, ptr %20722, align 4, !tbaa !5
  %20724 = call ptr @strerror(i32 noundef %20723) #10
  %20725 = call ptr @__errno_location() #11
  %20726 = load i32, ptr %20725, align 4, !tbaa !5
  %20727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20714, ptr noundef @.str.2, i32 noundef %20715, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 1362, ptr noundef %20718, ptr noundef %20721, ptr noundef %20724, i32 noundef %20726) #10
  br label %20745

20728:                                            ; preds = %20706, %20699
  %20729 = load i32, ptr %633, align 4, !tbaa !5
  %20730 = call ptr @__errno_location() #11
  store i32 %20729, ptr %20730, align 4, !tbaa !5
  %20731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20732 = load i32, ptr @test_count, align 4, !tbaa !5
  %20733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20734 = load i32, ptr %20733, align 4, !tbaa !5
  %20735 = call ptr @s2n_strerror(i32 noundef %20734, ptr noundef @.str.4)
  %20736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20737 = load i32, ptr %20736, align 4, !tbaa !5
  %20738 = call ptr @s2n_strerror_debug(i32 noundef %20737, ptr noundef @.str.4)
  %20739 = call ptr @__errno_location() #11
  %20740 = load i32, ptr %20739, align 4, !tbaa !5
  %20741 = call ptr @strerror(i32 noundef %20740) #10
  %20742 = call ptr @__errno_location() #11
  %20743 = load i32, ptr %20742, align 4, !tbaa !5
  %20744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20731, ptr noundef @.str.5, i32 noundef %20732, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 1362, ptr noundef %20735, ptr noundef %20738, ptr noundef %20741, i32 noundef %20743) #10
  br label %20745

20745:                                            ; preds = %20728, %20711
  call void @llvm.lifetime.end.p0(i64 4, ptr %633) #10
  br label %20746

20746:                                            ; preds = %20745
  br label %20747

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

20748:                                            ; No predecessors!
  br label %20749

20749:                                            ; preds = %20748
  br label %20750

20750:                                            ; preds = %20749, %20689
  br label %20751

20751:                                            ; preds = %20750
  br label %20752

20752:                                            ; preds = %20751
  %20753 = call i32 @s2n_io_pair_close(ptr noundef %626)
  call void @llvm.lifetime.end.p0(i64 8, ptr %626) #10
  %20754 = call i32 @s2n_connection_ptr_free(ptr noundef %621)
  %20755 = getelementptr inbounds %struct.s2n_result, ptr %634, i32 0, i32 0
  store i32 %20754, ptr %20755, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %621) #10
  %20756 = call i32 @s2n_connection_ptr_free(ptr noundef %620)
  %20757 = getelementptr inbounds %struct.s2n_result, ptr %635, i32 0, i32 0
  store i32 %20756, ptr %20757, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %620) #10
  %20758 = call i32 @s2n_config_ptr_free(ptr noundef %616)
  %20759 = getelementptr inbounds %struct.s2n_result, ptr %636, i32 0, i32 0
  store i32 %20758, ptr %20759, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %616) #10
  br label %20760

20760:                                            ; preds = %20752
  %20761 = load i64, ptr %615, align 8, !tbaa !54
  %20762 = add i64 %20761, 1
  store i64 %20762, ptr %615, align 8, !tbaa !54
  br label %19852, !llvm.loop !91

20763:                                            ; preds = %19855
  call void @llvm.lifetime.start.p0(i64 8, ptr %637) #10
  store i64 0, ptr %637, align 8, !tbaa !54
  br label %20764

20764:                                            ; preds = %21672, %20763
  %20765 = load i64, ptr %637, align 8, !tbaa !54
  %20766 = icmp ult i64 %20765, 2
  br i1 %20766, label %20768, label %20767

20767:                                            ; preds = %20764
  store i32 1953, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %637) #10
  br label %21675

20768:                                            ; preds = %20764
  call void @llvm.lifetime.start.p0(i64 8, ptr %638) #10
  %20769 = call ptr @s2n_config_new()
  store ptr %20769, ptr %638, align 8, !tbaa !9
  br label %20770

20770:                                            ; preds = %20768
  %20771 = load i32, ptr @test_count, align 4, !tbaa !5
  %20772 = add nsw i32 %20771, 1
  store i32 %20772, ptr @test_count, align 4, !tbaa !5
  %20773 = load ptr, ptr %638, align 8, !tbaa !9
  %20774 = icmp eq ptr %20773, null
  br i1 %20774, label %20775, label %20828

20775:                                            ; preds = %20770
  br label %20776

20776:                                            ; preds = %20775
  br label %20777

20777:                                            ; preds = %20776
  call void @llvm.lifetime.start.p0(i64 4, ptr %639) #10
  %20778 = call ptr @__errno_location() #11
  %20779 = load i32, ptr %20778, align 4, !tbaa !5
  store i32 %20779, ptr %639, align 4, !tbaa !5
  %20780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20781 = call i32 @s2n_print_stacktrace(ptr noundef %20780)
  %20782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20783 = trunc i8 %20782 to i1
  br i1 %20783, label %20784, label %20806

20784:                                            ; preds = %20777
  %20785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20786 = call i32 @fileno(ptr noundef %20785) #10
  %20787 = call i32 @isatty(i32 noundef %20786) #10
  %20788 = icmp ne i32 %20787, 0
  br i1 %20788, label %20789, label %20806

20789:                                            ; preds = %20784
  %20790 = load i32, ptr %639, align 4, !tbaa !5
  %20791 = call ptr @__errno_location() #11
  store i32 %20790, ptr %20791, align 4, !tbaa !5
  %20792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20793 = load i32, ptr @test_count, align 4, !tbaa !5
  %20794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20795 = load i32, ptr %20794, align 4, !tbaa !5
  %20796 = call ptr @s2n_strerror(i32 noundef %20795, ptr noundef @.str.4)
  %20797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20798 = load i32, ptr %20797, align 4, !tbaa !5
  %20799 = call ptr @s2n_strerror_debug(i32 noundef %20798, ptr noundef @.str.4)
  %20800 = call ptr @__errno_location() #11
  %20801 = load i32, ptr %20800, align 4, !tbaa !5
  %20802 = call ptr @strerror(i32 noundef %20801) #10
  %20803 = call ptr @__errno_location() #11
  %20804 = load i32, ptr %20803, align 4, !tbaa !5
  %20805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20792, ptr noundef @.str.2, i32 noundef %20793, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 1368, ptr noundef %20796, ptr noundef %20799, ptr noundef %20802, i32 noundef %20804) #10
  br label %20823

20806:                                            ; preds = %20784, %20777
  %20807 = load i32, ptr %639, align 4, !tbaa !5
  %20808 = call ptr @__errno_location() #11
  store i32 %20807, ptr %20808, align 4, !tbaa !5
  %20809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20810 = load i32, ptr @test_count, align 4, !tbaa !5
  %20811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20812 = load i32, ptr %20811, align 4, !tbaa !5
  %20813 = call ptr @s2n_strerror(i32 noundef %20812, ptr noundef @.str.4)
  %20814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20815 = load i32, ptr %20814, align 4, !tbaa !5
  %20816 = call ptr @s2n_strerror_debug(i32 noundef %20815, ptr noundef @.str.4)
  %20817 = call ptr @__errno_location() #11
  %20818 = load i32, ptr %20817, align 4, !tbaa !5
  %20819 = call ptr @strerror(i32 noundef %20818) #10
  %20820 = call ptr @__errno_location() #11
  %20821 = load i32, ptr %20820, align 4, !tbaa !5
  %20822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20809, ptr noundef @.str.5, i32 noundef %20810, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 1368, ptr noundef %20813, ptr noundef %20816, ptr noundef %20819, i32 noundef %20821) #10
  br label %20823

20823:                                            ; preds = %20806, %20789
  call void @llvm.lifetime.end.p0(i64 4, ptr %639) #10
  br label %20824

20824:                                            ; preds = %20823
  br label %20825

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

20826:                                            ; No predecessors!
  br label %20827

20827:                                            ; preds = %20826
  br label %20828

20828:                                            ; preds = %20827, %20770
  br label %20829

20829:                                            ; preds = %20828
  br label %20830

20830:                                            ; preds = %20829
  br label %20831

20831:                                            ; preds = %20830
  %20832 = load i32, ptr @test_count, align 4, !tbaa !5
  %20833 = add nsw i32 %20832, 1
  store i32 %20833, ptr @test_count, align 4, !tbaa !5
  %20834 = load ptr, ptr %638, align 8, !tbaa !9
  %20835 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %20834)
  %20836 = icmp eq i32 %20835, -1
  br i1 %20836, label %20837, label %20890

20837:                                            ; preds = %20831
  br label %20838

20838:                                            ; preds = %20837
  br label %20839

20839:                                            ; preds = %20838
  call void @llvm.lifetime.start.p0(i64 4, ptr %640) #10
  %20840 = call ptr @__errno_location() #11
  %20841 = load i32, ptr %20840, align 4, !tbaa !5
  store i32 %20841, ptr %640, align 4, !tbaa !5
  %20842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20843 = call i32 @s2n_print_stacktrace(ptr noundef %20842)
  %20844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20845 = trunc i8 %20844 to i1
  br i1 %20845, label %20846, label %20868

20846:                                            ; preds = %20839
  %20847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20848 = call i32 @fileno(ptr noundef %20847) #10
  %20849 = call i32 @isatty(i32 noundef %20848) #10
  %20850 = icmp ne i32 %20849, 0
  br i1 %20850, label %20851, label %20868

20851:                                            ; preds = %20846
  %20852 = load i32, ptr %640, align 4, !tbaa !5
  %20853 = call ptr @__errno_location() #11
  store i32 %20852, ptr %20853, align 4, !tbaa !5
  %20854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20855 = load i32, ptr @test_count, align 4, !tbaa !5
  %20856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20857 = load i32, ptr %20856, align 4, !tbaa !5
  %20858 = call ptr @s2n_strerror(i32 noundef %20857, ptr noundef @.str.4)
  %20859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20860 = load i32, ptr %20859, align 4, !tbaa !5
  %20861 = call ptr @s2n_strerror_debug(i32 noundef %20860, ptr noundef @.str.4)
  %20862 = call ptr @__errno_location() #11
  %20863 = load i32, ptr %20862, align 4, !tbaa !5
  %20864 = call ptr @strerror(i32 noundef %20863) #10
  %20865 = call ptr @__errno_location() #11
  %20866 = load i32, ptr %20865, align 4, !tbaa !5
  %20867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20854, ptr noundef @.str.2, i32 noundef %20855, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 1369, ptr noundef %20858, ptr noundef %20861, ptr noundef %20864, i32 noundef %20866) #10
  br label %20885

20868:                                            ; preds = %20846, %20839
  %20869 = load i32, ptr %640, align 4, !tbaa !5
  %20870 = call ptr @__errno_location() #11
  store i32 %20869, ptr %20870, align 4, !tbaa !5
  %20871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20872 = load i32, ptr @test_count, align 4, !tbaa !5
  %20873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20874 = load i32, ptr %20873, align 4, !tbaa !5
  %20875 = call ptr @s2n_strerror(i32 noundef %20874, ptr noundef @.str.4)
  %20876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20877 = load i32, ptr %20876, align 4, !tbaa !5
  %20878 = call ptr @s2n_strerror_debug(i32 noundef %20877, ptr noundef @.str.4)
  %20879 = call ptr @__errno_location() #11
  %20880 = load i32, ptr %20879, align 4, !tbaa !5
  %20881 = call ptr @strerror(i32 noundef %20880) #10
  %20882 = call ptr @__errno_location() #11
  %20883 = load i32, ptr %20882, align 4, !tbaa !5
  %20884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20871, ptr noundef @.str.5, i32 noundef %20872, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 1369, ptr noundef %20875, ptr noundef %20878, ptr noundef %20881, i32 noundef %20883) #10
  br label %20885

20885:                                            ; preds = %20868, %20851
  call void @llvm.lifetime.end.p0(i64 4, ptr %640) #10
  br label %20886

20886:                                            ; preds = %20885
  br label %20887

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

20888:                                            ; No predecessors!
  br label %20889

20889:                                            ; preds = %20888
  br label %20890

20890:                                            ; preds = %20889, %20831
  br label %20891

20891:                                            ; preds = %20890
  br label %20892

20892:                                            ; preds = %20891
  br label %20893

20893:                                            ; preds = %20892
  %20894 = load i32, ptr @test_count, align 4, !tbaa !5
  %20895 = add nsw i32 %20894, 1
  store i32 %20895, ptr @test_count, align 4, !tbaa !5
  %20896 = load ptr, ptr %638, align 8, !tbaa !9
  %20897 = load i64, ptr %637, align 8, !tbaa !54
  %20898 = getelementptr inbounds [2 x ptr], ptr %14, i64 0, i64 %20897
  %20899 = load ptr, ptr %20898, align 8, !tbaa !9
  %20900 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %20896, ptr noundef %20899)
  %20901 = icmp eq i32 %20900, -1
  br i1 %20901, label %20902, label %20955

20902:                                            ; preds = %20893
  br label %20903

20903:                                            ; preds = %20902
  br label %20904

20904:                                            ; preds = %20903
  call void @llvm.lifetime.start.p0(i64 4, ptr %641) #10
  %20905 = call ptr @__errno_location() #11
  %20906 = load i32, ptr %20905, align 4, !tbaa !5
  store i32 %20906, ptr %641, align 4, !tbaa !5
  %20907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20908 = call i32 @s2n_print_stacktrace(ptr noundef %20907)
  %20909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20910 = trunc i8 %20909 to i1
  br i1 %20910, label %20911, label %20933

20911:                                            ; preds = %20904
  %20912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20913 = call i32 @fileno(ptr noundef %20912) #10
  %20914 = call i32 @isatty(i32 noundef %20913) #10
  %20915 = icmp ne i32 %20914, 0
  br i1 %20915, label %20916, label %20933

20916:                                            ; preds = %20911
  %20917 = load i32, ptr %641, align 4, !tbaa !5
  %20918 = call ptr @__errno_location() #11
  store i32 %20917, ptr %20918, align 4, !tbaa !5
  %20919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20920 = load i32, ptr @test_count, align 4, !tbaa !5
  %20921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20922 = load i32, ptr %20921, align 4, !tbaa !5
  %20923 = call ptr @s2n_strerror(i32 noundef %20922, ptr noundef @.str.4)
  %20924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20925 = load i32, ptr %20924, align 4, !tbaa !5
  %20926 = call ptr @s2n_strerror_debug(i32 noundef %20925, ptr noundef @.str.4)
  %20927 = call ptr @__errno_location() #11
  %20928 = load i32, ptr %20927, align 4, !tbaa !5
  %20929 = call ptr @strerror(i32 noundef %20928) #10
  %20930 = call ptr @__errno_location() #11
  %20931 = load i32, ptr %20930, align 4, !tbaa !5
  %20932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20919, ptr noundef @.str.2, i32 noundef %20920, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 1370, ptr noundef %20923, ptr noundef %20926, ptr noundef %20929, i32 noundef %20931) #10
  br label %20950

20933:                                            ; preds = %20911, %20904
  %20934 = load i32, ptr %641, align 4, !tbaa !5
  %20935 = call ptr @__errno_location() #11
  store i32 %20934, ptr %20935, align 4, !tbaa !5
  %20936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20937 = load i32, ptr @test_count, align 4, !tbaa !5
  %20938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20939 = load i32, ptr %20938, align 4, !tbaa !5
  %20940 = call ptr @s2n_strerror(i32 noundef %20939, ptr noundef @.str.4)
  %20941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20942 = load i32, ptr %20941, align 4, !tbaa !5
  %20943 = call ptr @s2n_strerror_debug(i32 noundef %20942, ptr noundef @.str.4)
  %20944 = call ptr @__errno_location() #11
  %20945 = load i32, ptr %20944, align 4, !tbaa !5
  %20946 = call ptr @strerror(i32 noundef %20945) #10
  %20947 = call ptr @__errno_location() #11
  %20948 = load i32, ptr %20947, align 4, !tbaa !5
  %20949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20936, ptr noundef @.str.5, i32 noundef %20937, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 1370, ptr noundef %20940, ptr noundef %20943, ptr noundef %20946, i32 noundef %20948) #10
  br label %20950

20950:                                            ; preds = %20933, %20916
  call void @llvm.lifetime.end.p0(i64 4, ptr %641) #10
  br label %20951

20951:                                            ; preds = %20950
  br label %20952

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

20953:                                            ; No predecessors!
  br label %20954

20954:                                            ; preds = %20953
  br label %20955

20955:                                            ; preds = %20954, %20893
  br label %20956

20956:                                            ; preds = %20955
  br label %20957

20957:                                            ; preds = %20956
  call void @llvm.lifetime.start.p0(i64 8, ptr %642) #10
  %20958 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %20958, ptr %642, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %643) #10
  %20959 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %20959, ptr %643, align 8, !tbaa !9
  br label %20960

20960:                                            ; preds = %20957
  %20961 = load i32, ptr @test_count, align 4, !tbaa !5
  %20962 = add nsw i32 %20961, 1
  store i32 %20962, ptr @test_count, align 4, !tbaa !5
  %20963 = load ptr, ptr %642, align 8, !tbaa !9
  %20964 = load ptr, ptr %638, align 8, !tbaa !9
  %20965 = call i32 @s2n_connection_set_config(ptr noundef %20963, ptr noundef %20964)
  %20966 = icmp eq i32 %20965, -1
  br i1 %20966, label %20967, label %21020

20967:                                            ; preds = %20960
  br label %20968

20968:                                            ; preds = %20967
  br label %20969

20969:                                            ; preds = %20968
  call void @llvm.lifetime.start.p0(i64 4, ptr %644) #10
  %20970 = call ptr @__errno_location() #11
  %20971 = load i32, ptr %20970, align 4, !tbaa !5
  store i32 %20971, ptr %644, align 4, !tbaa !5
  %20972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20973 = call i32 @s2n_print_stacktrace(ptr noundef %20972)
  %20974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20975 = trunc i8 %20974 to i1
  br i1 %20975, label %20976, label %20998

20976:                                            ; preds = %20969
  %20977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20978 = call i32 @fileno(ptr noundef %20977) #10
  %20979 = call i32 @isatty(i32 noundef %20978) #10
  %20980 = icmp ne i32 %20979, 0
  br i1 %20980, label %20981, label %20998

20981:                                            ; preds = %20976
  %20982 = load i32, ptr %644, align 4, !tbaa !5
  %20983 = call ptr @__errno_location() #11
  store i32 %20982, ptr %20983, align 4, !tbaa !5
  %20984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20985 = load i32, ptr @test_count, align 4, !tbaa !5
  %20986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20987 = load i32, ptr %20986, align 4, !tbaa !5
  %20988 = call ptr @s2n_strerror(i32 noundef %20987, ptr noundef @.str.4)
  %20989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20990 = load i32, ptr %20989, align 4, !tbaa !5
  %20991 = call ptr @s2n_strerror_debug(i32 noundef %20990, ptr noundef @.str.4)
  %20992 = call ptr @__errno_location() #11
  %20993 = load i32, ptr %20992, align 4, !tbaa !5
  %20994 = call ptr @strerror(i32 noundef %20993) #10
  %20995 = call ptr @__errno_location() #11
  %20996 = load i32, ptr %20995, align 4, !tbaa !5
  %20997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20984, ptr noundef @.str.2, i32 noundef %20985, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 1377, ptr noundef %20988, ptr noundef %20991, ptr noundef %20994, i32 noundef %20996) #10
  br label %21015

20998:                                            ; preds = %20976, %20969
  %20999 = load i32, ptr %644, align 4, !tbaa !5
  %21000 = call ptr @__errno_location() #11
  store i32 %20999, ptr %21000, align 4, !tbaa !5
  %21001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21002 = load i32, ptr @test_count, align 4, !tbaa !5
  %21003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21004 = load i32, ptr %21003, align 4, !tbaa !5
  %21005 = call ptr @s2n_strerror(i32 noundef %21004, ptr noundef @.str.4)
  %21006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21007 = load i32, ptr %21006, align 4, !tbaa !5
  %21008 = call ptr @s2n_strerror_debug(i32 noundef %21007, ptr noundef @.str.4)
  %21009 = call ptr @__errno_location() #11
  %21010 = load i32, ptr %21009, align 4, !tbaa !5
  %21011 = call ptr @strerror(i32 noundef %21010) #10
  %21012 = call ptr @__errno_location() #11
  %21013 = load i32, ptr %21012, align 4, !tbaa !5
  %21014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21001, ptr noundef @.str.5, i32 noundef %21002, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 1377, ptr noundef %21005, ptr noundef %21008, ptr noundef %21011, i32 noundef %21013) #10
  br label %21015

21015:                                            ; preds = %20998, %20981
  call void @llvm.lifetime.end.p0(i64 4, ptr %644) #10
  br label %21016

21016:                                            ; preds = %21015
  br label %21017

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

21018:                                            ; No predecessors!
  br label %21019

21019:                                            ; preds = %21018
  br label %21020

21020:                                            ; preds = %21019, %20960
  br label %21021

21021:                                            ; preds = %21020
  br label %21022

21022:                                            ; preds = %21021
  br label %21023

21023:                                            ; preds = %21022
  %21024 = load i32, ptr @test_count, align 4, !tbaa !5
  %21025 = add nsw i32 %21024, 1
  store i32 %21025, ptr @test_count, align 4, !tbaa !5
  %21026 = load ptr, ptr %643, align 8, !tbaa !9
  %21027 = load ptr, ptr %638, align 8, !tbaa !9
  %21028 = call i32 @s2n_connection_set_config(ptr noundef %21026, ptr noundef %21027)
  %21029 = icmp eq i32 %21028, -1
  br i1 %21029, label %21030, label %21083

21030:                                            ; preds = %21023
  br label %21031

21031:                                            ; preds = %21030
  br label %21032

21032:                                            ; preds = %21031
  call void @llvm.lifetime.start.p0(i64 4, ptr %645) #10
  %21033 = call ptr @__errno_location() #11
  %21034 = load i32, ptr %21033, align 4, !tbaa !5
  store i32 %21034, ptr %645, align 4, !tbaa !5
  %21035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21036 = call i32 @s2n_print_stacktrace(ptr noundef %21035)
  %21037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21038 = trunc i8 %21037 to i1
  br i1 %21038, label %21039, label %21061

21039:                                            ; preds = %21032
  %21040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21041 = call i32 @fileno(ptr noundef %21040) #10
  %21042 = call i32 @isatty(i32 noundef %21041) #10
  %21043 = icmp ne i32 %21042, 0
  br i1 %21043, label %21044, label %21061

21044:                                            ; preds = %21039
  %21045 = load i32, ptr %645, align 4, !tbaa !5
  %21046 = call ptr @__errno_location() #11
  store i32 %21045, ptr %21046, align 4, !tbaa !5
  %21047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21048 = load i32, ptr @test_count, align 4, !tbaa !5
  %21049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21050 = load i32, ptr %21049, align 4, !tbaa !5
  %21051 = call ptr @s2n_strerror(i32 noundef %21050, ptr noundef @.str.4)
  %21052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21053 = load i32, ptr %21052, align 4, !tbaa !5
  %21054 = call ptr @s2n_strerror_debug(i32 noundef %21053, ptr noundef @.str.4)
  %21055 = call ptr @__errno_location() #11
  %21056 = load i32, ptr %21055, align 4, !tbaa !5
  %21057 = call ptr @strerror(i32 noundef %21056) #10
  %21058 = call ptr @__errno_location() #11
  %21059 = load i32, ptr %21058, align 4, !tbaa !5
  %21060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21047, ptr noundef @.str.2, i32 noundef %21048, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 1378, ptr noundef %21051, ptr noundef %21054, ptr noundef %21057, i32 noundef %21059) #10
  br label %21078

21061:                                            ; preds = %21039, %21032
  %21062 = load i32, ptr %645, align 4, !tbaa !5
  %21063 = call ptr @__errno_location() #11
  store i32 %21062, ptr %21063, align 4, !tbaa !5
  %21064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21065 = load i32, ptr @test_count, align 4, !tbaa !5
  %21066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21067 = load i32, ptr %21066, align 4, !tbaa !5
  %21068 = call ptr @s2n_strerror(i32 noundef %21067, ptr noundef @.str.4)
  %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_debug(i32 noundef %21070, ptr noundef @.str.4)
  %21072 = call ptr @__errno_location() #11
  %21073 = load i32, ptr %21072, align 4, !tbaa !5
  %21074 = call ptr @strerror(i32 noundef %21073) #10
  %21075 = call ptr @__errno_location() #11
  %21076 = load i32, ptr %21075, align 4, !tbaa !5
  %21077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21064, ptr noundef @.str.5, i32 noundef %21065, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 1378, ptr noundef %21068, ptr noundef %21071, ptr noundef %21074, i32 noundef %21076) #10
  br label %21078

21078:                                            ; preds = %21061, %21044
  call void @llvm.lifetime.end.p0(i64 4, ptr %645) #10
  br label %21079

21079:                                            ; preds = %21078
  br label %21080

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

21081:                                            ; No predecessors!
  br label %21082

21082:                                            ; preds = %21081
  br label %21083

21083:                                            ; preds = %21082, %21023
  br label %21084

21084:                                            ; preds = %21083
  br label %21085

21085:                                            ; preds = %21084
  br label %21086

21086:                                            ; preds = %21085
  %21087 = load i32, ptr @test_count, align 4, !tbaa !5
  %21088 = add nsw i32 %21087, 1
  store i32 %21088, ptr @test_count, align 4, !tbaa !5
  %21089 = load ptr, ptr %642, align 8, !tbaa !9
  %21090 = call i32 @s2n_connection_set_blinding(ptr noundef %21089, i32 noundef 1)
  %21091 = icmp eq i32 %21090, -1
  br i1 %21091, label %21092, label %21145

21092:                                            ; preds = %21086
  br label %21093

21093:                                            ; preds = %21092
  br label %21094

21094:                                            ; preds = %21093
  call void @llvm.lifetime.start.p0(i64 4, ptr %646) #10
  %21095 = call ptr @__errno_location() #11
  %21096 = load i32, ptr %21095, align 4, !tbaa !5
  store i32 %21096, ptr %646, align 4, !tbaa !5
  %21097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21098 = call i32 @s2n_print_stacktrace(ptr noundef %21097)
  %21099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21100 = trunc i8 %21099 to i1
  br i1 %21100, label %21101, label %21123

21101:                                            ; preds = %21094
  %21102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21103 = call i32 @fileno(ptr noundef %21102) #10
  %21104 = call i32 @isatty(i32 noundef %21103) #10
  %21105 = icmp ne i32 %21104, 0
  br i1 %21105, label %21106, label %21123

21106:                                            ; preds = %21101
  %21107 = load i32, ptr %646, align 4, !tbaa !5
  %21108 = call ptr @__errno_location() #11
  store i32 %21107, ptr %21108, align 4, !tbaa !5
  %21109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21110 = load i32, ptr @test_count, align 4, !tbaa !5
  %21111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21112 = load i32, ptr %21111, align 4, !tbaa !5
  %21113 = call ptr @s2n_strerror(i32 noundef %21112, ptr noundef @.str.4)
  %21114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21115 = load i32, ptr %21114, align 4, !tbaa !5
  %21116 = call ptr @s2n_strerror_debug(i32 noundef %21115, ptr noundef @.str.4)
  %21117 = call ptr @__errno_location() #11
  %21118 = load i32, ptr %21117, align 4, !tbaa !5
  %21119 = call ptr @strerror(i32 noundef %21118) #10
  %21120 = call ptr @__errno_location() #11
  %21121 = load i32, ptr %21120, align 4, !tbaa !5
  %21122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21109, ptr noundef @.str.2, i32 noundef %21110, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 1379, ptr noundef %21113, ptr noundef %21116, ptr noundef %21119, i32 noundef %21121) #10
  br label %21140

21123:                                            ; preds = %21101, %21094
  %21124 = load i32, ptr %646, align 4, !tbaa !5
  %21125 = call ptr @__errno_location() #11
  store i32 %21124, ptr %21125, align 4, !tbaa !5
  %21126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21127 = load i32, ptr @test_count, align 4, !tbaa !5
  %21128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21129 = load i32, ptr %21128, align 4, !tbaa !5
  %21130 = call ptr @s2n_strerror(i32 noundef %21129, ptr noundef @.str.4)
  %21131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21132 = load i32, ptr %21131, align 4, !tbaa !5
  %21133 = call ptr @s2n_strerror_debug(i32 noundef %21132, ptr noundef @.str.4)
  %21134 = call ptr @__errno_location() #11
  %21135 = load i32, ptr %21134, align 4, !tbaa !5
  %21136 = call ptr @strerror(i32 noundef %21135) #10
  %21137 = call ptr @__errno_location() #11
  %21138 = load i32, ptr %21137, align 4, !tbaa !5
  %21139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21126, ptr noundef @.str.5, i32 noundef %21127, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 1379, ptr noundef %21130, ptr noundef %21133, ptr noundef %21136, i32 noundef %21138) #10
  br label %21140

21140:                                            ; preds = %21123, %21106
  call void @llvm.lifetime.end.p0(i64 4, ptr %646) #10
  br label %21141

21141:                                            ; preds = %21140
  br label %21142

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

21143:                                            ; No predecessors!
  br label %21144

21144:                                            ; preds = %21143
  br label %21145

21145:                                            ; preds = %21144, %21086
  br label %21146

21146:                                            ; preds = %21145
  br label %21147

21147:                                            ; preds = %21146
  br label %21148

21148:                                            ; preds = %21147
  %21149 = load i32, ptr @test_count, align 4, !tbaa !5
  %21150 = add nsw i32 %21149, 1
  store i32 %21150, ptr @test_count, align 4, !tbaa !5
  %21151 = load ptr, ptr %643, align 8, !tbaa !9
  %21152 = call i32 @s2n_connection_set_blinding(ptr noundef %21151, i32 noundef 1)
  %21153 = icmp eq i32 %21152, -1
  br i1 %21153, label %21154, label %21207

21154:                                            ; preds = %21148
  br label %21155

21155:                                            ; preds = %21154
  br label %21156

21156:                                            ; preds = %21155
  call void @llvm.lifetime.start.p0(i64 4, ptr %647) #10
  %21157 = call ptr @__errno_location() #11
  %21158 = load i32, ptr %21157, align 4, !tbaa !5
  store i32 %21158, ptr %647, align 4, !tbaa !5
  %21159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21160 = call i32 @s2n_print_stacktrace(ptr noundef %21159)
  %21161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21162 = trunc i8 %21161 to i1
  br i1 %21162, label %21163, label %21185

21163:                                            ; preds = %21156
  %21164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21165 = call i32 @fileno(ptr noundef %21164) #10
  %21166 = call i32 @isatty(i32 noundef %21165) #10
  %21167 = icmp ne i32 %21166, 0
  br i1 %21167, label %21168, label %21185

21168:                                            ; preds = %21163
  %21169 = load i32, ptr %647, align 4, !tbaa !5
  %21170 = call ptr @__errno_location() #11
  store i32 %21169, ptr %21170, align 4, !tbaa !5
  %21171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21172 = load i32, ptr @test_count, align 4, !tbaa !5
  %21173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21174 = load i32, ptr %21173, align 4, !tbaa !5
  %21175 = call ptr @s2n_strerror(i32 noundef %21174, ptr noundef @.str.4)
  %21176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21177 = load i32, ptr %21176, align 4, !tbaa !5
  %21178 = call ptr @s2n_strerror_debug(i32 noundef %21177, ptr noundef @.str.4)
  %21179 = call ptr @__errno_location() #11
  %21180 = load i32, ptr %21179, align 4, !tbaa !5
  %21181 = call ptr @strerror(i32 noundef %21180) #10
  %21182 = call ptr @__errno_location() #11
  %21183 = load i32, ptr %21182, align 4, !tbaa !5
  %21184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21171, ptr noundef @.str.2, i32 noundef %21172, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 1380, ptr noundef %21175, ptr noundef %21178, ptr noundef %21181, i32 noundef %21183) #10
  br label %21202

21185:                                            ; preds = %21163, %21156
  %21186 = load i32, ptr %647, align 4, !tbaa !5
  %21187 = call ptr @__errno_location() #11
  store i32 %21186, ptr %21187, align 4, !tbaa !5
  %21188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21189 = load i32, ptr @test_count, align 4, !tbaa !5
  %21190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21191 = load i32, ptr %21190, align 4, !tbaa !5
  %21192 = call ptr @s2n_strerror(i32 noundef %21191, ptr noundef @.str.4)
  %21193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21194 = load i32, ptr %21193, align 4, !tbaa !5
  %21195 = call ptr @s2n_strerror_debug(i32 noundef %21194, ptr noundef @.str.4)
  %21196 = call ptr @__errno_location() #11
  %21197 = load i32, ptr %21196, align 4, !tbaa !5
  %21198 = call ptr @strerror(i32 noundef %21197) #10
  %21199 = call ptr @__errno_location() #11
  %21200 = load i32, ptr %21199, align 4, !tbaa !5
  %21201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21188, ptr noundef @.str.5, i32 noundef %21189, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 1380, ptr noundef %21192, ptr noundef %21195, ptr noundef %21198, i32 noundef %21200) #10
  br label %21202

21202:                                            ; preds = %21185, %21168
  call void @llvm.lifetime.end.p0(i64 4, ptr %647) #10
  br label %21203

21203:                                            ; preds = %21202
  br label %21204

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

21205:                                            ; No predecessors!
  br label %21206

21206:                                            ; preds = %21205
  br label %21207

21207:                                            ; preds = %21206, %21148
  br label %21208

21208:                                            ; preds = %21207
  br label %21209

21209:                                            ; preds = %21208
  call void @llvm.lifetime.start.p0(i64 8, ptr %648) #10
  br label %21210

21210:                                            ; preds = %21209
  %21211 = load i32, ptr @test_count, align 4, !tbaa !5
  %21212 = add nsw i32 %21211, 1
  store i32 %21212, ptr @test_count, align 4, !tbaa !5
  %21213 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %648)
  %21214 = icmp eq i32 %21213, -1
  br i1 %21214, label %21215, label %21268

21215:                                            ; preds = %21210
  br label %21216

21216:                                            ; preds = %21215
  br label %21217

21217:                                            ; preds = %21216
  call void @llvm.lifetime.start.p0(i64 4, ptr %649) #10
  %21218 = call ptr @__errno_location() #11
  %21219 = load i32, ptr %21218, align 4, !tbaa !5
  store i32 %21219, ptr %649, align 4, !tbaa !5
  %21220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21221 = call i32 @s2n_print_stacktrace(ptr noundef %21220)
  %21222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21223 = trunc i8 %21222 to i1
  br i1 %21223, label %21224, label %21246

21224:                                            ; preds = %21217
  %21225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21226 = call i32 @fileno(ptr noundef %21225) #10
  %21227 = call i32 @isatty(i32 noundef %21226) #10
  %21228 = icmp ne i32 %21227, 0
  br i1 %21228, label %21229, label %21246

21229:                                            ; preds = %21224
  %21230 = load i32, ptr %649, align 4, !tbaa !5
  %21231 = call ptr @__errno_location() #11
  store i32 %21230, ptr %21231, align 4, !tbaa !5
  %21232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21233 = load i32, ptr @test_count, align 4, !tbaa !5
  %21234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21235 = load i32, ptr %21234, align 4, !tbaa !5
  %21236 = call ptr @s2n_strerror(i32 noundef %21235, ptr noundef @.str.4)
  %21237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21238 = load i32, ptr %21237, align 4, !tbaa !5
  %21239 = call ptr @s2n_strerror_debug(i32 noundef %21238, ptr noundef @.str.4)
  %21240 = call ptr @__errno_location() #11
  %21241 = load i32, ptr %21240, align 4, !tbaa !5
  %21242 = call ptr @strerror(i32 noundef %21241) #10
  %21243 = call ptr @__errno_location() #11
  %21244 = load i32, ptr %21243, align 4, !tbaa !5
  %21245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21232, ptr noundef @.str.2, i32 noundef %21233, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 1384, ptr noundef %21236, ptr noundef %21239, ptr noundef %21242, i32 noundef %21244) #10
  br label %21263

21246:                                            ; preds = %21224, %21217
  %21247 = load i32, ptr %649, align 4, !tbaa !5
  %21248 = call ptr @__errno_location() #11
  store i32 %21247, ptr %21248, align 4, !tbaa !5
  %21249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21250 = load i32, ptr @test_count, align 4, !tbaa !5
  %21251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21252 = load i32, ptr %21251, align 4, !tbaa !5
  %21253 = call ptr @s2n_strerror(i32 noundef %21252, ptr noundef @.str.4)
  %21254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21255 = load i32, ptr %21254, align 4, !tbaa !5
  %21256 = call ptr @s2n_strerror_debug(i32 noundef %21255, ptr noundef @.str.4)
  %21257 = call ptr @__errno_location() #11
  %21258 = load i32, ptr %21257, align 4, !tbaa !5
  %21259 = call ptr @strerror(i32 noundef %21258) #10
  %21260 = call ptr @__errno_location() #11
  %21261 = load i32, ptr %21260, align 4, !tbaa !5
  %21262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21249, ptr noundef @.str.5, i32 noundef %21250, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 1384, ptr noundef %21253, ptr noundef %21256, ptr noundef %21259, i32 noundef %21261) #10
  br label %21263

21263:                                            ; preds = %21246, %21229
  call void @llvm.lifetime.end.p0(i64 4, ptr %649) #10
  br label %21264

21264:                                            ; preds = %21263
  br label %21265

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

21266:                                            ; No predecessors!
  br label %21267

21267:                                            ; preds = %21266
  br label %21268

21268:                                            ; preds = %21267, %21210
  br label %21269

21269:                                            ; preds = %21268
  br label %21270

21270:                                            ; preds = %21269
  br label %21271

21271:                                            ; preds = %21270
  %21272 = load i32, ptr @test_count, align 4, !tbaa !5
  %21273 = add nsw i32 %21272, 1
  store i32 %21273, ptr @test_count, align 4, !tbaa !5
  %21274 = load ptr, ptr %642, align 8, !tbaa !9
  %21275 = load ptr, ptr %643, align 8, !tbaa !9
  %21276 = call i32 @s2n_connections_set_io_pair(ptr noundef %21274, ptr noundef %21275, ptr noundef %648)
  %21277 = icmp eq i32 %21276, -1
  br i1 %21277, label %21278, label %21331

21278:                                            ; preds = %21271
  br label %21279

21279:                                            ; preds = %21278
  br label %21280

21280:                                            ; preds = %21279
  call void @llvm.lifetime.start.p0(i64 4, ptr %650) #10
  %21281 = call ptr @__errno_location() #11
  %21282 = load i32, ptr %21281, align 4, !tbaa !5
  store i32 %21282, ptr %650, align 4, !tbaa !5
  %21283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21284 = call i32 @s2n_print_stacktrace(ptr noundef %21283)
  %21285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21286 = trunc i8 %21285 to i1
  br i1 %21286, label %21287, label %21309

21287:                                            ; preds = %21280
  %21288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21289 = call i32 @fileno(ptr noundef %21288) #10
  %21290 = call i32 @isatty(i32 noundef %21289) #10
  %21291 = icmp ne i32 %21290, 0
  br i1 %21291, label %21292, label %21309

21292:                                            ; preds = %21287
  %21293 = load i32, ptr %650, align 4, !tbaa !5
  %21294 = call ptr @__errno_location() #11
  store i32 %21293, ptr %21294, align 4, !tbaa !5
  %21295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21296 = load i32, ptr @test_count, align 4, !tbaa !5
  %21297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21298 = load i32, ptr %21297, align 4, !tbaa !5
  %21299 = call ptr @s2n_strerror(i32 noundef %21298, ptr noundef @.str.4)
  %21300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21301 = load i32, ptr %21300, align 4, !tbaa !5
  %21302 = call ptr @s2n_strerror_debug(i32 noundef %21301, ptr noundef @.str.4)
  %21303 = call ptr @__errno_location() #11
  %21304 = load i32, ptr %21303, align 4, !tbaa !5
  %21305 = call ptr @strerror(i32 noundef %21304) #10
  %21306 = call ptr @__errno_location() #11
  %21307 = load i32, ptr %21306, align 4, !tbaa !5
  %21308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21295, ptr noundef @.str.2, i32 noundef %21296, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 1385, ptr noundef %21299, ptr noundef %21302, ptr noundef %21305, i32 noundef %21307) #10
  br label %21326

21309:                                            ; preds = %21287, %21280
  %21310 = load i32, ptr %650, align 4, !tbaa !5
  %21311 = call ptr @__errno_location() #11
  store i32 %21310, ptr %21311, align 4, !tbaa !5
  %21312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21313 = load i32, ptr @test_count, align 4, !tbaa !5
  %21314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21315 = load i32, ptr %21314, align 4, !tbaa !5
  %21316 = call ptr @s2n_strerror(i32 noundef %21315, ptr noundef @.str.4)
  %21317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21318 = load i32, ptr %21317, align 4, !tbaa !5
  %21319 = call ptr @s2n_strerror_debug(i32 noundef %21318, ptr noundef @.str.4)
  %21320 = call ptr @__errno_location() #11
  %21321 = load i32, ptr %21320, align 4, !tbaa !5
  %21322 = call ptr @strerror(i32 noundef %21321) #10
  %21323 = call ptr @__errno_location() #11
  %21324 = load i32, ptr %21323, align 4, !tbaa !5
  %21325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21312, ptr noundef @.str.5, i32 noundef %21313, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 1385, ptr noundef %21316, ptr noundef %21319, ptr noundef %21322, i32 noundef %21324) #10
  br label %21326

21326:                                            ; preds = %21309, %21292
  call void @llvm.lifetime.end.p0(i64 4, ptr %650) #10
  br label %21327

21327:                                            ; preds = %21326
  br label %21328

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

21329:                                            ; No predecessors!
  br label %21330

21330:                                            ; preds = %21329
  br label %21331

21331:                                            ; preds = %21330, %21271
  br label %21332

21332:                                            ; preds = %21331
  br label %21333

21333:                                            ; preds = %21332
  %21334 = load ptr, ptr %642, align 8, !tbaa !9
  %21335 = getelementptr inbounds %struct.s2n_connection, ptr %21334, i32 0, i32 2
  store ptr %595, ptr %21335, align 8, !tbaa !26
  %21336 = load ptr, ptr %643, align 8, !tbaa !9
  %21337 = getelementptr inbounds %struct.s2n_connection, ptr %21336, i32 0, i32 2
  store ptr %594, ptr %21337, align 8, !tbaa !26
  br label %21338

21338:                                            ; preds = %21333
  br label %21339

21339:                                            ; preds = %21338
  br label %21340

21340:                                            ; preds = %21339
  %21341 = load i32, ptr @test_count, align 4, !tbaa !5
  %21342 = add nsw i32 %21341, 1
  store i32 %21342, ptr @test_count, align 4, !tbaa !5
  %21343 = load ptr, ptr %643, align 8, !tbaa !9
  %21344 = load ptr, ptr %642, align 8, !tbaa !9
  %21345 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %21343, ptr noundef %21344)
  %21346 = icmp eq i32 %21345, -1
  br i1 %21346, label %21400, label %21347

21347:                                            ; preds = %21340
  br label %21348

21348:                                            ; preds = %21347
  br label %21349

21349:                                            ; preds = %21348
  call void @llvm.lifetime.start.p0(i64 4, ptr %651) #10
  %21350 = call ptr @__errno_location() #11
  %21351 = load i32, ptr %21350, align 4, !tbaa !5
  store i32 %21351, ptr %651, align 4, !tbaa !5
  %21352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21353 = call i32 @s2n_print_stacktrace(ptr noundef %21352)
  %21354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21355 = trunc i8 %21354 to i1
  br i1 %21355, label %21356, label %21378

21356:                                            ; preds = %21349
  %21357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21358 = call i32 @fileno(ptr noundef %21357) #10
  %21359 = call i32 @isatty(i32 noundef %21358) #10
  %21360 = icmp ne i32 %21359, 0
  br i1 %21360, label %21361, label %21378

21361:                                            ; preds = %21356
  %21362 = load i32, ptr %651, align 4, !tbaa !5
  %21363 = call ptr @__errno_location() #11
  store i32 %21362, ptr %21363, align 4, !tbaa !5
  %21364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21365 = load i32, ptr @test_count, align 4, !tbaa !5
  %21366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21367 = load i32, ptr %21366, align 4, !tbaa !5
  %21368 = call ptr @s2n_strerror(i32 noundef %21367, ptr noundef @.str.4)
  %21369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21370 = load i32, ptr %21369, align 4, !tbaa !5
  %21371 = call ptr @s2n_strerror_debug(i32 noundef %21370, ptr noundef @.str.4)
  %21372 = call ptr @__errno_location() #11
  %21373 = load i32, ptr %21372, align 4, !tbaa !5
  %21374 = call ptr @strerror(i32 noundef %21373) #10
  %21375 = call ptr @__errno_location() #11
  %21376 = load i32, ptr %21375, align 4, !tbaa !5
  %21377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21364, ptr noundef @.str.2, i32 noundef %21365, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 1394, ptr noundef %21368, ptr noundef %21371, ptr noundef %21374, i32 noundef %21376) #10
  br label %21395

21378:                                            ; preds = %21356, %21349
  %21379 = load i32, ptr %651, align 4, !tbaa !5
  %21380 = call ptr @__errno_location() #11
  store i32 %21379, ptr %21380, align 4, !tbaa !5
  %21381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21382 = load i32, ptr @test_count, align 4, !tbaa !5
  %21383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21384 = load i32, ptr %21383, align 4, !tbaa !5
  %21385 = call ptr @s2n_strerror(i32 noundef %21384, ptr noundef @.str.4)
  %21386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21387 = load i32, ptr %21386, align 4, !tbaa !5
  %21388 = call ptr @s2n_strerror_debug(i32 noundef %21387, ptr noundef @.str.4)
  %21389 = call ptr @__errno_location() #11
  %21390 = load i32, ptr %21389, align 4, !tbaa !5
  %21391 = call ptr @strerror(i32 noundef %21390) #10
  %21392 = call ptr @__errno_location() #11
  %21393 = load i32, ptr %21392, align 4, !tbaa !5
  %21394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21381, ptr noundef @.str.5, i32 noundef %21382, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 1394, ptr noundef %21385, ptr noundef %21388, ptr noundef %21391, i32 noundef %21393) #10
  br label %21395

21395:                                            ; preds = %21378, %21361
  call void @llvm.lifetime.end.p0(i64 4, ptr %651) #10
  br label %21396

21396:                                            ; preds = %21395
  br label %21397

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

21398:                                            ; No predecessors!
  br label %21399

21399:                                            ; preds = %21398
  br label %21400

21400:                                            ; preds = %21399, %21340
  br label %21401

21401:                                            ; preds = %21400
  br label %21402

21402:                                            ; preds = %21401
  br label %21403

21403:                                            ; preds = %21402
  %21404 = load i32, ptr @test_count, align 4, !tbaa !5
  %21405 = add nsw i32 %21404, 1
  store i32 %21405, ptr @test_count, align 4, !tbaa !5
  %21406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21407 = load i32, ptr %21406, align 4, !tbaa !5
  %21408 = icmp eq i32 %21407, 335544348
  br i1 %21408, label %21462, label %21409

21409:                                            ; preds = %21403
  br label %21410

21410:                                            ; preds = %21409
  br label %21411

21411:                                            ; preds = %21410
  call void @llvm.lifetime.start.p0(i64 4, ptr %652) #10
  %21412 = call ptr @__errno_location() #11
  %21413 = load i32, ptr %21412, align 4, !tbaa !5
  store i32 %21413, ptr %652, align 4, !tbaa !5
  %21414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21415 = call i32 @s2n_print_stacktrace(ptr noundef %21414)
  %21416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21417 = trunc i8 %21416 to i1
  br i1 %21417, label %21418, label %21440

21418:                                            ; preds = %21411
  %21419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21420 = call i32 @fileno(ptr noundef %21419) #10
  %21421 = call i32 @isatty(i32 noundef %21420) #10
  %21422 = icmp ne i32 %21421, 0
  br i1 %21422, label %21423, label %21440

21423:                                            ; preds = %21418
  %21424 = load i32, ptr %652, align 4, !tbaa !5
  %21425 = call ptr @__errno_location() #11
  store i32 %21424, ptr %21425, align 4, !tbaa !5
  %21426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21427 = load i32, ptr @test_count, align 4, !tbaa !5
  %21428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21429 = load i32, ptr %21428, align 4, !tbaa !5
  %21430 = call ptr @s2n_strerror(i32 noundef %21429, ptr noundef @.str.4)
  %21431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21432 = load i32, ptr %21431, align 4, !tbaa !5
  %21433 = call ptr @s2n_strerror_debug(i32 noundef %21432, ptr noundef @.str.4)
  %21434 = call ptr @__errno_location() #11
  %21435 = load i32, ptr %21434, align 4, !tbaa !5
  %21436 = call ptr @strerror(i32 noundef %21435) #10
  %21437 = call ptr @__errno_location() #11
  %21438 = load i32, ptr %21437, align 4, !tbaa !5
  %21439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21426, ptr noundef @.str.2, i32 noundef %21427, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 1394, ptr noundef %21430, ptr noundef %21433, ptr noundef %21436, i32 noundef %21438) #10
  br label %21457

21440:                                            ; preds = %21418, %21411
  %21441 = load i32, ptr %652, align 4, !tbaa !5
  %21442 = call ptr @__errno_location() #11
  store i32 %21441, ptr %21442, align 4, !tbaa !5
  %21443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21444 = load i32, ptr @test_count, align 4, !tbaa !5
  %21445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21446 = load i32, ptr %21445, align 4, !tbaa !5
  %21447 = call ptr @s2n_strerror(i32 noundef %21446, ptr noundef @.str.4)
  %21448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21449 = load i32, ptr %21448, align 4, !tbaa !5
  %21450 = call ptr @s2n_strerror_debug(i32 noundef %21449, ptr noundef @.str.4)
  %21451 = call ptr @__errno_location() #11
  %21452 = load i32, ptr %21451, align 4, !tbaa !5
  %21453 = call ptr @strerror(i32 noundef %21452) #10
  %21454 = call ptr @__errno_location() #11
  %21455 = load i32, ptr %21454, align 4, !tbaa !5
  %21456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21443, ptr noundef @.str.5, i32 noundef %21444, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 1394, ptr noundef %21447, ptr noundef %21450, ptr noundef %21453, i32 noundef %21455) #10
  br label %21457

21457:                                            ; preds = %21440, %21423
  call void @llvm.lifetime.end.p0(i64 4, ptr %652) #10
  br label %21458

21458:                                            ; preds = %21457
  br label %21459

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

21460:                                            ; No predecessors!
  br label %21461

21461:                                            ; preds = %21460
  br label %21462

21462:                                            ; preds = %21461, %21403
  br label %21463

21463:                                            ; preds = %21462
  br label %21464

21464:                                            ; preds = %21463
  br label %21465

21465:                                            ; preds = %21464
  %21466 = load i32, ptr @test_count, align 4, !tbaa !5
  %21467 = add nsw i32 %21466, 1
  store i32 %21467, ptr @test_count, align 4, !tbaa !5
  %21468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21469 = load i32, ptr %21468, align 4, !tbaa !5
  %21470 = call ptr @s2n_strerror_debug(i32 noundef %21469, ptr noundef @.str.4)
  %21471 = icmp eq ptr %21470, null
  br i1 %21471, label %21472, label %21525

21472:                                            ; preds = %21465
  br label %21473

21473:                                            ; preds = %21472
  br label %21474

21474:                                            ; preds = %21473
  call void @llvm.lifetime.start.p0(i64 4, ptr %653) #10
  %21475 = call ptr @__errno_location() #11
  %21476 = load i32, ptr %21475, align 4, !tbaa !5
  store i32 %21476, ptr %653, align 4, !tbaa !5
  %21477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21478 = call i32 @s2n_print_stacktrace(ptr noundef %21477)
  %21479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21480 = trunc i8 %21479 to i1
  br i1 %21480, label %21481, label %21503

21481:                                            ; preds = %21474
  %21482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21483 = call i32 @fileno(ptr noundef %21482) #10
  %21484 = call i32 @isatty(i32 noundef %21483) #10
  %21485 = icmp ne i32 %21484, 0
  br i1 %21485, label %21486, label %21503

21486:                                            ; preds = %21481
  %21487 = load i32, ptr %653, align 4, !tbaa !5
  %21488 = call ptr @__errno_location() #11
  store i32 %21487, ptr %21488, align 4, !tbaa !5
  %21489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21490 = load i32, ptr @test_count, align 4, !tbaa !5
  %21491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21492 = load i32, ptr %21491, align 4, !tbaa !5
  %21493 = call ptr @s2n_strerror(i32 noundef %21492, ptr noundef @.str.4)
  %21494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21495 = load i32, ptr %21494, align 4, !tbaa !5
  %21496 = call ptr @s2n_strerror_debug(i32 noundef %21495, ptr noundef @.str.4)
  %21497 = call ptr @__errno_location() #11
  %21498 = load i32, ptr %21497, align 4, !tbaa !5
  %21499 = call ptr @strerror(i32 noundef %21498) #10
  %21500 = call ptr @__errno_location() #11
  %21501 = load i32, ptr %21500, align 4, !tbaa !5
  %21502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21489, ptr noundef @.str.2, i32 noundef %21490, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1394, ptr noundef %21493, ptr noundef %21496, ptr noundef %21499, i32 noundef %21501) #10
  br label %21520

21503:                                            ; preds = %21481, %21474
  %21504 = load i32, ptr %653, align 4, !tbaa !5
  %21505 = call ptr @__errno_location() #11
  store i32 %21504, ptr %21505, align 4, !tbaa !5
  %21506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21507 = load i32, ptr @test_count, align 4, !tbaa !5
  %21508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21509 = load i32, ptr %21508, align 4, !tbaa !5
  %21510 = call ptr @s2n_strerror(i32 noundef %21509, ptr noundef @.str.4)
  %21511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21512 = load i32, ptr %21511, align 4, !tbaa !5
  %21513 = call ptr @s2n_strerror_debug(i32 noundef %21512, ptr noundef @.str.4)
  %21514 = call ptr @__errno_location() #11
  %21515 = load i32, ptr %21514, align 4, !tbaa !5
  %21516 = call ptr @strerror(i32 noundef %21515) #10
  %21517 = call ptr @__errno_location() #11
  %21518 = load i32, ptr %21517, align 4, !tbaa !5
  %21519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21506, ptr noundef @.str.5, i32 noundef %21507, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1394, ptr noundef %21510, ptr noundef %21513, ptr noundef %21516, i32 noundef %21518) #10
  br label %21520

21520:                                            ; preds = %21503, %21486
  call void @llvm.lifetime.end.p0(i64 4, ptr %653) #10
  br label %21521

21521:                                            ; preds = %21520
  br label %21522

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

21523:                                            ; No predecessors!
  br label %21524

21524:                                            ; preds = %21523
  br label %21525

21525:                                            ; preds = %21524, %21465
  br label %21526

21526:                                            ; preds = %21525
  br label %21527

21527:                                            ; preds = %21526
  br label %21528

21528:                                            ; preds = %21527
  br label %21529

21529:                                            ; preds = %21528
  br label %21530

21530:                                            ; preds = %21529
  %21531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %21531, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %21532 = call ptr @__errno_location() #11
  store i32 0, ptr %21532, align 4, !tbaa !5
  br label %21533

21533:                                            ; preds = %21530
  br label %21534

21534:                                            ; preds = %21533
  br label %21535

21535:                                            ; preds = %21534
  br label %21536

21536:                                            ; preds = %21535
  br label %21537

21537:                                            ; preds = %21536
  %21538 = load i32, ptr @test_count, align 4, !tbaa !5
  %21539 = add nsw i32 %21538, 1
  store i32 %21539, ptr @test_count, align 4, !tbaa !5
  %21540 = load ptr, ptr %642, align 8, !tbaa !9
  %21541 = getelementptr inbounds %struct.s2n_connection, ptr %21540, i32 0, i32 23
  %21542 = load i8, ptr %21541, align 4, !tbaa !50
  %21543 = zext i8 %21542 to i32
  %21544 = icmp eq i32 %21543, 33
  br i1 %21544, label %21598, label %21545

21545:                                            ; preds = %21537
  br label %21546

21546:                                            ; preds = %21545
  br label %21547

21547:                                            ; preds = %21546
  call void @llvm.lifetime.start.p0(i64 4, ptr %654) #10
  %21548 = call ptr @__errno_location() #11
  %21549 = load i32, ptr %21548, align 4, !tbaa !5
  store i32 %21549, ptr %654, align 4, !tbaa !5
  %21550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21551 = call i32 @s2n_print_stacktrace(ptr noundef %21550)
  %21552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21553 = trunc i8 %21552 to i1
  br i1 %21553, label %21554, label %21576

21554:                                            ; preds = %21547
  %21555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21556 = call i32 @fileno(ptr noundef %21555) #10
  %21557 = call i32 @isatty(i32 noundef %21556) #10
  %21558 = icmp ne i32 %21557, 0
  br i1 %21558, label %21559, label %21576

21559:                                            ; preds = %21554
  %21560 = load i32, ptr %654, align 4, !tbaa !5
  %21561 = call ptr @__errno_location() #11
  store i32 %21560, ptr %21561, align 4, !tbaa !5
  %21562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21563 = load i32, ptr @test_count, align 4, !tbaa !5
  %21564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21565 = load i32, ptr %21564, align 4, !tbaa !5
  %21566 = call ptr @s2n_strerror(i32 noundef %21565, ptr noundef @.str.4)
  %21567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21568 = load i32, ptr %21567, align 4, !tbaa !5
  %21569 = call ptr @s2n_strerror_debug(i32 noundef %21568, ptr noundef @.str.4)
  %21570 = call ptr @__errno_location() #11
  %21571 = load i32, ptr %21570, align 4, !tbaa !5
  %21572 = call ptr @strerror(i32 noundef %21571) #10
  %21573 = call ptr @__errno_location() #11
  %21574 = load i32, ptr %21573, align 4, !tbaa !5
  %21575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21562, ptr noundef @.str.2, i32 noundef %21563, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 1395, ptr noundef %21566, ptr noundef %21569, ptr noundef %21572, i32 noundef %21574) #10
  br label %21593

21576:                                            ; preds = %21554, %21547
  %21577 = load i32, ptr %654, align 4, !tbaa !5
  %21578 = call ptr @__errno_location() #11
  store i32 %21577, ptr %21578, align 4, !tbaa !5
  %21579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21580 = load i32, ptr @test_count, align 4, !tbaa !5
  %21581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21582 = load i32, ptr %21581, align 4, !tbaa !5
  %21583 = call ptr @s2n_strerror(i32 noundef %21582, ptr noundef @.str.4)
  %21584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21585 = load i32, ptr %21584, align 4, !tbaa !5
  %21586 = call ptr @s2n_strerror_debug(i32 noundef %21585, ptr noundef @.str.4)
  %21587 = call ptr @__errno_location() #11
  %21588 = load i32, ptr %21587, align 4, !tbaa !5
  %21589 = call ptr @strerror(i32 noundef %21588) #10
  %21590 = call ptr @__errno_location() #11
  %21591 = load i32, ptr %21590, align 4, !tbaa !5
  %21592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21579, ptr noundef @.str.5, i32 noundef %21580, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 1395, ptr noundef %21583, ptr noundef %21586, ptr noundef %21589, i32 noundef %21591) #10
  br label %21593

21593:                                            ; preds = %21576, %21559
  call void @llvm.lifetime.end.p0(i64 4, ptr %654) #10
  br label %21594

21594:                                            ; preds = %21593
  br label %21595

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

21596:                                            ; No predecessors!
  br label %21597

21597:                                            ; preds = %21596
  br label %21598

21598:                                            ; preds = %21597, %21537
  br label %21599

21599:                                            ; preds = %21598
  br label %21600

21600:                                            ; preds = %21599
  br label %21601

21601:                                            ; preds = %21600
  %21602 = load i32, ptr @test_count, align 4, !tbaa !5
  %21603 = add nsw i32 %21602, 1
  store i32 %21603, ptr @test_count, align 4, !tbaa !5
  %21604 = load ptr, ptr %643, align 8, !tbaa !9
  %21605 = getelementptr inbounds %struct.s2n_connection, ptr %21604, i32 0, i32 23
  %21606 = load i8, ptr %21605, align 4, !tbaa !50
  %21607 = zext i8 %21606 to i32
  %21608 = icmp eq i32 %21607, 33
  br i1 %21608, label %21662, label %21609

21609:                                            ; preds = %21601
  br label %21610

21610:                                            ; preds = %21609
  br label %21611

21611:                                            ; preds = %21610
  call void @llvm.lifetime.start.p0(i64 4, ptr %655) #10
  %21612 = call ptr @__errno_location() #11
  %21613 = load i32, ptr %21612, align 4, !tbaa !5
  store i32 %21613, ptr %655, align 4, !tbaa !5
  %21614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21615 = call i32 @s2n_print_stacktrace(ptr noundef %21614)
  %21616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21617 = trunc i8 %21616 to i1
  br i1 %21617, label %21618, label %21640

21618:                                            ; preds = %21611
  %21619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21620 = call i32 @fileno(ptr noundef %21619) #10
  %21621 = call i32 @isatty(i32 noundef %21620) #10
  %21622 = icmp ne i32 %21621, 0
  br i1 %21622, label %21623, label %21640

21623:                                            ; preds = %21618
  %21624 = load i32, ptr %655, align 4, !tbaa !5
  %21625 = call ptr @__errno_location() #11
  store i32 %21624, ptr %21625, align 4, !tbaa !5
  %21626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21627 = load i32, ptr @test_count, align 4, !tbaa !5
  %21628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21629 = load i32, ptr %21628, align 4, !tbaa !5
  %21630 = call ptr @s2n_strerror(i32 noundef %21629, ptr noundef @.str.4)
  %21631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21632 = load i32, ptr %21631, align 4, !tbaa !5
  %21633 = call ptr @s2n_strerror_debug(i32 noundef %21632, ptr noundef @.str.4)
  %21634 = call ptr @__errno_location() #11
  %21635 = load i32, ptr %21634, align 4, !tbaa !5
  %21636 = call ptr @strerror(i32 noundef %21635) #10
  %21637 = call ptr @__errno_location() #11
  %21638 = load i32, ptr %21637, align 4, !tbaa !5
  %21639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21626, ptr noundef @.str.2, i32 noundef %21627, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 1396, ptr noundef %21630, ptr noundef %21633, ptr noundef %21636, i32 noundef %21638) #10
  br label %21657

21640:                                            ; preds = %21618, %21611
  %21641 = load i32, ptr %655, align 4, !tbaa !5
  %21642 = call ptr @__errno_location() #11
  store i32 %21641, ptr %21642, align 4, !tbaa !5
  %21643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21644 = load i32, ptr @test_count, align 4, !tbaa !5
  %21645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21646 = load i32, ptr %21645, align 4, !tbaa !5
  %21647 = call ptr @s2n_strerror(i32 noundef %21646, ptr noundef @.str.4)
  %21648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21649 = load i32, ptr %21648, align 4, !tbaa !5
  %21650 = call ptr @s2n_strerror_debug(i32 noundef %21649, ptr noundef @.str.4)
  %21651 = call ptr @__errno_location() #11
  %21652 = load i32, ptr %21651, align 4, !tbaa !5
  %21653 = call ptr @strerror(i32 noundef %21652) #10
  %21654 = call ptr @__errno_location() #11
  %21655 = load i32, ptr %21654, align 4, !tbaa !5
  %21656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21643, ptr noundef @.str.5, i32 noundef %21644, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 1396, ptr noundef %21647, ptr noundef %21650, ptr noundef %21653, i32 noundef %21655) #10
  br label %21657

21657:                                            ; preds = %21640, %21623
  call void @llvm.lifetime.end.p0(i64 4, ptr %655) #10
  br label %21658

21658:                                            ; preds = %21657
  br label %21659

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

21660:                                            ; No predecessors!
  br label %21661

21661:                                            ; preds = %21660
  br label %21662

21662:                                            ; preds = %21661, %21601
  br label %21663

21663:                                            ; preds = %21662
  br label %21664

21664:                                            ; preds = %21663
  %21665 = call i32 @s2n_io_pair_close(ptr noundef %648)
  call void @llvm.lifetime.end.p0(i64 8, ptr %648) #10
  %21666 = call i32 @s2n_connection_ptr_free(ptr noundef %643)
  %21667 = getelementptr inbounds %struct.s2n_result, ptr %656, i32 0, i32 0
  store i32 %21666, ptr %21667, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %643) #10
  %21668 = call i32 @s2n_connection_ptr_free(ptr noundef %642)
  %21669 = getelementptr inbounds %struct.s2n_result, ptr %657, i32 0, i32 0
  store i32 %21668, ptr %21669, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %642) #10
  %21670 = call i32 @s2n_config_ptr_free(ptr noundef %638)
  %21671 = getelementptr inbounds %struct.s2n_result, ptr %658, i32 0, i32 0
  store i32 %21670, ptr %21671, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %638) #10
  br label %21672

21672:                                            ; preds = %21664
  %21673 = load i64, ptr %637, align 8, !tbaa !54
  %21674 = add i64 %21673, 1
  store i64 %21674, ptr %637, align 8, !tbaa !54
  br label %20764, !llvm.loop !92

21675:                                            ; preds = %20767
  call void @llvm.lifetime.end.p0(i64 64, ptr %596) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %595) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %594) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %590) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %586) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %585) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %584) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %583) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %582) #10
  br label %21676

21676:                                            ; preds = %21675
  %21677 = load i32, ptr @test_count, align 4, !tbaa !5
  %21678 = add nsw i32 %21677, 1
  store i32 %21678, ptr @test_count, align 4, !tbaa !5
  %21679 = call i32 (...) @s2n_reset_tls13_in_test()
  %21680 = icmp eq i32 %21679, -1
  br i1 %21680, label %21681, label %21734

21681:                                            ; preds = %21676
  br label %21682

21682:                                            ; preds = %21681
  br label %21683

21683:                                            ; preds = %21682
  call void @llvm.lifetime.start.p0(i64 4, ptr %659) #10
  %21684 = call ptr @__errno_location() #11
  %21685 = load i32, ptr %21684, align 4, !tbaa !5
  store i32 %21685, ptr %659, align 4, !tbaa !5
  %21686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21687 = call i32 @s2n_print_stacktrace(ptr noundef %21686)
  %21688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21689 = trunc i8 %21688 to i1
  br i1 %21689, label %21690, label %21712

21690:                                            ; preds = %21683
  %21691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21692 = call i32 @fileno(ptr noundef %21691) #10
  %21693 = call i32 @isatty(i32 noundef %21692) #10
  %21694 = icmp ne i32 %21693, 0
  br i1 %21694, label %21695, label %21712

21695:                                            ; preds = %21690
  %21696 = load i32, ptr %659, align 4, !tbaa !5
  %21697 = call ptr @__errno_location() #11
  store i32 %21696, ptr %21697, align 4, !tbaa !5
  %21698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21699 = load i32, ptr @test_count, align 4, !tbaa !5
  %21700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21701 = load i32, ptr %21700, align 4, !tbaa !5
  %21702 = call ptr @s2n_strerror(i32 noundef %21701, ptr noundef @.str.4)
  %21703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21704 = load i32, ptr %21703, align 4, !tbaa !5
  %21705 = call ptr @s2n_strerror_debug(i32 noundef %21704, ptr noundef @.str.4)
  %21706 = call ptr @__errno_location() #11
  %21707 = load i32, ptr %21706, align 4, !tbaa !5
  %21708 = call ptr @strerror(i32 noundef %21707) #10
  %21709 = call ptr @__errno_location() #11
  %21710 = load i32, ptr %21709, align 4, !tbaa !5
  %21711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21698, ptr noundef @.str.2, i32 noundef %21699, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 1400, ptr noundef %21702, ptr noundef %21705, ptr noundef %21708, i32 noundef %21710) #10
  br label %21729

21712:                                            ; preds = %21690, %21683
  %21713 = load i32, ptr %659, align 4, !tbaa !5
  %21714 = call ptr @__errno_location() #11
  store i32 %21713, ptr %21714, align 4, !tbaa !5
  %21715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21716 = load i32, ptr @test_count, align 4, !tbaa !5
  %21717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21718 = load i32, ptr %21717, align 4, !tbaa !5
  %21719 = call ptr @s2n_strerror(i32 noundef %21718, ptr noundef @.str.4)
  %21720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21721 = load i32, ptr %21720, align 4, !tbaa !5
  %21722 = call ptr @s2n_strerror_debug(i32 noundef %21721, ptr noundef @.str.4)
  %21723 = call ptr @__errno_location() #11
  %21724 = load i32, ptr %21723, align 4, !tbaa !5
  %21725 = call ptr @strerror(i32 noundef %21724) #10
  %21726 = call ptr @__errno_location() #11
  %21727 = load i32, ptr %21726, align 4, !tbaa !5
  %21728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21715, ptr noundef @.str.5, i32 noundef %21716, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 1400, ptr noundef %21719, ptr noundef %21722, ptr noundef %21725, i32 noundef %21727) #10
  br label %21729

21729:                                            ; preds = %21712, %21695
  call void @llvm.lifetime.end.p0(i64 4, ptr %659) #10
  br label %21730

21730:                                            ; preds = %21729
  br label %21731

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

21732:                                            ; No predecessors!
  br label %21733

21733:                                            ; preds = %21732
  br label %21734

21734:                                            ; preds = %21733, %21676
  br label %21735

21735:                                            ; preds = %21734
  br label %21736

21736:                                            ; preds = %21735
  %21737 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %21737, label %21738, label %22934

21738:                                            ; preds = %21736
  call void @llvm.lifetime.start.p0(i64 8, ptr %660) #10
  %21739 = call ptr @s2n_config_new()
  store ptr %21739, ptr %660, align 8, !tbaa !9
  br label %21740

21740:                                            ; preds = %21738
  %21741 = load i32, ptr @test_count, align 4, !tbaa !5
  %21742 = add nsw i32 %21741, 1
  store i32 %21742, ptr @test_count, align 4, !tbaa !5
  %21743 = load ptr, ptr %660, align 8, !tbaa !9
  %21744 = icmp eq ptr %21743, null
  br i1 %21744, label %21745, label %21798

21745:                                            ; preds = %21740
  br label %21746

21746:                                            ; preds = %21745
  br label %21747

21747:                                            ; preds = %21746
  call void @llvm.lifetime.start.p0(i64 4, ptr %661) #10
  %21748 = call ptr @__errno_location() #11
  %21749 = load i32, ptr %21748, align 4, !tbaa !5
  store i32 %21749, ptr %661, align 4, !tbaa !5
  %21750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21751 = call i32 @s2n_print_stacktrace(ptr noundef %21750)
  %21752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21753 = trunc i8 %21752 to i1
  br i1 %21753, label %21754, label %21776

21754:                                            ; preds = %21747
  %21755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21756 = call i32 @fileno(ptr noundef %21755) #10
  %21757 = call i32 @isatty(i32 noundef %21756) #10
  %21758 = icmp ne i32 %21757, 0
  br i1 %21758, label %21759, label %21776

21759:                                            ; preds = %21754
  %21760 = load i32, ptr %661, align 4, !tbaa !5
  %21761 = call ptr @__errno_location() #11
  store i32 %21760, ptr %21761, align 4, !tbaa !5
  %21762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21763 = load i32, ptr @test_count, align 4, !tbaa !5
  %21764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21765 = load i32, ptr %21764, align 4, !tbaa !5
  %21766 = call ptr @s2n_strerror(i32 noundef %21765, ptr noundef @.str.4)
  %21767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21768 = load i32, ptr %21767, align 4, !tbaa !5
  %21769 = call ptr @s2n_strerror_debug(i32 noundef %21768, ptr noundef @.str.4)
  %21770 = call ptr @__errno_location() #11
  %21771 = load i32, ptr %21770, align 4, !tbaa !5
  %21772 = call ptr @strerror(i32 noundef %21771) #10
  %21773 = call ptr @__errno_location() #11
  %21774 = load i32, ptr %21773, align 4, !tbaa !5
  %21775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21762, ptr noundef @.str.2, i32 noundef %21763, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 1412, ptr noundef %21766, ptr noundef %21769, ptr noundef %21772, i32 noundef %21774) #10
  br label %21793

21776:                                            ; preds = %21754, %21747
  %21777 = load i32, ptr %661, align 4, !tbaa !5
  %21778 = call ptr @__errno_location() #11
  store i32 %21777, ptr %21778, align 4, !tbaa !5
  %21779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21780 = load i32, ptr @test_count, align 4, !tbaa !5
  %21781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21782 = load i32, ptr %21781, align 4, !tbaa !5
  %21783 = call ptr @s2n_strerror(i32 noundef %21782, ptr noundef @.str.4)
  %21784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21785 = load i32, ptr %21784, align 4, !tbaa !5
  %21786 = call ptr @s2n_strerror_debug(i32 noundef %21785, ptr noundef @.str.4)
  %21787 = call ptr @__errno_location() #11
  %21788 = load i32, ptr %21787, align 4, !tbaa !5
  %21789 = call ptr @strerror(i32 noundef %21788) #10
  %21790 = call ptr @__errno_location() #11
  %21791 = load i32, ptr %21790, align 4, !tbaa !5
  %21792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21779, ptr noundef @.str.5, i32 noundef %21780, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 1412, ptr noundef %21783, ptr noundef %21786, ptr noundef %21789, i32 noundef %21791) #10
  br label %21793

21793:                                            ; preds = %21776, %21759
  call void @llvm.lifetime.end.p0(i64 4, ptr %661) #10
  br label %21794

21794:                                            ; preds = %21793
  br label %21795

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

21796:                                            ; No predecessors!
  br label %21797

21797:                                            ; preds = %21796
  br label %21798

21798:                                            ; preds = %21797, %21740
  br label %21799

21799:                                            ; preds = %21798
  br label %21800

21800:                                            ; preds = %21799
  br label %21801

21801:                                            ; preds = %21800
  %21802 = load i32, ptr @test_count, align 4, !tbaa !5
  %21803 = add nsw i32 %21802, 1
  store i32 %21803, ptr @test_count, align 4, !tbaa !5
  %21804 = load ptr, ptr %660, align 8, !tbaa !9
  %21805 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %21804)
  %21806 = icmp eq i32 %21805, -1
  br i1 %21806, label %21807, label %21860

21807:                                            ; preds = %21801
  br label %21808

21808:                                            ; preds = %21807
  br label %21809

21809:                                            ; preds = %21808
  call void @llvm.lifetime.start.p0(i64 4, ptr %662) #10
  %21810 = call ptr @__errno_location() #11
  %21811 = load i32, ptr %21810, align 4, !tbaa !5
  store i32 %21811, ptr %662, align 4, !tbaa !5
  %21812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21813 = call i32 @s2n_print_stacktrace(ptr noundef %21812)
  %21814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21815 = trunc i8 %21814 to i1
  br i1 %21815, label %21816, label %21838

21816:                                            ; preds = %21809
  %21817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21818 = call i32 @fileno(ptr noundef %21817) #10
  %21819 = call i32 @isatty(i32 noundef %21818) #10
  %21820 = icmp ne i32 %21819, 0
  br i1 %21820, label %21821, label %21838

21821:                                            ; preds = %21816
  %21822 = load i32, ptr %662, align 4, !tbaa !5
  %21823 = call ptr @__errno_location() #11
  store i32 %21822, ptr %21823, align 4, !tbaa !5
  %21824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21825 = load i32, ptr @test_count, align 4, !tbaa !5
  %21826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21827 = load i32, ptr %21826, align 4, !tbaa !5
  %21828 = call ptr @s2n_strerror(i32 noundef %21827, ptr noundef @.str.4)
  %21829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21830 = load i32, ptr %21829, align 4, !tbaa !5
  %21831 = call ptr @s2n_strerror_debug(i32 noundef %21830, ptr noundef @.str.4)
  %21832 = call ptr @__errno_location() #11
  %21833 = load i32, ptr %21832, align 4, !tbaa !5
  %21834 = call ptr @strerror(i32 noundef %21833) #10
  %21835 = call ptr @__errno_location() #11
  %21836 = load i32, ptr %21835, align 4, !tbaa !5
  %21837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21824, ptr noundef @.str.2, i32 noundef %21825, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 1413, ptr noundef %21828, ptr noundef %21831, ptr noundef %21834, i32 noundef %21836) #10
  br label %21855

21838:                                            ; preds = %21816, %21809
  %21839 = load i32, ptr %662, align 4, !tbaa !5
  %21840 = call ptr @__errno_location() #11
  store i32 %21839, ptr %21840, align 4, !tbaa !5
  %21841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21842 = load i32, ptr @test_count, align 4, !tbaa !5
  %21843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21844 = load i32, ptr %21843, align 4, !tbaa !5
  %21845 = call ptr @s2n_strerror(i32 noundef %21844, ptr noundef @.str.4)
  %21846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21847 = load i32, ptr %21846, align 4, !tbaa !5
  %21848 = call ptr @s2n_strerror_debug(i32 noundef %21847, ptr noundef @.str.4)
  %21849 = call ptr @__errno_location() #11
  %21850 = load i32, ptr %21849, align 4, !tbaa !5
  %21851 = call ptr @strerror(i32 noundef %21850) #10
  %21852 = call ptr @__errno_location() #11
  %21853 = load i32, ptr %21852, align 4, !tbaa !5
  %21854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21841, ptr noundef @.str.5, i32 noundef %21842, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 1413, ptr noundef %21845, ptr noundef %21848, ptr noundef %21851, i32 noundef %21853) #10
  br label %21855

21855:                                            ; preds = %21838, %21821
  call void @llvm.lifetime.end.p0(i64 4, ptr %662) #10
  br label %21856

21856:                                            ; preds = %21855
  br label %21857

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

21858:                                            ; No predecessors!
  br label %21859

21859:                                            ; preds = %21858
  br label %21860

21860:                                            ; preds = %21859, %21801
  br label %21861

21861:                                            ; preds = %21860
  br label %21862

21862:                                            ; preds = %21861
  call void @llvm.lifetime.start.p0(i64 8, ptr %663) #10
  store ptr null, ptr %663, align 8, !tbaa !9
  br label %21863

21863:                                            ; preds = %21862
  %21864 = load i32, ptr @test_count, align 4, !tbaa !5
  %21865 = add nsw i32 %21864, 1
  store i32 %21865, ptr @test_count, align 4, !tbaa !5
  %21866 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %663, ptr noundef @.str.116, ptr noundef @.str.117)
  %21867 = icmp eq i32 %21866, -1
  br i1 %21867, label %21868, label %21921

21868:                                            ; preds = %21863
  br label %21869

21869:                                            ; preds = %21868
  br label %21870

21870:                                            ; preds = %21869
  call void @llvm.lifetime.start.p0(i64 4, ptr %664) #10
  %21871 = call ptr @__errno_location() #11
  %21872 = load i32, ptr %21871, align 4, !tbaa !5
  store i32 %21872, ptr %664, align 4, !tbaa !5
  %21873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21874 = call i32 @s2n_print_stacktrace(ptr noundef %21873)
  %21875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21876 = trunc i8 %21875 to i1
  br i1 %21876, label %21877, label %21899

21877:                                            ; preds = %21870
  %21878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21879 = call i32 @fileno(ptr noundef %21878) #10
  %21880 = call i32 @isatty(i32 noundef %21879) #10
  %21881 = icmp ne i32 %21880, 0
  br i1 %21881, label %21882, label %21899

21882:                                            ; preds = %21877
  %21883 = load i32, ptr %664, align 4, !tbaa !5
  %21884 = call ptr @__errno_location() #11
  store i32 %21883, ptr %21884, align 4, !tbaa !5
  %21885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21886 = load i32, ptr @test_count, align 4, !tbaa !5
  %21887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21888 = load i32, ptr %21887, align 4, !tbaa !5
  %21889 = call ptr @s2n_strerror(i32 noundef %21888, ptr noundef @.str.4)
  %21890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21891 = load i32, ptr %21890, align 4, !tbaa !5
  %21892 = call ptr @s2n_strerror_debug(i32 noundef %21891, ptr noundef @.str.4)
  %21893 = call ptr @__errno_location() #11
  %21894 = load i32, ptr %21893, align 4, !tbaa !5
  %21895 = call ptr @strerror(i32 noundef %21894) #10
  %21896 = call ptr @__errno_location() #11
  %21897 = load i32, ptr %21896, align 4, !tbaa !5
  %21898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21885, ptr noundef @.str.2, i32 noundef %21886, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 1419, ptr noundef %21889, ptr noundef %21892, ptr noundef %21895, i32 noundef %21897) #10
  br label %21916

21899:                                            ; preds = %21877, %21870
  %21900 = load i32, ptr %664, align 4, !tbaa !5
  %21901 = call ptr @__errno_location() #11
  store i32 %21900, ptr %21901, align 4, !tbaa !5
  %21902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21903 = load i32, ptr @test_count, align 4, !tbaa !5
  %21904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21905 = load i32, ptr %21904, align 4, !tbaa !5
  %21906 = call ptr @s2n_strerror(i32 noundef %21905, ptr noundef @.str.4)
  %21907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21908 = load i32, ptr %21907, align 4, !tbaa !5
  %21909 = call ptr @s2n_strerror_debug(i32 noundef %21908, ptr noundef @.str.4)
  %21910 = call ptr @__errno_location() #11
  %21911 = load i32, ptr %21910, align 4, !tbaa !5
  %21912 = call ptr @strerror(i32 noundef %21911) #10
  %21913 = call ptr @__errno_location() #11
  %21914 = load i32, ptr %21913, align 4, !tbaa !5
  %21915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21902, ptr noundef @.str.5, i32 noundef %21903, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 1419, ptr noundef %21906, ptr noundef %21909, ptr noundef %21912, i32 noundef %21914) #10
  br label %21916

21916:                                            ; preds = %21899, %21882
  call void @llvm.lifetime.end.p0(i64 4, ptr %664) #10
  br label %21917

21917:                                            ; preds = %21916
  br label %21918

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

21919:                                            ; No predecessors!
  br label %21920

21920:                                            ; preds = %21919
  br label %21921

21921:                                            ; preds = %21920, %21863
  br label %21922

21922:                                            ; preds = %21921
  br label %21923

21923:                                            ; preds = %21922
  br label %21924

21924:                                            ; preds = %21923
  %21925 = load i32, ptr @test_count, align 4, !tbaa !5
  %21926 = add nsw i32 %21925, 1
  store i32 %21926, ptr @test_count, align 4, !tbaa !5
  %21927 = load ptr, ptr %660, align 8, !tbaa !9
  %21928 = load ptr, ptr %663, align 8, !tbaa !9
  %21929 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %21927, ptr noundef %21928)
  %21930 = icmp eq i32 %21929, -1
  br i1 %21930, label %21931, label %21984

21931:                                            ; preds = %21924
  br label %21932

21932:                                            ; preds = %21931
  br label %21933

21933:                                            ; preds = %21932
  call void @llvm.lifetime.start.p0(i64 4, ptr %665) #10
  %21934 = call ptr @__errno_location() #11
  %21935 = load i32, ptr %21934, align 4, !tbaa !5
  store i32 %21935, ptr %665, align 4, !tbaa !5
  %21936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21937 = call i32 @s2n_print_stacktrace(ptr noundef %21936)
  %21938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21939 = trunc i8 %21938 to i1
  br i1 %21939, label %21940, label %21962

21940:                                            ; preds = %21933
  %21941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21942 = call i32 @fileno(ptr noundef %21941) #10
  %21943 = call i32 @isatty(i32 noundef %21942) #10
  %21944 = icmp ne i32 %21943, 0
  br i1 %21944, label %21945, label %21962

21945:                                            ; preds = %21940
  %21946 = load i32, ptr %665, align 4, !tbaa !5
  %21947 = call ptr @__errno_location() #11
  store i32 %21946, ptr %21947, align 4, !tbaa !5
  %21948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21949 = load i32, ptr @test_count, align 4, !tbaa !5
  %21950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21951 = load i32, ptr %21950, align 4, !tbaa !5
  %21952 = call ptr @s2n_strerror(i32 noundef %21951, ptr noundef @.str.4)
  %21953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21954 = load i32, ptr %21953, align 4, !tbaa !5
  %21955 = call ptr @s2n_strerror_debug(i32 noundef %21954, ptr noundef @.str.4)
  %21956 = call ptr @__errno_location() #11
  %21957 = load i32, ptr %21956, align 4, !tbaa !5
  %21958 = call ptr @strerror(i32 noundef %21957) #10
  %21959 = call ptr @__errno_location() #11
  %21960 = load i32, ptr %21959, align 4, !tbaa !5
  %21961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21948, ptr noundef @.str.2, i32 noundef %21949, ptr noundef @.str.119, ptr noundef @.str.1, i32 noundef 1420, ptr noundef %21952, ptr noundef %21955, ptr noundef %21958, i32 noundef %21960) #10
  br label %21979

21962:                                            ; preds = %21940, %21933
  %21963 = load i32, ptr %665, align 4, !tbaa !5
  %21964 = call ptr @__errno_location() #11
  store i32 %21963, ptr %21964, align 4, !tbaa !5
  %21965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21966 = load i32, ptr @test_count, align 4, !tbaa !5
  %21967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21968 = load i32, ptr %21967, align 4, !tbaa !5
  %21969 = call ptr @s2n_strerror(i32 noundef %21968, ptr noundef @.str.4)
  %21970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21971 = load i32, ptr %21970, align 4, !tbaa !5
  %21972 = call ptr @s2n_strerror_debug(i32 noundef %21971, ptr noundef @.str.4)
  %21973 = call ptr @__errno_location() #11
  %21974 = load i32, ptr %21973, align 4, !tbaa !5
  %21975 = call ptr @strerror(i32 noundef %21974) #10
  %21976 = call ptr @__errno_location() #11
  %21977 = load i32, ptr %21976, align 4, !tbaa !5
  %21978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21965, ptr noundef @.str.5, i32 noundef %21966, ptr noundef @.str.119, ptr noundef @.str.1, i32 noundef 1420, ptr noundef %21969, ptr noundef %21972, ptr noundef %21975, i32 noundef %21977) #10
  br label %21979

21979:                                            ; preds = %21962, %21945
  call void @llvm.lifetime.end.p0(i64 4, ptr %665) #10
  br label %21980

21980:                                            ; preds = %21979
  br label %21981

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

21982:                                            ; No predecessors!
  br label %21983

21983:                                            ; preds = %21982
  br label %21984

21984:                                            ; preds = %21983, %21924
  br label %21985

21985:                                            ; preds = %21984
  br label %21986

21986:                                            ; preds = %21985
  call void @llvm.lifetime.start.p0(i64 8, ptr %666) #10
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %666, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %667) #10
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256, ptr %667, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %668) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %668, ptr align 8 @__const.main.cipher_prefs, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %669) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %669, ptr align 16 @__const.main.sig_schemes, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %670) #10
  %21987 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %670, i32 0, i32 0
  store i8 3, ptr %21987, align 8, !tbaa !76
  %21988 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %670, i32 0, i32 1
  %21989 = getelementptr inbounds [3 x ptr], ptr %669, i64 0, i64 0
  store ptr %21989, ptr %21988, align 8, !tbaa !78
  call void @llvm.lifetime.start.p0(i64 16, ptr %671) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %671, ptr align 16 @__const.main.curves, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %672) #10
  %21990 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %672, i32 0, i32 0
  store i8 2, ptr %21990, align 8, !tbaa !93
  %21991 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %672, i32 0, i32 1
  %21992 = getelementptr inbounds [2 x ptr], ptr %671, i64 0, i64 0
  store ptr %21992, ptr %21991, align 8, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 64, ptr %673) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %673, ptr align 8 @security_policy_20230317, i64 64, i1 false), !tbaa.struct !22
  %21993 = getelementptr inbounds %struct.s2n_security_policy, ptr %673, i32 0, i32 1
  store ptr %668, ptr %21993, align 8, !tbaa !96
  %21994 = getelementptr inbounds %struct.s2n_security_policy, ptr %673, i32 0, i32 3
  store ptr %670, ptr %21994, align 8, !tbaa !24
  %21995 = getelementptr inbounds %struct.s2n_security_policy, ptr %673, i32 0, i32 5
  store ptr %672, ptr %21995, align 8, !tbaa !97
  %21996 = load ptr, ptr %660, align 8, !tbaa !9
  %21997 = getelementptr inbounds %struct.s2n_config, ptr %21996, i32 0, i32 7
  store ptr %673, ptr %21997, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %674) #10
  store i8 33, ptr %674, align 1, !tbaa !23
  br label %21998

21998:                                            ; preds = %22926, %21986
  %21999 = load i8, ptr %674, align 1, !tbaa !23
  %22000 = zext i8 %21999 to i32
  %22001 = icmp sle i32 %22000, 34
  br i1 %22001, label %22003, label %22002

22002:                                            ; preds = %21998
  store i32 2076, ptr %485, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %674) #10
  br label %22929

22003:                                            ; preds = %21998
  %22004 = load i8, ptr %674, align 1, !tbaa !23
  %22005 = zext i8 %22004 to i32
  %22006 = icmp sge i32 %22005, 34
  br i1 %22006, label %22007, label %22009

22007:                                            ; preds = %22003
  %22008 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %668, i32 0, i32 1
  store ptr %666, ptr %22008, align 8, !tbaa !98
  br label %22011

22009:                                            ; preds = %22003
  %22010 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %668, i32 0, i32 1
  store ptr %667, ptr %22010, align 8, !tbaa !98
  br label %22011

22011:                                            ; preds = %22009, %22007
  call void @llvm.lifetime.start.p0(i64 8, ptr %675) #10
  %22012 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %22012, ptr %675, align 8, !tbaa !9
  br label %22013

22013:                                            ; preds = %22011
  %22014 = load i32, ptr @test_count, align 4, !tbaa !5
  %22015 = add nsw i32 %22014, 1
  store i32 %22015, ptr @test_count, align 4, !tbaa !5
  %22016 = load ptr, ptr %675, align 8, !tbaa !9
  %22017 = load ptr, ptr %660, align 8, !tbaa !9
  %22018 = call i32 @s2n_connection_set_config(ptr noundef %22016, ptr noundef %22017)
  %22019 = icmp eq i32 %22018, -1
  br i1 %22019, label %22020, label %22073

22020:                                            ; preds = %22013
  br label %22021

22021:                                            ; preds = %22020
  br label %22022

22022:                                            ; preds = %22021
  call void @llvm.lifetime.start.p0(i64 4, ptr %676) #10
  %22023 = call ptr @__errno_location() #11
  %22024 = load i32, ptr %22023, align 4, !tbaa !5
  store i32 %22024, ptr %676, align 4, !tbaa !5
  %22025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22026 = call i32 @s2n_print_stacktrace(ptr noundef %22025)
  %22027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22028 = trunc i8 %22027 to i1
  br i1 %22028, label %22029, label %22051

22029:                                            ; preds = %22022
  %22030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22031 = call i32 @fileno(ptr noundef %22030) #10
  %22032 = call i32 @isatty(i32 noundef %22031) #10
  %22033 = icmp ne i32 %22032, 0
  br i1 %22033, label %22034, label %22051

22034:                                            ; preds = %22029
  %22035 = load i32, ptr %676, align 4, !tbaa !5
  %22036 = call ptr @__errno_location() #11
  store i32 %22035, ptr %22036, align 4, !tbaa !5
  %22037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22038 = load i32, ptr @test_count, align 4, !tbaa !5
  %22039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22040 = load i32, ptr %22039, align 4, !tbaa !5
  %22041 = call ptr @s2n_strerror(i32 noundef %22040, ptr noundef @.str.4)
  %22042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22043 = load i32, ptr %22042, align 4, !tbaa !5
  %22044 = call ptr @s2n_strerror_debug(i32 noundef %22043, ptr noundef @.str.4)
  %22045 = call ptr @__errno_location() #11
  %22046 = load i32, ptr %22045, align 4, !tbaa !5
  %22047 = call ptr @strerror(i32 noundef %22046) #10
  %22048 = call ptr @__errno_location() #11
  %22049 = load i32, ptr %22048, align 4, !tbaa !5
  %22050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22037, ptr noundef @.str.2, i32 noundef %22038, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 1466, ptr noundef %22041, ptr noundef %22044, ptr noundef %22047, i32 noundef %22049) #10
  br label %22068

22051:                                            ; preds = %22029, %22022
  %22052 = load i32, ptr %676, align 4, !tbaa !5
  %22053 = call ptr @__errno_location() #11
  store i32 %22052, ptr %22053, align 4, !tbaa !5
  %22054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22055 = load i32, ptr @test_count, align 4, !tbaa !5
  %22056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22057 = load i32, ptr %22056, align 4, !tbaa !5
  %22058 = call ptr @s2n_strerror(i32 noundef %22057, ptr noundef @.str.4)
  %22059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22060 = load i32, ptr %22059, align 4, !tbaa !5
  %22061 = call ptr @s2n_strerror_debug(i32 noundef %22060, ptr noundef @.str.4)
  %22062 = call ptr @__errno_location() #11
  %22063 = load i32, ptr %22062, align 4, !tbaa !5
  %22064 = call ptr @strerror(i32 noundef %22063) #10
  %22065 = call ptr @__errno_location() #11
  %22066 = load i32, ptr %22065, align 4, !tbaa !5
  %22067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22054, ptr noundef @.str.5, i32 noundef %22055, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 1466, ptr noundef %22058, ptr noundef %22061, ptr noundef %22064, i32 noundef %22066) #10
  br label %22068

22068:                                            ; preds = %22051, %22034
  call void @llvm.lifetime.end.p0(i64 4, ptr %676) #10
  br label %22069

22069:                                            ; preds = %22068
  br label %22070

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

22071:                                            ; No predecessors!
  br label %22072

22072:                                            ; preds = %22071
  br label %22073

22073:                                            ; preds = %22072, %22013
  br label %22074

22074:                                            ; preds = %22073
  br label %22075

22075:                                            ; preds = %22074
  call void @llvm.lifetime.start.p0(i64 8, ptr %677) #10
  %22076 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %22076, ptr %677, align 8, !tbaa !9
  br label %22077

22077:                                            ; preds = %22075
  %22078 = load i32, ptr @test_count, align 4, !tbaa !5
  %22079 = add nsw i32 %22078, 1
  store i32 %22079, ptr @test_count, align 4, !tbaa !5
  %22080 = load ptr, ptr %677, align 8, !tbaa !9
  %22081 = load ptr, ptr %660, align 8, !tbaa !9
  %22082 = call i32 @s2n_connection_set_config(ptr noundef %22080, ptr noundef %22081)
  %22083 = icmp eq i32 %22082, -1
  br i1 %22083, label %22084, label %22137

22084:                                            ; preds = %22077
  br label %22085

22085:                                            ; preds = %22084
  br label %22086

22086:                                            ; preds = %22085
  call void @llvm.lifetime.start.p0(i64 4, ptr %678) #10
  %22087 = call ptr @__errno_location() #11
  %22088 = load i32, ptr %22087, align 4, !tbaa !5
  store i32 %22088, ptr %678, align 4, !tbaa !5
  %22089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22090 = call i32 @s2n_print_stacktrace(ptr noundef %22089)
  %22091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22092 = trunc i8 %22091 to i1
  br i1 %22092, label %22093, label %22115

22093:                                            ; preds = %22086
  %22094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22095 = call i32 @fileno(ptr noundef %22094) #10
  %22096 = call i32 @isatty(i32 noundef %22095) #10
  %22097 = icmp ne i32 %22096, 0
  br i1 %22097, label %22098, label %22115

22098:                                            ; preds = %22093
  %22099 = load i32, ptr %678, align 4, !tbaa !5
  %22100 = call ptr @__errno_location() #11
  store i32 %22099, ptr %22100, align 4, !tbaa !5
  %22101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22102 = load i32, ptr @test_count, align 4, !tbaa !5
  %22103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22104 = load i32, ptr %22103, align 4, !tbaa !5
  %22105 = call ptr @s2n_strerror(i32 noundef %22104, ptr noundef @.str.4)
  %22106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22107 = load i32, ptr %22106, align 4, !tbaa !5
  %22108 = call ptr @s2n_strerror_debug(i32 noundef %22107, ptr noundef @.str.4)
  %22109 = call ptr @__errno_location() #11
  %22110 = load i32, ptr %22109, align 4, !tbaa !5
  %22111 = call ptr @strerror(i32 noundef %22110) #10
  %22112 = call ptr @__errno_location() #11
  %22113 = load i32, ptr %22112, align 4, !tbaa !5
  %22114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22101, ptr noundef @.str.2, i32 noundef %22102, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 1470, ptr noundef %22105, ptr noundef %22108, ptr noundef %22111, i32 noundef %22113) #10
  br label %22132

22115:                                            ; preds = %22093, %22086
  %22116 = load i32, ptr %678, align 4, !tbaa !5
  %22117 = call ptr @__errno_location() #11
  store i32 %22116, ptr %22117, align 4, !tbaa !5
  %22118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22119 = load i32, ptr @test_count, align 4, !tbaa !5
  %22120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22121 = load i32, ptr %22120, align 4, !tbaa !5
  %22122 = call ptr @s2n_strerror(i32 noundef %22121, ptr noundef @.str.4)
  %22123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22124 = load i32, ptr %22123, align 4, !tbaa !5
  %22125 = call ptr @s2n_strerror_debug(i32 noundef %22124, ptr noundef @.str.4)
  %22126 = call ptr @__errno_location() #11
  %22127 = load i32, ptr %22126, align 4, !tbaa !5
  %22128 = call ptr @strerror(i32 noundef %22127) #10
  %22129 = call ptr @__errno_location() #11
  %22130 = load i32, ptr %22129, align 4, !tbaa !5
  %22131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22118, ptr noundef @.str.5, i32 noundef %22119, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 1470, ptr noundef %22122, ptr noundef %22125, ptr noundef %22128, i32 noundef %22130) #10
  br label %22132

22132:                                            ; preds = %22115, %22098
  call void @llvm.lifetime.end.p0(i64 4, ptr %678) #10
  br label %22133

22133:                                            ; preds = %22132
  br label %22134

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

22135:                                            ; No predecessors!
  br label %22136

22136:                                            ; preds = %22135
  br label %22137

22137:                                            ; preds = %22136, %22077
  br label %22138

22138:                                            ; preds = %22137
  br label %22139

22139:                                            ; preds = %22138
  call void @llvm.lifetime.start.p0(i64 8, ptr %679) #10
  br label %22140

22140:                                            ; preds = %22139
  %22141 = load i32, ptr @test_count, align 4, !tbaa !5
  %22142 = add nsw i32 %22141, 1
  store i32 %22142, ptr @test_count, align 4, !tbaa !5
  %22143 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %679)
  %22144 = icmp eq i32 %22143, -1
  br i1 %22144, label %22145, label %22198

22145:                                            ; preds = %22140
  br label %22146

22146:                                            ; preds = %22145
  br label %22147

22147:                                            ; preds = %22146
  call void @llvm.lifetime.start.p0(i64 4, ptr %680) #10
  %22148 = call ptr @__errno_location() #11
  %22149 = load i32, ptr %22148, align 4, !tbaa !5
  store i32 %22149, ptr %680, align 4, !tbaa !5
  %22150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22151 = call i32 @s2n_print_stacktrace(ptr noundef %22150)
  %22152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22153 = trunc i8 %22152 to i1
  br i1 %22153, label %22154, label %22176

22154:                                            ; preds = %22147
  %22155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22156 = call i32 @fileno(ptr noundef %22155) #10
  %22157 = call i32 @isatty(i32 noundef %22156) #10
  %22158 = icmp ne i32 %22157, 0
  br i1 %22158, label %22159, label %22176

22159:                                            ; preds = %22154
  %22160 = load i32, ptr %680, align 4, !tbaa !5
  %22161 = call ptr @__errno_location() #11
  store i32 %22160, ptr %22161, align 4, !tbaa !5
  %22162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22163 = load i32, ptr @test_count, align 4, !tbaa !5
  %22164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22165 = load i32, ptr %22164, align 4, !tbaa !5
  %22166 = call ptr @s2n_strerror(i32 noundef %22165, ptr noundef @.str.4)
  %22167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22168 = load i32, ptr %22167, align 4, !tbaa !5
  %22169 = call ptr @s2n_strerror_debug(i32 noundef %22168, ptr noundef @.str.4)
  %22170 = call ptr @__errno_location() #11
  %22171 = load i32, ptr %22170, align 4, !tbaa !5
  %22172 = call ptr @strerror(i32 noundef %22171) #10
  %22173 = call ptr @__errno_location() #11
  %22174 = load i32, ptr %22173, align 4, !tbaa !5
  %22175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22162, ptr noundef @.str.2, i32 noundef %22163, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 1473, ptr noundef %22166, ptr noundef %22169, ptr noundef %22172, i32 noundef %22174) #10
  br label %22193

22176:                                            ; preds = %22154, %22147
  %22177 = load i32, ptr %680, align 4, !tbaa !5
  %22178 = call ptr @__errno_location() #11
  store i32 %22177, ptr %22178, align 4, !tbaa !5
  %22179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22180 = load i32, ptr @test_count, align 4, !tbaa !5
  %22181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22182 = load i32, ptr %22181, align 4, !tbaa !5
  %22183 = call ptr @s2n_strerror(i32 noundef %22182, ptr noundef @.str.4)
  %22184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22185 = load i32, ptr %22184, align 4, !tbaa !5
  %22186 = call ptr @s2n_strerror_debug(i32 noundef %22185, ptr noundef @.str.4)
  %22187 = call ptr @__errno_location() #11
  %22188 = load i32, ptr %22187, align 4, !tbaa !5
  %22189 = call ptr @strerror(i32 noundef %22188) #10
  %22190 = call ptr @__errno_location() #11
  %22191 = load i32, ptr %22190, align 4, !tbaa !5
  %22192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22179, ptr noundef @.str.5, i32 noundef %22180, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 1473, ptr noundef %22183, ptr noundef %22186, ptr noundef %22189, i32 noundef %22191) #10
  br label %22193

22193:                                            ; preds = %22176, %22159
  call void @llvm.lifetime.end.p0(i64 4, ptr %680) #10
  br label %22194

22194:                                            ; preds = %22193
  br label %22195

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

22196:                                            ; No predecessors!
  br label %22197

22197:                                            ; preds = %22196
  br label %22198

22198:                                            ; preds = %22197, %22140
  br label %22199

22199:                                            ; preds = %22198
  br label %22200

22200:                                            ; preds = %22199
  br label %22201

22201:                                            ; preds = %22200
  %22202 = load i32, ptr @test_count, align 4, !tbaa !5
  %22203 = add nsw i32 %22202, 1
  store i32 %22203, ptr @test_count, align 4, !tbaa !5
  %22204 = load ptr, ptr %675, align 8, !tbaa !9
  %22205 = load ptr, ptr %677, align 8, !tbaa !9
  %22206 = call i32 @s2n_connections_set_io_pair(ptr noundef %22204, ptr noundef %22205, ptr noundef %679)
  %22207 = icmp eq i32 %22206, -1
  br i1 %22207, label %22208, label %22261

22208:                                            ; preds = %22201
  br label %22209

22209:                                            ; preds = %22208
  br label %22210

22210:                                            ; preds = %22209
  call void @llvm.lifetime.start.p0(i64 4, ptr %681) #10
  %22211 = call ptr @__errno_location() #11
  %22212 = load i32, ptr %22211, align 4, !tbaa !5
  store i32 %22212, ptr %681, align 4, !tbaa !5
  %22213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22214 = call i32 @s2n_print_stacktrace(ptr noundef %22213)
  %22215 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22216 = trunc i8 %22215 to i1
  br i1 %22216, label %22217, label %22239

22217:                                            ; preds = %22210
  %22218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22219 = call i32 @fileno(ptr noundef %22218) #10
  %22220 = call i32 @isatty(i32 noundef %22219) #10
  %22221 = icmp ne i32 %22220, 0
  br i1 %22221, label %22222, label %22239

22222:                                            ; preds = %22217
  %22223 = load i32, ptr %681, align 4, !tbaa !5
  %22224 = call ptr @__errno_location() #11
  store i32 %22223, ptr %22224, align 4, !tbaa !5
  %22225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22226 = load i32, ptr @test_count, align 4, !tbaa !5
  %22227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22228 = load i32, ptr %22227, align 4, !tbaa !5
  %22229 = call ptr @s2n_strerror(i32 noundef %22228, ptr noundef @.str.4)
  %22230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22231 = load i32, ptr %22230, align 4, !tbaa !5
  %22232 = call ptr @s2n_strerror_debug(i32 noundef %22231, ptr noundef @.str.4)
  %22233 = call ptr @__errno_location() #11
  %22234 = load i32, ptr %22233, align 4, !tbaa !5
  %22235 = call ptr @strerror(i32 noundef %22234) #10
  %22236 = call ptr @__errno_location() #11
  %22237 = load i32, ptr %22236, align 4, !tbaa !5
  %22238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22225, ptr noundef @.str.2, i32 noundef %22226, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 1474, ptr noundef %22229, ptr noundef %22232, ptr noundef %22235, i32 noundef %22237) #10
  br label %22256

22239:                                            ; preds = %22217, %22210
  %22240 = load i32, ptr %681, align 4, !tbaa !5
  %22241 = call ptr @__errno_location() #11
  store i32 %22240, ptr %22241, align 4, !tbaa !5
  %22242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22243 = load i32, ptr @test_count, align 4, !tbaa !5
  %22244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22245 = load i32, ptr %22244, align 4, !tbaa !5
  %22246 = call ptr @s2n_strerror(i32 noundef %22245, ptr noundef @.str.4)
  %22247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22248 = load i32, ptr %22247, align 4, !tbaa !5
  %22249 = call ptr @s2n_strerror_debug(i32 noundef %22248, ptr noundef @.str.4)
  %22250 = call ptr @__errno_location() #11
  %22251 = load i32, ptr %22250, align 4, !tbaa !5
  %22252 = call ptr @strerror(i32 noundef %22251) #10
  %22253 = call ptr @__errno_location() #11
  %22254 = load i32, ptr %22253, align 4, !tbaa !5
  %22255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22242, ptr noundef @.str.5, i32 noundef %22243, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 1474, ptr noundef %22246, ptr noundef %22249, ptr noundef %22252, i32 noundef %22254) #10
  br label %22256

22256:                                            ; preds = %22239, %22222
  call void @llvm.lifetime.end.p0(i64 4, ptr %681) #10
  br label %22257

22257:                                            ; preds = %22256
  br label %22258

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

22259:                                            ; No predecessors!
  br label %22260

22260:                                            ; preds = %22259
  br label %22261

22261:                                            ; preds = %22260, %22201
  br label %22262

22262:                                            ; preds = %22261
  br label %22263

22263:                                            ; preds = %22262
  br label %22264

22264:                                            ; preds = %22263
  %22265 = load i32, ptr @test_count, align 4, !tbaa !5
  %22266 = add nsw i32 %22265, 1
  store i32 %22266, ptr @test_count, align 4, !tbaa !5
  %22267 = load ptr, ptr %677, align 8, !tbaa !9
  %22268 = load ptr, ptr %675, align 8, !tbaa !9
  %22269 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %22267, ptr noundef %22268)
  %22270 = icmp eq i32 %22269, -1
  br i1 %22270, label %22271, label %22324

22271:                                            ; preds = %22264
  br label %22272

22272:                                            ; preds = %22271
  br label %22273

22273:                                            ; preds = %22272
  call void @llvm.lifetime.start.p0(i64 4, ptr %682) #10
  %22274 = call ptr @__errno_location() #11
  %22275 = load i32, ptr %22274, align 4, !tbaa !5
  store i32 %22275, ptr %682, align 4, !tbaa !5
  %22276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22277 = call i32 @s2n_print_stacktrace(ptr noundef %22276)
  %22278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22279 = trunc i8 %22278 to i1
  br i1 %22279, label %22280, label %22302

22280:                                            ; preds = %22273
  %22281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22282 = call i32 @fileno(ptr noundef %22281) #10
  %22283 = call i32 @isatty(i32 noundef %22282) #10
  %22284 = icmp ne i32 %22283, 0
  br i1 %22284, label %22285, label %22302

22285:                                            ; preds = %22280
  %22286 = load i32, ptr %682, align 4, !tbaa !5
  %22287 = call ptr @__errno_location() #11
  store i32 %22286, ptr %22287, align 4, !tbaa !5
  %22288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22289 = load i32, ptr @test_count, align 4, !tbaa !5
  %22290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22291 = load i32, ptr %22290, align 4, !tbaa !5
  %22292 = call ptr @s2n_strerror(i32 noundef %22291, ptr noundef @.str.4)
  %22293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22294 = load i32, ptr %22293, align 4, !tbaa !5
  %22295 = call ptr @s2n_strerror_debug(i32 noundef %22294, ptr noundef @.str.4)
  %22296 = call ptr @__errno_location() #11
  %22297 = load i32, ptr %22296, align 4, !tbaa !5
  %22298 = call ptr @strerror(i32 noundef %22297) #10
  %22299 = call ptr @__errno_location() #11
  %22300 = load i32, ptr %22299, align 4, !tbaa !5
  %22301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22288, ptr noundef @.str.2, i32 noundef %22289, ptr noundef @.str.123, ptr noundef @.str.1, i32 noundef 1476, ptr noundef %22292, ptr noundef %22295, ptr noundef %22298, i32 noundef %22300) #10
  br label %22319

22302:                                            ; preds = %22280, %22273
  %22303 = load i32, ptr %682, align 4, !tbaa !5
  %22304 = call ptr @__errno_location() #11
  store i32 %22303, ptr %22304, align 4, !tbaa !5
  %22305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22306 = load i32, ptr @test_count, align 4, !tbaa !5
  %22307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22308 = load i32, ptr %22307, align 4, !tbaa !5
  %22309 = call ptr @s2n_strerror(i32 noundef %22308, ptr noundef @.str.4)
  %22310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22311 = load i32, ptr %22310, align 4, !tbaa !5
  %22312 = call ptr @s2n_strerror_debug(i32 noundef %22311, ptr noundef @.str.4)
  %22313 = call ptr @__errno_location() #11
  %22314 = load i32, ptr %22313, align 4, !tbaa !5
  %22315 = call ptr @strerror(i32 noundef %22314) #10
  %22316 = call ptr @__errno_location() #11
  %22317 = load i32, ptr %22316, align 4, !tbaa !5
  %22318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22305, ptr noundef @.str.5, i32 noundef %22306, ptr noundef @.str.123, ptr noundef @.str.1, i32 noundef 1476, ptr noundef %22309, ptr noundef %22312, ptr noundef %22315, i32 noundef %22317) #10
  br label %22319

22319:                                            ; preds = %22302, %22285
  call void @llvm.lifetime.end.p0(i64 4, ptr %682) #10
  br label %22320

22320:                                            ; preds = %22319
  br label %22321

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

22322:                                            ; No predecessors!
  br label %22323

22323:                                            ; preds = %22322
  br label %22324

22324:                                            ; preds = %22323, %22264
  br label %22325

22325:                                            ; preds = %22324
  br label %22326

22326:                                            ; preds = %22325
  br label %22327

22327:                                            ; preds = %22326
  %22328 = load i32, ptr @test_count, align 4, !tbaa !5
  %22329 = add nsw i32 %22328, 1
  store i32 %22329, ptr @test_count, align 4, !tbaa !5
  %22330 = load ptr, ptr %675, align 8, !tbaa !9
  %22331 = getelementptr inbounds %struct.s2n_connection, ptr %22330, i32 0, i32 23
  %22332 = load i8, ptr %22331, align 4, !tbaa !50
  %22333 = zext i8 %22332 to i32
  %22334 = load i8, ptr %674, align 1, !tbaa !23
  %22335 = zext i8 %22334 to i32
  %22336 = icmp eq i32 %22333, %22335
  br i1 %22336, label %22390, label %22337

22337:                                            ; preds = %22327
  br label %22338

22338:                                            ; preds = %22337
  br label %22339

22339:                                            ; preds = %22338
  call void @llvm.lifetime.start.p0(i64 4, ptr %683) #10
  %22340 = call ptr @__errno_location() #11
  %22341 = load i32, ptr %22340, align 4, !tbaa !5
  store i32 %22341, ptr %683, align 4, !tbaa !5
  %22342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22343 = call i32 @s2n_print_stacktrace(ptr noundef %22342)
  %22344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22345 = trunc i8 %22344 to i1
  br i1 %22345, label %22346, label %22368

22346:                                            ; preds = %22339
  %22347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22348 = call i32 @fileno(ptr noundef %22347) #10
  %22349 = call i32 @isatty(i32 noundef %22348) #10
  %22350 = icmp ne i32 %22349, 0
  br i1 %22350, label %22351, label %22368

22351:                                            ; preds = %22346
  %22352 = load i32, ptr %683, align 4, !tbaa !5
  %22353 = call ptr @__errno_location() #11
  store i32 %22352, ptr %22353, align 4, !tbaa !5
  %22354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22355 = load i32, ptr @test_count, align 4, !tbaa !5
  %22356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22357 = load i32, ptr %22356, align 4, !tbaa !5
  %22358 = call ptr @s2n_strerror(i32 noundef %22357, ptr noundef @.str.4)
  %22359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22360 = load i32, ptr %22359, align 4, !tbaa !5
  %22361 = call ptr @s2n_strerror_debug(i32 noundef %22360, ptr noundef @.str.4)
  %22362 = call ptr @__errno_location() #11
  %22363 = load i32, ptr %22362, align 4, !tbaa !5
  %22364 = call ptr @strerror(i32 noundef %22363) #10
  %22365 = call ptr @__errno_location() #11
  %22366 = load i32, ptr %22365, align 4, !tbaa !5
  %22367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22354, ptr noundef @.str.2, i32 noundef %22355, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 1477, ptr noundef %22358, ptr noundef %22361, ptr noundef %22364, i32 noundef %22366) #10
  br label %22385

22368:                                            ; preds = %22346, %22339
  %22369 = load i32, ptr %683, align 4, !tbaa !5
  %22370 = call ptr @__errno_location() #11
  store i32 %22369, ptr %22370, align 4, !tbaa !5
  %22371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22372 = load i32, ptr @test_count, align 4, !tbaa !5
  %22373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22374 = load i32, ptr %22373, align 4, !tbaa !5
  %22375 = call ptr @s2n_strerror(i32 noundef %22374, ptr noundef @.str.4)
  %22376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22377 = load i32, ptr %22376, align 4, !tbaa !5
  %22378 = call ptr @s2n_strerror_debug(i32 noundef %22377, ptr noundef @.str.4)
  %22379 = call ptr @__errno_location() #11
  %22380 = load i32, ptr %22379, align 4, !tbaa !5
  %22381 = call ptr @strerror(i32 noundef %22380) #10
  %22382 = call ptr @__errno_location() #11
  %22383 = load i32, ptr %22382, align 4, !tbaa !5
  %22384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22371, ptr noundef @.str.5, i32 noundef %22372, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 1477, ptr noundef %22375, ptr noundef %22378, ptr noundef %22381, i32 noundef %22383) #10
  br label %22385

22385:                                            ; preds = %22368, %22351
  call void @llvm.lifetime.end.p0(i64 4, ptr %683) #10
  br label %22386

22386:                                            ; preds = %22385
  br label %22387

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

22388:                                            ; No predecessors!
  br label %22389

22389:                                            ; preds = %22388
  br label %22390

22390:                                            ; preds = %22389, %22327
  br label %22391

22391:                                            ; preds = %22390
  br label %22392

22392:                                            ; preds = %22391
  br label %22393

22393:                                            ; preds = %22392
  %22394 = load i32, ptr @test_count, align 4, !tbaa !5
  %22395 = add nsw i32 %22394, 1
  store i32 %22395, ptr @test_count, align 4, !tbaa !5
  %22396 = load ptr, ptr %677, align 8, !tbaa !9
  %22397 = getelementptr inbounds %struct.s2n_connection, ptr %22396, i32 0, i32 23
  %22398 = load i8, ptr %22397, align 4, !tbaa !50
  %22399 = zext i8 %22398 to i32
  %22400 = load i8, ptr %674, align 1, !tbaa !23
  %22401 = zext i8 %22400 to i32
  %22402 = icmp eq i32 %22399, %22401
  br i1 %22402, label %22456, label %22403

22403:                                            ; preds = %22393
  br label %22404

22404:                                            ; preds = %22403
  br label %22405

22405:                                            ; preds = %22404
  call void @llvm.lifetime.start.p0(i64 4, ptr %684) #10
  %22406 = call ptr @__errno_location() #11
  %22407 = load i32, ptr %22406, align 4, !tbaa !5
  store i32 %22407, ptr %684, align 4, !tbaa !5
  %22408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22409 = call i32 @s2n_print_stacktrace(ptr noundef %22408)
  %22410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22411 = trunc i8 %22410 to i1
  br i1 %22411, label %22412, label %22434

22412:                                            ; preds = %22405
  %22413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22414 = call i32 @fileno(ptr noundef %22413) #10
  %22415 = call i32 @isatty(i32 noundef %22414) #10
  %22416 = icmp ne i32 %22415, 0
  br i1 %22416, label %22417, label %22434

22417:                                            ; preds = %22412
  %22418 = load i32, ptr %684, align 4, !tbaa !5
  %22419 = call ptr @__errno_location() #11
  store i32 %22418, ptr %22419, align 4, !tbaa !5
  %22420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22421 = load i32, ptr @test_count, align 4, !tbaa !5
  %22422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22423 = load i32, ptr %22422, align 4, !tbaa !5
  %22424 = call ptr @s2n_strerror(i32 noundef %22423, ptr noundef @.str.4)
  %22425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22426 = load i32, ptr %22425, align 4, !tbaa !5
  %22427 = call ptr @s2n_strerror_debug(i32 noundef %22426, ptr noundef @.str.4)
  %22428 = call ptr @__errno_location() #11
  %22429 = load i32, ptr %22428, align 4, !tbaa !5
  %22430 = call ptr @strerror(i32 noundef %22429) #10
  %22431 = call ptr @__errno_location() #11
  %22432 = load i32, ptr %22431, align 4, !tbaa !5
  %22433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22420, ptr noundef @.str.2, i32 noundef %22421, ptr noundef @.str.125, ptr noundef @.str.1, i32 noundef 1478, ptr noundef %22424, ptr noundef %22427, ptr noundef %22430, i32 noundef %22432) #10
  br label %22451

22434:                                            ; preds = %22412, %22405
  %22435 = load i32, ptr %684, align 4, !tbaa !5
  %22436 = call ptr @__errno_location() #11
  store i32 %22435, ptr %22436, align 4, !tbaa !5
  %22437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22438 = load i32, ptr @test_count, align 4, !tbaa !5
  %22439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22440 = load i32, ptr %22439, align 4, !tbaa !5
  %22441 = call ptr @s2n_strerror(i32 noundef %22440, ptr noundef @.str.4)
  %22442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22443 = load i32, ptr %22442, align 4, !tbaa !5
  %22444 = call ptr @s2n_strerror_debug(i32 noundef %22443, ptr noundef @.str.4)
  %22445 = call ptr @__errno_location() #11
  %22446 = load i32, ptr %22445, align 4, !tbaa !5
  %22447 = call ptr @strerror(i32 noundef %22446) #10
  %22448 = call ptr @__errno_location() #11
  %22449 = load i32, ptr %22448, align 4, !tbaa !5
  %22450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22437, ptr noundef @.str.5, i32 noundef %22438, ptr noundef @.str.125, ptr noundef @.str.1, i32 noundef 1478, ptr noundef %22441, ptr noundef %22444, ptr noundef %22447, i32 noundef %22449) #10
  br label %22451

22451:                                            ; preds = %22434, %22417
  call void @llvm.lifetime.end.p0(i64 4, ptr %684) #10
  br label %22452

22452:                                            ; preds = %22451
  br label %22453

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

22454:                                            ; No predecessors!
  br label %22455

22455:                                            ; preds = %22454
  br label %22456

22456:                                            ; preds = %22455, %22393
  br label %22457

22457:                                            ; preds = %22456
  br label %22458

22458:                                            ; preds = %22457
  %22459 = load i8, ptr %674, align 1, !tbaa !23
  %22460 = zext i8 %22459 to i32
  %22461 = icmp sge i32 %22460, 34
  br i1 %22461, label %22462, label %22527

22462:                                            ; preds = %22458
  br label %22463

22463:                                            ; preds = %22462
  %22464 = load i32, ptr @test_count, align 4, !tbaa !5
  %22465 = add nsw i32 %22464, 1
  store i32 %22465, ptr @test_count, align 4, !tbaa !5
  %22466 = load ptr, ptr %677, align 8, !tbaa !9
  %22467 = getelementptr inbounds %struct.s2n_connection, ptr %22466, i32 0, i32 32
  %22468 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %22467, i32 0, i32 5
  %22469 = load ptr, ptr %22468, align 8, !tbaa !72
  %22470 = icmp eq ptr %22469, @s2n_ecdsa_sha512
  br i1 %22470, label %22524, label %22471

22471:                                            ; preds = %22463
  br label %22472

22472:                                            ; preds = %22471
  br label %22473

22473:                                            ; preds = %22472
  call void @llvm.lifetime.start.p0(i64 4, ptr %685) #10
  %22474 = call ptr @__errno_location() #11
  %22475 = load i32, ptr %22474, align 4, !tbaa !5
  store i32 %22475, ptr %685, align 4, !tbaa !5
  %22476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22477 = call i32 @s2n_print_stacktrace(ptr noundef %22476)
  %22478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22479 = trunc i8 %22478 to i1
  br i1 %22479, label %22480, label %22502

22480:                                            ; preds = %22473
  %22481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22482 = call i32 @fileno(ptr noundef %22481) #10
  %22483 = call i32 @isatty(i32 noundef %22482) #10
  %22484 = icmp ne i32 %22483, 0
  br i1 %22484, label %22485, label %22502

22485:                                            ; preds = %22480
  %22486 = load i32, ptr %685, align 4, !tbaa !5
  %22487 = call ptr @__errno_location() #11
  store i32 %22486, ptr %22487, align 4, !tbaa !5
  %22488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22489 = load i32, ptr @test_count, align 4, !tbaa !5
  %22490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22491 = load i32, ptr %22490, align 4, !tbaa !5
  %22492 = call ptr @s2n_strerror(i32 noundef %22491, ptr noundef @.str.4)
  %22493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22494 = load i32, ptr %22493, align 4, !tbaa !5
  %22495 = call ptr @s2n_strerror_debug(i32 noundef %22494, ptr noundef @.str.4)
  %22496 = call ptr @__errno_location() #11
  %22497 = load i32, ptr %22496, align 4, !tbaa !5
  %22498 = call ptr @strerror(i32 noundef %22497) #10
  %22499 = call ptr @__errno_location() #11
  %22500 = load i32, ptr %22499, align 4, !tbaa !5
  %22501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22488, ptr noundef @.str.2, i32 noundef %22489, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 1482, ptr noundef %22492, ptr noundef %22495, ptr noundef %22498, i32 noundef %22500) #10
  br label %22519

22502:                                            ; preds = %22480, %22473
  %22503 = load i32, ptr %685, align 4, !tbaa !5
  %22504 = call ptr @__errno_location() #11
  store i32 %22503, ptr %22504, align 4, !tbaa !5
  %22505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22506 = load i32, ptr @test_count, align 4, !tbaa !5
  %22507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22508 = load i32, ptr %22507, align 4, !tbaa !5
  %22509 = call ptr @s2n_strerror(i32 noundef %22508, ptr noundef @.str.4)
  %22510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22511 = load i32, ptr %22510, align 4, !tbaa !5
  %22512 = call ptr @s2n_strerror_debug(i32 noundef %22511, ptr noundef @.str.4)
  %22513 = call ptr @__errno_location() #11
  %22514 = load i32, ptr %22513, align 4, !tbaa !5
  %22515 = call ptr @strerror(i32 noundef %22514) #10
  %22516 = call ptr @__errno_location() #11
  %22517 = load i32, ptr %22516, align 4, !tbaa !5
  %22518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22505, ptr noundef @.str.5, i32 noundef %22506, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 1482, ptr noundef %22509, ptr noundef %22512, ptr noundef %22515, i32 noundef %22517) #10
  br label %22519

22519:                                            ; preds = %22502, %22485
  call void @llvm.lifetime.end.p0(i64 4, ptr %685) #10
  br label %22520

22520:                                            ; preds = %22519
  br label %22521

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

22522:                                            ; No predecessors!
  br label %22523

22523:                                            ; preds = %22522
  br label %22524

22524:                                            ; preds = %22523, %22463
  br label %22525

22525:                                            ; preds = %22524
  br label %22526

22526:                                            ; preds = %22525
  br label %22656

22527:                                            ; preds = %22458
  br label %22528

22528:                                            ; preds = %22527
  %22529 = load i32, ptr @test_count, align 4, !tbaa !5
  %22530 = add nsw i32 %22529, 1
  store i32 %22530, ptr @test_count, align 4, !tbaa !5
  %22531 = load ptr, ptr %677, align 8, !tbaa !9
  %22532 = getelementptr inbounds %struct.s2n_connection, ptr %22531, i32 0, i32 32
  %22533 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %22532, i32 0, i32 5
  %22534 = load ptr, ptr %22533, align 8, !tbaa !72
  %22535 = icmp eq ptr %22534, @s2n_ecdsa_sha512
  br i1 %22535, label %22536, label %22589

22536:                                            ; preds = %22528
  br label %22537

22537:                                            ; preds = %22536
  br label %22538

22538:                                            ; preds = %22537
  call void @llvm.lifetime.start.p0(i64 4, ptr %686) #10
  %22539 = call ptr @__errno_location() #11
  %22540 = load i32, ptr %22539, align 4, !tbaa !5
  store i32 %22540, ptr %686, align 4, !tbaa !5
  %22541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22542 = call i32 @s2n_print_stacktrace(ptr noundef %22541)
  %22543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22544 = trunc i8 %22543 to i1
  br i1 %22544, label %22545, label %22567

22545:                                            ; preds = %22538
  %22546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22547 = call i32 @fileno(ptr noundef %22546) #10
  %22548 = call i32 @isatty(i32 noundef %22547) #10
  %22549 = icmp ne i32 %22548, 0
  br i1 %22549, label %22550, label %22567

22550:                                            ; preds = %22545
  %22551 = load i32, ptr %686, align 4, !tbaa !5
  %22552 = call ptr @__errno_location() #11
  store i32 %22551, ptr %22552, align 4, !tbaa !5
  %22553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22554 = load i32, ptr @test_count, align 4, !tbaa !5
  %22555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22556 = load i32, ptr %22555, align 4, !tbaa !5
  %22557 = call ptr @s2n_strerror(i32 noundef %22556, ptr noundef @.str.4)
  %22558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22559 = load i32, ptr %22558, align 4, !tbaa !5
  %22560 = call ptr @s2n_strerror_debug(i32 noundef %22559, ptr noundef @.str.4)
  %22561 = call ptr @__errno_location() #11
  %22562 = load i32, ptr %22561, align 4, !tbaa !5
  %22563 = call ptr @strerror(i32 noundef %22562) #10
  %22564 = call ptr @__errno_location() #11
  %22565 = load i32, ptr %22564, align 4, !tbaa !5
  %22566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22553, ptr noundef @.str.2, i32 noundef %22554, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 1485, ptr noundef %22557, ptr noundef %22560, ptr noundef %22563, i32 noundef %22565) #10
  br label %22584

22567:                                            ; preds = %22545, %22538
  %22568 = load i32, ptr %686, align 4, !tbaa !5
  %22569 = call ptr @__errno_location() #11
  store i32 %22568, ptr %22569, align 4, !tbaa !5
  %22570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22571 = load i32, ptr @test_count, align 4, !tbaa !5
  %22572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22573 = load i32, ptr %22572, align 4, !tbaa !5
  %22574 = call ptr @s2n_strerror(i32 noundef %22573, ptr noundef @.str.4)
  %22575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22576 = load i32, ptr %22575, align 4, !tbaa !5
  %22577 = call ptr @s2n_strerror_debug(i32 noundef %22576, ptr noundef @.str.4)
  %22578 = call ptr @__errno_location() #11
  %22579 = load i32, ptr %22578, align 4, !tbaa !5
  %22580 = call ptr @strerror(i32 noundef %22579) #10
  %22581 = call ptr @__errno_location() #11
  %22582 = load i32, ptr %22581, align 4, !tbaa !5
  %22583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22570, ptr noundef @.str.5, i32 noundef %22571, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 1485, ptr noundef %22574, ptr noundef %22577, ptr noundef %22580, i32 noundef %22582) #10
  br label %22584

22584:                                            ; preds = %22567, %22550
  call void @llvm.lifetime.end.p0(i64 4, ptr %686) #10
  br label %22585

22585:                                            ; preds = %22584
  br label %22586

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

22587:                                            ; No predecessors!
  br label %22588

22588:                                            ; preds = %22587
  br label %22589

22589:                                            ; preds = %22588, %22528
  br label %22590

22590:                                            ; preds = %22589
  br label %22591

22591:                                            ; preds = %22590
  br label %22592

22592:                                            ; preds = %22591
  %22593 = load i32, ptr @test_count, align 4, !tbaa !5
  %22594 = add nsw i32 %22593, 1
  store i32 %22594, ptr @test_count, align 4, !tbaa !5
  %22595 = load ptr, ptr %677, align 8, !tbaa !9
  %22596 = getelementptr inbounds %struct.s2n_connection, ptr %22595, i32 0, i32 32
  %22597 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %22596, i32 0, i32 5
  %22598 = load ptr, ptr %22597, align 8, !tbaa !72
  %22599 = icmp eq ptr %22598, @s2n_ecdsa_sha224
  br i1 %22599, label %22653, label %22600

22600:                                            ; preds = %22592
  br label %22601

22601:                                            ; preds = %22600
  br label %22602

22602:                                            ; preds = %22601
  call void @llvm.lifetime.start.p0(i64 4, ptr %687) #10
  %22603 = call ptr @__errno_location() #11
  %22604 = load i32, ptr %22603, align 4, !tbaa !5
  store i32 %22604, ptr %687, align 4, !tbaa !5
  %22605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22606 = call i32 @s2n_print_stacktrace(ptr noundef %22605)
  %22607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22608 = trunc i8 %22607 to i1
  br i1 %22608, label %22609, label %22631

22609:                                            ; preds = %22602
  %22610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22611 = call i32 @fileno(ptr noundef %22610) #10
  %22612 = call i32 @isatty(i32 noundef %22611) #10
  %22613 = icmp ne i32 %22612, 0
  br i1 %22613, label %22614, label %22631

22614:                                            ; preds = %22609
  %22615 = load i32, ptr %687, align 4, !tbaa !5
  %22616 = call ptr @__errno_location() #11
  store i32 %22615, ptr %22616, align 4, !tbaa !5
  %22617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22618 = load i32, ptr @test_count, align 4, !tbaa !5
  %22619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22620 = load i32, ptr %22619, align 4, !tbaa !5
  %22621 = call ptr @s2n_strerror(i32 noundef %22620, ptr noundef @.str.4)
  %22622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22623 = load i32, ptr %22622, align 4, !tbaa !5
  %22624 = call ptr @s2n_strerror_debug(i32 noundef %22623, ptr noundef @.str.4)
  %22625 = call ptr @__errno_location() #11
  %22626 = load i32, ptr %22625, align 4, !tbaa !5
  %22627 = call ptr @strerror(i32 noundef %22626) #10
  %22628 = call ptr @__errno_location() #11
  %22629 = load i32, ptr %22628, align 4, !tbaa !5
  %22630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22617, ptr noundef @.str.2, i32 noundef %22618, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 1486, ptr noundef %22621, ptr noundef %22624, ptr noundef %22627, i32 noundef %22629) #10
  br label %22648

22631:                                            ; preds = %22609, %22602
  %22632 = load i32, ptr %687, align 4, !tbaa !5
  %22633 = call ptr @__errno_location() #11
  store i32 %22632, ptr %22633, align 4, !tbaa !5
  %22634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22635 = load i32, ptr @test_count, align 4, !tbaa !5
  %22636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22637 = load i32, ptr %22636, align 4, !tbaa !5
  %22638 = call ptr @s2n_strerror(i32 noundef %22637, ptr noundef @.str.4)
  %22639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22640 = load i32, ptr %22639, align 4, !tbaa !5
  %22641 = call ptr @s2n_strerror_debug(i32 noundef %22640, ptr noundef @.str.4)
  %22642 = call ptr @__errno_location() #11
  %22643 = load i32, ptr %22642, align 4, !tbaa !5
  %22644 = call ptr @strerror(i32 noundef %22643) #10
  %22645 = call ptr @__errno_location() #11
  %22646 = load i32, ptr %22645, align 4, !tbaa !5
  %22647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22634, ptr noundef @.str.5, i32 noundef %22635, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 1486, ptr noundef %22638, ptr noundef %22641, ptr noundef %22644, i32 noundef %22646) #10
  br label %22648

22648:                                            ; preds = %22631, %22614
  call void @llvm.lifetime.end.p0(i64 4, ptr %687) #10
  br label %22649

22649:                                            ; preds = %22648
  br label %22650

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

22651:                                            ; No predecessors!
  br label %22652

22652:                                            ; preds = %22651
  br label %22653

22653:                                            ; preds = %22652, %22592
  br label %22654

22654:                                            ; preds = %22653
  br label %22655

22655:                                            ; preds = %22654
  br label %22656

22656:                                            ; preds = %22655, %22526
  br label %22657

22657:                                            ; preds = %22656
  %22658 = load i32, ptr @test_count, align 4, !tbaa !5
  %22659 = add nsw i32 %22658, 1
  store i32 %22659, ptr @test_count, align 4, !tbaa !5
  %22660 = load ptr, ptr %677, align 8, !tbaa !9
  %22661 = getelementptr inbounds %struct.s2n_connection, ptr %22660, i32 0, i32 27
  %22662 = load ptr, ptr %22661, align 8, !tbaa !66
  %22663 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %22662, i32 0, i32 0
  %22664 = load ptr, ptr %22663, align 8, !tbaa !67
  %22665 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %22664, i32 0, i32 11
  %22666 = load i32, ptr %22665, align 8, !tbaa !100
  %22667 = icmp eq i32 %22666, 6
  br i1 %22667, label %22668, label %22721

22668:                                            ; preds = %22657
  br label %22669

22669:                                            ; preds = %22668
  br label %22670

22670:                                            ; preds = %22669
  call void @llvm.lifetime.start.p0(i64 4, ptr %688) #10
  %22671 = call ptr @__errno_location() #11
  %22672 = load i32, ptr %22671, align 4, !tbaa !5
  store i32 %22672, ptr %688, align 4, !tbaa !5
  %22673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22674 = call i32 @s2n_print_stacktrace(ptr noundef %22673)
  %22675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22676 = trunc i8 %22675 to i1
  br i1 %22676, label %22677, label %22699

22677:                                            ; preds = %22670
  %22678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22679 = call i32 @fileno(ptr noundef %22678) #10
  %22680 = call i32 @isatty(i32 noundef %22679) #10
  %22681 = icmp ne i32 %22680, 0
  br i1 %22681, label %22682, label %22699

22682:                                            ; preds = %22677
  %22683 = load i32, ptr %688, align 4, !tbaa !5
  %22684 = call ptr @__errno_location() #11
  store i32 %22683, ptr %22684, align 4, !tbaa !5
  %22685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22686 = load i32, ptr @test_count, align 4, !tbaa !5
  %22687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22688 = load i32, ptr %22687, align 4, !tbaa !5
  %22689 = call ptr @s2n_strerror(i32 noundef %22688, ptr noundef @.str.4)
  %22690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22691 = load i32, ptr %22690, align 4, !tbaa !5
  %22692 = call ptr @s2n_strerror_debug(i32 noundef %22691, ptr noundef @.str.4)
  %22693 = call ptr @__errno_location() #11
  %22694 = load i32, ptr %22693, align 4, !tbaa !5
  %22695 = call ptr @strerror(i32 noundef %22694) #10
  %22696 = call ptr @__errno_location() #11
  %22697 = load i32, ptr %22696, align 4, !tbaa !5
  %22698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22685, ptr noundef @.str.2, i32 noundef %22686, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 1490, ptr noundef %22689, ptr noundef %22692, ptr noundef %22695, i32 noundef %22697) #10
  br label %22716

22699:                                            ; preds = %22677, %22670
  %22700 = load i32, ptr %688, align 4, !tbaa !5
  %22701 = call ptr @__errno_location() #11
  store i32 %22700, ptr %22701, align 4, !tbaa !5
  %22702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22703 = load i32, ptr @test_count, align 4, !tbaa !5
  %22704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22705 = load i32, ptr %22704, align 4, !tbaa !5
  %22706 = call ptr @s2n_strerror(i32 noundef %22705, ptr noundef @.str.4)
  %22707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22708 = load i32, ptr %22707, align 4, !tbaa !5
  %22709 = call ptr @s2n_strerror_debug(i32 noundef %22708, ptr noundef @.str.4)
  %22710 = call ptr @__errno_location() #11
  %22711 = load i32, ptr %22710, align 4, !tbaa !5
  %22712 = call ptr @strerror(i32 noundef %22711) #10
  %22713 = call ptr @__errno_location() #11
  %22714 = load i32, ptr %22713, align 4, !tbaa !5
  %22715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22702, ptr noundef @.str.5, i32 noundef %22703, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 1490, ptr noundef %22706, ptr noundef %22709, ptr noundef %22712, i32 noundef %22714) #10
  br label %22716

22716:                                            ; preds = %22699, %22682
  call void @llvm.lifetime.end.p0(i64 4, ptr %688) #10
  br label %22717

22717:                                            ; preds = %22716
  br label %22718

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

22719:                                            ; No predecessors!
  br label %22720

22720:                                            ; preds = %22719
  br label %22721

22721:                                            ; preds = %22720, %22657
  br label %22722

22722:                                            ; preds = %22721
  br label %22723

22723:                                            ; preds = %22722
  br label %22724

22724:                                            ; preds = %22723
  %22725 = load i32, ptr @test_count, align 4, !tbaa !5
  %22726 = add nsw i32 %22725, 1
  store i32 %22726, ptr @test_count, align 4, !tbaa !5
  %22727 = load ptr, ptr %677, align 8, !tbaa !9
  %22728 = getelementptr inbounds %struct.s2n_connection, ptr %22727, i32 0, i32 27
  %22729 = load ptr, ptr %22728, align 8, !tbaa !66
  %22730 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %22729, i32 0, i32 0
  %22731 = load ptr, ptr %22730, align 8, !tbaa !67
  %22732 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %22731, i32 0, i32 11
  %22733 = load i32, ptr %22732, align 8, !tbaa !100
  %22734 = icmp eq i32 %22733, 4
  br i1 %22734, label %22788, label %22735

22735:                                            ; preds = %22724
  br label %22736

22736:                                            ; preds = %22735
  br label %22737

22737:                                            ; preds = %22736
  call void @llvm.lifetime.start.p0(i64 4, ptr %689) #10
  %22738 = call ptr @__errno_location() #11
  %22739 = load i32, ptr %22738, align 4, !tbaa !5
  store i32 %22739, ptr %689, align 4, !tbaa !5
  %22740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22741 = call i32 @s2n_print_stacktrace(ptr noundef %22740)
  %22742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22743 = trunc i8 %22742 to i1
  br i1 %22743, label %22744, label %22766

22744:                                            ; preds = %22737
  %22745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22746 = call i32 @fileno(ptr noundef %22745) #10
  %22747 = call i32 @isatty(i32 noundef %22746) #10
  %22748 = icmp ne i32 %22747, 0
  br i1 %22748, label %22749, label %22766

22749:                                            ; preds = %22744
  %22750 = load i32, ptr %689, align 4, !tbaa !5
  %22751 = call ptr @__errno_location() #11
  store i32 %22750, ptr %22751, align 4, !tbaa !5
  %22752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22753 = load i32, ptr @test_count, align 4, !tbaa !5
  %22754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22755 = load i32, ptr %22754, align 4, !tbaa !5
  %22756 = call ptr @s2n_strerror(i32 noundef %22755, ptr noundef @.str.4)
  %22757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22758 = load i32, ptr %22757, align 4, !tbaa !5
  %22759 = call ptr @s2n_strerror_debug(i32 noundef %22758, ptr noundef @.str.4)
  %22760 = call ptr @__errno_location() #11
  %22761 = load i32, ptr %22760, align 4, !tbaa !5
  %22762 = call ptr @strerror(i32 noundef %22761) #10
  %22763 = call ptr @__errno_location() #11
  %22764 = load i32, ptr %22763, align 4, !tbaa !5
  %22765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22752, ptr noundef @.str.2, i32 noundef %22753, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 1491, ptr noundef %22756, ptr noundef %22759, ptr noundef %22762, i32 noundef %22764) #10
  br label %22783

22766:                                            ; preds = %22744, %22737
  %22767 = load i32, ptr %689, align 4, !tbaa !5
  %22768 = call ptr @__errno_location() #11
  store i32 %22767, ptr %22768, align 4, !tbaa !5
  %22769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22770 = load i32, ptr @test_count, align 4, !tbaa !5
  %22771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22772 = load i32, ptr %22771, align 4, !tbaa !5
  %22773 = call ptr @s2n_strerror(i32 noundef %22772, ptr noundef @.str.4)
  %22774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22775 = load i32, ptr %22774, align 4, !tbaa !5
  %22776 = call ptr @s2n_strerror_debug(i32 noundef %22775, ptr noundef @.str.4)
  %22777 = call ptr @__errno_location() #11
  %22778 = load i32, ptr %22777, align 4, !tbaa !5
  %22779 = call ptr @strerror(i32 noundef %22778) #10
  %22780 = call ptr @__errno_location() #11
  %22781 = load i32, ptr %22780, align 4, !tbaa !5
  %22782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22769, ptr noundef @.str.5, i32 noundef %22770, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 1491, ptr noundef %22773, ptr noundef %22776, ptr noundef %22779, i32 noundef %22781) #10
  br label %22783

22783:                                            ; preds = %22766, %22749
  call void @llvm.lifetime.end.p0(i64 4, ptr %689) #10
  br label %22784

22784:                                            ; preds = %22783
  br label %22785

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

22786:                                            ; No predecessors!
  br label %22787

22787:                                            ; preds = %22786
  br label %22788

22788:                                            ; preds = %22787, %22724
  br label %22789

22789:                                            ; preds = %22788
  br label %22790

22790:                                            ; preds = %22789
  br label %22791

22791:                                            ; preds = %22790
  %22792 = load i32, ptr @test_count, align 4, !tbaa !5
  %22793 = add nsw i32 %22792, 1
  store i32 %22793, ptr @test_count, align 4, !tbaa !5
  %22794 = load ptr, ptr %677, align 8, !tbaa !9
  %22795 = getelementptr inbounds %struct.s2n_connection, ptr %22794, i32 0, i32 31
  %22796 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %22795, i32 0, i32 1
  %22797 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %22796, i32 0, i32 0
  %22798 = load ptr, ptr %22797, align 8, !tbaa !102
  %22799 = icmp eq ptr %22798, @s2n_ecc_curve_secp521r1
  br i1 %22799, label %22800, label %22853

22800:                                            ; preds = %22791
  br label %22801

22801:                                            ; preds = %22800
  br label %22802

22802:                                            ; preds = %22801
  call void @llvm.lifetime.start.p0(i64 4, ptr %690) #10
  %22803 = call ptr @__errno_location() #11
  %22804 = load i32, ptr %22803, align 4, !tbaa !5
  store i32 %22804, ptr %690, align 4, !tbaa !5
  %22805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22806 = call i32 @s2n_print_stacktrace(ptr noundef %22805)
  %22807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22808 = trunc i8 %22807 to i1
  br i1 %22808, label %22809, label %22831

22809:                                            ; preds = %22802
  %22810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22811 = call i32 @fileno(ptr noundef %22810) #10
  %22812 = call i32 @isatty(i32 noundef %22811) #10
  %22813 = icmp ne i32 %22812, 0
  br i1 %22813, label %22814, label %22831

22814:                                            ; preds = %22809
  %22815 = load i32, ptr %690, align 4, !tbaa !5
  %22816 = call ptr @__errno_location() #11
  store i32 %22815, ptr %22816, align 4, !tbaa !5
  %22817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22818 = load i32, ptr @test_count, align 4, !tbaa !5
  %22819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22820 = load i32, ptr %22819, align 4, !tbaa !5
  %22821 = call ptr @s2n_strerror(i32 noundef %22820, ptr noundef @.str.4)
  %22822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22823 = load i32, ptr %22822, align 4, !tbaa !5
  %22824 = call ptr @s2n_strerror_debug(i32 noundef %22823, ptr noundef @.str.4)
  %22825 = call ptr @__errno_location() #11
  %22826 = load i32, ptr %22825, align 4, !tbaa !5
  %22827 = call ptr @strerror(i32 noundef %22826) #10
  %22828 = call ptr @__errno_location() #11
  %22829 = load i32, ptr %22828, align 4, !tbaa !5
  %22830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22817, ptr noundef @.str.2, i32 noundef %22818, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 1495, ptr noundef %22821, ptr noundef %22824, ptr noundef %22827, i32 noundef %22829) #10
  br label %22848

22831:                                            ; preds = %22809, %22802
  %22832 = load i32, ptr %690, align 4, !tbaa !5
  %22833 = call ptr @__errno_location() #11
  store i32 %22832, ptr %22833, align 4, !tbaa !5
  %22834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22835 = load i32, ptr @test_count, align 4, !tbaa !5
  %22836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22837 = load i32, ptr %22836, align 4, !tbaa !5
  %22838 = call ptr @s2n_strerror(i32 noundef %22837, ptr noundef @.str.4)
  %22839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22840 = load i32, ptr %22839, align 4, !tbaa !5
  %22841 = call ptr @s2n_strerror_debug(i32 noundef %22840, ptr noundef @.str.4)
  %22842 = call ptr @__errno_location() #11
  %22843 = load i32, ptr %22842, align 4, !tbaa !5
  %22844 = call ptr @strerror(i32 noundef %22843) #10
  %22845 = call ptr @__errno_location() #11
  %22846 = load i32, ptr %22845, align 4, !tbaa !5
  %22847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22834, ptr noundef @.str.5, i32 noundef %22835, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 1495, ptr noundef %22838, ptr noundef %22841, ptr noundef %22844, i32 noundef %22846) #10
  br label %22848

22848:                                            ; preds = %22831, %22814
  call void @llvm.lifetime.end.p0(i64 4, ptr %690) #10
  br label %22849

22849:                                            ; preds = %22848
  br label %22850

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

22851:                                            ; No predecessors!
  br label %22852

22852:                                            ; preds = %22851
  br label %22853

22853:                                            ; preds = %22852, %22791
  br label %22854

22854:                                            ; preds = %22853
  br label %22855

22855:                                            ; preds = %22854
  br label %22856

22856:                                            ; preds = %22855
  %22857 = load i32, ptr @test_count, align 4, !tbaa !5
  %22858 = add nsw i32 %22857, 1
  store i32 %22858, ptr @test_count, align 4, !tbaa !5
  %22859 = load ptr, ptr %677, align 8, !tbaa !9
  %22860 = getelementptr inbounds %struct.s2n_connection, ptr %22859, i32 0, i32 31
  %22861 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %22860, i32 0, i32 1
  %22862 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %22861, i32 0, i32 0
  %22863 = load ptr, ptr %22862, align 8, !tbaa !102
  %22864 = icmp eq ptr %22863, @s2n_ecc_curve_secp384r1
  br i1 %22864, label %22918, label %22865

22865:                                            ; preds = %22856
  br label %22866

22866:                                            ; preds = %22865
  br label %22867

22867:                                            ; preds = %22866
  call void @llvm.lifetime.start.p0(i64 4, ptr %691) #10
  %22868 = call ptr @__errno_location() #11
  %22869 = load i32, ptr %22868, align 4, !tbaa !5
  store i32 %22869, ptr %691, align 4, !tbaa !5
  %22870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22871 = call i32 @s2n_print_stacktrace(ptr noundef %22870)
  %22872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22873 = trunc i8 %22872 to i1
  br i1 %22873, label %22874, label %22896

22874:                                            ; preds = %22867
  %22875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22876 = call i32 @fileno(ptr noundef %22875) #10
  %22877 = call i32 @isatty(i32 noundef %22876) #10
  %22878 = icmp ne i32 %22877, 0
  br i1 %22878, label %22879, label %22896

22879:                                            ; preds = %22874
  %22880 = load i32, ptr %691, align 4, !tbaa !5
  %22881 = call ptr @__errno_location() #11
  store i32 %22880, ptr %22881, align 4, !tbaa !5
  %22882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22883 = load i32, ptr @test_count, align 4, !tbaa !5
  %22884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22885 = load i32, ptr %22884, align 4, !tbaa !5
  %22886 = call ptr @s2n_strerror(i32 noundef %22885, ptr noundef @.str.4)
  %22887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22888 = load i32, ptr %22887, align 4, !tbaa !5
  %22889 = call ptr @s2n_strerror_debug(i32 noundef %22888, ptr noundef @.str.4)
  %22890 = call ptr @__errno_location() #11
  %22891 = load i32, ptr %22890, align 4, !tbaa !5
  %22892 = call ptr @strerror(i32 noundef %22891) #10
  %22893 = call ptr @__errno_location() #11
  %22894 = load i32, ptr %22893, align 4, !tbaa !5
  %22895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22882, ptr noundef @.str.2, i32 noundef %22883, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 1497, ptr noundef %22886, ptr noundef %22889, ptr noundef %22892, i32 noundef %22894) #10
  br label %22913

22896:                                            ; preds = %22874, %22867
  %22897 = load i32, ptr %691, align 4, !tbaa !5
  %22898 = call ptr @__errno_location() #11
  store i32 %22897, ptr %22898, align 4, !tbaa !5
  %22899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22900 = load i32, ptr @test_count, align 4, !tbaa !5
  %22901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22902 = load i32, ptr %22901, align 4, !tbaa !5
  %22903 = call ptr @s2n_strerror(i32 noundef %22902, ptr noundef @.str.4)
  %22904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22905 = load i32, ptr %22904, align 4, !tbaa !5
  %22906 = call ptr @s2n_strerror_debug(i32 noundef %22905, ptr noundef @.str.4)
  %22907 = call ptr @__errno_location() #11
  %22908 = load i32, ptr %22907, align 4, !tbaa !5
  %22909 = call ptr @strerror(i32 noundef %22908) #10
  %22910 = call ptr @__errno_location() #11
  %22911 = load i32, ptr %22910, align 4, !tbaa !5
  %22912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22899, ptr noundef @.str.5, i32 noundef %22900, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 1497, ptr noundef %22903, ptr noundef %22906, ptr noundef %22909, i32 noundef %22911) #10
  br label %22913

22913:                                            ; preds = %22896, %22879
  call void @llvm.lifetime.end.p0(i64 4, ptr %691) #10
  br label %22914

22914:                                            ; preds = %22913
  br label %22915

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

22916:                                            ; No predecessors!
  br label %22917

22917:                                            ; preds = %22916
  br label %22918

22918:                                            ; preds = %22917, %22856
  br label %22919

22919:                                            ; preds = %22918
  br label %22920

22920:                                            ; preds = %22919
  %22921 = call i32 @s2n_io_pair_close(ptr noundef %679)
  call void @llvm.lifetime.end.p0(i64 8, ptr %679) #10
  %22922 = call i32 @s2n_connection_ptr_free(ptr noundef %677)
  %22923 = getelementptr inbounds %struct.s2n_result, ptr %692, i32 0, i32 0
  store i32 %22922, ptr %22923, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %677) #10
  %22924 = call i32 @s2n_connection_ptr_free(ptr noundef %675)
  %22925 = getelementptr inbounds %struct.s2n_result, ptr %693, i32 0, i32 0
  store i32 %22924, ptr %22925, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %675) #10
  br label %22926

22926:                                            ; preds = %22920
  %22927 = load i8, ptr %674, align 1, !tbaa !23
  %22928 = add i8 %22927, 1
  store i8 %22928, ptr %674, align 1, !tbaa !23
  br label %21998, !llvm.loop !103

22929:                                            ; preds = %22002
  call void @llvm.lifetime.end.p0(i64 64, ptr %673) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %672) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %671) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %670) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %669) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %668) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %667) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %666) #10
  %22930 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %663)
  %22931 = getelementptr inbounds %struct.s2n_result, ptr %694, i32 0, i32 0
  store i32 %22930, ptr %22931, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %663) #10
  %22932 = call i32 @s2n_config_ptr_free(ptr noundef %660)
  %22933 = getelementptr inbounds %struct.s2n_result, ptr %695, i32 0, i32 0
  store i32 %22932, ptr %22933, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %660) #10
  br label %22934

22934:                                            ; preds = %22929, %21736
  br label %22935

22935:                                            ; preds = %22934
  br label %22936

22936:                                            ; preds = %22935
  %22937 = call i32 @s2n_cleanup()
  %22938 = icmp eq i32 %22937, -1
  br i1 %22938, label %22939, label %22992

22939:                                            ; preds = %22936
  br label %22940

22940:                                            ; preds = %22939
  br label %22941

22941:                                            ; preds = %22940
  call void @llvm.lifetime.start.p0(i64 4, ptr %696) #10
  %22942 = call ptr @__errno_location() #11
  %22943 = load i32, ptr %22942, align 4, !tbaa !5
  store i32 %22943, ptr %696, align 4, !tbaa !5
  %22944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22945 = call i32 @s2n_print_stacktrace(ptr noundef %22944)
  %22946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22947 = trunc i8 %22946 to i1
  br i1 %22947, label %22948, label %22970

22948:                                            ; preds = %22941
  %22949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22950 = call i32 @fileno(ptr noundef %22949) #10
  %22951 = call i32 @isatty(i32 noundef %22950) #10
  %22952 = icmp ne i32 %22951, 0
  br i1 %22952, label %22953, label %22970

22953:                                            ; preds = %22948
  %22954 = load i32, ptr %696, align 4, !tbaa !5
  %22955 = call ptr @__errno_location() #11
  store i32 %22954, ptr %22955, align 4, !tbaa !5
  %22956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22957 = load i32, ptr @test_count, align 4, !tbaa !5
  %22958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22959 = load i32, ptr %22958, align 4, !tbaa !5
  %22960 = call ptr @s2n_strerror(i32 noundef %22959, ptr noundef @.str.4)
  %22961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22962 = load i32, ptr %22961, align 4, !tbaa !5
  %22963 = call ptr @s2n_strerror_debug(i32 noundef %22962, ptr noundef @.str.4)
  %22964 = call ptr @__errno_location() #11
  %22965 = load i32, ptr %22964, align 4, !tbaa !5
  %22966 = call ptr @strerror(i32 noundef %22965) #10
  %22967 = call ptr @__errno_location() #11
  %22968 = load i32, ptr %22967, align 4, !tbaa !5
  %22969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22956, ptr noundef @.str.2, i32 noundef %22957, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 1501, ptr noundef %22960, ptr noundef %22963, ptr noundef %22966, i32 noundef %22968) #10
  br label %22987

22970:                                            ; preds = %22948, %22941
  %22971 = load i32, ptr %696, align 4, !tbaa !5
  %22972 = call ptr @__errno_location() #11
  store i32 %22971, ptr %22972, align 4, !tbaa !5
  %22973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22974 = load i32, ptr @test_count, align 4, !tbaa !5
  %22975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22976 = load i32, ptr %22975, align 4, !tbaa !5
  %22977 = call ptr @s2n_strerror(i32 noundef %22976, ptr noundef @.str.4)
  %22978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22979 = load i32, ptr %22978, align 4, !tbaa !5
  %22980 = call ptr @s2n_strerror_debug(i32 noundef %22979, ptr noundef @.str.4)
  %22981 = call ptr @__errno_location() #11
  %22982 = load i32, ptr %22981, align 4, !tbaa !5
  %22983 = call ptr @strerror(i32 noundef %22982) #10
  %22984 = call ptr @__errno_location() #11
  %22985 = load i32, ptr %22984, align 4, !tbaa !5
  %22986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22973, ptr noundef @.str.5, i32 noundef %22974, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 1501, ptr noundef %22977, ptr noundef %22980, ptr noundef %22983, i32 noundef %22985) #10
  br label %22987

22987:                                            ; preds = %22970, %22953
  call void @llvm.lifetime.end.p0(i64 4, ptr %696) #10
  br label %22988

22988:                                            ; preds = %22987
  br label %22989

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

22990:                                            ; No predecessors!
  br label %22991

22991:                                            ; preds = %22990
  br label %22992

22992:                                            ; preds = %22991, %22936
  br label %22993

22993:                                            ; preds = %22992
  br label %22994

22994:                                            ; preds = %22993
  br label %22995

22995:                                            ; preds = %22994
  br label %22996

22996:                                            ; preds = %22995
  %22997 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %22998 = icmp eq i32 %22997, -1
  br i1 %22998, label %22999, label %23052

22999:                                            ; preds = %22996
  br label %23000

23000:                                            ; preds = %22999
  br label %23001

23001:                                            ; preds = %23000
  call void @llvm.lifetime.start.p0(i64 4, ptr %697) #10
  %23002 = call ptr @__errno_location() #11
  %23003 = load i32, ptr %23002, align 4, !tbaa !5
  store i32 %23003, ptr %697, align 4, !tbaa !5
  %23004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23005 = call i32 @s2n_print_stacktrace(ptr noundef %23004)
  %23006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23007 = trunc i8 %23006 to i1
  br i1 %23007, label %23008, label %23030

23008:                                            ; preds = %23001
  %23009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23010 = call i32 @fileno(ptr noundef %23009) #10
  %23011 = call i32 @isatty(i32 noundef %23010) #10
  %23012 = icmp ne i32 %23011, 0
  br i1 %23012, label %23013, label %23030

23013:                                            ; preds = %23008
  %23014 = load i32, ptr %697, align 4, !tbaa !5
  %23015 = call ptr @__errno_location() #11
  store i32 %23014, ptr %23015, align 4, !tbaa !5
  %23016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23017 = load i32, ptr @test_count, align 4, !tbaa !5
  %23018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23019 = load i32, ptr %23018, align 4, !tbaa !5
  %23020 = call ptr @s2n_strerror(i32 noundef %23019, ptr noundef @.str.4)
  %23021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23022 = load i32, ptr %23021, align 4, !tbaa !5
  %23023 = call ptr @s2n_strerror_debug(i32 noundef %23022, ptr noundef @.str.4)
  %23024 = call ptr @__errno_location() #11
  %23025 = load i32, ptr %23024, align 4, !tbaa !5
  %23026 = call ptr @strerror(i32 noundef %23025) #10
  %23027 = call ptr @__errno_location() #11
  %23028 = load i32, ptr %23027, align 4, !tbaa !5
  %23029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23016, ptr noundef @.str.2, i32 noundef %23017, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 1501, ptr noundef %23020, ptr noundef %23023, ptr noundef %23026, i32 noundef %23028) #10
  br label %23047

23030:                                            ; preds = %23008, %23001
  %23031 = load i32, ptr %697, align 4, !tbaa !5
  %23032 = call ptr @__errno_location() #11
  store i32 %23031, ptr %23032, align 4, !tbaa !5
  %23033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23034 = load i32, ptr @test_count, align 4, !tbaa !5
  %23035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23036 = load i32, ptr %23035, align 4, !tbaa !5
  %23037 = call ptr @s2n_strerror(i32 noundef %23036, ptr noundef @.str.4)
  %23038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23039 = load i32, ptr %23038, align 4, !tbaa !5
  %23040 = call ptr @s2n_strerror_debug(i32 noundef %23039, ptr noundef @.str.4)
  %23041 = call ptr @__errno_location() #11
  %23042 = load i32, ptr %23041, align 4, !tbaa !5
  %23043 = call ptr @strerror(i32 noundef %23042) #10
  %23044 = call ptr @__errno_location() #11
  %23045 = load i32, ptr %23044, align 4, !tbaa !5
  %23046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23033, ptr noundef @.str.5, i32 noundef %23034, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 1501, ptr noundef %23037, ptr noundef %23040, ptr noundef %23043, i32 noundef %23045) #10
  br label %23047

23047:                                            ; preds = %23030, %23013
  call void @llvm.lifetime.end.p0(i64 4, ptr %697) #10
  br label %23048

23048:                                            ; preds = %23047
  br label %23049

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

23050:                                            ; No predecessors!
  br label %23051

23051:                                            ; preds = %23050
  br label %23052

23052:                                            ; preds = %23051, %22996
  br label %23053

23053:                                            ; preds = %23052
  br label %23054

23054:                                            ; preds = %23053
  %23055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23056 = trunc i8 %23055 to i1
  br i1 %23056, label %23057, label %23073

23057:                                            ; preds = %23054
  %23058 = load ptr, ptr @stdout, align 8, !tbaa !9
  %23059 = call i32 @fileno(ptr noundef %23058) #10
  %23060 = call i32 @isatty(i32 noundef %23059) #10
  %23061 = icmp ne i32 %23060, 0
  br i1 %23061, label %23062, label %23073

23062:                                            ; preds = %23057
  %23063 = load i32, ptr @test_count, align 4, !tbaa !5
  %23064 = icmp ne i32 %23063, 0
  br i1 %23064, label %23065, label %23069

23065:                                            ; preds = %23062
  %23066 = load ptr, ptr @stdout, align 8, !tbaa !9
  %23067 = load i32, ptr @test_count, align 4, !tbaa !5
  %23068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23066, ptr noundef @.str.135, i32 noundef %23067) #10
  br label %23072

23069:                                            ; preds = %23062
  %23070 = load ptr, ptr @stdout, align 8, !tbaa !9
  %23071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23070, ptr noundef @.str.136) #10
  br label %23072

23072:                                            ; preds = %23069, %23065
  br label %23084

23073:                                            ; preds = %23057, %23054
  %23074 = load i32, ptr @test_count, align 4, !tbaa !5
  %23075 = icmp ne i32 %23074, 0
  br i1 %23075, label %23076, label %23080

23076:                                            ; preds = %23073
  %23077 = load ptr, ptr @stdout, align 8, !tbaa !9
  %23078 = load i32, ptr @test_count, align 4, !tbaa !5
  %23079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23077, ptr noundef @.str.137, i32 noundef %23078) #10
  br label %23083

23080:                                            ; preds = %23073
  %23081 = load ptr, ptr @stdout, align 8, !tbaa !9
  %23082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23081, ptr noundef @.str.138) #10
  br label %23083

23083:                                            ; preds = %23080, %23076
  br label %23084

23084:                                            ; preds = %23083, %23072
  store i32 0, ptr %3, align 4
  store i32 1, ptr %485, align 4
  br label %23089

23085:                                            ; No predecessors!
  br label %23086

23086:                                            ; preds = %23085
  br label %23087

23087:                                            ; preds = %23086
  br label %23088

23088:                                            ; preds = %23087
  store i32 0, ptr %3, align 4
  store i32 1, ptr %485, align 4
  br label %23089

23089:                                            ; preds = %23088, %23084
  call void @llvm.lifetime.end.p0(i64 2, ptr %483) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #10
  %23090 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %12)
  %23091 = getelementptr inbounds %struct.s2n_result, ptr %698, i32 0, i32 0
  store i32 %23090, ptr %23091, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  %23092 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %10)
  %23093 = getelementptr inbounds %struct.s2n_result, ptr %699, i32 0, i32 0
  store i32 %23092, ptr %23093, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  %23094 = load i32, ptr %3, align 4
  ret i32 %23094
}

; 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

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

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

declare ptr @s2n_fetch_default_config() #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) #7

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

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

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

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

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_set_local_sig_schemes(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_set_peer_sig_schemes(ptr noundef, ptr noundef, i64 noundef) #0

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

declare i32 @s2n_signature_algorithm_select(ptr noundef) #2

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

declare void @s2n_debug_info_reset() #2

declare zeroext i1 @s2n_is_rsa_pss_signing_supported(...) #2

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) #2

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

declare zeroext i1 @s2n_is_rsa_pss_certs_supported(...) #2

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #2

declare i32 @s2n_io_pair_close(ptr noundef) #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #2

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

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

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

declare i32 @s2n_reset_tls13_in_test(...) #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #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: readwrite) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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 }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 96}
!16 = !{!"s2n_config", !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, !10, i64 8, !10, i64 16, !17, i64 24, !18, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !19, i64 144, !10, i64 152, !19, i64 160, !19, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !20, i64 304, !21, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !18, i64 448}
!17 = !{!"certs_by_type", !7, i64 0}
!18 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!19 = !{!"long", !7, i64 0}
!20 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!21 = !{!"short", !7, i64 0}
!22 = !{i64 0, i64 1, !23, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9, i64 48, i64 8, !9, i64 56, i64 1, !11, i64 57, i64 2, !23}
!23 = !{!7, !7, i64 0}
!24 = !{!25, !10, i64 24}
!25 = !{!"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}
!26 = !{!27, !10, i64 16}
!27 = !{!"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, !28, i64 160, !19, i64 168, !19, 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, !29, i64 240, !10, i64 632, !10, i64 640, !30, i64 648, !35, i64 1144, !38, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !40, i64 1776, !40, i64 1816, !40, i64 1856, !40, i64 1896, !6, i64 1936, !19, i64 1944, !7, i64 1952, !40, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !41, i64 2004, !41, i64 2008, !42, i64 2016, !21, i64 2208, !6, i64 2212, !21, i64 2216, !19, i64 2224, !7, i64 2232, !19, i64 2240, !19, i64 2248, !19, i64 2256, !41, i64 2264, !41, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !18, i64 2792, !6, i64 2816, !18, i64 2824, !18, i64 2848, !18, i64 2872, !44, i64 2896, !46, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !18, i64 3784, !6, i64 3808, !48, i64 3816, !7, i64 3848, !40, i64 3992, !18, i64 4032, !18, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !21, i64 4084, !21, i64 4086, !6, i64 4088, !6, i64 4092, !18, i64 4096, !6, i64 4120, !49, i64 4128, !41, i64 4176, !7, i64 4180, !7, i64 4181}
!28 = !{!"s2n_timer", !19, i64 0}
!29 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!30 = !{!"s2n_kex_parameters", !31, i64 0, !32, i64 8, !7, i64 24, !32, i64 56, !33, i64 72, !33, i64 184, !7, i64 296, !34, i64 360, !18, i64 448, !18, i64 472}
!31 = !{!"s2n_dh_params", !10, i64 0}
!32 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!33 = !{!"s2n_kem_group_params", !10, i64 0, !34, i64 8, !32, i64 96}
!34 = !{!"s2n_kem_params", !10, i64 0, !18, i64 8, !18, i64 32, !18, i64 56, !12, i64 80}
!35 = !{!"s2n_handshake_parameters", !36, i64 0, !36, i64 48, !18, i64 96, !6, i64 120, !37, 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}
!36 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!37 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!38 = !{!"s2n_psk_parameters", !6, i64 0, !39, i64 8, !21, i64 40, !21, i64 42, !10, i64 48, !6, i64 56}
!39 = !{!"s2n_array", !18, i64 0, !6, i64 24, !6, i64 28}
!40 = !{!"s2n_stuffer", !18, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!41 = !{!"", !6, i64 0}
!42 = !{!"s2n_handshake", !40, 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, !43, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!43 = !{!"s2n_offered_early_data", !10, i64 0}
!44 = !{!"s2n_client_hello", !18, i64 0, !45, i64 24, !18, i64 728, !18, i64 752, !18, 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}
!45 = !{!"", !7, i64 0, !18, i64 672, !21, i64 696}
!46 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !21, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !47, i64 48, !12, i64 52}
!47 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!48 = !{!"s2n_ticket_fields", !18, i64 0, !6, i64 24}
!49 = !{!"s2n_post_handshake", !40, i64 0, !7, i64 40}
!50 = !{!27, !7, i64 220}
!51 = !{!21, !21, i64 0}
!52 = !{!40, !6, i64 28}
!53 = !{!40, !6, i64 24}
!54 = !{!19, !19, i64 0}
!55 = !{!56, !21, i64 0}
!56 = !{!"s2n_signature_scheme", !21, i64 0, !10, i64 8, !6, i64 16, !6, i64 20, !7, i64 24, !7, i64 25, !21, i64 26, !10, i64 32}
!57 = distinct !{!57, !58}
!58 = !{!"llvm.loop.mustprogress"}
!59 = distinct !{!59, !58}
!60 = !{!37, !7, i64 256}
!61 = distinct !{!61, !58}
!62 = !{!56, !7, i64 25}
!63 = distinct !{!63, !58}
!64 = !{!27, !6, i64 1264}
!65 = !{!27, !10, i64 1536}
!66 = !{!27, !10, i64 232}
!67 = !{!68, !10, i64 0}
!68 = !{!"s2n_crypto_parameters", !10, i64 0, !69, i64 8, !69, i64 16, !70, i64 24, !70, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!69 = !{!"s2n_session_key", !10, i64 0}
!70 = !{!"s2n_hmac_state", !6, i64 0, !21, i64 4, !6, i64 8, !21, i64 12, !7, i64 14, !71, i64 16, !71, i64 72, !71, i64 128, !71, i64 184, !7, i64 240, !7, i64 368}
!71 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !19, i64 16, !7, i64 24}
!72 = !{!27, !10, i64 1528}
!73 = !{i64 0, i64 2, !51, i64 8, i64 8, !9, i64 16, i64 4, !5, i64 20, i64 4, !5, i64 24, i64 1, !23, i64 25, i64 1, !23, i64 26, i64 2, !51, i64 32, i64 8, !9}
!74 = !{!56, !6, i64 16}
!75 = !{!56, !6, i64 20}
!76 = !{!77, !7, i64 0}
!77 = !{!"s2n_signature_preferences", !7, i64 0, !10, i64 8}
!78 = !{!77, !10, i64 8}
!79 = distinct !{!79, !58}
!80 = distinct !{!80, !58}
!81 = distinct !{!81, !58}
!82 = distinct !{!82, !58}
!83 = distinct !{!83, !58}
!84 = distinct !{!84, !58}
!85 = distinct !{!85, !58}
!86 = distinct !{!86, !58}
!87 = distinct !{!87, !58}
!88 = distinct !{!88, !58}
!89 = distinct !{!89, !58}
!90 = distinct !{!90, !58}
!91 = distinct !{!91, !58}
!92 = distinct !{!92, !58}
!93 = !{!94, !7, i64 0}
!94 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!95 = !{!94, !10, i64 8}
!96 = !{!25, !10, i64 8}
!97 = !{!25, !10, i64 40}
!98 = !{!99, !10, i64 8}
!99 = !{!"s2n_cipher_preferences", !21, i64 0, !10, i64 8, !12, i64 16}
!100 = !{!101, !6, i64 96}
!101 = !{!"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}
!102 = !{!27, !10, i64 656}
!103 = distinct !{!103, !58}


; 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_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_signature_scheme = type { i16, ptr, i32, i32, i8, i8, i16, ptr }
%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_local_sig_schemes_context = type { %struct.s2n_security_policy, %struct.s2n_signature_preferences }
%struct.s2n_test_io_pair = type { i32, i32 }
%struct.s2n_ecc_preferences = type { i8, ptr }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@s2n_ecc_curve_secp384r1 = external constant %struct.s2n_ecc_named_curve, align 8
@s2n_test_tls13_ecdsa_sha384 = external dso_local constant %struct.s2n_signature_scheme, align 8
@s2n_rsa_pkcs1_sha256 = external constant %struct.s2n_signature_scheme, align 8
@s2n_rsa_pkcs1_sha224 = external constant %struct.s2n_signature_scheme, align 8
@s2n_rsa_pkcs1_sha1 = external constant %struct.s2n_signature_scheme, align 8
@s2n_ecdsa_sha1 = external constant %struct.s2n_signature_scheme, align 8
@s2n_ecdsa_sha256 = external constant %struct.s2n_signature_scheme, align 8
@test_signature_schemes = external dso_local local_unnamed_addr constant [6 x ptr], align 16
@test_preferences = external dso_local constant %struct.s2n_signature_preferences, align 8
@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 [88 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 [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [201 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [106 x i8], align 1
@s2n_ecdsa_sha384 = external constant %struct.s2n_signature_scheme, align 8
@s2n_rsa_pss_rsae_sha256 = external constant %struct.s2n_signature_scheme, align 8
@s2n_rsa_pss_pss_sha256 = external constant %struct.s2n_signature_scheme, align 8
@__const.main.test_schemes = external hidden unnamed_addr constant [4 x ptr], align 16
@.str.30 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [171 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [78 x i8], align 1
@s2n_rsa_pkcs1_md5_sha1 = external constant %struct.s2n_signature_scheme, align 8
@.str.36 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [75 x i8], align 1
@s2n_ecdhe_ecdsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.38 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [78 x i8], align 1
@s2n_ecdhe_rsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.40 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [121 x i8], align 1
@__const.main.order = external hidden unnamed_addr constant [3 x ptr], align 16
@__const.main.reversed_order = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.42 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [177 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [154 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [84 x i8], align 1
@s2n_ecdsa_sha224 = external constant %struct.s2n_signature_scheme, align 8
@.str.48 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [120 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.50 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [171 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [175 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [84 x i8], align 1
@s2n_ecdsa_sha512 = external constant %struct.s2n_signature_scheme, align 8
@s2n_rsa_pss_rsae_sha384 = external constant %struct.s2n_signature_scheme, align 8
@.str.67 = external hidden unnamed_addr constant [184 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [82 x i8], align 1
@__const.main.test_schemes.81 = external hidden unnamed_addr constant [4 x ptr], align 16
@__const.main.supported_schemes = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.82 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [39 x i8], align 1
@__const.main.pss_test_signature_schemes = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.92 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [91 x i8], align 1
@__const.main.schemes = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.99 = external hidden unnamed_addr constant [91 x i8], align 1
@__const.main.peer_schemes = external hidden unnamed_addr constant [1 x ptr], align 8
@__const.main.local_schemes = external hidden unnamed_addr constant [3 x ptr], align 16
@__const.main.default_schemes = external hidden unnamed_addr constant [2 x ptr], align 16
@__const.main.sha256_schemes = external hidden unnamed_addr constant [2 x ptr], align 16
@__const.main.sha384_schemes = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.100 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [129 x i8], align 1
@security_policy_20190214 = external local_unnamed_addr constant %struct.s2n_security_policy, align 8
@.str.102 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [97 x i8], align 1
@s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@__const.main.cipher_prefs = external hidden unnamed_addr constant %struct.s2n_cipher_preferences, align 8
@__const.main.sig_schemes = external hidden unnamed_addr constant [3 x ptr], align 16
@s2n_ecc_curve_secp521r1 = external constant %struct.s2n_ecc_named_curve, align 8
@__const.main.curves = external hidden unnamed_addr constant [2 x ptr], align 16
@security_policy_20230317 = external local_unnamed_addr constant %struct.s2n_security_policy, align 8
@.str.120 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.138 = 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 ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %struct.s2n_security_policy, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %struct.s2n_stuffer, align 8
  %8 = alloca i16, align 2
  %9 = alloca i16, align 2
  %10 = alloca ptr, align 8
  %11 = alloca %struct.s2n_stuffer, align 8
  %12 = alloca i16, align 2
  %13 = alloca i16, align 2
  %14 = alloca ptr, align 8
  %15 = alloca %struct.s2n_stuffer, align 8
  %16 = alloca %struct.s2n_sig_scheme_list, align 2
  %17 = alloca ptr, align 8
  %18 = alloca %struct.s2n_stuffer, align 8
  %19 = alloca i16, align 2
  %20 = alloca i16, align 2
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca [4 x ptr], align 16
  %25 = alloca ptr, align 8
  %26 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %27 = alloca ptr, align 8
  %28 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %35 = alloca [3 x ptr], align 16
  %36 = alloca [3 x ptr], align 16
  %37 = alloca ptr, align 8
  %38 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %45 = alloca %struct.s2n_signature_scheme, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %49 = alloca %struct.s2n_signature_scheme, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %59 = alloca ptr, align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %63 = alloca ptr, align 8
  %64 = alloca [6 x ptr], align 16
  %65 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %66 = alloca [1 x ptr], align 8
  %67 = alloca [4 x ptr], align 16
  %68 = alloca ptr, align 8
  %69 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %70 = alloca [4 x ptr], align 16
  %71 = alloca ptr, align 8
  %72 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %73 = alloca [5 x ptr], align 16
  %74 = alloca ptr, align 8
  %75 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %76 = alloca [6 x ptr], align 16
  %77 = alloca ptr, align 8
  %78 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %79 = alloca [5 x ptr], align 16
  %80 = alloca [1 x ptr], align 8
  %81 = alloca ptr, align 8
  %82 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %83 = alloca [4 x ptr], align 16
  %84 = alloca [3 x ptr], align 16
  %85 = alloca ptr, align 8
  %86 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %87 = alloca %struct.s2n_security_policy, align 8
  %88 = alloca ptr, align 8
  %89 = alloca %struct.s2n_stuffer, align 8
  %90 = alloca ptr, align 8
  %91 = alloca %struct.s2n_stuffer, align 8
  %92 = alloca %struct.s2n_stuffer, align 8
  %93 = alloca ptr, align 8
  %94 = alloca ptr, align 8
  %95 = alloca ptr, align 8
  %96 = alloca ptr, align 8
  %97 = alloca %struct.s2n_stuffer, align 8
  %98 = alloca [4 x ptr], align 16
  %99 = alloca [1 x ptr], align 8
  %100 = alloca %struct.s2n_security_policy, align 8
  %101 = alloca %struct.s2n_signature_preferences, align 8
  %102 = alloca %struct.s2n_security_policy, align 8
  %103 = alloca %struct.s2n_signature_preferences, align 8
  %104 = alloca ptr, align 8
  %105 = alloca %struct.s2n_stuffer, align 8
  %106 = alloca ptr, align 8
  %107 = alloca %struct.s2n_stuffer, align 8
  %108 = alloca ptr, align 8
  %109 = alloca %struct.s2n_stuffer, align 8
  %110 = alloca %struct.s2n_sig_scheme_list, align 2
  %111 = alloca [2 x ptr], align 16
  %112 = alloca %struct.s2n_signature_preferences, align 8
  %113 = alloca ptr, align 8
  %114 = alloca %struct.s2n_security_policy, align 8
  %115 = alloca ptr, align 8
  %116 = alloca %struct.s2n_stuffer, align 8
  %117 = alloca i16, align 2
  %118 = alloca ptr, align 8
  %119 = alloca %struct.s2n_stuffer, align 8
  %120 = alloca ptr, align 8
  %121 = alloca [1 x ptr], align 8
  %122 = alloca ptr, align 8
  %123 = alloca [1 x ptr], align 8
  %124 = alloca [3 x ptr], align 16
  %125 = alloca %struct.s2n_local_sig_schemes_context, align 8
  %126 = alloca [2 x ptr], align 16
  %127 = alloca [2 x ptr], align 16
  %128 = alloca [2 x ptr], align 16
  %129 = alloca %struct.s2n_signature_preferences, align 8
  %130 = alloca %struct.s2n_signature_preferences, align 8
  %131 = alloca %struct.s2n_signature_preferences, align 8
  %132 = alloca %struct.s2n_security_policy, align 8
  %133 = alloca %struct.s2n_security_policy, align 8
  %134 = alloca %struct.s2n_security_policy, align 8
  %135 = alloca ptr, align 8
  %136 = alloca ptr, align 8
  %137 = alloca ptr, align 8
  %138 = alloca %struct.s2n_test_io_pair, align 4
  %139 = alloca ptr, align 8
  %140 = alloca ptr, align 8
  %141 = alloca ptr, align 8
  %142 = alloca %struct.s2n_test_io_pair, align 4
  %143 = alloca ptr, align 8
  %144 = alloca ptr, align 8
  %145 = alloca ptr, align 8
  %146 = alloca %struct.s2n_test_io_pair, align 4
  %147 = alloca ptr, align 8
  %148 = alloca ptr, align 8
  %149 = alloca ptr, align 8
  %150 = alloca ptr, align 8
  %151 = alloca %struct.s2n_cipher_preferences, align 8
  %152 = alloca [3 x ptr], align 16
  %153 = alloca %struct.s2n_signature_preferences, align 8
  %154 = alloca [2 x ptr], align 16
  %155 = alloca %struct.s2n_ecc_preferences, align 8
  %156 = alloca %struct.s2n_security_policy, align 8
  %157 = alloca ptr, align 8
  %158 = alloca ptr, align 8
  %159 = alloca %struct.s2n_test_io_pair, align 4
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %160 = load ptr, ptr @stdout, align 8, !tbaa !9
  %161 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %160, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %162 = load ptr, ptr @stdout, align 8, !tbaa !9
  %163 = tail call i32 @fflush(ptr noundef %162)
  %164 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %165 = icmp eq i32 %164, -1
  br i1 %165, label %166, label %190

166:                                              ; preds = %2
  %167 = tail call ptr @__errno_location() #12
  %168 = load i32, ptr %167, align 4, !tbaa !5
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = tail call i32 @s2n_print_stacktrace(ptr noundef %169) #11
  %171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %172 = trunc nuw i8 %171 to i1
  br i1 %172, label %173, label %177

173:                                              ; preds = %166
  %174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %175 = tail call i32 @fileno(ptr noundef %174) #11
  %176 = tail call i32 @isatty(i32 noundef %175) #11
  %.not1307 = icmp eq i32 %176, 0
  br i1 %.not1307, label %177, label %178

177:                                              ; preds = %173, %166
  br label %178

178:                                              ; preds = %173, %177
  %.str.5.sink = phi ptr [ @.str.5, %177 ], [ @.str.2, %173 ]
  store i32 %168, ptr %167, align 4, !tbaa !5
  %179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %180 = load i32, ptr @test_count, align 4, !tbaa !5
  %181 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = tail call ptr @s2n_strerror(i32 noundef %182, ptr noundef nonnull @.str.4) #11
  %184 = load i32, ptr %181, align 4, !tbaa !5
  %185 = tail call ptr @s2n_strerror_debug(i32 noundef %184, ptr noundef nonnull @.str.4) #11
  %186 = load i32, ptr %167, align 4, !tbaa !5
  %187 = tail call ptr @strerror(i32 noundef %186) #11
  %188 = load i32, ptr %167, align 4, !tbaa !5
  %189 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %179, ptr noundef nonnull %.str.5.sink, i32 noundef %180, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %183, ptr noundef %185, ptr noundef %187, i32 noundef %188) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

190:                                              ; preds = %2
  %191 = load i32, ptr @test_count, align 4, !tbaa !5
  %192 = add nsw i32 %191, 1
  store i32 %192, ptr @test_count, align 4, !tbaa !5
  %193 = tail call i32 @s2n_enable_atexit() #11
  %194 = icmp eq i32 %193, -1
  br i1 %194, label %195, label %219

195:                                              ; preds = %190
  %196 = tail call ptr @__errno_location() #12
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %199 = tail call i32 @s2n_print_stacktrace(ptr noundef %198) #11
  %200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %201 = trunc nuw i8 %200 to i1
  br i1 %201, label %202, label %206

202:                                              ; preds = %195
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = tail call i32 @fileno(ptr noundef %203) #11
  %205 = tail call i32 @isatty(i32 noundef %204) #11
  %.not1306 = icmp eq i32 %205, 0
  br i1 %.not1306, label %206, label %207

206:                                              ; preds = %202, %195
  br label %207

207:                                              ; preds = %202, %206
  %.str.5.sink1453 = phi ptr [ @.str.5, %206 ], [ @.str.2, %202 ]
  store i32 %197, ptr %196, align 4, !tbaa !5
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = load i32, ptr @test_count, align 4, !tbaa !5
  %210 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = tail call ptr @s2n_strerror(i32 noundef %211, ptr noundef nonnull @.str.4) #11
  %213 = load i32, ptr %210, align 4, !tbaa !5
  %214 = tail call ptr @s2n_strerror_debug(i32 noundef %213, ptr noundef nonnull @.str.4) #11
  %215 = load i32, ptr %196, align 4, !tbaa !5
  %216 = tail call ptr @strerror(i32 noundef %215) #11
  %217 = load i32, ptr %196, align 4, !tbaa !5
  %218 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %208, ptr noundef nonnull %.str.5.sink1453, i32 noundef %209, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %212, ptr noundef %214, ptr noundef %216, i32 noundef %217) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

219:                                              ; preds = %190
  %220 = tail call i32 @s2n_init() #11
  %221 = icmp eq i32 %220, -1
  br i1 %221, label %222, label %246

222:                                              ; preds = %219
  %223 = tail call ptr @__errno_location() #12
  %224 = load i32, ptr %223, align 4, !tbaa !5
  %225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %226 = tail call i32 @s2n_print_stacktrace(ptr noundef %225) #11
  %227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %228 = trunc nuw i8 %227 to i1
  br i1 %228, label %229, label %233

229:                                              ; preds = %222
  %230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %231 = tail call i32 @fileno(ptr noundef %230) #11
  %232 = tail call i32 @isatty(i32 noundef %231) #11
  %.not1305 = icmp eq i32 %232, 0
  br i1 %.not1305, label %233, label %234

233:                                              ; preds = %229, %222
  br label %234

234:                                              ; preds = %229, %233
  %.str.5.sink1464 = phi ptr [ @.str.5, %233 ], [ @.str.2, %229 ]
  store i32 %224, ptr %223, align 4, !tbaa !5
  %235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = tail call ptr @s2n_strerror(i32 noundef %238, ptr noundef nonnull @.str.4) #11
  %240 = load i32, ptr %237, align 4, !tbaa !5
  %241 = tail call ptr @s2n_strerror_debug(i32 noundef %240, ptr noundef nonnull @.str.4) #11
  %242 = load i32, ptr %223, align 4, !tbaa !5
  %243 = tail call ptr @strerror(i32 noundef %242) #11
  %244 = load i32, ptr %223, align 4, !tbaa !5
  %245 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %235, ptr noundef nonnull %.str.5.sink1464, i32 noundef %236, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %239, ptr noundef %241, ptr noundef %243, i32 noundef %244) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

246:                                              ; preds = %219
  %247 = load i32, ptr @test_count, align 4, !tbaa !5
  %248 = add nsw i32 %247, 1
  store i32 %248, ptr @test_count, align 4, !tbaa !5
  %249 = tail call i32 (...) @s2n_disable_tls13_in_test() #11
  %250 = icmp eq i32 %249, -1
  br i1 %250, label %251, label %275

251:                                              ; preds = %246
  %252 = tail call ptr @__errno_location() #12
  %253 = load i32, ptr %252, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = tail call i32 @s2n_print_stacktrace(ptr noundef %254) #11
  %256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %257 = trunc nuw i8 %256 to i1
  br i1 %257, label %258, label %262

258:                                              ; preds = %251
  %259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %260 = tail call i32 @fileno(ptr noundef %259) #11
  %261 = tail call i32 @isatty(i32 noundef %260) #11
  %.not1304 = icmp eq i32 %261, 0
  br i1 %.not1304, label %262, label %263

262:                                              ; preds = %258, %251
  br label %263

263:                                              ; preds = %258, %262
  %.str.5.sink1475 = phi ptr [ @.str.5, %262 ], [ @.str.2, %258 ]
  store i32 %253, ptr %252, align 4, !tbaa !5
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %267 = load i32, ptr %266, align 4, !tbaa !5
  %268 = tail call ptr @s2n_strerror(i32 noundef %267, ptr noundef nonnull @.str.4) #11
  %269 = load i32, ptr %266, align 4, !tbaa !5
  %270 = tail call ptr @s2n_strerror_debug(i32 noundef %269, ptr noundef nonnull @.str.4) #11
  %271 = load i32, ptr %252, align 4, !tbaa !5
  %272 = tail call ptr @strerror(i32 noundef %271) #11
  %273 = load i32, ptr %252, align 4, !tbaa !5
  %274 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %264, ptr noundef nonnull %.str.5.sink1475, i32 noundef %265, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %268, ptr noundef %270, ptr noundef %272, i32 noundef %273) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

275:                                              ; preds = %246
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #11
  store ptr null, ptr %3, align 8, !tbaa !9
  %276 = load i32, ptr @test_count, align 4, !tbaa !5
  %277 = add nsw i32 %276, 1
  store i32 %277, ptr @test_count, align 4, !tbaa !5
  %278 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.10) #11
  %279 = icmp eq i32 %278, -1
  br i1 %279, label %280, label %304

280:                                              ; preds = %275
  %281 = tail call ptr @__errno_location() #12
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %284 = call i32 @s2n_print_stacktrace(ptr noundef %283) #11
  %285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %286 = trunc nuw i8 %285 to i1
  br i1 %286, label %287, label %291

287:                                              ; preds = %280
  %288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %289 = call i32 @fileno(ptr noundef %288) #11
  %290 = call i32 @isatty(i32 noundef %289) #11
  %.not1303 = icmp eq i32 %290, 0
  br i1 %.not1303, label %291, label %292

291:                                              ; preds = %287, %280
  br label %292

292:                                              ; preds = %287, %291
  %.str.5.sink1486 = phi ptr [ @.str.5, %291 ], [ @.str.2, %287 ]
  store i32 %282, ptr %281, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call ptr @s2n_strerror(i32 noundef %296, ptr noundef nonnull @.str.4) #11
  %298 = load i32, ptr %295, align 4, !tbaa !5
  %299 = call ptr @s2n_strerror_debug(i32 noundef %298, ptr noundef nonnull @.str.4) #11
  %300 = load i32, ptr %281, align 4, !tbaa !5
  %301 = call ptr @strerror(i32 noundef %300) #11
  %302 = load i32, ptr %281, align 4, !tbaa !5
  %303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %293, ptr noundef nonnull %.str.5.sink1486, i32 noundef %294, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %297, ptr noundef %299, ptr noundef %301, i32 noundef %302) #13
  call void @exit(i32 noundef 1) #14
  unreachable

304:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #11
  store ptr null, ptr %4, align 8, !tbaa !9
  %305 = load i32, ptr @test_count, align 4, !tbaa !5
  %306 = add nsw i32 %305, 1
  store i32 %306, ptr @test_count, align 4, !tbaa !5
  %307 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %4, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.13) #11
  %308 = icmp eq i32 %307, -1
  br i1 %308, label %309, label %333

309:                                              ; preds = %304
  %310 = tail call ptr @__errno_location() #12
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %313 = call i32 @s2n_print_stacktrace(ptr noundef %312) #11
  %314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %315 = trunc nuw i8 %314 to i1
  br i1 %315, label %316, label %320

316:                                              ; preds = %309
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = call i32 @fileno(ptr noundef %317) #11
  %319 = call i32 @isatty(i32 noundef %318) #11
  %.not1302 = icmp eq i32 %319, 0
  br i1 %.not1302, label %320, label %321

320:                                              ; preds = %316, %309
  br label %321

321:                                              ; preds = %316, %320
  %.str.5.sink1497 = phi ptr [ @.str.5, %320 ], [ @.str.2, %316 ]
  store i32 %311, ptr %310, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call ptr @s2n_strerror(i32 noundef %325, ptr noundef nonnull @.str.4) #11
  %327 = load i32, ptr %324, align 4, !tbaa !5
  %328 = call ptr @s2n_strerror_debug(i32 noundef %327, ptr noundef nonnull @.str.4) #11
  %329 = load i32, ptr %310, align 4, !tbaa !5
  %330 = call ptr @strerror(i32 noundef %329) #11
  %331 = load i32, ptr %310, align 4, !tbaa !5
  %332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %322, ptr noundef nonnull %.str.5.sink1497, i32 noundef %323, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %326, ptr noundef %328, ptr noundef %330, i32 noundef %331) #13
  call void @exit(i32 noundef 1) #14
  unreachable

333:                                              ; preds = %304
  %334 = load ptr, ptr %4, align 8, !tbaa !9
  %335 = load ptr, ptr %3, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %5) #11
  %336 = call ptr @s2n_fetch_default_config() #11
  %337 = getelementptr inbounds i8, ptr %336, i64 96
  %338 = load ptr, ptr %337, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %5, ptr noundef nonnull align 8 dereferenceable(64) %338, i64 64, i1 false), !tbaa.struct !22
  %339 = getelementptr inbounds i8, ptr %5, i64 24
  store ptr @test_preferences, ptr %339, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #11
  %340 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %340, ptr %6, align 8, !tbaa !9
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr @test_count, align 4, !tbaa !5
  %343 = icmp eq ptr %340, null
  br i1 %343, label %344, label %368

344:                                              ; preds = %333
  %345 = tail call ptr @__errno_location() #12
  %346 = load i32, ptr %345, align 4, !tbaa !5
  %347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %348 = call i32 @s2n_print_stacktrace(ptr noundef %347) #11
  %349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %350 = trunc nuw i8 %349 to i1
  br i1 %350, label %351, label %355

351:                                              ; preds = %344
  %352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %353 = call i32 @fileno(ptr noundef %352) #11
  %354 = call i32 @isatty(i32 noundef %353) #11
  %.not1301 = icmp eq i32 %354, 0
  br i1 %.not1301, label %355, label %356

355:                                              ; preds = %351, %344
  br label %356

356:                                              ; preds = %351, %355
  %.str.5.sink1508 = phi ptr [ @.str.5, %355 ], [ @.str.2, %351 ]
  store i32 %346, ptr %345, align 4, !tbaa !5
  %357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %358 = load i32, ptr @test_count, align 4, !tbaa !5
  %359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = call ptr @s2n_strerror(i32 noundef %360, ptr noundef nonnull @.str.4) #11
  %362 = load i32, ptr %359, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror_debug(i32 noundef %362, ptr noundef nonnull @.str.4) #11
  %364 = load i32, ptr %345, align 4, !tbaa !5
  %365 = call ptr @strerror(i32 noundef %364) #11
  %366 = load i32, ptr %345, align 4, !tbaa !5
  %367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %357, ptr noundef nonnull %.str.5.sink1508, i32 noundef %358, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %361, ptr noundef %363, ptr noundef %365, i32 noundef %366) #13
  call void @exit(i32 noundef 1) #14
  unreachable

368:                                              ; preds = %333
  %369 = getelementptr inbounds i8, ptr %340, i64 16
  store ptr %5, ptr %369, align 8, !tbaa !26
  %370 = getelementptr inbounds i8, ptr %340, i64 220
  store i8 34, ptr %370, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %371 = add nsw i32 %341, 2
  store i32 %371, ptr @test_count, align 4, !tbaa !5
  %372 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %7, i32 noundef 0) #11
  %373 = icmp eq i32 %372, -1
  br i1 %373, label %374, label %398

374:                                              ; preds = %368
  %375 = tail call ptr @__errno_location() #12
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = call i32 @s2n_print_stacktrace(ptr noundef %377) #11
  %379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %380 = trunc nuw i8 %379 to i1
  br i1 %380, label %381, label %385

381:                                              ; preds = %374
  %382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %383 = call i32 @fileno(ptr noundef %382) #11
  %384 = call i32 @isatty(i32 noundef %383) #11
  %.not1300 = icmp eq i32 %384, 0
  br i1 %.not1300, label %385, label %386

385:                                              ; preds = %381, %374
  br label %386

386:                                              ; preds = %381, %385
  %.str.5.sink1519 = phi ptr [ @.str.5, %385 ], [ @.str.2, %381 ]
  store i32 %376, ptr %375, align 4, !tbaa !5
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %390 = load i32, ptr %389, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror(i32 noundef %390, ptr noundef nonnull @.str.4) #11
  %392 = load i32, ptr %389, align 4, !tbaa !5
  %393 = call ptr @s2n_strerror_debug(i32 noundef %392, ptr noundef nonnull @.str.4) #11
  %394 = load i32, ptr %375, align 4, !tbaa !5
  %395 = call ptr @strerror(i32 noundef %394) #11
  %396 = load i32, ptr %375, align 4, !tbaa !5
  %397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %387, ptr noundef nonnull %.str.5.sink1519, i32 noundef %388, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %391, ptr noundef %393, ptr noundef %395, i32 noundef %396) #13
  call void @exit(i32 noundef 1) #14
  unreachable

398:                                              ; preds = %368
  %399 = load i32, ptr @test_count, align 4, !tbaa !5
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr @test_count, align 4, !tbaa !5
  %401 = load ptr, ptr %6, align 8, !tbaa !9
  %402 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %401, ptr noundef nonnull %7) #11
  %403 = call zeroext i1 @s2n_result_is_ok(i32 %402)
  br i1 %403, label %428, label %404

404:                                              ; preds = %398
  %405 = tail call ptr @__errno_location() #12
  %406 = load i32, ptr %405, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = call i32 @s2n_print_stacktrace(ptr noundef %407) #11
  %409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %410 = trunc nuw i8 %409 to i1
  br i1 %410, label %411, label %415

411:                                              ; preds = %404
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = call i32 @fileno(ptr noundef %412) #11
  %414 = call i32 @isatty(i32 noundef %413) #11
  %.not = icmp eq i32 %414, 0
  br i1 %.not, label %415, label %416

415:                                              ; preds = %411, %404
  br label %416

416:                                              ; preds = %411, %415
  %.str.5.sink1530 = phi ptr [ @.str.5, %415 ], [ @.str.2, %411 ]
  store i32 %406, ptr %405, align 4, !tbaa !5
  %417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %418 = load i32, ptr @test_count, align 4, !tbaa !5
  %419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = call ptr @s2n_strerror(i32 noundef %420, ptr noundef nonnull @.str.4) #11
  %422 = load i32, ptr %419, align 4, !tbaa !5
  %423 = call ptr @s2n_strerror_debug(i32 noundef %422, ptr noundef nonnull @.str.4) #11
  %424 = load i32, ptr %405, align 4, !tbaa !5
  %425 = call ptr @strerror(i32 noundef %424) #11
  %426 = load i32, ptr %405, align 4, !tbaa !5
  %427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %417, ptr noundef nonnull %.str.5.sink1530, i32 noundef %418, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %421, ptr noundef %423, ptr noundef %425, i32 noundef %426) #13
  call void @exit(i32 noundef 1) #14
  unreachable

428:                                              ; preds = %398
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %8) #11
  store i16 0, ptr %8, align 2, !tbaa !51
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = add nsw i32 %429, 1
  store i32 %430, ptr @test_count, align 4, !tbaa !5
  %431 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %7, ptr noundef nonnull %8) #11
  %432 = icmp eq i32 %431, -1
  br i1 %432, label %433, label %457

433:                                              ; preds = %428
  %434 = tail call ptr @__errno_location() #12
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = call i32 @s2n_print_stacktrace(ptr noundef %436) #11
  %438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %439 = trunc nuw i8 %438 to i1
  br i1 %439, label %440, label %444

440:                                              ; preds = %433
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = call i32 @fileno(ptr noundef %441) #11
  %443 = call i32 @isatty(i32 noundef %442) #11
  %.not1299 = icmp eq i32 %443, 0
  br i1 %.not1299, label %444, label %445

444:                                              ; preds = %440, %433
  br label %445

445:                                              ; preds = %440, %444
  %.str.5.sink1541 = phi ptr [ @.str.5, %444 ], [ @.str.2, %440 ]
  store i32 %435, ptr %434, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = load i32, ptr @test_count, align 4, !tbaa !5
  %448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call ptr @s2n_strerror(i32 noundef %449, ptr noundef nonnull @.str.4) #11
  %451 = load i32, ptr %448, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror_debug(i32 noundef %451, ptr noundef nonnull @.str.4) #11
  %453 = load i32, ptr %434, align 4, !tbaa !5
  %454 = call ptr @strerror(i32 noundef %453) #11
  %455 = load i32, ptr %434, align 4, !tbaa !5
  %456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %446, ptr noundef nonnull %.str.5.sink1541, i32 noundef %447, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %450, ptr noundef %452, ptr noundef %454, i32 noundef %455) #13
  call void @exit(i32 noundef 1) #14
  unreachable

457:                                              ; preds = %428
  %458 = load i32, ptr @test_count, align 4, !tbaa !5
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr @test_count, align 4, !tbaa !5
  %460 = load i16, ptr %8, align 2, !tbaa !51
  %461 = zext i16 %460 to i32
  %462 = getelementptr inbounds i8, ptr %7, i64 28
  %463 = load i32, ptr %462, align 4, !tbaa !52
  %464 = getelementptr inbounds i8, ptr %7, i64 24
  %465 = load i32, ptr %464, align 8, !tbaa !53
  %466 = sub i32 %463, %465
  %467 = icmp eq i32 %466, %461
  br i1 %467, label %.preheader1317.preheader, label %471

.preheader1317.preheader:                         ; preds = %457
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %9) #11
  store i16 0, ptr %9, align 2, !tbaa !51
  %468 = add nsw i32 %458, 2
  store i32 %468, ptr @test_count, align 4, !tbaa !5
  %469 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %7, ptr noundef nonnull %9) #11
  %470 = icmp eq i32 %469, -1
  br i1 %470, label %495, label %519

471:                                              ; preds = %457
  %472 = tail call ptr @__errno_location() #12
  %473 = load i32, ptr %472, align 4, !tbaa !5
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = call i32 @s2n_print_stacktrace(ptr noundef %474) #11
  %476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %477 = trunc nuw i8 %476 to i1
  br i1 %477, label %478, label %482

478:                                              ; preds = %471
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = call i32 @fileno(ptr noundef %479) #11
  %481 = call i32 @isatty(i32 noundef %480) #11
  %.not971 = icmp eq i32 %481, 0
  br i1 %.not971, label %482, label %483

482:                                              ; preds = %478, %471
  br label %483

483:                                              ; preds = %478, %482
  %.str.5.sink1552 = phi ptr [ @.str.5, %482 ], [ @.str.2, %478 ]
  store i32 %473, ptr %472, align 4, !tbaa !5
  %484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %485 = load i32, ptr @test_count, align 4, !tbaa !5
  %486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = call ptr @s2n_strerror(i32 noundef %487, ptr noundef nonnull @.str.4) #11
  %489 = load i32, ptr %486, align 4, !tbaa !5
  %490 = call ptr @s2n_strerror_debug(i32 noundef %489, ptr noundef nonnull @.str.4) #11
  %491 = load i32, ptr %472, align 4, !tbaa !5
  %492 = call ptr @strerror(i32 noundef %491) #11
  %493 = load i32, ptr %472, align 4, !tbaa !5
  %494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %484, ptr noundef nonnull %.str.5.sink1552, i32 noundef %485, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %488, ptr noundef %490, ptr noundef %492, i32 noundef %493) #13
  call void @exit(i32 noundef 1) #14
  unreachable

495:                                              ; preds = %.preheader1317.5, %.preheader1317.4, %.preheader1317.3, %.preheader1317.2, %.preheader1317.1, %.preheader1317.preheader
  %496 = tail call ptr @__errno_location() #12
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %499 = call i32 @s2n_print_stacktrace(ptr noundef %498) #11
  %500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %501 = trunc nuw i8 %500 to i1
  br i1 %501, label %502, label %506

502:                                              ; preds = %495
  %503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %504 = call i32 @fileno(ptr noundef %503) #11
  %505 = call i32 @isatty(i32 noundef %504) #11
  %.not1298 = icmp eq i32 %505, 0
  br i1 %.not1298, label %506, label %507

506:                                              ; preds = %502, %495
  br label %507

507:                                              ; preds = %502, %506
  %.str.5.sink1563 = phi ptr [ @.str.5, %506 ], [ @.str.2, %502 ]
  store i32 %497, ptr %496, align 4, !tbaa !5
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = load i32, ptr @test_count, align 4, !tbaa !5
  %510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %511 = load i32, ptr %510, align 4, !tbaa !5
  %512 = call ptr @s2n_strerror(i32 noundef %511, ptr noundef nonnull @.str.4) #11
  %513 = load i32, ptr %510, align 4, !tbaa !5
  %514 = call ptr @s2n_strerror_debug(i32 noundef %513, ptr noundef nonnull @.str.4) #11
  %515 = load i32, ptr %496, align 4, !tbaa !5
  %516 = call ptr @strerror(i32 noundef %515) #11
  %517 = load i32, ptr %496, align 4, !tbaa !5
  %518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef nonnull %.str.5.sink1563, i32 noundef %509, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %512, ptr noundef %514, ptr noundef %516, i32 noundef %517) #13
  call void @exit(i32 noundef 1) #14
  unreachable

519:                                              ; preds = %.preheader1317.preheader
  %520 = load i32, ptr @test_count, align 4, !tbaa !5
  %521 = add nsw i32 %520, 1
  store i32 %521, ptr @test_count, align 4, !tbaa !5
  %522 = load i16, ptr %9, align 2, !tbaa !51
  %523 = load ptr, ptr @test_signature_schemes, align 16, !tbaa !9
  %524 = load i16, ptr %523, align 8, !tbaa !54
  %525 = icmp eq i16 %522, %524
  br i1 %525, label %.preheader1317.1, label %526

526:                                              ; preds = %593, %583, %573, %563, %553, %519
  %527 = tail call ptr @__errno_location() #12
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %530 = call i32 @s2n_print_stacktrace(ptr noundef %529) #11
  %531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %532 = trunc nuw i8 %531 to i1
  br i1 %532, label %533, label %537

533:                                              ; preds = %526
  %534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %535 = call i32 @fileno(ptr noundef %534) #11
  %536 = call i32 @isatty(i32 noundef %535) #11
  %.not1297 = icmp eq i32 %536, 0
  br i1 %.not1297, label %537, label %538

537:                                              ; preds = %533, %526
  br label %538

538:                                              ; preds = %533, %537
  %.str.5.sink1574 = phi ptr [ @.str.5, %537 ], [ @.str.2, %533 ]
  store i32 %528, ptr %527, align 4, !tbaa !5
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call ptr @s2n_strerror(i32 noundef %542, ptr noundef nonnull @.str.4) #11
  %544 = load i32, ptr %541, align 4, !tbaa !5
  %545 = call ptr @s2n_strerror_debug(i32 noundef %544, ptr noundef nonnull @.str.4) #11
  %546 = load i32, ptr %527, align 4, !tbaa !5
  %547 = call ptr @strerror(i32 noundef %546) #11
  %548 = load i32, ptr %527, align 4, !tbaa !5
  %549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef nonnull %.str.5.sink1574, i32 noundef %540, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %543, ptr noundef %545, ptr noundef %547, i32 noundef %548) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.preheader1317.1:                                 ; preds = %519
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %9) #11
  store i16 0, ptr %9, align 2, !tbaa !51
  %550 = add nsw i32 %520, 2
  store i32 %550, ptr @test_count, align 4, !tbaa !5
  %551 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %7, ptr noundef nonnull %9) #11
  %552 = icmp eq i32 %551, -1
  br i1 %552, label %495, label %553

553:                                              ; preds = %.preheader1317.1
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = add nsw i32 %554, 1
  store i32 %555, ptr @test_count, align 4, !tbaa !5
  %556 = load i16, ptr %9, align 2, !tbaa !51
  %557 = load ptr, ptr getelementptr inbounds (i8, ptr @test_signature_schemes, i64 8), align 8, !tbaa !9
  %558 = load i16, ptr %557, align 8, !tbaa !54
  %559 = icmp eq i16 %556, %558
  br i1 %559, label %.preheader1317.2, label %526

.preheader1317.2:                                 ; preds = %553
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %9) #11
  store i16 0, ptr %9, align 2, !tbaa !51
  %560 = add nsw i32 %554, 2
  store i32 %560, ptr @test_count, align 4, !tbaa !5
  %561 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %7, ptr noundef nonnull %9) #11
  %562 = icmp eq i32 %561, -1
  br i1 %562, label %495, label %563

563:                                              ; preds = %.preheader1317.2
  %564 = load i32, ptr @test_count, align 4, !tbaa !5
  %565 = add nsw i32 %564, 1
  store i32 %565, ptr @test_count, align 4, !tbaa !5
  %566 = load i16, ptr %9, align 2, !tbaa !51
  %567 = load ptr, ptr getelementptr inbounds (i8, ptr @test_signature_schemes, i64 16), align 16, !tbaa !9
  %568 = load i16, ptr %567, align 8, !tbaa !54
  %569 = icmp eq i16 %566, %568
  br i1 %569, label %.preheader1317.3, label %526

.preheader1317.3:                                 ; preds = %563
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %9) #11
  store i16 0, ptr %9, align 2, !tbaa !51
  %570 = add nsw i32 %564, 2
  store i32 %570, ptr @test_count, align 4, !tbaa !5
  %571 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %7, ptr noundef nonnull %9) #11
  %572 = icmp eq i32 %571, -1
  br i1 %572, label %495, label %573

573:                                              ; preds = %.preheader1317.3
  %574 = load i32, ptr @test_count, align 4, !tbaa !5
  %575 = add nsw i32 %574, 1
  store i32 %575, ptr @test_count, align 4, !tbaa !5
  %576 = load i16, ptr %9, align 2, !tbaa !51
  %577 = load ptr, ptr getelementptr inbounds (i8, ptr @test_signature_schemes, i64 24), align 8, !tbaa !9
  %578 = load i16, ptr %577, align 8, !tbaa !54
  %579 = icmp eq i16 %576, %578
  br i1 %579, label %.preheader1317.4, label %526

.preheader1317.4:                                 ; preds = %573
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %9) #11
  store i16 0, ptr %9, align 2, !tbaa !51
  %580 = add nsw i32 %574, 2
  store i32 %580, ptr @test_count, align 4, !tbaa !5
  %581 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %7, ptr noundef nonnull %9) #11
  %582 = icmp eq i32 %581, -1
  br i1 %582, label %495, label %583

583:                                              ; preds = %.preheader1317.4
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr @test_count, align 4, !tbaa !5
  %586 = load i16, ptr %9, align 2, !tbaa !51
  %587 = load ptr, ptr getelementptr inbounds (i8, ptr @test_signature_schemes, i64 32), align 16, !tbaa !9
  %588 = load i16, ptr %587, align 8, !tbaa !54
  %589 = icmp eq i16 %586, %588
  br i1 %589, label %.preheader1317.5, label %526

.preheader1317.5:                                 ; preds = %583
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %9) #11
  store i16 0, ptr %9, align 2, !tbaa !51
  %590 = add nsw i32 %584, 2
  store i32 %590, ptr @test_count, align 4, !tbaa !5
  %591 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %7, ptr noundef nonnull %9) #11
  %592 = icmp eq i32 %591, -1
  br i1 %592, label %495, label %593

593:                                              ; preds = %.preheader1317.5
  %594 = load i32, ptr @test_count, align 4, !tbaa !5
  %595 = add nsw i32 %594, 1
  store i32 %595, ptr @test_count, align 4, !tbaa !5
  %596 = load i16, ptr %9, align 2, !tbaa !51
  %597 = load ptr, ptr getelementptr inbounds (i8, ptr @test_signature_schemes, i64 40), align 8, !tbaa !9
  %598 = load i16, ptr %597, align 8, !tbaa !54
  %599 = icmp eq i16 %596, %598
  br i1 %599, label %600, label %526

600:                                              ; preds = %593
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #11
  %601 = add nsw i32 %594, 2
  store i32 %601, ptr @test_count, align 4, !tbaa !5
  %602 = load i32, ptr %462, align 4, !tbaa !52
  %603 = load i32, ptr %464, align 8, !tbaa !53
  %604 = icmp eq i32 %602, %603
  br i1 %604, label %629, label %605

605:                                              ; preds = %600
  %606 = tail call ptr @__errno_location() #12
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %609 = call i32 @s2n_print_stacktrace(ptr noundef %608) #11
  %610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %611 = trunc nuw i8 %610 to i1
  br i1 %611, label %612, label %616

612:                                              ; preds = %605
  %613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %614 = call i32 @fileno(ptr noundef %613) #11
  %615 = call i32 @isatty(i32 noundef %614) #11
  %.not972 = icmp eq i32 %615, 0
  br i1 %.not972, label %616, label %617

616:                                              ; preds = %612, %605
  br label %617

617:                                              ; preds = %612, %616
  %.str.5.sink1585 = phi ptr [ @.str.5, %616 ], [ @.str.2, %612 ]
  store i32 %607, ptr %606, align 4, !tbaa !5
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = load i32, ptr @test_count, align 4, !tbaa !5
  %620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call ptr @s2n_strerror(i32 noundef %621, ptr noundef nonnull @.str.4) #11
  %623 = load i32, ptr %620, align 4, !tbaa !5
  %624 = call ptr @s2n_strerror_debug(i32 noundef %623, ptr noundef nonnull @.str.4) #11
  %625 = load i32, ptr %606, align 4, !tbaa !5
  %626 = call ptr @strerror(i32 noundef %625) #11
  %627 = load i32, ptr %606, align 4, !tbaa !5
  %628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %618, ptr noundef nonnull %.str.5.sink1585, i32 noundef %619, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %622, ptr noundef %624, ptr noundef %626, i32 noundef %627) #13
  call void @exit(i32 noundef 1) #14
  unreachable

629:                                              ; preds = %600
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %8) #11
  %630 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #11
  %631 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #11
  %632 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %632, ptr %10, align 8, !tbaa !9
  %633 = load i32, ptr @test_count, align 4, !tbaa !5
  %634 = add nsw i32 %633, 1
  store i32 %634, ptr @test_count, align 4, !tbaa !5
  %635 = icmp eq ptr %632, null
  br i1 %635, label %636, label %660

636:                                              ; preds = %629
  %637 = tail call ptr @__errno_location() #12
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = call i32 @s2n_print_stacktrace(ptr noundef %639) #11
  %641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %642 = trunc nuw i8 %641 to i1
  br i1 %642, label %643, label %647

643:                                              ; preds = %636
  %644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %645 = call i32 @fileno(ptr noundef %644) #11
  %646 = call i32 @isatty(i32 noundef %645) #11
  %.not1296 = icmp eq i32 %646, 0
  br i1 %.not1296, label %647, label %648

647:                                              ; preds = %643, %636
  br label %648

648:                                              ; preds = %643, %647
  %.str.5.sink1596 = phi ptr [ @.str.5, %647 ], [ @.str.2, %643 ]
  store i32 %638, ptr %637, align 4, !tbaa !5
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @s2n_strerror(i32 noundef %652, ptr noundef nonnull @.str.4) #11
  %654 = load i32, ptr %651, align 4, !tbaa !5
  %655 = call ptr @s2n_strerror_debug(i32 noundef %654, ptr noundef nonnull @.str.4) #11
  %656 = load i32, ptr %637, align 4, !tbaa !5
  %657 = call ptr @strerror(i32 noundef %656) #11
  %658 = load i32, ptr %637, align 4, !tbaa !5
  %659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %649, ptr noundef nonnull %.str.5.sink1596, i32 noundef %650, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %653, ptr noundef %655, ptr noundef %657, i32 noundef %658) #13
  call void @exit(i32 noundef 1) #14
  unreachable

660:                                              ; preds = %629
  %661 = getelementptr inbounds i8, ptr %632, i64 16
  store ptr %5, ptr %661, align 8, !tbaa !26
  %662 = getelementptr inbounds i8, ptr %632, i64 220
  store i8 33, ptr %662, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %11, i8 0, i64 40, i1 false)
  %663 = add nsw i32 %633, 2
  store i32 %663, ptr @test_count, align 4, !tbaa !5
  %664 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %11, i32 noundef 0) #11
  %665 = icmp eq i32 %664, -1
  br i1 %665, label %666, label %690

666:                                              ; preds = %660
  %667 = tail call ptr @__errno_location() #12
  %668 = load i32, ptr %667, align 4, !tbaa !5
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = call i32 @s2n_print_stacktrace(ptr noundef %669) #11
  %671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %672 = trunc nuw i8 %671 to i1
  br i1 %672, label %673, label %677

673:                                              ; preds = %666
  %674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %675 = call i32 @fileno(ptr noundef %674) #11
  %676 = call i32 @isatty(i32 noundef %675) #11
  %.not1295 = icmp eq i32 %676, 0
  br i1 %.not1295, label %677, label %678

677:                                              ; preds = %673, %666
  br label %678

678:                                              ; preds = %673, %677
  %.str.5.sink1607 = phi ptr [ @.str.5, %677 ], [ @.str.2, %673 ]
  store i32 %668, ptr %667, align 4, !tbaa !5
  %679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %682 = load i32, ptr %681, align 4, !tbaa !5
  %683 = call ptr @s2n_strerror(i32 noundef %682, ptr noundef nonnull @.str.4) #11
  %684 = load i32, ptr %681, align 4, !tbaa !5
  %685 = call ptr @s2n_strerror_debug(i32 noundef %684, ptr noundef nonnull @.str.4) #11
  %686 = load i32, ptr %667, align 4, !tbaa !5
  %687 = call ptr @strerror(i32 noundef %686) #11
  %688 = load i32, ptr %667, align 4, !tbaa !5
  %689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %679, ptr noundef nonnull %.str.5.sink1607, i32 noundef %680, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %683, ptr noundef %685, ptr noundef %687, i32 noundef %688) #13
  call void @exit(i32 noundef 1) #14
  unreachable

690:                                              ; preds = %660
  %691 = load i32, ptr @test_count, align 4, !tbaa !5
  %692 = add nsw i32 %691, 1
  store i32 %692, ptr @test_count, align 4, !tbaa !5
  %693 = load ptr, ptr %10, align 8, !tbaa !9
  %694 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %693, ptr noundef nonnull %11) #11
  %695 = call zeroext i1 @s2n_result_is_ok(i32 %694)
  br i1 %695, label %720, label %696

696:                                              ; preds = %690
  %697 = tail call ptr @__errno_location() #12
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = call i32 @s2n_print_stacktrace(ptr noundef %699) #11
  %701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %702 = trunc nuw i8 %701 to i1
  br i1 %702, label %703, label %707

703:                                              ; preds = %696
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = call i32 @fileno(ptr noundef %704) #11
  %706 = call i32 @isatty(i32 noundef %705) #11
  %.not973 = icmp eq i32 %706, 0
  br i1 %.not973, label %707, label %708

707:                                              ; preds = %703, %696
  br label %708

708:                                              ; preds = %703, %707
  %.str.5.sink1618 = phi ptr [ @.str.5, %707 ], [ @.str.2, %703 ]
  store i32 %698, ptr %697, align 4, !tbaa !5
  %709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call ptr @s2n_strerror(i32 noundef %712, ptr noundef nonnull @.str.4) #11
  %714 = load i32, ptr %711, align 4, !tbaa !5
  %715 = call ptr @s2n_strerror_debug(i32 noundef %714, ptr noundef nonnull @.str.4) #11
  %716 = load i32, ptr %697, align 4, !tbaa !5
  %717 = call ptr @strerror(i32 noundef %716) #11
  %718 = load i32, ptr %697, align 4, !tbaa !5
  %719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %709, ptr noundef nonnull %.str.5.sink1618, i32 noundef %710, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %713, ptr noundef %715, ptr noundef %717, i32 noundef %718) #13
  call void @exit(i32 noundef 1) #14
  unreachable

720:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %12) #11
  store i16 0, ptr %12, align 2, !tbaa !51
  %721 = load i32, ptr @test_count, align 4, !tbaa !5
  %722 = add nsw i32 %721, 1
  store i32 %722, ptr @test_count, align 4, !tbaa !5
  %723 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %11, ptr noundef nonnull %12) #11
  %724 = icmp eq i32 %723, -1
  br i1 %724, label %725, label %749

725:                                              ; preds = %720
  %726 = tail call ptr @__errno_location() #12
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = call i32 @s2n_print_stacktrace(ptr noundef %728) #11
  %730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %731 = trunc nuw i8 %730 to i1
  br i1 %731, label %732, label %736

732:                                              ; preds = %725
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = call i32 @fileno(ptr noundef %733) #11
  %735 = call i32 @isatty(i32 noundef %734) #11
  %.not1294 = icmp eq i32 %735, 0
  br i1 %.not1294, label %736, label %737

736:                                              ; preds = %732, %725
  br label %737

737:                                              ; preds = %732, %736
  %.str.5.sink1629 = phi ptr [ @.str.5, %736 ], [ @.str.2, %732 ]
  store i32 %727, ptr %726, align 4, !tbaa !5
  %738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %739 = load i32, ptr @test_count, align 4, !tbaa !5
  %740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %741 = load i32, ptr %740, align 4, !tbaa !5
  %742 = call ptr @s2n_strerror(i32 noundef %741, ptr noundef nonnull @.str.4) #11
  %743 = load i32, ptr %740, align 4, !tbaa !5
  %744 = call ptr @s2n_strerror_debug(i32 noundef %743, ptr noundef nonnull @.str.4) #11
  %745 = load i32, ptr %726, align 4, !tbaa !5
  %746 = call ptr @strerror(i32 noundef %745) #11
  %747 = load i32, ptr %726, align 4, !tbaa !5
  %748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %738, ptr noundef nonnull %.str.5.sink1629, i32 noundef %739, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %742, ptr noundef %744, ptr noundef %746, i32 noundef %747) #13
  call void @exit(i32 noundef 1) #14
  unreachable

749:                                              ; preds = %720
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr @test_count, align 4, !tbaa !5
  %752 = load i16, ptr %12, align 2, !tbaa !51
  %753 = zext i16 %752 to i32
  %754 = getelementptr inbounds i8, ptr %11, i64 28
  %755 = load i32, ptr %754, align 4, !tbaa !52
  %756 = getelementptr inbounds i8, ptr %11, i64 24
  %757 = load i32, ptr %756, align 8, !tbaa !53
  %758 = sub i32 %755, %757
  %759 = icmp eq i32 %758, %753
  br i1 %759, label %.preheader1316.preheader, label %760

.preheader1316.preheader:                         ; preds = %749
  %.not1291 = icmp eq ptr %523, @s2n_test_tls13_ecdsa_sha384
  br i1 %.not1291, label %.preheader1316.1, label %784

760:                                              ; preds = %749
  %761 = tail call ptr @__errno_location() #12
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = call i32 @s2n_print_stacktrace(ptr noundef %763) #11
  %765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %766 = trunc nuw i8 %765 to i1
  br i1 %766, label %767, label %771

767:                                              ; preds = %760
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = call i32 @fileno(ptr noundef %768) #11
  %770 = call i32 @isatty(i32 noundef %769) #11
  %.not974 = icmp eq i32 %770, 0
  br i1 %.not974, label %771, label %772

771:                                              ; preds = %767, %760
  br label %772

772:                                              ; preds = %767, %771
  %.str.5.sink1640 = phi ptr [ @.str.5, %771 ], [ @.str.2, %767 ]
  store i32 %762, ptr %761, align 4, !tbaa !5
  %773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %774 = load i32, ptr @test_count, align 4, !tbaa !5
  %775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %776 = load i32, ptr %775, align 4, !tbaa !5
  %777 = call ptr @s2n_strerror(i32 noundef %776, ptr noundef nonnull @.str.4) #11
  %778 = load i32, ptr %775, align 4, !tbaa !5
  %779 = call ptr @s2n_strerror_debug(i32 noundef %778, ptr noundef nonnull @.str.4) #11
  %780 = load i32, ptr %761, align 4, !tbaa !5
  %781 = call ptr @strerror(i32 noundef %780) #11
  %782 = load i32, ptr %761, align 4, !tbaa !5
  %783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %773, ptr noundef nonnull %.str.5.sink1640, i32 noundef %774, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %777, ptr noundef %779, ptr noundef %781, i32 noundef %782) #13
  call void @exit(i32 noundef 1) #14
  unreachable

784:                                              ; preds = %.preheader1316.preheader
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %13) #11
  store i16 0, ptr %13, align 2, !tbaa !51
  %785 = add nsw i32 %750, 2
  store i32 %785, ptr @test_count, align 4, !tbaa !5
  %786 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %11, ptr noundef nonnull %13) #11
  %787 = icmp eq i32 %786, -1
  br i1 %787, label %788, label %812

788:                                              ; preds = %892, %880, %868, %856, %844, %784
  %789 = tail call ptr @__errno_location() #12
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = call i32 @s2n_print_stacktrace(ptr noundef %791) #11
  %793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %794 = trunc nuw i8 %793 to i1
  br i1 %794, label %795, label %799

795:                                              ; preds = %788
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = call i32 @fileno(ptr noundef %796) #11
  %798 = call i32 @isatty(i32 noundef %797) #11
  %.not1293 = icmp eq i32 %798, 0
  br i1 %.not1293, label %799, label %800

799:                                              ; preds = %795, %788
  br label %800

800:                                              ; preds = %795, %799
  %.str.5.sink1651 = phi ptr [ @.str.5, %799 ], [ @.str.2, %795 ]
  store i32 %790, ptr %789, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror(i32 noundef %804, ptr noundef nonnull @.str.4) #11
  %806 = load i32, ptr %803, align 4, !tbaa !5
  %807 = call ptr @s2n_strerror_debug(i32 noundef %806, ptr noundef nonnull @.str.4) #11
  %808 = load i32, ptr %789, align 4, !tbaa !5
  %809 = call ptr @strerror(i32 noundef %808) #11
  %810 = load i32, ptr %789, align 4, !tbaa !5
  %811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef nonnull %.str.5.sink1651, i32 noundef %802, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %805, ptr noundef %807, ptr noundef %809, i32 noundef %810) #13
  call void @exit(i32 noundef 1) #14
  unreachable

812:                                              ; preds = %784
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = add nsw i32 %813, 1
  store i32 %814, ptr @test_count, align 4, !tbaa !5
  %815 = load i16, ptr %13, align 2, !tbaa !51
  %816 = load i16, ptr %523, align 8, !tbaa !54
  %817 = icmp eq i16 %815, %816
  br i1 %817, label %842, label %818

818:                                              ; preds = %896, %884, %872, %860, %848, %812
  %819 = tail call ptr @__errno_location() #12
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = call i32 @s2n_print_stacktrace(ptr noundef %821) #11
  %823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %824 = trunc nuw i8 %823 to i1
  br i1 %824, label %825, label %829

825:                                              ; preds = %818
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = call i32 @fileno(ptr noundef %826) #11
  %828 = call i32 @isatty(i32 noundef %827) #11
  %.not1292 = icmp eq i32 %828, 0
  br i1 %.not1292, label %829, label %830

829:                                              ; preds = %825, %818
  br label %830

830:                                              ; preds = %825, %829
  %.str.5.sink1662 = phi ptr [ @.str.5, %829 ], [ @.str.2, %825 ]
  store i32 %820, ptr %819, align 4, !tbaa !5
  %831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror(i32 noundef %834, ptr noundef nonnull @.str.4) #11
  %836 = load i32, ptr %833, align 4, !tbaa !5
  %837 = call ptr @s2n_strerror_debug(i32 noundef %836, ptr noundef nonnull @.str.4) #11
  %838 = load i32, ptr %819, align 4, !tbaa !5
  %839 = call ptr @strerror(i32 noundef %838) #11
  %840 = load i32, ptr %819, align 4, !tbaa !5
  %841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %831, ptr noundef nonnull %.str.5.sink1662, i32 noundef %832, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %835, ptr noundef %837, ptr noundef %839, i32 noundef %840) #13
  call void @exit(i32 noundef 1) #14
  unreachable

842:                                              ; preds = %812
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %13) #11
  br label %.preheader1316.1

.preheader1316.1:                                 ; preds = %.preheader1316.preheader, %842
  %843 = phi i32 [ %751, %.preheader1316.preheader ], [ %814, %842 ]
  %.not1291.1 = icmp eq ptr %557, @s2n_test_tls13_ecdsa_sha384
  br i1 %.not1291.1, label %.preheader1316.2, label %844

844:                                              ; preds = %.preheader1316.1
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %13) #11
  store i16 0, ptr %13, align 2, !tbaa !51
  %845 = add nsw i32 %843, 1
  store i32 %845, ptr @test_count, align 4, !tbaa !5
  %846 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %11, ptr noundef nonnull %13) #11
  %847 = icmp eq i32 %846, -1
  br i1 %847, label %788, label %848

848:                                              ; preds = %844
  %849 = load i32, ptr @test_count, align 4, !tbaa !5
  %850 = add nsw i32 %849, 1
  store i32 %850, ptr @test_count, align 4, !tbaa !5
  %851 = load i16, ptr %13, align 2, !tbaa !51
  %852 = load i16, ptr %557, align 8, !tbaa !54
  %853 = icmp eq i16 %851, %852
  br i1 %853, label %854, label %818

854:                                              ; preds = %848
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %13) #11
  br label %.preheader1316.2

.preheader1316.2:                                 ; preds = %854, %.preheader1316.1
  %855 = phi i32 [ %850, %854 ], [ %843, %.preheader1316.1 ]
  %.not1291.2 = icmp eq ptr %567, @s2n_test_tls13_ecdsa_sha384
  br i1 %.not1291.2, label %.preheader1316.3, label %856

856:                                              ; preds = %.preheader1316.2
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %13) #11
  store i16 0, ptr %13, align 2, !tbaa !51
  %857 = add nsw i32 %855, 1
  store i32 %857, ptr @test_count, align 4, !tbaa !5
  %858 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %11, ptr noundef nonnull %13) #11
  %859 = icmp eq i32 %858, -1
  br i1 %859, label %788, label %860

860:                                              ; preds = %856
  %861 = load i32, ptr @test_count, align 4, !tbaa !5
  %862 = add nsw i32 %861, 1
  store i32 %862, ptr @test_count, align 4, !tbaa !5
  %863 = load i16, ptr %13, align 2, !tbaa !51
  %864 = load i16, ptr %567, align 8, !tbaa !54
  %865 = icmp eq i16 %863, %864
  br i1 %865, label %866, label %818

866:                                              ; preds = %860
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %13) #11
  br label %.preheader1316.3

.preheader1316.3:                                 ; preds = %866, %.preheader1316.2
  %867 = phi i32 [ %862, %866 ], [ %855, %.preheader1316.2 ]
  %.not1291.3 = icmp eq ptr %577, @s2n_test_tls13_ecdsa_sha384
  br i1 %.not1291.3, label %.preheader1316.4, label %868

868:                                              ; preds = %.preheader1316.3
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %13) #11
  store i16 0, ptr %13, align 2, !tbaa !51
  %869 = add nsw i32 %867, 1
  store i32 %869, ptr @test_count, align 4, !tbaa !5
  %870 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %11, ptr noundef nonnull %13) #11
  %871 = icmp eq i32 %870, -1
  br i1 %871, label %788, label %872

872:                                              ; preds = %868
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = add nsw i32 %873, 1
  store i32 %874, ptr @test_count, align 4, !tbaa !5
  %875 = load i16, ptr %13, align 2, !tbaa !51
  %876 = load i16, ptr %577, align 8, !tbaa !54
  %877 = icmp eq i16 %875, %876
  br i1 %877, label %878, label %818

878:                                              ; preds = %872
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %13) #11
  br label %.preheader1316.4

.preheader1316.4:                                 ; preds = %878, %.preheader1316.3
  %879 = phi i32 [ %874, %878 ], [ %867, %.preheader1316.3 ]
  %.not1291.4 = icmp eq ptr %587, @s2n_test_tls13_ecdsa_sha384
  br i1 %.not1291.4, label %.preheader1316.5, label %880

880:                                              ; preds = %.preheader1316.4
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %13) #11
  store i16 0, ptr %13, align 2, !tbaa !51
  %881 = add nsw i32 %879, 1
  store i32 %881, ptr @test_count, align 4, !tbaa !5
  %882 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %11, ptr noundef nonnull %13) #11
  %883 = icmp eq i32 %882, -1
  br i1 %883, label %788, label %884

884:                                              ; preds = %880
  %885 = load i32, ptr @test_count, align 4, !tbaa !5
  %886 = add nsw i32 %885, 1
  store i32 %886, ptr @test_count, align 4, !tbaa !5
  %887 = load i16, ptr %13, align 2, !tbaa !51
  %888 = load i16, ptr %587, align 8, !tbaa !54
  %889 = icmp eq i16 %887, %888
  br i1 %889, label %890, label %818

890:                                              ; preds = %884
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %13) #11
  br label %.preheader1316.5

.preheader1316.5:                                 ; preds = %890, %.preheader1316.4
  %891 = phi i32 [ %886, %890 ], [ %879, %.preheader1316.4 ]
  %.not1291.5 = icmp eq ptr %597, @s2n_test_tls13_ecdsa_sha384
  br i1 %.not1291.5, label %903, label %892

892:                                              ; preds = %.preheader1316.5
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %13) #11
  store i16 0, ptr %13, align 2, !tbaa !51
  %893 = add nsw i32 %891, 1
  store i32 %893, ptr @test_count, align 4, !tbaa !5
  %894 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %11, ptr noundef nonnull %13) #11
  %895 = icmp eq i32 %894, -1
  br i1 %895, label %788, label %896

896:                                              ; preds = %892
  %897 = load i32, ptr @test_count, align 4, !tbaa !5
  %898 = add nsw i32 %897, 1
  store i32 %898, ptr @test_count, align 4, !tbaa !5
  %899 = load i16, ptr %13, align 2, !tbaa !51
  %900 = load i16, ptr %597, align 8, !tbaa !54
  %901 = icmp eq i16 %899, %900
  br i1 %901, label %902, label %818

902:                                              ; preds = %896
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %13) #11
  br label %903

903:                                              ; preds = %902, %.preheader1316.5
  %904 = phi i32 [ %898, %902 ], [ %891, %.preheader1316.5 ]
  %905 = add nsw i32 %904, 1
  store i32 %905, ptr @test_count, align 4, !tbaa !5
  %906 = load i32, ptr %754, align 4, !tbaa !52
  %907 = load i32, ptr %756, align 8, !tbaa !53
  %908 = icmp eq i32 %906, %907
  br i1 %908, label %933, label %909

909:                                              ; preds = %903
  %910 = tail call ptr @__errno_location() #12
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %913 = call i32 @s2n_print_stacktrace(ptr noundef %912) #11
  %914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %915 = trunc nuw i8 %914 to i1
  br i1 %915, label %916, label %920

916:                                              ; preds = %909
  %917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %918 = call i32 @fileno(ptr noundef %917) #11
  %919 = call i32 @isatty(i32 noundef %918) #11
  %.not975 = icmp eq i32 %919, 0
  br i1 %.not975, label %920, label %921

920:                                              ; preds = %916, %909
  br label %921

921:                                              ; preds = %916, %920
  %.str.5.sink1673 = phi ptr [ @.str.5, %920 ], [ @.str.2, %916 ]
  store i32 %911, ptr %910, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call ptr @s2n_strerror(i32 noundef %925, ptr noundef nonnull @.str.4) #11
  %927 = load i32, ptr %924, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror_debug(i32 noundef %927, ptr noundef nonnull @.str.4) #11
  %929 = load i32, ptr %910, align 4, !tbaa !5
  %930 = call ptr @strerror(i32 noundef %929) #11
  %931 = load i32, ptr %910, align 4, !tbaa !5
  %932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %922, ptr noundef nonnull %.str.5.sink1673, i32 noundef %923, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %926, ptr noundef %928, ptr noundef %930, i32 noundef %931) #13
  call void @exit(i32 noundef 1) #14
  unreachable

933:                                              ; preds = %903
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %12) #11
  %934 = call i32 @s2n_stuffer_free(ptr noundef nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #11
  %935 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  %936 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %936, ptr %14, align 8, !tbaa !9
  %937 = load i32, ptr @test_count, align 4, !tbaa !5
  %938 = add nsw i32 %937, 1
  store i32 %938, ptr @test_count, align 4, !tbaa !5
  %939 = icmp eq ptr %936, null
  br i1 %939, label %940, label %964

940:                                              ; preds = %933
  %941 = tail call ptr @__errno_location() #12
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %944 = call i32 @s2n_print_stacktrace(ptr noundef %943) #11
  %945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %946 = trunc nuw i8 %945 to i1
  br i1 %946, label %947, label %951

947:                                              ; preds = %940
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = call i32 @fileno(ptr noundef %948) #11
  %950 = call i32 @isatty(i32 noundef %949) #11
  %.not1290 = icmp eq i32 %950, 0
  br i1 %.not1290, label %951, label %952

951:                                              ; preds = %947, %940
  br label %952

952:                                              ; preds = %947, %951
  %.str.5.sink1684 = phi ptr [ @.str.5, %951 ], [ @.str.2, %947 ]
  store i32 %942, ptr %941, align 4, !tbaa !5
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = load i32, ptr @test_count, align 4, !tbaa !5
  %955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %956 = load i32, ptr %955, align 4, !tbaa !5
  %957 = call ptr @s2n_strerror(i32 noundef %956, ptr noundef nonnull @.str.4) #11
  %958 = load i32, ptr %955, align 4, !tbaa !5
  %959 = call ptr @s2n_strerror_debug(i32 noundef %958, ptr noundef nonnull @.str.4) #11
  %960 = load i32, ptr %941, align 4, !tbaa !5
  %961 = call ptr @strerror(i32 noundef %960) #11
  %962 = load i32, ptr %941, align 4, !tbaa !5
  %963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %953, ptr noundef nonnull %.str.5.sink1684, i32 noundef %954, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %957, ptr noundef %959, ptr noundef %961, i32 noundef %962) #13
  call void @exit(i32 noundef 1) #14
  unreachable

964:                                              ; preds = %933
  %965 = getelementptr inbounds i8, ptr %936, i64 16
  store ptr %5, ptr %965, align 8, !tbaa !26
  %966 = getelementptr inbounds i8, ptr %936, i64 220
  store i8 34, ptr %966, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %15) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %15, i8 0, i64 40, i1 false)
  %967 = add nsw i32 %937, 2
  store i32 %967, ptr @test_count, align 4, !tbaa !5
  %968 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %15, i32 noundef 0) #11
  %969 = icmp eq i32 %968, -1
  br i1 %969, label %970, label %994

970:                                              ; preds = %964
  %971 = tail call ptr @__errno_location() #12
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = call i32 @s2n_print_stacktrace(ptr noundef %973) #11
  %975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %976 = trunc nuw i8 %975 to i1
  br i1 %976, label %977, label %981

977:                                              ; preds = %970
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @fileno(ptr noundef %978) #11
  %980 = call i32 @isatty(i32 noundef %979) #11
  %.not1289 = icmp eq i32 %980, 0
  br i1 %.not1289, label %981, label %982

981:                                              ; preds = %977, %970
  br label %982

982:                                              ; preds = %977, %981
  %.str.5.sink1695 = phi ptr [ @.str.5, %981 ], [ @.str.2, %977 ]
  store i32 %972, ptr %971, align 4, !tbaa !5
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = load i32, ptr @test_count, align 4, !tbaa !5
  %985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call ptr @s2n_strerror(i32 noundef %986, ptr noundef nonnull @.str.4) #11
  %988 = load i32, ptr %985, align 4, !tbaa !5
  %989 = call ptr @s2n_strerror_debug(i32 noundef %988, ptr noundef nonnull @.str.4) #11
  %990 = load i32, ptr %971, align 4, !tbaa !5
  %991 = call ptr @strerror(i32 noundef %990) #11
  %992 = load i32, ptr %971, align 4, !tbaa !5
  %993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %983, ptr noundef nonnull %.str.5.sink1695, i32 noundef %984, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %987, ptr noundef %989, ptr noundef %991, i32 noundef %992) #13
  call void @exit(i32 noundef 1) #14
  unreachable

994:                                              ; preds = %964
  %995 = load i32, ptr @test_count, align 4, !tbaa !5
  %996 = add nsw i32 %995, 1
  store i32 %996, ptr @test_count, align 4, !tbaa !5
  %997 = load ptr, ptr %14, align 8, !tbaa !9
  %998 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %997, ptr noundef nonnull %15) #11
  %999 = call zeroext i1 @s2n_result_is_ok(i32 %998)
  br i1 %999, label %1024, label %1000

1000:                                             ; preds = %994
  %1001 = tail call ptr @__errno_location() #12
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = call i32 @s2n_print_stacktrace(ptr noundef %1003) #11
  %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 = %1000
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = call i32 @fileno(ptr noundef %1008) #11
  %1010 = call i32 @isatty(i32 noundef %1009) #11
  %.not976 = icmp eq i32 %1010, 0
  br i1 %.not976, label %1011, label %1012

1011:                                             ; preds = %1007, %1000
  br label %1012

1012:                                             ; preds = %1007, %1011
  %.str.5.sink1706 = phi ptr [ @.str.5, %1011 ], [ @.str.2, %1007 ]
  store i32 %1002, ptr %1001, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call ptr @s2n_strerror(i32 noundef %1016, ptr noundef nonnull @.str.4) #11
  %1018 = load i32, ptr %1015, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror_debug(i32 noundef %1018, ptr noundef nonnull @.str.4) #11
  %1020 = load i32, ptr %1001, align 4, !tbaa !5
  %1021 = call ptr @strerror(i32 noundef %1020) #11
  %1022 = load i32, ptr %1001, align 4, !tbaa !5
  %1023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1013, ptr noundef nonnull %.str.5.sink1706, i32 noundef %1014, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1017, ptr noundef %1019, ptr noundef %1021, i32 noundef %1022) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1024:                                             ; preds = %994
  call void @llvm.lifetime.start.p0(i64 258, ptr nonnull %16) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(258) %16, i8 0, i64 258, i1 false)
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = add nsw i32 %1025, 1
  store i32 %1026, ptr @test_count, align 4, !tbaa !5
  %1027 = call i32 @s2n_recv_supported_sig_scheme_list(ptr noundef nonnull %15, ptr noundef nonnull %16) #11
  %1028 = icmp eq i32 %1027, -1
  br i1 %1028, label %1029, label %1053

1029:                                             ; preds = %1024
  %1030 = tail call ptr @__errno_location() #12
  %1031 = load i32, ptr %1030, align 4, !tbaa !5
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = call i32 @s2n_print_stacktrace(ptr noundef %1032) #11
  %1034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1035 = trunc nuw i8 %1034 to i1
  br i1 %1035, label %1036, label %1040

1036:                                             ; preds = %1029
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = call i32 @fileno(ptr noundef %1037) #11
  %1039 = call i32 @isatty(i32 noundef %1038) #11
  %.not1288 = icmp eq i32 %1039, 0
  br i1 %.not1288, label %1040, label %1041

1040:                                             ; preds = %1036, %1029
  br label %1041

1041:                                             ; preds = %1036, %1040
  %.str.5.sink1717 = phi ptr [ @.str.5, %1040 ], [ @.str.2, %1036 ]
  store i32 %1031, ptr %1030, align 4, !tbaa !5
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1045, ptr noundef nonnull @.str.4) #11
  %1047 = load i32, ptr %1044, align 4, !tbaa !5
  %1048 = call ptr @s2n_strerror_debug(i32 noundef %1047, ptr noundef nonnull @.str.4) #11
  %1049 = load i32, ptr %1030, align 4, !tbaa !5
  %1050 = call ptr @strerror(i32 noundef %1049) #11
  %1051 = load i32, ptr %1030, align 4, !tbaa !5
  %1052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1042, ptr noundef nonnull %.str.5.sink1717, i32 noundef %1043, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1046, ptr noundef %1048, ptr noundef %1050, i32 noundef %1051) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1053:                                             ; preds = %1024
  %1054 = load i32, ptr @test_count, align 4, !tbaa !5
  %1055 = add nsw i32 %1054, 1
  store i32 %1055, ptr @test_count, align 4, !tbaa !5
  %1056 = getelementptr inbounds i8, ptr %15, i64 28
  %1057 = load i32, ptr %1056, align 4, !tbaa !52
  %1058 = getelementptr inbounds i8, ptr %15, i64 24
  %1059 = load i32, ptr %1058, align 8, !tbaa !53
  %1060 = icmp eq i32 %1057, %1059
  br i1 %1060, label %1085, label %1061

1061:                                             ; preds = %1053
  %1062 = tail call ptr @__errno_location() #12
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = call i32 @s2n_print_stacktrace(ptr noundef %1064) #11
  %1066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1067 = trunc nuw i8 %1066 to i1
  br i1 %1067, label %1068, label %1072

1068:                                             ; preds = %1061
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = call i32 @fileno(ptr noundef %1069) #11
  %1071 = call i32 @isatty(i32 noundef %1070) #11
  %.not977 = icmp eq i32 %1071, 0
  br i1 %.not977, label %1072, label %1073

1072:                                             ; preds = %1068, %1061
  br label %1073

1073:                                             ; preds = %1068, %1072
  %.str.5.sink1728 = phi ptr [ @.str.5, %1072 ], [ @.str.2, %1068 ]
  store i32 %1063, ptr %1062, align 4, !tbaa !5
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = load i32, ptr @test_count, align 4, !tbaa !5
  %1076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror(i32 noundef %1077, ptr noundef nonnull @.str.4) #11
  %1079 = load i32, ptr %1076, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef nonnull @.str.4) #11
  %1081 = load i32, ptr %1062, align 4, !tbaa !5
  %1082 = call ptr @strerror(i32 noundef %1081) #11
  %1083 = load i32, ptr %1062, align 4, !tbaa !5
  %1084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1074, ptr noundef nonnull %.str.5.sink1728, i32 noundef %1075, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %1078, ptr noundef %1080, ptr noundef %1082, i32 noundef %1083) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1085:                                             ; preds = %1053
  %1086 = add nsw i32 %1054, 2
  store i32 %1086, ptr @test_count, align 4, !tbaa !5
  %1087 = getelementptr inbounds i8, ptr %16, i64 256
  %1088 = load i8, ptr %1087, align 2, !tbaa !56
  %1089 = icmp eq i8 %1088, 6
  br i1 %1089, label %.preheader1315, label %1094

.preheader1315:                                   ; preds = %1085
  %1090 = add nsw i32 %1054, 3
  %1091 = load i16, ptr %16, align 2, !tbaa !51
  %1092 = load i16, ptr %523, align 8, !tbaa !54
  %1093 = icmp eq i16 %1091, %1092
  br i1 %1093, label %1118, label %1156

1094:                                             ; preds = %1085
  %1095 = tail call ptr @__errno_location() #12
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1098 = call i32 @s2n_print_stacktrace(ptr noundef %1097) #11
  %1099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1100 = trunc nuw i8 %1099 to i1
  br i1 %1100, label %1101, label %1105

1101:                                             ; preds = %1094
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = call i32 @fileno(ptr noundef %1102) #11
  %1104 = call i32 @isatty(i32 noundef %1103) #11
  %.not978 = icmp eq i32 %1104, 0
  br i1 %.not978, label %1105, label %1106

1105:                                             ; preds = %1101, %1094
  br label %1106

1106:                                             ; preds = %1101, %1105
  %.str.5.sink1739 = phi ptr [ @.str.5, %1105 ], [ @.str.2, %1101 ]
  store i32 %1096, ptr %1095, 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 nonnull @.str.4) #11
  %1112 = load i32, ptr %1109, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror_debug(i32 noundef %1112, ptr noundef nonnull @.str.4) #11
  %1114 = load i32, ptr %1095, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #11
  %1116 = load i32, ptr %1095, align 4, !tbaa !5
  %1117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1107, ptr noundef nonnull %.str.5.sink1739, i32 noundef %1108, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1111, ptr noundef %1113, ptr noundef %1115, i32 noundef %1116) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1118:                                             ; preds = %.preheader1315
  %1119 = add nsw i32 %1054, 4
  %1120 = getelementptr inbounds i8, ptr %16, i64 2
  %1121 = load i16, ptr %1120, align 2, !tbaa !51
  %1122 = load i16, ptr %557, align 8, !tbaa !54
  %1123 = icmp eq i16 %1121, %1122
  br i1 %1123, label %1124, label %1156

1124:                                             ; preds = %1118
  %1125 = add nsw i32 %1054, 5
  %1126 = getelementptr inbounds i8, ptr %16, i64 4
  %1127 = load i16, ptr %1126, align 2, !tbaa !51
  %1128 = load i16, ptr %567, align 8, !tbaa !54
  %1129 = icmp eq i16 %1127, %1128
  br i1 %1129, label %1130, label %1156

1130:                                             ; preds = %1124
  %1131 = add nsw i32 %1054, 6
  %1132 = getelementptr inbounds i8, ptr %16, i64 6
  %1133 = load i16, ptr %1132, align 2, !tbaa !51
  %1134 = load i16, ptr %577, align 8, !tbaa !54
  %1135 = icmp eq i16 %1133, %1134
  br i1 %1135, label %1136, label %1156

1136:                                             ; preds = %1130
  %1137 = add nsw i32 %1054, 7
  %1138 = getelementptr inbounds i8, ptr %16, i64 8
  %1139 = load i16, ptr %1138, align 2, !tbaa !51
  %1140 = load i16, ptr %587, align 8, !tbaa !54
  %1141 = icmp eq i16 %1139, %1140
  br i1 %1141, label %1142, label %1156

1142:                                             ; preds = %1136
  %1143 = add nsw i32 %1054, 8
  %1144 = getelementptr inbounds i8, ptr %16, i64 10
  %1145 = load i16, ptr %1144, align 2, !tbaa !51
  %1146 = load i16, ptr %597, align 8, !tbaa !54
  %1147 = icmp eq i16 %1145, %1146
  br i1 %1147, label %1148, label %1156

1148:                                             ; preds = %1142
  %1149 = add i32 %1054, 9
  store i32 %1149, ptr @test_count, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 258, ptr nonnull %16) #11
  %1150 = call i32 @s2n_stuffer_free(ptr noundef nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #11
  %1151 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #11
  %1152 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %1152, ptr %17, align 8, !tbaa !9
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = add nsw i32 %1153, 1
  store i32 %1154, ptr @test_count, align 4, !tbaa !5
  %1155 = icmp eq ptr %1152, null
  br i1 %1155, label %1180, label %1204

1156:                                             ; preds = %1142, %1136, %1130, %1124, %1118, %.preheader1315
  %.lcssa1379 = phi i32 [ %1090, %.preheader1315 ], [ %1119, %1118 ], [ %1125, %1124 ], [ %1131, %1130 ], [ %1137, %1136 ], [ %1143, %1142 ]
  store i32 %.lcssa1379, ptr @test_count, align 4, !tbaa !5
  %1157 = tail call ptr @__errno_location() #12
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = call i32 @s2n_print_stacktrace(ptr noundef %1159) #11
  %1161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1162 = trunc nuw i8 %1161 to i1
  br i1 %1162, label %1163, label %1167

1163:                                             ; preds = %1156
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = call i32 @fileno(ptr noundef %1164) #11
  %1166 = call i32 @isatty(i32 noundef %1165) #11
  %.not1287 = icmp eq i32 %1166, 0
  br i1 %.not1287, label %1167, label %1168

1167:                                             ; preds = %1163, %1156
  br label %1168

1168:                                             ; preds = %1163, %1167
  %.str.5.sink1750 = phi ptr [ @.str.5, %1167 ], [ @.str.2, %1163 ]
  store i32 %1158, ptr %1157, align 4, !tbaa !5
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = load i32, ptr @test_count, align 4, !tbaa !5
  %1171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror(i32 noundef %1172, ptr noundef nonnull @.str.4) #11
  %1174 = load i32, ptr %1171, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror_debug(i32 noundef %1174, ptr noundef nonnull @.str.4) #11
  %1176 = load i32, ptr %1157, align 4, !tbaa !5
  %1177 = call ptr @strerror(i32 noundef %1176) #11
  %1178 = load i32, ptr %1157, align 4, !tbaa !5
  %1179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1169, ptr noundef nonnull %.str.5.sink1750, i32 noundef %1170, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1173, ptr noundef %1175, ptr noundef %1177, i32 noundef %1178) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1180:                                             ; preds = %1148
  %1181 = tail call ptr @__errno_location() #12
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1184 = call i32 @s2n_print_stacktrace(ptr noundef %1183) #11
  %1185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1186 = trunc nuw i8 %1185 to i1
  br i1 %1186, label %1187, label %1191

1187:                                             ; preds = %1180
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = call i32 @fileno(ptr noundef %1188) #11
  %1190 = call i32 @isatty(i32 noundef %1189) #11
  %.not1286 = icmp eq i32 %1190, 0
  br i1 %.not1286, label %1191, label %1192

1191:                                             ; preds = %1187, %1180
  br label %1192

1192:                                             ; preds = %1187, %1191
  %.str.5.sink1761 = phi ptr [ @.str.5, %1191 ], [ @.str.2, %1187 ]
  store i32 %1182, ptr %1181, align 4, !tbaa !5
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = load i32, ptr @test_count, align 4, !tbaa !5
  %1195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror(i32 noundef %1196, ptr noundef nonnull @.str.4) #11
  %1198 = load i32, ptr %1195, align 4, !tbaa !5
  %1199 = call ptr @s2n_strerror_debug(i32 noundef %1198, ptr noundef nonnull @.str.4) #11
  %1200 = load i32, ptr %1181, align 4, !tbaa !5
  %1201 = call ptr @strerror(i32 noundef %1200) #11
  %1202 = load i32, ptr %1181, align 4, !tbaa !5
  %1203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1193, ptr noundef nonnull %.str.5.sink1761, i32 noundef %1194, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %1197, ptr noundef %1199, ptr noundef %1201, i32 noundef %1202) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1204:                                             ; preds = %1148
  %1205 = getelementptr inbounds i8, ptr %1152, i64 16
  store ptr %5, ptr %1205, align 8, !tbaa !26
  %1206 = getelementptr inbounds i8, ptr %1152, i64 220
  store i8 34, ptr %1206, align 4, !tbaa !50
  %1207 = load i32, ptr %1152, align 8
  %1208 = or i32 %1207, 4
  store i32 %1208, ptr %1152, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %18, i8 0, i64 40, i1 false)
  %1209 = load i32, ptr @test_count, align 4, !tbaa !5
  %1210 = add nsw i32 %1209, 1
  store i32 %1210, ptr @test_count, align 4, !tbaa !5
  %1211 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %18, i32 noundef 0) #11
  %1212 = icmp eq i32 %1211, -1
  br i1 %1212, label %1213, label %1237

1213:                                             ; preds = %1204
  %1214 = tail call ptr @__errno_location() #12
  %1215 = load i32, ptr %1214, align 4, !tbaa !5
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1217 = call i32 @s2n_print_stacktrace(ptr noundef %1216) #11
  %1218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1219 = trunc nuw i8 %1218 to i1
  br i1 %1219, label %1220, label %1224

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

1224:                                             ; preds = %1220, %1213
  br label %1225

1225:                                             ; preds = %1220, %1224
  %.str.5.sink1772 = phi ptr [ @.str.5, %1224 ], [ @.str.2, %1220 ]
  store i32 %1215, ptr %1214, align 4, !tbaa !5
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = load i32, ptr @test_count, align 4, !tbaa !5
  %1228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = call ptr @s2n_strerror(i32 noundef %1229, ptr noundef nonnull @.str.4) #11
  %1231 = load i32, ptr %1228, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror_debug(i32 noundef %1231, ptr noundef nonnull @.str.4) #11
  %1233 = load i32, ptr %1214, align 4, !tbaa !5
  %1234 = call ptr @strerror(i32 noundef %1233) #11
  %1235 = load i32, ptr %1214, align 4, !tbaa !5
  %1236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1226, ptr noundef nonnull %.str.5.sink1772, i32 noundef %1227, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %1230, ptr noundef %1232, ptr noundef %1234, i32 noundef %1235) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1237:                                             ; preds = %1204
  %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 %17, align 8, !tbaa !9
  %1241 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %1240, ptr noundef nonnull %18) #11
  %1242 = call zeroext i1 @s2n_result_is_ok(i32 %1241)
  br i1 %1242, label %1267, label %1243

1243:                                             ; preds = %1237
  %1244 = tail call ptr @__errno_location() #12
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = call i32 @s2n_print_stacktrace(ptr noundef %1246) #11
  %1248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1249 = trunc nuw i8 %1248 to i1
  br i1 %1249, label %1250, label %1254

1250:                                             ; preds = %1243
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = call i32 @fileno(ptr noundef %1251) #11
  %1253 = call i32 @isatty(i32 noundef %1252) #11
  %.not980 = icmp eq i32 %1253, 0
  br i1 %.not980, label %1254, label %1255

1254:                                             ; preds = %1250, %1243
  br label %1255

1255:                                             ; preds = %1250, %1254
  %.str.5.sink1783 = phi ptr [ @.str.5, %1254 ], [ @.str.2, %1250 ]
  store i32 %1245, ptr %1244, align 4, !tbaa !5
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = load i32, ptr @test_count, align 4, !tbaa !5
  %1258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  %1260 = call ptr @s2n_strerror(i32 noundef %1259, ptr noundef nonnull @.str.4) #11
  %1261 = load i32, ptr %1258, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror_debug(i32 noundef %1261, ptr noundef nonnull @.str.4) #11
  %1263 = load i32, ptr %1244, align 4, !tbaa !5
  %1264 = call ptr @strerror(i32 noundef %1263) #11
  %1265 = load i32, ptr %1244, align 4, !tbaa !5
  %1266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1256, ptr noundef nonnull %.str.5.sink1783, i32 noundef %1257, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1260, ptr noundef %1262, ptr noundef %1264, i32 noundef %1265) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1267:                                             ; preds = %1237
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %19) #11
  store i16 0, ptr %19, align 2, !tbaa !51
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = add nsw i32 %1268, 1
  store i32 %1269, ptr @test_count, align 4, !tbaa !5
  %1270 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %18, ptr noundef nonnull %19) #11
  %1271 = icmp eq i32 %1270, -1
  br i1 %1271, label %1272, label %1296

1272:                                             ; preds = %1267
  %1273 = tail call ptr @__errno_location() #12
  %1274 = load i32, ptr %1273, align 4, !tbaa !5
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = call i32 @s2n_print_stacktrace(ptr noundef %1275) #11
  %1277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1278 = trunc nuw i8 %1277 to i1
  br i1 %1278, label %1279, label %1283

1279:                                             ; preds = %1272
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = call i32 @fileno(ptr noundef %1280) #11
  %1282 = call i32 @isatty(i32 noundef %1281) #11
  %.not1284 = icmp eq i32 %1282, 0
  br i1 %.not1284, label %1283, label %1284

1283:                                             ; preds = %1279, %1272
  br label %1284

1284:                                             ; preds = %1279, %1283
  %.str.5.sink1794 = phi ptr [ @.str.5, %1283 ], [ @.str.2, %1279 ]
  store i32 %1274, ptr %1273, align 4, !tbaa !5
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = load i32, ptr @test_count, align 4, !tbaa !5
  %1287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  %1289 = call ptr @s2n_strerror(i32 noundef %1288, ptr noundef nonnull @.str.4) #11
  %1290 = load i32, ptr %1287, align 4, !tbaa !5
  %1291 = call ptr @s2n_strerror_debug(i32 noundef %1290, ptr noundef nonnull @.str.4) #11
  %1292 = load i32, ptr %1273, align 4, !tbaa !5
  %1293 = call ptr @strerror(i32 noundef %1292) #11
  %1294 = load i32, ptr %1273, align 4, !tbaa !5
  %1295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1285, ptr noundef nonnull %.str.5.sink1794, i32 noundef %1286, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1289, ptr noundef %1291, ptr noundef %1293, i32 noundef %1294) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1296:                                             ; preds = %1267
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = add nsw i32 %1297, 1
  store i32 %1298, ptr @test_count, align 4, !tbaa !5
  %1299 = load i16, ptr %19, align 2, !tbaa !51
  %1300 = zext i16 %1299 to i32
  %1301 = getelementptr inbounds i8, ptr %18, i64 28
  %1302 = load i32, ptr %1301, align 4, !tbaa !52
  %1303 = getelementptr inbounds i8, ptr %18, i64 24
  %1304 = load i32, ptr %1303, align 8, !tbaa !53
  %1305 = sub i32 %1302, %1304
  %1306 = icmp eq i32 %1305, %1300
  br i1 %1306, label %.preheader1314.preheader, label %1310

.preheader1314.preheader:                         ; preds = %1296
  %1307 = getelementptr inbounds i8, ptr %523, i64 25
  %1308 = load i8, ptr %1307, align 1, !tbaa !57
  %1309 = add i8 %1308, -34
  %or.cond = icmp ult i8 %1309, -33
  br i1 %or.cond, label %1334, label %.preheader1314.1

1310:                                             ; preds = %1296
  %1311 = tail call ptr @__errno_location() #12
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = call i32 @s2n_print_stacktrace(ptr noundef %1313) #11
  %1315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1316 = trunc nuw i8 %1315 to i1
  br i1 %1316, label %1317, label %1321

1317:                                             ; preds = %1310
  %1318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1319 = call i32 @fileno(ptr noundef %1318) #11
  %1320 = call i32 @isatty(i32 noundef %1319) #11
  %.not981 = icmp eq i32 %1320, 0
  br i1 %.not981, label %1321, label %1322

1321:                                             ; preds = %1317, %1310
  br label %1322

1322:                                             ; preds = %1317, %1321
  %.str.5.sink1805 = phi ptr [ @.str.5, %1321 ], [ @.str.2, %1317 ]
  store i32 %1312, ptr %1311, align 4, !tbaa !5
  %1323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1324 = load i32, ptr @test_count, align 4, !tbaa !5
  %1325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror(i32 noundef %1326, ptr noundef nonnull @.str.4) #11
  %1328 = load i32, ptr %1325, align 4, !tbaa !5
  %1329 = call ptr @s2n_strerror_debug(i32 noundef %1328, ptr noundef nonnull @.str.4) #11
  %1330 = load i32, ptr %1311, align 4, !tbaa !5
  %1331 = call ptr @strerror(i32 noundef %1330) #11
  %1332 = load i32, ptr %1311, align 4, !tbaa !5
  %1333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1323, ptr noundef nonnull %.str.5.sink1805, i32 noundef %1324, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %1327, ptr noundef %1329, ptr noundef %1331, i32 noundef %1332) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1334:                                             ; preds = %.preheader1314.preheader
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %20) #11
  store i16 0, ptr %20, align 2, !tbaa !51
  %1335 = add nsw i32 %1297, 2
  store i32 %1335, ptr @test_count, align 4, !tbaa !5
  %1336 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %18, ptr noundef nonnull %20) #11
  %1337 = icmp eq i32 %1336, -1
  br i1 %1337, label %1338, label %1362

1338:                                             ; preds = %1457, %1442, %1427, %1412, %1397, %1334
  %1339 = tail call ptr @__errno_location() #12
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1342 = call i32 @s2n_print_stacktrace(ptr noundef %1341) #11
  %1343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1344 = trunc nuw i8 %1343 to i1
  br i1 %1344, label %1345, label %1349

1345:                                             ; preds = %1338
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = call i32 @fileno(ptr noundef %1346) #11
  %1348 = call i32 @isatty(i32 noundef %1347) #11
  %.not1283 = icmp eq i32 %1348, 0
  br i1 %.not1283, label %1349, label %1350

1349:                                             ; preds = %1345, %1338
  br label %1350

1350:                                             ; preds = %1345, %1349
  %.str.5.sink1816 = phi ptr [ @.str.5, %1349 ], [ @.str.2, %1345 ]
  store i32 %1340, ptr %1339, align 4, !tbaa !5
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = load i32, ptr @test_count, align 4, !tbaa !5
  %1353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = call ptr @s2n_strerror(i32 noundef %1354, ptr noundef nonnull @.str.4) #11
  %1356 = load i32, ptr %1353, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror_debug(i32 noundef %1356, ptr noundef nonnull @.str.4) #11
  %1358 = load i32, ptr %1339, align 4, !tbaa !5
  %1359 = call ptr @strerror(i32 noundef %1358) #11
  %1360 = load i32, ptr %1339, align 4, !tbaa !5
  %1361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1351, ptr noundef nonnull %.str.5.sink1816, i32 noundef %1352, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %1355, ptr noundef %1357, ptr noundef %1359, i32 noundef %1360) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1362:                                             ; preds = %1334
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = add nsw i32 %1363, 1
  store i32 %1364, ptr @test_count, align 4, !tbaa !5
  %1365 = load i16, ptr %20, align 2, !tbaa !51
  %1366 = load i16, ptr %523, align 8, !tbaa !54
  %1367 = icmp eq i16 %1365, %1366
  br i1 %1367, label %1392, label %1368

1368:                                             ; preds = %1461, %1446, %1431, %1416, %1401, %1362
  %1369 = tail call ptr @__errno_location() #12
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = call i32 @s2n_print_stacktrace(ptr noundef %1371) #11
  %1373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1374 = trunc nuw i8 %1373 to i1
  br i1 %1374, label %1375, label %1379

1375:                                             ; preds = %1368
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = call i32 @fileno(ptr noundef %1376) #11
  %1378 = call i32 @isatty(i32 noundef %1377) #11
  %.not1282 = icmp eq i32 %1378, 0
  br i1 %.not1282, label %1379, label %1380

1379:                                             ; preds = %1375, %1368
  br label %1380

1380:                                             ; preds = %1375, %1379
  %.str.5.sink1827 = phi ptr [ @.str.5, %1379 ], [ @.str.2, %1375 ]
  store i32 %1370, ptr %1369, align 4, !tbaa !5
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror(i32 noundef %1384, ptr noundef nonnull @.str.4) #11
  %1386 = load i32, ptr %1383, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror_debug(i32 noundef %1386, ptr noundef nonnull @.str.4) #11
  %1388 = load i32, ptr %1369, align 4, !tbaa !5
  %1389 = call ptr @strerror(i32 noundef %1388) #11
  %1390 = load i32, ptr %1369, align 4, !tbaa !5
  %1391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1381, ptr noundef nonnull %.str.5.sink1827, i32 noundef %1382, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %1385, ptr noundef %1387, ptr noundef %1389, i32 noundef %1390) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1392:                                             ; preds = %1362
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %20) #11
  br label %.preheader1314.1

.preheader1314.1:                                 ; preds = %.preheader1314.preheader, %1392
  %1393 = phi i32 [ %1298, %.preheader1314.preheader ], [ %1364, %1392 ]
  %1394 = getelementptr inbounds i8, ptr %557, i64 25
  %1395 = load i8, ptr %1394, align 1, !tbaa !57
  %1396 = add i8 %1395, -34
  %or.cond.1 = icmp ult i8 %1396, -33
  br i1 %or.cond.1, label %1397, label %.preheader1314.2

1397:                                             ; preds = %.preheader1314.1
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %20) #11
  store i16 0, ptr %20, align 2, !tbaa !51
  %1398 = add nsw i32 %1393, 1
  store i32 %1398, ptr @test_count, align 4, !tbaa !5
  %1399 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %18, ptr noundef nonnull %20) #11
  %1400 = icmp eq i32 %1399, -1
  br i1 %1400, label %1338, label %1401

1401:                                             ; preds = %1397
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = add nsw i32 %1402, 1
  store i32 %1403, ptr @test_count, align 4, !tbaa !5
  %1404 = load i16, ptr %20, align 2, !tbaa !51
  %1405 = load i16, ptr %557, align 8, !tbaa !54
  %1406 = icmp eq i16 %1404, %1405
  br i1 %1406, label %1407, label %1368

1407:                                             ; preds = %1401
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %20) #11
  br label %.preheader1314.2

.preheader1314.2:                                 ; preds = %1407, %.preheader1314.1
  %1408 = phi i32 [ %1403, %1407 ], [ %1393, %.preheader1314.1 ]
  %1409 = getelementptr inbounds i8, ptr %567, i64 25
  %1410 = load i8, ptr %1409, align 1, !tbaa !57
  %1411 = add i8 %1410, -34
  %or.cond.2 = icmp ult i8 %1411, -33
  br i1 %or.cond.2, label %1412, label %.preheader1314.3

1412:                                             ; preds = %.preheader1314.2
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %20) #11
  store i16 0, ptr %20, align 2, !tbaa !51
  %1413 = add nsw i32 %1408, 1
  store i32 %1413, ptr @test_count, align 4, !tbaa !5
  %1414 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %18, ptr noundef nonnull %20) #11
  %1415 = icmp eq i32 %1414, -1
  br i1 %1415, label %1338, label %1416

1416:                                             ; preds = %1412
  %1417 = load i32, ptr @test_count, align 4, !tbaa !5
  %1418 = add nsw i32 %1417, 1
  store i32 %1418, ptr @test_count, align 4, !tbaa !5
  %1419 = load i16, ptr %20, align 2, !tbaa !51
  %1420 = load i16, ptr %567, align 8, !tbaa !54
  %1421 = icmp eq i16 %1419, %1420
  br i1 %1421, label %1422, label %1368

1422:                                             ; preds = %1416
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %20) #11
  br label %.preheader1314.3

.preheader1314.3:                                 ; preds = %1422, %.preheader1314.2
  %1423 = phi i32 [ %1418, %1422 ], [ %1408, %.preheader1314.2 ]
  %1424 = getelementptr inbounds i8, ptr %577, i64 25
  %1425 = load i8, ptr %1424, align 1, !tbaa !57
  %1426 = add i8 %1425, -34
  %or.cond.3 = icmp ult i8 %1426, -33
  br i1 %or.cond.3, label %1427, label %.preheader1314.4

1427:                                             ; preds = %.preheader1314.3
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %20) #11
  store i16 0, ptr %20, align 2, !tbaa !51
  %1428 = add nsw i32 %1423, 1
  store i32 %1428, ptr @test_count, align 4, !tbaa !5
  %1429 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %18, ptr noundef nonnull %20) #11
  %1430 = icmp eq i32 %1429, -1
  br i1 %1430, label %1338, label %1431

1431:                                             ; preds = %1427
  %1432 = load i32, ptr @test_count, align 4, !tbaa !5
  %1433 = add nsw i32 %1432, 1
  store i32 %1433, ptr @test_count, align 4, !tbaa !5
  %1434 = load i16, ptr %20, align 2, !tbaa !51
  %1435 = load i16, ptr %577, align 8, !tbaa !54
  %1436 = icmp eq i16 %1434, %1435
  br i1 %1436, label %1437, label %1368

1437:                                             ; preds = %1431
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %20) #11
  br label %.preheader1314.4

.preheader1314.4:                                 ; preds = %1437, %.preheader1314.3
  %1438 = phi i32 [ %1433, %1437 ], [ %1423, %.preheader1314.3 ]
  %1439 = getelementptr inbounds i8, ptr %587, i64 25
  %1440 = load i8, ptr %1439, align 1, !tbaa !57
  %1441 = add i8 %1440, -34
  %or.cond.4 = icmp ult i8 %1441, -33
  br i1 %or.cond.4, label %1442, label %.preheader1314.5

1442:                                             ; preds = %.preheader1314.4
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %20) #11
  store i16 0, ptr %20, align 2, !tbaa !51
  %1443 = add nsw i32 %1438, 1
  store i32 %1443, ptr @test_count, align 4, !tbaa !5
  %1444 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %18, ptr noundef nonnull %20) #11
  %1445 = icmp eq i32 %1444, -1
  br i1 %1445, label %1338, label %1446

1446:                                             ; preds = %1442
  %1447 = load i32, ptr @test_count, align 4, !tbaa !5
  %1448 = add nsw i32 %1447, 1
  store i32 %1448, ptr @test_count, align 4, !tbaa !5
  %1449 = load i16, ptr %20, align 2, !tbaa !51
  %1450 = load i16, ptr %587, align 8, !tbaa !54
  %1451 = icmp eq i16 %1449, %1450
  br i1 %1451, label %1452, label %1368

1452:                                             ; preds = %1446
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %20) #11
  br label %.preheader1314.5

.preheader1314.5:                                 ; preds = %1452, %.preheader1314.4
  %1453 = phi i32 [ %1448, %1452 ], [ %1438, %.preheader1314.4 ]
  %1454 = getelementptr inbounds i8, ptr %597, i64 25
  %1455 = load i8, ptr %1454, align 1, !tbaa !57
  %1456 = add i8 %1455, -34
  %or.cond.5 = icmp ult i8 %1456, -33
  br i1 %or.cond.5, label %1457, label %1468

1457:                                             ; preds = %.preheader1314.5
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %20) #11
  store i16 0, ptr %20, align 2, !tbaa !51
  %1458 = add nsw i32 %1453, 1
  store i32 %1458, ptr @test_count, align 4, !tbaa !5
  %1459 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %18, ptr noundef nonnull %20) #11
  %1460 = icmp eq i32 %1459, -1
  br i1 %1460, label %1338, label %1461

1461:                                             ; preds = %1457
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = add nsw i32 %1462, 1
  store i32 %1463, ptr @test_count, align 4, !tbaa !5
  %1464 = load i16, ptr %20, align 2, !tbaa !51
  %1465 = load i16, ptr %597, align 8, !tbaa !54
  %1466 = icmp eq i16 %1464, %1465
  br i1 %1466, label %1467, label %1368

1467:                                             ; preds = %1461
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %20) #11
  br label %1468

1468:                                             ; preds = %1467, %.preheader1314.5
  %1469 = phi i32 [ %1463, %1467 ], [ %1453, %.preheader1314.5 ]
  %1470 = add nsw i32 %1469, 1
  store i32 %1470, ptr @test_count, align 4, !tbaa !5
  %1471 = load i32, ptr %1301, align 4, !tbaa !52
  %1472 = load i32, ptr %1303, align 8, !tbaa !53
  %1473 = icmp eq i32 %1471, %1472
  br i1 %1473, label %1498, label %1474

1474:                                             ; preds = %1468
  %1475 = tail call ptr @__errno_location() #12
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1478 = call i32 @s2n_print_stacktrace(ptr noundef %1477) #11
  %1479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1480 = trunc nuw i8 %1479 to i1
  br i1 %1480, label %1481, label %1485

1481:                                             ; preds = %1474
  %1482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1483 = call i32 @fileno(ptr noundef %1482) #11
  %1484 = call i32 @isatty(i32 noundef %1483) #11
  %.not982 = icmp eq i32 %1484, 0
  br i1 %.not982, label %1485, label %1486

1485:                                             ; preds = %1481, %1474
  br label %1486

1486:                                             ; preds = %1481, %1485
  %.str.5.sink1838 = phi ptr [ @.str.5, %1485 ], [ @.str.2, %1481 ]
  store i32 %1476, ptr %1475, align 4, !tbaa !5
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror(i32 noundef %1490, ptr noundef nonnull @.str.4) #11
  %1492 = load i32, ptr %1489, align 4, !tbaa !5
  %1493 = call ptr @s2n_strerror_debug(i32 noundef %1492, ptr noundef nonnull @.str.4) #11
  %1494 = load i32, ptr %1475, align 4, !tbaa !5
  %1495 = call ptr @strerror(i32 noundef %1494) #11
  %1496 = load i32, ptr %1475, align 4, !tbaa !5
  %1497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1487, ptr noundef nonnull %.str.5.sink1838, i32 noundef %1488, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1491, ptr noundef %1493, ptr noundef %1495, i32 noundef %1496) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1498:                                             ; preds = %1468
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %19) #11
  %1499 = call i32 @s2n_stuffer_free(ptr noundef nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #11
  %1500 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %5) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #11
  %1501 = call ptr @s2n_config_new() #11
  store ptr %1501, ptr %21, align 8, !tbaa !9
  %1502 = load i32, ptr @test_count, align 4, !tbaa !5
  %1503 = add nsw i32 %1502, 1
  store i32 %1503, ptr @test_count, align 4, !tbaa !5
  %1504 = load ptr, ptr %3, align 8, !tbaa !9
  %1505 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1501, ptr noundef %1504) #11
  %1506 = icmp eq i32 %1505, -1
  br i1 %1506, label %1507, label %1531

1507:                                             ; preds = %1498
  %1508 = tail call ptr @__errno_location() #12
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = call i32 @s2n_print_stacktrace(ptr noundef %1510) #11
  %1512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1513 = trunc nuw i8 %1512 to i1
  br i1 %1513, label %1514, label %1518

1514:                                             ; preds = %1507
  %1515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1516 = call i32 @fileno(ptr noundef %1515) #11
  %1517 = call i32 @isatty(i32 noundef %1516) #11
  %.not1281 = icmp eq i32 %1517, 0
  br i1 %.not1281, label %1518, label %1519

1518:                                             ; preds = %1514, %1507
  br label %1519

1519:                                             ; preds = %1514, %1518
  %.str.5.sink1849 = phi ptr [ @.str.5, %1518 ], [ @.str.2, %1514 ]
  store i32 %1509, ptr %1508, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = load i32, ptr @test_count, align 4, !tbaa !5
  %1522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1523 = load i32, ptr %1522, align 4, !tbaa !5
  %1524 = call ptr @s2n_strerror(i32 noundef %1523, ptr noundef nonnull @.str.4) #11
  %1525 = load i32, ptr %1522, align 4, !tbaa !5
  %1526 = call ptr @s2n_strerror_debug(i32 noundef %1525, ptr noundef nonnull @.str.4) #11
  %1527 = load i32, ptr %1508, align 4, !tbaa !5
  %1528 = call ptr @strerror(i32 noundef %1527) #11
  %1529 = load i32, ptr %1508, align 4, !tbaa !5
  %1530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1520, ptr noundef nonnull %.str.5.sink1849, i32 noundef %1521, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1524, ptr noundef %1526, ptr noundef %1528, i32 noundef %1529) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1531:                                             ; preds = %1498
  %1532 = load i32, ptr @test_count, align 4, !tbaa !5
  %1533 = add nsw i32 %1532, 1
  store i32 %1533, ptr @test_count, align 4, !tbaa !5
  %1534 = load ptr, ptr %21, align 8, !tbaa !9
  %1535 = load ptr, ptr %4, align 8, !tbaa !9
  %1536 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1534, ptr noundef %1535) #11
  %1537 = icmp eq i32 %1536, -1
  br i1 %1537, label %1538, label %1562

1538:                                             ; preds = %1531
  %1539 = tail call ptr @__errno_location() #12
  %1540 = load i32, ptr %1539, align 4, !tbaa !5
  %1541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1542 = call i32 @s2n_print_stacktrace(ptr noundef %1541) #11
  %1543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1544 = trunc nuw i8 %1543 to i1
  br i1 %1544, label %1545, label %1549

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

1549:                                             ; preds = %1545, %1538
  br label %1550

1550:                                             ; preds = %1545, %1549
  %.str.5.sink1860 = phi ptr [ @.str.5, %1549 ], [ @.str.2, %1545 ]
  store i32 %1540, ptr %1539, align 4, !tbaa !5
  %1551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1552 = load i32, ptr @test_count, align 4, !tbaa !5
  %1553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  %1555 = call ptr @s2n_strerror(i32 noundef %1554, ptr noundef nonnull @.str.4) #11
  %1556 = load i32, ptr %1553, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror_debug(i32 noundef %1556, ptr noundef nonnull @.str.4) #11
  %1558 = load i32, ptr %1539, align 4, !tbaa !5
  %1559 = call ptr @strerror(i32 noundef %1558) #11
  %1560 = load i32, ptr %1539, align 4, !tbaa !5
  %1561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1551, ptr noundef nonnull %.str.5.sink1860, i32 noundef %1552, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %1555, ptr noundef %1557, ptr noundef %1559, i32 noundef %1560) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1562:                                             ; preds = %1531
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %1563 = call ptr @s2n_config_new() #11
  store ptr %1563, ptr %22, align 8, !tbaa !9
  %1564 = load i32, ptr @test_count, align 4, !tbaa !5
  %1565 = add nsw i32 %1564, 1
  store i32 %1565, ptr @test_count, align 4, !tbaa !5
  %1566 = load ptr, ptr %4, align 8, !tbaa !9
  %1567 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1563, ptr noundef %1566) #11
  %1568 = icmp eq i32 %1567, -1
  br i1 %1568, label %1569, label %1593

1569:                                             ; preds = %1562
  %1570 = tail call ptr @__errno_location() #12
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = call i32 @s2n_print_stacktrace(ptr noundef %1572) #11
  %1574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1575 = trunc nuw i8 %1574 to i1
  br i1 %1575, label %1576, label %1580

1576:                                             ; preds = %1569
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = call i32 @fileno(ptr noundef %1577) #11
  %1579 = call i32 @isatty(i32 noundef %1578) #11
  %.not1279 = icmp eq i32 %1579, 0
  br i1 %.not1279, label %1580, label %1581

1580:                                             ; preds = %1576, %1569
  br label %1581

1581:                                             ; preds = %1576, %1580
  %.str.5.sink1871 = phi ptr [ @.str.5, %1580 ], [ @.str.2, %1576 ]
  store i32 %1571, ptr %1570, align 4, !tbaa !5
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = load i32, ptr @test_count, align 4, !tbaa !5
  %1584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = call ptr @s2n_strerror(i32 noundef %1585, ptr noundef nonnull @.str.4) #11
  %1587 = load i32, ptr %1584, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef %1587, ptr noundef nonnull @.str.4) #11
  %1589 = load i32, ptr %1570, align 4, !tbaa !5
  %1590 = call ptr @strerror(i32 noundef %1589) #11
  %1591 = load i32, ptr %1570, align 4, !tbaa !5
  %1592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1582, ptr noundef nonnull %.str.5.sink1871, i32 noundef %1583, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1586, ptr noundef %1588, ptr noundef %1590, i32 noundef %1591) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1593:                                             ; preds = %1562
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  %1594 = call ptr @s2n_config_new() #11
  store ptr %1594, ptr %23, align 8, !tbaa !9
  %1595 = load i32, ptr @test_count, align 4, !tbaa !5
  %1596 = add nsw i32 %1595, 1
  store i32 %1596, ptr @test_count, align 4, !tbaa !5
  %1597 = load ptr, ptr %3, align 8, !tbaa !9
  %1598 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1594, ptr noundef %1597) #11
  %1599 = icmp eq i32 %1598, -1
  br i1 %1599, label %1600, label %1624

1600:                                             ; preds = %1593
  %1601 = tail call ptr @__errno_location() #12
  %1602 = load i32, ptr %1601, align 4, !tbaa !5
  %1603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1604 = call i32 @s2n_print_stacktrace(ptr noundef %1603) #11
  %1605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1606 = trunc nuw i8 %1605 to i1
  br i1 %1606, label %1607, label %1611

1607:                                             ; preds = %1600
  %1608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1609 = call i32 @fileno(ptr noundef %1608) #11
  %1610 = call i32 @isatty(i32 noundef %1609) #11
  %.not1278 = icmp eq i32 %1610, 0
  br i1 %.not1278, label %1611, label %1612

1611:                                             ; preds = %1607, %1600
  br label %1612

1612:                                             ; preds = %1607, %1611
  %.str.5.sink1882 = phi ptr [ @.str.5, %1611 ], [ @.str.2, %1607 ]
  store i32 %1602, ptr %1601, align 4, !tbaa !5
  %1613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1614 = load i32, ptr @test_count, align 4, !tbaa !5
  %1615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror(i32 noundef %1616, ptr noundef nonnull @.str.4) #11
  %1618 = load i32, ptr %1615, align 4, !tbaa !5
  %1619 = call ptr @s2n_strerror_debug(i32 noundef %1618, ptr noundef nonnull @.str.4) #11
  %1620 = load i32, ptr %1601, align 4, !tbaa !5
  %1621 = call ptr @strerror(i32 noundef %1620) #11
  %1622 = load i32, ptr %1601, align 4, !tbaa !5
  %1623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1613, ptr noundef nonnull %.str.5.sink1882, i32 noundef %1614, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 231, ptr noundef %1617, ptr noundef %1619, ptr noundef %1621, i32 noundef %1622) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1624:                                             ; preds = %1593
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %24, ptr noundef nonnull align 16 dereferenceable(32) @__const.main.test_schemes, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #11
  %1625 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %1625, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %26) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %26, i8 0, i64 80, i1 false)
  %1626 = load i32, ptr @test_count, align 4, !tbaa !5
  %1627 = add nsw i32 %1626, 1
  store i32 %1627, ptr @test_count, align 4, !tbaa !5
  %1628 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %1625, ptr noundef nonnull %26, ptr noundef nonnull %24, i64 noundef 4)
  %1629 = call zeroext i1 @s2n_result_is_ok(i32 %1628)
  br i1 %1629, label %1654, label %1630

1630:                                             ; preds = %1624
  %1631 = tail call ptr @__errno_location() #12
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = call i32 @s2n_print_stacktrace(ptr noundef %1633) #11
  %1635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1636 = trunc nuw i8 %1635 to i1
  br i1 %1636, label %1637, label %1641

1637:                                             ; preds = %1630
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = call i32 @fileno(ptr noundef %1638) #11
  %1640 = call i32 @isatty(i32 noundef %1639) #11
  %.not983 = icmp eq i32 %1640, 0
  br i1 %.not983, label %1641, label %1642

1641:                                             ; preds = %1637, %1630
  br label %1642

1642:                                             ; preds = %1637, %1641
  %.str.5.sink1893 = phi ptr [ @.str.5, %1641 ], [ @.str.2, %1637 ]
  store i32 %1632, ptr %1631, align 4, !tbaa !5
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = load i32, ptr @test_count, align 4, !tbaa !5
  %1645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1646 = load i32, ptr %1645, align 4, !tbaa !5
  %1647 = call ptr @s2n_strerror(i32 noundef %1646, ptr noundef nonnull @.str.4) #11
  %1648 = load i32, ptr %1645, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror_debug(i32 noundef %1648, ptr noundef nonnull @.str.4) #11
  %1650 = load i32, ptr %1631, align 4, !tbaa !5
  %1651 = call ptr @strerror(i32 noundef %1650) #11
  %1652 = load i32, ptr %1631, align 4, !tbaa !5
  %1653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1643, ptr noundef nonnull %.str.5.sink1893, i32 noundef %1644, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %1647, ptr noundef %1649, ptr noundef %1651, i32 noundef %1652) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1654:                                             ; preds = %1624
  %1655 = load i32, ptr @test_count, align 4, !tbaa !5
  %1656 = add nsw i32 %1655, 1
  store i32 %1656, ptr @test_count, align 4, !tbaa !5
  %1657 = load ptr, ptr %25, align 8, !tbaa !9
  %1658 = getelementptr inbounds i8, ptr %1657, i64 1268
  %1659 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %1658, ptr noundef nonnull %24, i64 noundef 4)
  %1660 = call zeroext i1 @s2n_result_is_ok(i32 %1659)
  br i1 %1660, label %1685, label %1661

1661:                                             ; preds = %1654
  %1662 = tail call ptr @__errno_location() #12
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = call i32 @s2n_print_stacktrace(ptr noundef %1664) #11
  %1666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1667 = trunc nuw i8 %1666 to i1
  br i1 %1667, label %1668, label %1672

1668:                                             ; preds = %1661
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = call i32 @fileno(ptr noundef %1669) #11
  %1671 = call i32 @isatty(i32 noundef %1670) #11
  %.not984 = icmp eq i32 %1671, 0
  br i1 %.not984, label %1672, label %1673

1672:                                             ; preds = %1668, %1661
  br label %1673

1673:                                             ; preds = %1668, %1672
  %.str.5.sink1904 = phi ptr [ @.str.5, %1672 ], [ @.str.2, %1668 ]
  store i32 %1663, ptr %1662, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = load i32, ptr @test_count, align 4, !tbaa !5
  %1676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  %1678 = call ptr @s2n_strerror(i32 noundef %1677, ptr noundef nonnull @.str.4) #11
  %1679 = load i32, ptr %1676, align 4, !tbaa !5
  %1680 = call ptr @s2n_strerror_debug(i32 noundef %1679, ptr noundef nonnull @.str.4) #11
  %1681 = load i32, ptr %1662, align 4, !tbaa !5
  %1682 = call ptr @strerror(i32 noundef %1681) #11
  %1683 = load i32, ptr %1662, align 4, !tbaa !5
  %1684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1674, ptr noundef nonnull %.str.5.sink1904, i32 noundef %1675, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %1678, ptr noundef %1680, ptr noundef %1682, i32 noundef %1683) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1685:                                             ; preds = %1654
  %1686 = load ptr, ptr %25, align 8, !tbaa !9
  %1687 = getelementptr inbounds i8, ptr %1686, i64 1264
  store i32 1, ptr %1687, align 8, !tbaa !58
  %1688 = load i32, ptr @test_count, align 4, !tbaa !5
  %1689 = add nsw i32 %1688, 1
  store i32 %1689, ptr @test_count, align 4, !tbaa !5
  %1690 = load ptr, ptr %22, align 8, !tbaa !9
  %1691 = call i32 @s2n_connection_set_config(ptr noundef %1686, ptr noundef %1690) #11
  %1692 = icmp eq i32 %1691, -1
  br i1 %1692, label %1693, label %1717

1693:                                             ; preds = %1685
  %1694 = tail call ptr @__errno_location() #12
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = call i32 @s2n_print_stacktrace(ptr noundef %1696) #11
  %1698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1699 = trunc nuw i8 %1698 to i1
  br i1 %1699, label %1700, label %1704

1700:                                             ; preds = %1693
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @fileno(ptr noundef %1701) #11
  %1703 = call i32 @isatty(i32 noundef %1702) #11
  %.not1277 = icmp eq i32 %1703, 0
  br i1 %.not1277, label %1704, label %1705

1704:                                             ; preds = %1700, %1693
  br label %1705

1705:                                             ; preds = %1700, %1704
  %.str.5.sink1915 = phi ptr [ @.str.5, %1704 ], [ @.str.2, %1700 ]
  store i32 %1695, ptr %1694, align 4, !tbaa !5
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call ptr @s2n_strerror(i32 noundef %1709, ptr noundef nonnull @.str.4) #11
  %1711 = load i32, ptr %1708, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror_debug(i32 noundef %1711, ptr noundef nonnull @.str.4) #11
  %1713 = load i32, ptr %1694, align 4, !tbaa !5
  %1714 = call ptr @strerror(i32 noundef %1713) #11
  %1715 = load i32, ptr %1694, align 4, !tbaa !5
  %1716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1706, ptr noundef nonnull %.str.5.sink1915, i32 noundef %1707, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %1710, ptr noundef %1712, ptr noundef %1714, i32 noundef %1715) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1717:                                             ; preds = %1685
  %1718 = load ptr, ptr %25, align 8, !tbaa !9
  %1719 = getelementptr inbounds i8, ptr %1718, i64 220
  store i8 32, ptr %1719, align 4, !tbaa !50
  %1720 = load i32, ptr @test_count, align 4, !tbaa !5
  %1721 = add nsw i32 %1720, 1
  store i32 %1721, ptr @test_count, align 4, !tbaa !5
  %1722 = call i32 @s2n_signature_algorithm_select(ptr noundef %1718) #11
  %1723 = call zeroext i1 @s2n_result_is_ok(i32 %1722)
  br i1 %1723, label %1748, label %1724

1724:                                             ; preds = %1717
  %1725 = tail call ptr @__errno_location() #12
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = call i32 @s2n_print_stacktrace(ptr noundef %1727) #11
  %1729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1730 = trunc nuw i8 %1729 to i1
  br i1 %1730, label %1731, label %1735

1731:                                             ; preds = %1724
  %1732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1733 = call i32 @fileno(ptr noundef %1732) #11
  %1734 = call i32 @isatty(i32 noundef %1733) #11
  %.not985 = icmp eq i32 %1734, 0
  br i1 %.not985, label %1735, label %1736

1735:                                             ; preds = %1731, %1724
  br label %1736

1736:                                             ; preds = %1731, %1735
  %.str.5.sink1926 = phi ptr [ @.str.5, %1735 ], [ @.str.2, %1731 ]
  store i32 %1726, ptr %1725, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = load i32, ptr @test_count, align 4, !tbaa !5
  %1739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror(i32 noundef %1740, ptr noundef nonnull @.str.4) #11
  %1742 = load i32, ptr %1739, align 4, !tbaa !5
  %1743 = call ptr @s2n_strerror_debug(i32 noundef %1742, ptr noundef nonnull @.str.4) #11
  %1744 = load i32, ptr %1725, align 4, !tbaa !5
  %1745 = call ptr @strerror(i32 noundef %1744) #11
  %1746 = load i32, ptr %1725, align 4, !tbaa !5
  %1747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1737, ptr noundef nonnull %.str.5.sink1926, i32 noundef %1738, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %1741, ptr noundef %1743, ptr noundef %1745, i32 noundef %1746) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1748:                                             ; preds = %1717
  %1749 = load i32, ptr @test_count, align 4, !tbaa !5
  %1750 = add nsw i32 %1749, 1
  store i32 %1750, ptr @test_count, align 4, !tbaa !5
  %1751 = load ptr, ptr %25, align 8, !tbaa !9
  %1752 = getelementptr inbounds i8, ptr %1751, i64 1536
  %1753 = load ptr, ptr %1752, align 8, !tbaa !59
  %1754 = icmp eq ptr %1753, @s2n_ecdsa_sha1
  br i1 %1754, label %1779, label %1755

1755:                                             ; preds = %1748
  %1756 = tail call ptr @__errno_location() #12
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  %1758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1759 = call i32 @s2n_print_stacktrace(ptr noundef %1758) #11
  %1760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1761 = trunc nuw i8 %1760 to i1
  br i1 %1761, label %1762, label %1766

1762:                                             ; preds = %1755
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = call i32 @fileno(ptr noundef %1763) #11
  %1765 = call i32 @isatty(i32 noundef %1764) #11
  %.not986 = icmp eq i32 %1765, 0
  br i1 %.not986, label %1766, label %1767

1766:                                             ; preds = %1762, %1755
  br label %1767

1767:                                             ; preds = %1762, %1766
  %.str.5.sink1937 = phi ptr [ @.str.5, %1766 ], [ @.str.2, %1762 ]
  store i32 %1757, ptr %1756, align 4, !tbaa !5
  %1768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1769 = load i32, ptr @test_count, align 4, !tbaa !5
  %1770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1771 = load i32, ptr %1770, align 4, !tbaa !5
  %1772 = call ptr @s2n_strerror(i32 noundef %1771, ptr noundef nonnull @.str.4) #11
  %1773 = load i32, ptr %1770, align 4, !tbaa !5
  %1774 = call ptr @s2n_strerror_debug(i32 noundef %1773, ptr noundef nonnull @.str.4) #11
  %1775 = load i32, ptr %1756, align 4, !tbaa !5
  %1776 = call ptr @strerror(i32 noundef %1775) #11
  %1777 = load i32, ptr %1756, align 4, !tbaa !5
  %1778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1768, ptr noundef nonnull %.str.5.sink1937, i32 noundef %1769, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %1772, ptr noundef %1774, ptr noundef %1776, i32 noundef %1777) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1779:                                             ; preds = %1748
  %1780 = getelementptr inbounds i8, ptr %1751, i64 220
  store i8 33, ptr %1780, align 4, !tbaa !50
  %1781 = add nsw i32 %1749, 2
  store i32 %1781, ptr @test_count, align 4, !tbaa !5
  %1782 = call i32 @s2n_signature_algorithm_select(ptr noundef nonnull %1751) #11
  %1783 = call zeroext i1 @s2n_result_is_ok(i32 %1782)
  br i1 %1783, label %1808, label %1784

1784:                                             ; preds = %1779
  %1785 = tail call ptr @__errno_location() #12
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1788 = call i32 @s2n_print_stacktrace(ptr noundef %1787) #11
  %1789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1790 = trunc nuw i8 %1789 to i1
  br i1 %1790, label %1791, label %1795

1791:                                             ; preds = %1784
  %1792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1793 = call i32 @fileno(ptr noundef %1792) #11
  %1794 = call i32 @isatty(i32 noundef %1793) #11
  %.not987 = icmp eq i32 %1794, 0
  br i1 %.not987, label %1795, label %1796

1795:                                             ; preds = %1791, %1784
  br label %1796

1796:                                             ; preds = %1791, %1795
  %.str.5.sink1948 = phi ptr [ @.str.5, %1795 ], [ @.str.2, %1791 ]
  store i32 %1786, ptr %1785, align 4, !tbaa !5
  %1797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1798 = load i32, ptr @test_count, align 4, !tbaa !5
  %1799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1800 = load i32, ptr %1799, align 4, !tbaa !5
  %1801 = call ptr @s2n_strerror(i32 noundef %1800, ptr noundef nonnull @.str.4) #11
  %1802 = load i32, ptr %1799, align 4, !tbaa !5
  %1803 = call ptr @s2n_strerror_debug(i32 noundef %1802, ptr noundef nonnull @.str.4) #11
  %1804 = load i32, ptr %1785, align 4, !tbaa !5
  %1805 = call ptr @strerror(i32 noundef %1804) #11
  %1806 = load i32, ptr %1785, align 4, !tbaa !5
  %1807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1797, ptr noundef nonnull %.str.5.sink1948, i32 noundef %1798, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %1801, ptr noundef %1803, ptr noundef %1805, i32 noundef %1806) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1808:                                             ; preds = %1779
  %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 = load ptr, ptr %25, align 8, !tbaa !9
  %1812 = getelementptr inbounds i8, ptr %1811, i64 1536
  %1813 = load ptr, ptr %1812, align 8, !tbaa !59
  %1814 = icmp eq ptr %1813, @s2n_ecdsa_sha1
  br i1 %1814, label %1815, label %1839

1815:                                             ; preds = %1808
  %1816 = tail call ptr @__errno_location() #12
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = call i32 @s2n_print_stacktrace(ptr noundef %1818) #11
  %1820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1821 = trunc nuw i8 %1820 to i1
  br i1 %1821, label %1822, label %1826

1822:                                             ; preds = %1815
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = call i32 @fileno(ptr noundef %1823) #11
  %1825 = call i32 @isatty(i32 noundef %1824) #11
  %.not1276 = icmp eq i32 %1825, 0
  br i1 %.not1276, label %1826, label %1827

1826:                                             ; preds = %1822, %1815
  br label %1827

1827:                                             ; preds = %1822, %1826
  %.str.5.sink1959 = phi ptr [ @.str.5, %1826 ], [ @.str.2, %1822 ]
  store i32 %1817, ptr %1816, align 4, !tbaa !5
  %1828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1829 = load i32, ptr @test_count, align 4, !tbaa !5
  %1830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call ptr @s2n_strerror(i32 noundef %1831, ptr noundef nonnull @.str.4) #11
  %1833 = load i32, ptr %1830, align 4, !tbaa !5
  %1834 = call ptr @s2n_strerror_debug(i32 noundef %1833, ptr noundef nonnull @.str.4) #11
  %1835 = load i32, ptr %1816, align 4, !tbaa !5
  %1836 = call ptr @strerror(i32 noundef %1835) #11
  %1837 = load i32, ptr %1816, align 4, !tbaa !5
  %1838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1828, ptr noundef nonnull %.str.5.sink1959, i32 noundef %1829, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %1832, ptr noundef %1834, ptr noundef %1836, i32 noundef %1837) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1839:                                             ; preds = %1808
  %1840 = getelementptr inbounds i8, ptr %1811, i64 1264
  store i32 0, ptr %1840, align 8, !tbaa !58
  %1841 = add nsw i32 %1809, 2
  store i32 %1841, ptr @test_count, align 4, !tbaa !5
  %1842 = load ptr, ptr %23, align 8, !tbaa !9
  %1843 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1811, ptr noundef %1842) #11
  %1844 = icmp eq i32 %1843, -1
  br i1 %1844, label %1845, label %1869

1845:                                             ; preds = %1839
  %1846 = tail call ptr @__errno_location() #12
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1849 = call i32 @s2n_print_stacktrace(ptr noundef %1848) #11
  %1850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1851 = trunc nuw i8 %1850 to i1
  br i1 %1851, label %1852, label %1856

1852:                                             ; preds = %1845
  %1853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1854 = call i32 @fileno(ptr noundef %1853) #11
  %1855 = call i32 @isatty(i32 noundef %1854) #11
  %.not1275 = icmp eq i32 %1855, 0
  br i1 %.not1275, label %1856, label %1857

1856:                                             ; preds = %1852, %1845
  br label %1857

1857:                                             ; preds = %1852, %1856
  %.str.5.sink1970 = phi ptr [ @.str.5, %1856 ], [ @.str.2, %1852 ]
  store i32 %1847, ptr %1846, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror(i32 noundef %1861, ptr noundef nonnull @.str.4) #11
  %1863 = load i32, ptr %1860, align 4, !tbaa !5
  %1864 = call ptr @s2n_strerror_debug(i32 noundef %1863, ptr noundef nonnull @.str.4) #11
  %1865 = load i32, ptr %1846, align 4, !tbaa !5
  %1866 = call ptr @strerror(i32 noundef %1865) #11
  %1867 = load i32, ptr %1846, align 4, !tbaa !5
  %1868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1858, ptr noundef nonnull %.str.5.sink1970, i32 noundef %1859, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %1862, ptr noundef %1864, ptr noundef %1866, i32 noundef %1867) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1869:                                             ; preds = %1839
  %1870 = load ptr, ptr %25, align 8, !tbaa !9
  %1871 = getelementptr inbounds i8, ptr %1870, i64 220
  store i8 32, ptr %1871, align 4, !tbaa !50
  %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 = call i32 @s2n_signature_algorithm_select(ptr noundef %1870) #11
  %1875 = call zeroext i1 @s2n_result_is_ok(i32 %1874)
  br i1 %1875, label %1900, label %1876

1876:                                             ; preds = %1869
  %1877 = tail call ptr @__errno_location() #12
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1880 = call i32 @s2n_print_stacktrace(ptr noundef %1879) #11
  %1881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1882 = trunc nuw i8 %1881 to i1
  br i1 %1882, label %1883, label %1887

1883:                                             ; preds = %1876
  %1884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1885 = call i32 @fileno(ptr noundef %1884) #11
  %1886 = call i32 @isatty(i32 noundef %1885) #11
  %.not988 = icmp eq i32 %1886, 0
  br i1 %.not988, label %1887, label %1888

1887:                                             ; preds = %1883, %1876
  br label %1888

1888:                                             ; preds = %1883, %1887
  %.str.5.sink1981 = phi ptr [ @.str.5, %1887 ], [ @.str.2, %1883 ]
  store i32 %1878, ptr %1877, align 4, !tbaa !5
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call ptr @s2n_strerror(i32 noundef %1892, ptr noundef nonnull @.str.4) #11
  %1894 = load i32, ptr %1891, align 4, !tbaa !5
  %1895 = call ptr @s2n_strerror_debug(i32 noundef %1894, ptr noundef nonnull @.str.4) #11
  %1896 = load i32, ptr %1877, align 4, !tbaa !5
  %1897 = call ptr @strerror(i32 noundef %1896) #11
  %1898 = load i32, ptr %1877, align 4, !tbaa !5
  %1899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1889, ptr noundef nonnull %.str.5.sink1981, i32 noundef %1890, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %1893, ptr noundef %1895, ptr noundef %1897, i32 noundef %1898) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1900:                                             ; preds = %1869
  %1901 = load i32, ptr @test_count, align 4, !tbaa !5
  %1902 = add nsw i32 %1901, 1
  store i32 %1902, ptr @test_count, align 4, !tbaa !5
  %1903 = load ptr, ptr %25, align 8, !tbaa !9
  %1904 = getelementptr inbounds i8, ptr %1903, i64 1536
  %1905 = load ptr, ptr %1904, align 8, !tbaa !59
  %1906 = icmp eq ptr %1905, @s2n_rsa_pkcs1_md5_sha1
  br i1 %1906, label %1931, label %1907

1907:                                             ; preds = %1900
  %1908 = tail call ptr @__errno_location() #12
  %1909 = load i32, ptr %1908, align 4, !tbaa !5
  %1910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1911 = call i32 @s2n_print_stacktrace(ptr noundef %1910) #11
  %1912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1913 = trunc nuw i8 %1912 to i1
  br i1 %1913, label %1914, label %1918

1914:                                             ; preds = %1907
  %1915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1916 = call i32 @fileno(ptr noundef %1915) #11
  %1917 = call i32 @isatty(i32 noundef %1916) #11
  %.not989 = icmp eq i32 %1917, 0
  br i1 %.not989, label %1918, label %1919

1918:                                             ; preds = %1914, %1907
  br label %1919

1919:                                             ; preds = %1914, %1918
  %.str.5.sink1992 = phi ptr [ @.str.5, %1918 ], [ @.str.2, %1914 ]
  store i32 %1909, ptr %1908, align 4, !tbaa !5
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = load i32, ptr @test_count, align 4, !tbaa !5
  %1922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = call ptr @s2n_strerror(i32 noundef %1923, ptr noundef nonnull @.str.4) #11
  %1925 = load i32, ptr %1922, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror_debug(i32 noundef %1925, ptr noundef nonnull @.str.4) #11
  %1927 = load i32, ptr %1908, align 4, !tbaa !5
  %1928 = call ptr @strerror(i32 noundef %1927) #11
  %1929 = load i32, ptr %1908, align 4, !tbaa !5
  %1930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1920, ptr noundef nonnull %.str.5.sink1992, i32 noundef %1921, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %1924, ptr noundef %1926, ptr noundef %1928, i32 noundef %1929) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1931:                                             ; preds = %1900
  %1932 = getelementptr inbounds i8, ptr %1903, i64 220
  store i8 33, ptr %1932, align 4, !tbaa !50
  %1933 = add nsw i32 %1901, 2
  store i32 %1933, ptr @test_count, align 4, !tbaa !5
  %1934 = call i32 @s2n_signature_algorithm_select(ptr noundef nonnull %1903) #11
  %1935 = call zeroext i1 @s2n_result_is_ok(i32 %1934)
  br i1 %1935, label %1960, label %1936

1936:                                             ; preds = %1931
  %1937 = tail call ptr @__errno_location() #12
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1940 = call i32 @s2n_print_stacktrace(ptr noundef %1939) #11
  %1941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1942 = trunc nuw i8 %1941 to i1
  br i1 %1942, label %1943, label %1947

1943:                                             ; preds = %1936
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = call i32 @fileno(ptr noundef %1944) #11
  %1946 = call i32 @isatty(i32 noundef %1945) #11
  %.not990 = icmp eq i32 %1946, 0
  br i1 %.not990, label %1947, label %1948

1947:                                             ; preds = %1943, %1936
  br label %1948

1948:                                             ; preds = %1943, %1947
  %.str.5.sink2003 = phi ptr [ @.str.5, %1947 ], [ @.str.2, %1943 ]
  store i32 %1938, ptr %1937, align 4, !tbaa !5
  %1949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1950 = load i32, ptr @test_count, align 4, !tbaa !5
  %1951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror(i32 noundef %1952, ptr noundef nonnull @.str.4) #11
  %1954 = load i32, ptr %1951, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror_debug(i32 noundef %1954, ptr noundef nonnull @.str.4) #11
  %1956 = load i32, ptr %1937, align 4, !tbaa !5
  %1957 = call ptr @strerror(i32 noundef %1956) #11
  %1958 = load i32, ptr %1937, align 4, !tbaa !5
  %1959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1949, ptr noundef nonnull %.str.5.sink2003, i32 noundef %1950, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %1953, ptr noundef %1955, ptr noundef %1957, i32 noundef %1958) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1960:                                             ; preds = %1931
  %1961 = load i32, ptr @test_count, align 4, !tbaa !5
  %1962 = add nsw i32 %1961, 1
  store i32 %1962, ptr @test_count, align 4, !tbaa !5
  %1963 = load ptr, ptr %25, align 8, !tbaa !9
  %1964 = getelementptr inbounds i8, ptr %1963, i64 1536
  %1965 = load ptr, ptr %1964, align 8, !tbaa !59
  %1966 = icmp eq ptr %1965, @s2n_rsa_pkcs1_md5_sha1
  br i1 %1966, label %1967, label %1991

1967:                                             ; preds = %1960
  %1968 = tail call ptr @__errno_location() #12
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = call i32 @s2n_print_stacktrace(ptr noundef %1970) #11
  %1972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1973 = trunc nuw i8 %1972 to i1
  br i1 %1973, label %1974, label %1978

1974:                                             ; preds = %1967
  %1975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1976 = call i32 @fileno(ptr noundef %1975) #11
  %1977 = call i32 @isatty(i32 noundef %1976) #11
  %.not1274 = icmp eq i32 %1977, 0
  br i1 %.not1274, label %1978, label %1979

1978:                                             ; preds = %1974, %1967
  br label %1979

1979:                                             ; preds = %1974, %1978
  %.str.5.sink2014 = phi ptr [ @.str.5, %1978 ], [ @.str.2, %1974 ]
  store i32 %1969, ptr %1968, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = load i32, ptr @test_count, align 4, !tbaa !5
  %1982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call ptr @s2n_strerror(i32 noundef %1983, ptr noundef nonnull @.str.4) #11
  %1985 = load i32, ptr %1982, align 4, !tbaa !5
  %1986 = call ptr @s2n_strerror_debug(i32 noundef %1985, ptr noundef nonnull @.str.4) #11
  %1987 = load i32, ptr %1968, align 4, !tbaa !5
  %1988 = call ptr @strerror(i32 noundef %1987) #11
  %1989 = load i32, ptr %1968, align 4, !tbaa !5
  %1990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1980, ptr noundef nonnull %.str.5.sink2014, i32 noundef %1981, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %1984, ptr noundef %1986, ptr noundef %1988, i32 noundef %1989) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1991:                                             ; preds = %1960
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %26) #11
  %1992 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #11
  %1993 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1993, ptr %27, align 8, !tbaa !9
  %1994 = load i32, ptr @test_count, align 4, !tbaa !5
  %1995 = add nsw i32 %1994, 1
  store i32 %1995, ptr @test_count, align 4, !tbaa !5
  %1996 = load ptr, ptr %21, align 8, !tbaa !9
  %1997 = call i32 @s2n_connection_set_config(ptr noundef %1993, ptr noundef %1996) #11
  %1998 = icmp eq i32 %1997, -1
  br i1 %1998, label %1999, label %2023

1999:                                             ; preds = %1991
  %2000 = tail call ptr @__errno_location() #12
  %2001 = load i32, ptr %2000, align 4, !tbaa !5
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = call i32 @s2n_print_stacktrace(ptr noundef %2002) #11
  %2004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2005 = trunc nuw i8 %2004 to i1
  br i1 %2005, label %2006, label %2010

2006:                                             ; preds = %1999
  %2007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2008 = call i32 @fileno(ptr noundef %2007) #11
  %2009 = call i32 @isatty(i32 noundef %2008) #11
  %.not1273 = icmp eq i32 %2009, 0
  br i1 %.not1273, label %2010, label %2011

2010:                                             ; preds = %2006, %1999
  br label %2011

2011:                                             ; preds = %2006, %2010
  %.str.5.sink2025 = phi ptr [ @.str.5, %2010 ], [ @.str.2, %2006 ]
  store i32 %2001, ptr %2000, align 4, !tbaa !5
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = load i32, ptr @test_count, align 4, !tbaa !5
  %2014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2015 = load i32, ptr %2014, align 4, !tbaa !5
  %2016 = call ptr @s2n_strerror(i32 noundef %2015, ptr noundef nonnull @.str.4) #11
  %2017 = load i32, ptr %2014, align 4, !tbaa !5
  %2018 = call ptr @s2n_strerror_debug(i32 noundef %2017, ptr noundef nonnull @.str.4) #11
  %2019 = load i32, ptr %2000, align 4, !tbaa !5
  %2020 = call ptr @strerror(i32 noundef %2019) #11
  %2021 = load i32, ptr %2000, align 4, !tbaa !5
  %2022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2012, ptr noundef nonnull %.str.5.sink2025, i32 noundef %2013, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %2016, ptr noundef %2018, ptr noundef %2020, i32 noundef %2021) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2023:                                             ; preds = %1991
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %28) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %28, i8 0, i64 80, i1 false)
  %2024 = load i32, ptr @test_count, align 4, !tbaa !5
  %2025 = add nsw i32 %2024, 1
  store i32 %2025, ptr @test_count, align 4, !tbaa !5
  %2026 = load ptr, ptr %27, align 8, !tbaa !9
  %2027 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %2026, ptr noundef nonnull %28, ptr noundef nonnull %24, i64 noundef 4)
  %2028 = call zeroext i1 @s2n_result_is_ok(i32 %2027)
  br i1 %2028, label %2053, label %2029

2029:                                             ; preds = %2023
  %2030 = tail call ptr @__errno_location() #12
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2033 = call i32 @s2n_print_stacktrace(ptr noundef %2032) #11
  %2034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2035 = trunc nuw i8 %2034 to i1
  br i1 %2035, label %2036, label %2040

2036:                                             ; preds = %2029
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = call i32 @fileno(ptr noundef %2037) #11
  %2039 = call i32 @isatty(i32 noundef %2038) #11
  %.not991 = icmp eq i32 %2039, 0
  br i1 %.not991, label %2040, label %2041

2040:                                             ; preds = %2036, %2029
  br label %2041

2041:                                             ; preds = %2036, %2040
  %.str.5.sink2036 = phi ptr [ @.str.5, %2040 ], [ @.str.2, %2036 ]
  store i32 %2031, ptr %2030, align 4, !tbaa !5
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  %2046 = call ptr @s2n_strerror(i32 noundef %2045, ptr noundef nonnull @.str.4) #11
  %2047 = load i32, ptr %2044, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror_debug(i32 noundef %2047, ptr noundef nonnull @.str.4) #11
  %2049 = load i32, ptr %2030, align 4, !tbaa !5
  %2050 = call ptr @strerror(i32 noundef %2049) #11
  %2051 = load i32, ptr %2030, align 4, !tbaa !5
  %2052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2042, ptr noundef nonnull %.str.5.sink2036, i32 noundef %2043, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %2046, ptr noundef %2048, ptr noundef %2050, i32 noundef %2051) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2053:                                             ; preds = %2023
  %2054 = load i32, ptr @test_count, align 4, !tbaa !5
  %2055 = add nsw i32 %2054, 1
  store i32 %2055, ptr @test_count, align 4, !tbaa !5
  %2056 = load ptr, ptr %27, align 8, !tbaa !9
  %2057 = getelementptr inbounds i8, ptr %2056, i64 1268
  %2058 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %2057, ptr noundef nonnull %24, i64 noundef 4)
  %2059 = call zeroext i1 @s2n_result_is_ok(i32 %2058)
  br i1 %2059, label %2084, label %2060

2060:                                             ; preds = %2053
  %2061 = tail call ptr @__errno_location() #12
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  %2063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2064 = call i32 @s2n_print_stacktrace(ptr noundef %2063) #11
  %2065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2066 = trunc nuw i8 %2065 to i1
  br i1 %2066, label %2067, label %2071

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

2071:                                             ; preds = %2067, %2060
  br label %2072

2072:                                             ; preds = %2067, %2071
  %.str.5.sink2047 = phi ptr [ @.str.5, %2071 ], [ @.str.2, %2067 ]
  store i32 %2062, ptr %2061, align 4, !tbaa !5
  %2073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2074 = load i32, ptr @test_count, align 4, !tbaa !5
  %2075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror(i32 noundef %2076, ptr noundef nonnull @.str.4) #11
  %2078 = load i32, ptr %2075, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror_debug(i32 noundef %2078, ptr noundef nonnull @.str.4) #11
  %2080 = load i32, ptr %2061, align 4, !tbaa !5
  %2081 = call ptr @strerror(i32 noundef %2080) #11
  %2082 = load i32, ptr %2061, align 4, !tbaa !5
  %2083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2073, ptr noundef nonnull %.str.5.sink2047, i32 noundef %2074, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %2077, ptr noundef %2079, ptr noundef %2081, i32 noundef %2082) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2084:                                             ; preds = %2053
  %2085 = load ptr, ptr %27, align 8, !tbaa !9
  %2086 = getelementptr inbounds i8, ptr %2085, i64 232
  %2087 = load ptr, ptr %2086, align 8, !tbaa !60
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %2087, align 8, !tbaa !61
  %2088 = load ptr, ptr %27, align 8, !tbaa !9
  %2089 = getelementptr inbounds i8, ptr %2088, i64 220
  store i8 32, ptr %2089, align 4, !tbaa !50
  %2090 = load i32, ptr @test_count, align 4, !tbaa !5
  %2091 = add nsw i32 %2090, 1
  store i32 %2091, ptr @test_count, align 4, !tbaa !5
  %2092 = call i32 @s2n_signature_algorithm_select(ptr noundef %2088) #11
  %2093 = call zeroext i1 @s2n_result_is_ok(i32 %2092)
  br i1 %2093, label %2118, label %2094

2094:                                             ; preds = %2084
  %2095 = tail call ptr @__errno_location() #12
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2098 = call i32 @s2n_print_stacktrace(ptr noundef %2097) #11
  %2099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2100 = trunc nuw i8 %2099 to i1
  br i1 %2100, label %2101, label %2105

2101:                                             ; preds = %2094
  %2102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2103 = call i32 @fileno(ptr noundef %2102) #11
  %2104 = call i32 @isatty(i32 noundef %2103) #11
  %.not993 = icmp eq i32 %2104, 0
  br i1 %.not993, label %2105, label %2106

2105:                                             ; preds = %2101, %2094
  br label %2106

2106:                                             ; preds = %2101, %2105
  %.str.5.sink2058 = phi ptr [ @.str.5, %2105 ], [ @.str.2, %2101 ]
  store i32 %2096, ptr %2095, align 4, !tbaa !5
  %2107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2108 = load i32, ptr @test_count, align 4, !tbaa !5
  %2109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2110 = load i32, ptr %2109, align 4, !tbaa !5
  %2111 = call ptr @s2n_strerror(i32 noundef %2110, ptr noundef nonnull @.str.4) #11
  %2112 = load i32, ptr %2109, align 4, !tbaa !5
  %2113 = call ptr @s2n_strerror_debug(i32 noundef %2112, ptr noundef nonnull @.str.4) #11
  %2114 = load i32, ptr %2095, align 4, !tbaa !5
  %2115 = call ptr @strerror(i32 noundef %2114) #11
  %2116 = load i32, ptr %2095, align 4, !tbaa !5
  %2117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2107, ptr noundef nonnull %.str.5.sink2058, i32 noundef %2108, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %2111, ptr noundef %2113, ptr noundef %2115, i32 noundef %2116) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2118:                                             ; preds = %2084
  %2119 = load i32, ptr @test_count, align 4, !tbaa !5
  %2120 = add nsw i32 %2119, 1
  store i32 %2120, ptr @test_count, align 4, !tbaa !5
  %2121 = load ptr, ptr %27, align 8, !tbaa !9
  %2122 = getelementptr inbounds i8, ptr %2121, i64 1528
  %2123 = load ptr, ptr %2122, align 8, !tbaa !66
  %2124 = icmp eq ptr %2123, @s2n_ecdsa_sha1
  br i1 %2124, label %2149, label %2125

2125:                                             ; preds = %2118
  %2126 = tail call ptr @__errno_location() #12
  %2127 = load i32, ptr %2126, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = call i32 @s2n_print_stacktrace(ptr noundef %2128) #11
  %2130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2131 = trunc nuw i8 %2130 to i1
  br i1 %2131, label %2132, label %2136

2132:                                             ; preds = %2125
  %2133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2134 = call i32 @fileno(ptr noundef %2133) #11
  %2135 = call i32 @isatty(i32 noundef %2134) #11
  %.not994 = icmp eq i32 %2135, 0
  br i1 %.not994, label %2136, label %2137

2136:                                             ; preds = %2132, %2125
  br label %2137

2137:                                             ; preds = %2132, %2136
  %.str.5.sink2069 = phi ptr [ @.str.5, %2136 ], [ @.str.2, %2132 ]
  store i32 %2127, ptr %2126, align 4, !tbaa !5
  %2138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2139 = load i32, ptr @test_count, align 4, !tbaa !5
  %2140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2141 = load i32, ptr %2140, align 4, !tbaa !5
  %2142 = call ptr @s2n_strerror(i32 noundef %2141, ptr noundef nonnull @.str.4) #11
  %2143 = load i32, ptr %2140, align 4, !tbaa !5
  %2144 = call ptr @s2n_strerror_debug(i32 noundef %2143, ptr noundef nonnull @.str.4) #11
  %2145 = load i32, ptr %2126, align 4, !tbaa !5
  %2146 = call ptr @strerror(i32 noundef %2145) #11
  %2147 = load i32, ptr %2126, align 4, !tbaa !5
  %2148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2138, ptr noundef nonnull %.str.5.sink2069, i32 noundef %2139, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %2142, ptr noundef %2144, ptr noundef %2146, i32 noundef %2147) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2149:                                             ; preds = %2118
  %2150 = getelementptr inbounds i8, ptr %2121, i64 220
  store i8 33, ptr %2150, align 4, !tbaa !50
  %2151 = add nsw i32 %2119, 2
  store i32 %2151, ptr @test_count, align 4, !tbaa !5
  %2152 = call i32 @s2n_signature_algorithm_select(ptr noundef nonnull %2121) #11
  %2153 = call zeroext i1 @s2n_result_is_ok(i32 %2152)
  br i1 %2153, label %2178, label %2154

2154:                                             ; preds = %2149
  %2155 = tail call ptr @__errno_location() #12
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2158 = call i32 @s2n_print_stacktrace(ptr noundef %2157) #11
  %2159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2160 = trunc nuw i8 %2159 to i1
  br i1 %2160, label %2161, label %2165

2161:                                             ; preds = %2154
  %2162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2163 = call i32 @fileno(ptr noundef %2162) #11
  %2164 = call i32 @isatty(i32 noundef %2163) #11
  %.not995 = icmp eq i32 %2164, 0
  br i1 %.not995, label %2165, label %2166

2165:                                             ; preds = %2161, %2154
  br label %2166

2166:                                             ; preds = %2161, %2165
  %.str.5.sink2080 = phi ptr [ @.str.5, %2165 ], [ @.str.2, %2161 ]
  store i32 %2156, ptr %2155, align 4, !tbaa !5
  %2167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2168 = load i32, ptr @test_count, align 4, !tbaa !5
  %2169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2170 = load i32, ptr %2169, align 4, !tbaa !5
  %2171 = call ptr @s2n_strerror(i32 noundef %2170, ptr noundef nonnull @.str.4) #11
  %2172 = load i32, ptr %2169, align 4, !tbaa !5
  %2173 = call ptr @s2n_strerror_debug(i32 noundef %2172, ptr noundef nonnull @.str.4) #11
  %2174 = load i32, ptr %2155, align 4, !tbaa !5
  %2175 = call ptr @strerror(i32 noundef %2174) #11
  %2176 = load i32, ptr %2155, align 4, !tbaa !5
  %2177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2167, ptr noundef nonnull %.str.5.sink2080, i32 noundef %2168, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %2171, ptr noundef %2173, ptr noundef %2175, i32 noundef %2176) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2178:                                             ; preds = %2149
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = add nsw i32 %2179, 1
  store i32 %2180, ptr @test_count, align 4, !tbaa !5
  %2181 = load ptr, ptr %27, align 8, !tbaa !9
  %2182 = getelementptr inbounds i8, ptr %2181, i64 1528
  %2183 = load ptr, ptr %2182, align 8, !tbaa !66
  %2184 = icmp eq ptr %2183, @s2n_ecdsa_sha1
  br i1 %2184, label %2185, label %2209

2185:                                             ; preds = %2178
  %2186 = tail call ptr @__errno_location() #12
  %2187 = load i32, ptr %2186, align 4, !tbaa !5
  %2188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2189 = call i32 @s2n_print_stacktrace(ptr noundef %2188) #11
  %2190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2191 = trunc nuw i8 %2190 to i1
  br i1 %2191, label %2192, label %2196

2192:                                             ; preds = %2185
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = call i32 @fileno(ptr noundef %2193) #11
  %2195 = call i32 @isatty(i32 noundef %2194) #11
  %.not1272 = icmp eq i32 %2195, 0
  br i1 %.not1272, label %2196, label %2197

2196:                                             ; preds = %2192, %2185
  br label %2197

2197:                                             ; preds = %2192, %2196
  %.str.5.sink2091 = phi ptr [ @.str.5, %2196 ], [ @.str.2, %2192 ]
  store i32 %2187, ptr %2186, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = load i32, ptr @test_count, align 4, !tbaa !5
  %2200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call ptr @s2n_strerror(i32 noundef %2201, ptr noundef nonnull @.str.4) #11
  %2203 = load i32, ptr %2200, align 4, !tbaa !5
  %2204 = call ptr @s2n_strerror_debug(i32 noundef %2203, ptr noundef nonnull @.str.4) #11
  %2205 = load i32, ptr %2186, align 4, !tbaa !5
  %2206 = call ptr @strerror(i32 noundef %2205) #11
  %2207 = load i32, ptr %2186, align 4, !tbaa !5
  %2208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2198, ptr noundef nonnull %.str.5.sink2091, i32 noundef %2199, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 320, ptr noundef %2202, ptr noundef %2204, ptr noundef %2206, i32 noundef %2207) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2209:                                             ; preds = %2178
  %2210 = getelementptr inbounds i8, ptr %2181, i64 232
  %2211 = load ptr, ptr %2210, align 8, !tbaa !60
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %2211, align 8, !tbaa !61
  %2212 = load ptr, ptr %27, align 8, !tbaa !9
  %2213 = getelementptr inbounds i8, ptr %2212, i64 220
  store i8 32, ptr %2213, align 4, !tbaa !50
  %2214 = add nsw i32 %2179, 2
  store i32 %2214, ptr @test_count, align 4, !tbaa !5
  %2215 = call i32 @s2n_signature_algorithm_select(ptr noundef %2212) #11
  %2216 = call zeroext i1 @s2n_result_is_ok(i32 %2215)
  br i1 %2216, label %2241, label %2217

2217:                                             ; preds = %2209
  %2218 = tail call ptr @__errno_location() #12
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  %2220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2221 = call i32 @s2n_print_stacktrace(ptr noundef %2220) #11
  %2222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2223 = trunc nuw i8 %2222 to i1
  br i1 %2223, label %2224, label %2228

2224:                                             ; preds = %2217
  %2225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2226 = call i32 @fileno(ptr noundef %2225) #11
  %2227 = call i32 @isatty(i32 noundef %2226) #11
  %.not996 = icmp eq i32 %2227, 0
  br i1 %.not996, label %2228, label %2229

2228:                                             ; preds = %2224, %2217
  br label %2229

2229:                                             ; preds = %2224, %2228
  %.str.5.sink2102 = phi ptr [ @.str.5, %2228 ], [ @.str.2, %2224 ]
  store i32 %2219, ptr %2218, align 4, !tbaa !5
  %2230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2231 = load i32, ptr @test_count, align 4, !tbaa !5
  %2232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2233 = load i32, ptr %2232, align 4, !tbaa !5
  %2234 = call ptr @s2n_strerror(i32 noundef %2233, ptr noundef nonnull @.str.4) #11
  %2235 = load i32, ptr %2232, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror_debug(i32 noundef %2235, ptr noundef nonnull @.str.4) #11
  %2237 = load i32, ptr %2218, align 4, !tbaa !5
  %2238 = call ptr @strerror(i32 noundef %2237) #11
  %2239 = load i32, ptr %2218, align 4, !tbaa !5
  %2240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2230, ptr noundef nonnull %.str.5.sink2102, i32 noundef %2231, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %2234, ptr noundef %2236, ptr noundef %2238, i32 noundef %2239) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2241:                                             ; preds = %2209
  %2242 = load i32, ptr @test_count, align 4, !tbaa !5
  %2243 = add nsw i32 %2242, 1
  store i32 %2243, ptr @test_count, align 4, !tbaa !5
  %2244 = load ptr, ptr %27, align 8, !tbaa !9
  %2245 = getelementptr inbounds i8, ptr %2244, i64 1528
  %2246 = load ptr, ptr %2245, align 8, !tbaa !66
  %2247 = icmp eq ptr %2246, @s2n_rsa_pkcs1_md5_sha1
  br i1 %2247, label %2272, label %2248

2248:                                             ; preds = %2241
  %2249 = tail call ptr @__errno_location() #12
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2252 = call i32 @s2n_print_stacktrace(ptr noundef %2251) #11
  %2253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2254 = trunc nuw i8 %2253 to i1
  br i1 %2254, label %2255, label %2259

2255:                                             ; preds = %2248
  %2256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2257 = call i32 @fileno(ptr noundef %2256) #11
  %2258 = call i32 @isatty(i32 noundef %2257) #11
  %.not997 = icmp eq i32 %2258, 0
  br i1 %.not997, label %2259, label %2260

2259:                                             ; preds = %2255, %2248
  br label %2260

2260:                                             ; preds = %2255, %2259
  %.str.5.sink2113 = phi ptr [ @.str.5, %2259 ], [ @.str.2, %2255 ]
  store i32 %2250, ptr %2249, align 4, !tbaa !5
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = load i32, ptr @test_count, align 4, !tbaa !5
  %2263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror(i32 noundef %2264, ptr noundef nonnull @.str.4) #11
  %2266 = load i32, ptr %2263, align 4, !tbaa !5
  %2267 = call ptr @s2n_strerror_debug(i32 noundef %2266, ptr noundef nonnull @.str.4) #11
  %2268 = load i32, ptr %2249, align 4, !tbaa !5
  %2269 = call ptr @strerror(i32 noundef %2268) #11
  %2270 = load i32, ptr %2249, align 4, !tbaa !5
  %2271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2261, ptr noundef nonnull %.str.5.sink2113, i32 noundef %2262, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %2265, ptr noundef %2267, ptr noundef %2269, i32 noundef %2270) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2272:                                             ; preds = %2241
  %2273 = getelementptr inbounds i8, ptr %2244, i64 220
  store i8 33, ptr %2273, align 4, !tbaa !50
  %2274 = add nsw i32 %2242, 2
  store i32 %2274, ptr @test_count, align 4, !tbaa !5
  %2275 = call i32 @s2n_signature_algorithm_select(ptr noundef nonnull %2244) #11
  %2276 = call zeroext i1 @s2n_result_is_ok(i32 %2275)
  br i1 %2276, label %2301, label %2277

2277:                                             ; preds = %2272
  %2278 = tail call ptr @__errno_location() #12
  %2279 = load i32, ptr %2278, align 4, !tbaa !5
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = call i32 @s2n_print_stacktrace(ptr noundef %2280) #11
  %2282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2283 = trunc nuw i8 %2282 to i1
  br i1 %2283, label %2284, label %2288

2284:                                             ; preds = %2277
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = call i32 @fileno(ptr noundef %2285) #11
  %2287 = call i32 @isatty(i32 noundef %2286) #11
  %.not998 = icmp eq i32 %2287, 0
  br i1 %.not998, label %2288, label %2289

2288:                                             ; preds = %2284, %2277
  br label %2289

2289:                                             ; preds = %2284, %2288
  %.str.5.sink2124 = phi ptr [ @.str.5, %2288 ], [ @.str.2, %2284 ]
  store i32 %2279, ptr %2278, align 4, !tbaa !5
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = load i32, ptr @test_count, align 4, !tbaa !5
  %2292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  %2294 = call ptr @s2n_strerror(i32 noundef %2293, ptr noundef nonnull @.str.4) #11
  %2295 = load i32, ptr %2292, align 4, !tbaa !5
  %2296 = call ptr @s2n_strerror_debug(i32 noundef %2295, ptr noundef nonnull @.str.4) #11
  %2297 = load i32, ptr %2278, align 4, !tbaa !5
  %2298 = call ptr @strerror(i32 noundef %2297) #11
  %2299 = load i32, ptr %2278, align 4, !tbaa !5
  %2300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2290, ptr noundef nonnull %.str.5.sink2124, i32 noundef %2291, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 335, ptr noundef %2294, ptr noundef %2296, ptr noundef %2298, i32 noundef %2299) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2301:                                             ; preds = %2272
  %2302 = load i32, ptr @test_count, align 4, !tbaa !5
  %2303 = add nsw i32 %2302, 1
  store i32 %2303, ptr @test_count, align 4, !tbaa !5
  %2304 = load ptr, ptr %27, align 8, !tbaa !9
  %2305 = getelementptr inbounds i8, ptr %2304, i64 1528
  %2306 = load ptr, ptr %2305, align 8, !tbaa !66
  %2307 = icmp eq ptr %2306, @s2n_rsa_pkcs1_md5_sha1
  br i1 %2307, label %2308, label %2332

2308:                                             ; preds = %2301
  %2309 = tail call ptr @__errno_location() #12
  %2310 = load i32, ptr %2309, align 4, !tbaa !5
  %2311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2312 = call i32 @s2n_print_stacktrace(ptr noundef %2311) #11
  %2313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2314 = trunc nuw i8 %2313 to i1
  br i1 %2314, label %2315, label %2319

2315:                                             ; preds = %2308
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2317 = call i32 @fileno(ptr noundef %2316) #11
  %2318 = call i32 @isatty(i32 noundef %2317) #11
  %.not1271 = icmp eq i32 %2318, 0
  br i1 %.not1271, label %2319, label %2320

2319:                                             ; preds = %2315, %2308
  br label %2320

2320:                                             ; preds = %2315, %2319
  %.str.5.sink2135 = phi ptr [ @.str.5, %2319 ], [ @.str.2, %2315 ]
  store i32 %2310, ptr %2309, align 4, !tbaa !5
  %2321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2322 = load i32, ptr @test_count, align 4, !tbaa !5
  %2323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2324 = load i32, ptr %2323, align 4, !tbaa !5
  %2325 = call ptr @s2n_strerror(i32 noundef %2324, ptr noundef nonnull @.str.4) #11
  %2326 = load i32, ptr %2323, align 4, !tbaa !5
  %2327 = call ptr @s2n_strerror_debug(i32 noundef %2326, ptr noundef nonnull @.str.4) #11
  %2328 = load i32, ptr %2309, align 4, !tbaa !5
  %2329 = call ptr @strerror(i32 noundef %2328) #11
  %2330 = load i32, ptr %2309, align 4, !tbaa !5
  %2331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2321, ptr noundef nonnull %.str.5.sink2135, i32 noundef %2322, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %2325, ptr noundef %2327, ptr noundef %2329, i32 noundef %2330) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2332:                                             ; preds = %2301
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %28) #11
  %2333 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %27) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #11
  store ptr @s2n_ecdsa_sha256, ptr %29, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #11
  %2334 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %2334, ptr %30, align 8, !tbaa !9
  %2335 = load i32, ptr @test_count, align 4, !tbaa !5
  %2336 = add nsw i32 %2335, 1
  store i32 %2336, ptr @test_count, align 4, !tbaa !5
  %2337 = load ptr, ptr %22, align 8, !tbaa !9
  %2338 = call i32 @s2n_connection_set_config(ptr noundef %2334, ptr noundef %2337) #11
  %2339 = icmp eq i32 %2338, -1
  br i1 %2339, label %2340, label %2364

2340:                                             ; preds = %2332
  %2341 = tail call ptr @__errno_location() #12
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2344 = call i32 @s2n_print_stacktrace(ptr noundef %2343) #11
  %2345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2346 = trunc nuw i8 %2345 to i1
  br i1 %2346, label %2347, label %2351

2347:                                             ; preds = %2340
  %2348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2349 = call i32 @fileno(ptr noundef %2348) #11
  %2350 = call i32 @isatty(i32 noundef %2349) #11
  %.not1270 = icmp eq i32 %2350, 0
  br i1 %.not1270, label %2351, label %2352

2351:                                             ; preds = %2347, %2340
  br label %2352

2352:                                             ; preds = %2347, %2351
  %.str.5.sink2146 = phi ptr [ @.str.5, %2351 ], [ @.str.2, %2347 ]
  store i32 %2342, ptr %2341, align 4, !tbaa !5
  %2353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2354 = load i32, ptr @test_count, align 4, !tbaa !5
  %2355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = call ptr @s2n_strerror(i32 noundef %2356, ptr noundef nonnull @.str.4) #11
  %2358 = load i32, ptr %2355, align 4, !tbaa !5
  %2359 = call ptr @s2n_strerror_debug(i32 noundef %2358, ptr noundef nonnull @.str.4) #11
  %2360 = load i32, ptr %2341, align 4, !tbaa !5
  %2361 = call ptr @strerror(i32 noundef %2360) #11
  %2362 = load i32, ptr %2341, align 4, !tbaa !5
  %2363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2353, ptr noundef nonnull %.str.5.sink2146, i32 noundef %2354, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 347, ptr noundef %2357, ptr noundef %2359, ptr noundef %2361, i32 noundef %2362) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2364:                                             ; preds = %2332
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %31) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %31, i8 0, i64 80, i1 false)
  %2365 = load i32, ptr @test_count, align 4, !tbaa !5
  %2366 = add nsw i32 %2365, 1
  store i32 %2366, ptr @test_count, align 4, !tbaa !5
  %2367 = load ptr, ptr %30, align 8, !tbaa !9
  %2368 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %2367, ptr noundef nonnull %31, ptr noundef nonnull %29, i64 noundef 1)
  %2369 = call zeroext i1 @s2n_result_is_ok(i32 %2368)
  br i1 %2369, label %2394, label %2370

2370:                                             ; preds = %2364
  %2371 = tail call ptr @__errno_location() #12
  %2372 = load i32, ptr %2371, align 4, !tbaa !5
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = call i32 @s2n_print_stacktrace(ptr noundef %2373) #11
  %2375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2376 = trunc nuw i8 %2375 to i1
  br i1 %2376, label %2377, label %2381

2377:                                             ; preds = %2370
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = call i32 @fileno(ptr noundef %2378) #11
  %2380 = call i32 @isatty(i32 noundef %2379) #11
  %.not999 = icmp eq i32 %2380, 0
  br i1 %.not999, label %2381, label %2382

2381:                                             ; preds = %2377, %2370
  br label %2382

2382:                                             ; preds = %2377, %2381
  %.str.5.sink2157 = phi ptr [ @.str.5, %2381 ], [ @.str.2, %2377 ]
  store i32 %2372, ptr %2371, align 4, !tbaa !5
  %2383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2384 = load i32, ptr @test_count, align 4, !tbaa !5
  %2385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2386 = load i32, ptr %2385, align 4, !tbaa !5
  %2387 = call ptr @s2n_strerror(i32 noundef %2386, ptr noundef nonnull @.str.4) #11
  %2388 = load i32, ptr %2385, align 4, !tbaa !5
  %2389 = call ptr @s2n_strerror_debug(i32 noundef %2388, ptr noundef nonnull @.str.4) #11
  %2390 = load i32, ptr %2371, align 4, !tbaa !5
  %2391 = call ptr @strerror(i32 noundef %2390) #11
  %2392 = load i32, ptr %2371, align 4, !tbaa !5
  %2393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2383, ptr noundef nonnull %.str.5.sink2157, i32 noundef %2384, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 350, ptr noundef %2387, ptr noundef %2389, ptr noundef %2391, i32 noundef %2392) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2394:                                             ; preds = %2364
  %2395 = load i32, ptr @test_count, align 4, !tbaa !5
  %2396 = add nsw i32 %2395, 1
  store i32 %2396, ptr @test_count, align 4, !tbaa !5
  %2397 = load ptr, ptr %30, align 8, !tbaa !9
  %2398 = getelementptr inbounds i8, ptr %2397, i64 1268
  %2399 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %2398, ptr noundef nonnull %29, i64 noundef 1)
  %2400 = call zeroext i1 @s2n_result_is_ok(i32 %2399)
  br i1 %2400, label %2425, label %2401

2401:                                             ; preds = %2394
  %2402 = tail call ptr @__errno_location() #12
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2405 = call i32 @s2n_print_stacktrace(ptr noundef %2404) #11
  %2406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2407 = trunc nuw i8 %2406 to i1
  br i1 %2407, label %2408, label %2412

2408:                                             ; preds = %2401
  %2409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2410 = call i32 @fileno(ptr noundef %2409) #11
  %2411 = call i32 @isatty(i32 noundef %2410) #11
  %.not1000 = icmp eq i32 %2411, 0
  br i1 %.not1000, label %2412, label %2413

2412:                                             ; preds = %2408, %2401
  br label %2413

2413:                                             ; preds = %2408, %2412
  %.str.5.sink2168 = phi ptr [ @.str.5, %2412 ], [ @.str.2, %2408 ]
  store i32 %2403, ptr %2402, align 4, !tbaa !5
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = load i32, ptr @test_count, align 4, !tbaa !5
  %2416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  %2418 = call ptr @s2n_strerror(i32 noundef %2417, ptr noundef nonnull @.str.4) #11
  %2419 = load i32, ptr %2416, align 4, !tbaa !5
  %2420 = call ptr @s2n_strerror_debug(i32 noundef %2419, ptr noundef nonnull @.str.4) #11
  %2421 = load i32, ptr %2402, align 4, !tbaa !5
  %2422 = call ptr @strerror(i32 noundef %2421) #11
  %2423 = load i32, ptr %2402, align 4, !tbaa !5
  %2424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2414, ptr noundef nonnull %.str.5.sink2168, i32 noundef %2415, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 352, ptr noundef %2418, ptr noundef %2420, ptr noundef %2422, i32 noundef %2423) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2425:                                             ; preds = %2394
  %2426 = load i32, ptr @test_count, align 4, !tbaa !5
  %2427 = add nsw i32 %2426, 1
  store i32 %2427, ptr @test_count, align 4, !tbaa !5
  %2428 = load ptr, ptr %30, align 8, !tbaa !9
  %2429 = call i32 @s2n_signature_algorithm_select(ptr noundef %2428) #11
  %2430 = call zeroext i1 @s2n_result_is_ok(i32 %2429)
  br i1 %2430, label %2455, label %2431

2431:                                             ; preds = %2425
  %2432 = tail call ptr @__errno_location() #12
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2435 = call i32 @s2n_print_stacktrace(ptr noundef %2434) #11
  %2436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2437 = trunc nuw i8 %2436 to i1
  br i1 %2437, label %2438, label %2442

2438:                                             ; preds = %2431
  %2439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2440 = call i32 @fileno(ptr noundef %2439) #11
  %2441 = call i32 @isatty(i32 noundef %2440) #11
  %.not1001 = icmp eq i32 %2441, 0
  br i1 %.not1001, label %2442, label %2443

2442:                                             ; preds = %2438, %2431
  br label %2443

2443:                                             ; preds = %2438, %2442
  %.str.5.sink2179 = phi ptr [ @.str.5, %2442 ], [ @.str.2, %2438 ]
  store i32 %2433, ptr %2432, align 4, !tbaa !5
  %2444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2445 = load i32, ptr @test_count, align 4, !tbaa !5
  %2446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2447 = load i32, ptr %2446, align 4, !tbaa !5
  %2448 = call ptr @s2n_strerror(i32 noundef %2447, ptr noundef nonnull @.str.4) #11
  %2449 = load i32, ptr %2446, align 4, !tbaa !5
  %2450 = call ptr @s2n_strerror_debug(i32 noundef %2449, ptr noundef nonnull @.str.4) #11
  %2451 = load i32, ptr %2432, align 4, !tbaa !5
  %2452 = call ptr @strerror(i32 noundef %2451) #11
  %2453 = load i32, ptr %2432, align 4, !tbaa !5
  %2454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2444, ptr noundef nonnull %.str.5.sink2179, i32 noundef %2445, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 354, ptr noundef %2448, ptr noundef %2450, ptr noundef %2452, i32 noundef %2453) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2455:                                             ; preds = %2425
  %2456 = load i32, ptr @test_count, align 4, !tbaa !5
  %2457 = add nsw i32 %2456, 1
  store i32 %2457, ptr @test_count, align 4, !tbaa !5
  %2458 = load ptr, ptr %30, align 8, !tbaa !9
  %2459 = getelementptr inbounds i8, ptr %2458, i64 1536
  %2460 = load ptr, ptr %2459, align 8, !tbaa !59
  %2461 = load ptr, ptr %29, align 8, !tbaa !9
  %2462 = icmp eq ptr %2460, %2461
  br i1 %2462, label %2487, label %2463

2463:                                             ; preds = %2455
  %2464 = tail call ptr @__errno_location() #12
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = call i32 @s2n_print_stacktrace(ptr noundef %2466) #11
  %2468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2469 = trunc nuw i8 %2468 to i1
  br i1 %2469, label %2470, label %2474

2470:                                             ; preds = %2463
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = call i32 @fileno(ptr noundef %2471) #11
  %2473 = call i32 @isatty(i32 noundef %2472) #11
  %.not1002 = icmp eq i32 %2473, 0
  br i1 %.not1002, label %2474, label %2475

2474:                                             ; preds = %2470, %2463
  br label %2475

2475:                                             ; preds = %2470, %2474
  %.str.5.sink2190 = phi ptr [ @.str.5, %2474 ], [ @.str.2, %2470 ]
  store i32 %2465, ptr %2464, align 4, !tbaa !5
  %2476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2477 = load i32, ptr @test_count, align 4, !tbaa !5
  %2478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror(i32 noundef %2479, ptr noundef nonnull @.str.4) #11
  %2481 = load i32, ptr %2478, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror_debug(i32 noundef %2481, ptr noundef nonnull @.str.4) #11
  %2483 = load i32, ptr %2464, align 4, !tbaa !5
  %2484 = call ptr @strerror(i32 noundef %2483) #11
  %2485 = load i32, ptr %2464, align 4, !tbaa !5
  %2486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2476, ptr noundef nonnull %.str.5.sink2190, i32 noundef %2477, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 355, ptr noundef %2480, ptr noundef %2482, ptr noundef %2484, i32 noundef %2485) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2487:                                             ; preds = %2455
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %31) #11
  %2488 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #11
  store ptr @s2n_ecdsa_sha256, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #11
  %2489 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2489, ptr %33, align 8, !tbaa !9
  %2490 = getelementptr inbounds i8, ptr %2489, i64 220
  store i8 33, ptr %2490, align 4, !tbaa !50
  %2491 = getelementptr inbounds i8, ptr %2489, i64 232
  %2492 = load ptr, ptr %2491, align 8, !tbaa !60
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %2492, align 8, !tbaa !61
  %2493 = load i32, ptr @test_count, align 4, !tbaa !5
  %2494 = add nsw i32 %2493, 1
  store i32 %2494, ptr @test_count, align 4, !tbaa !5
  %2495 = load ptr, ptr %33, align 8, !tbaa !9
  %2496 = load ptr, ptr %21, align 8, !tbaa !9
  %2497 = call i32 @s2n_connection_set_config(ptr noundef %2495, ptr noundef %2496) #11
  %2498 = icmp eq i32 %2497, -1
  br i1 %2498, label %2499, label %2523

2499:                                             ; preds = %2487
  %2500 = tail call ptr @__errno_location() #12
  %2501 = load i32, ptr %2500, align 4, !tbaa !5
  %2502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2503 = call i32 @s2n_print_stacktrace(ptr noundef %2502) #11
  %2504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2505 = trunc nuw i8 %2504 to i1
  br i1 %2505, label %2506, label %2510

2506:                                             ; preds = %2499
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = call i32 @fileno(ptr noundef %2507) #11
  %2509 = call i32 @isatty(i32 noundef %2508) #11
  %.not1269 = icmp eq i32 %2509, 0
  br i1 %.not1269, label %2510, label %2511

2510:                                             ; preds = %2506, %2499
  br label %2511

2511:                                             ; preds = %2506, %2510
  %.str.5.sink2201 = phi ptr [ @.str.5, %2510 ], [ @.str.2, %2506 ]
  store i32 %2501, ptr %2500, align 4, !tbaa !5
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = load i32, ptr @test_count, align 4, !tbaa !5
  %2514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2515 = load i32, ptr %2514, align 4, !tbaa !5
  %2516 = call ptr @s2n_strerror(i32 noundef %2515, ptr noundef nonnull @.str.4) #11
  %2517 = load i32, ptr %2514, align 4, !tbaa !5
  %2518 = call ptr @s2n_strerror_debug(i32 noundef %2517, ptr noundef nonnull @.str.4) #11
  %2519 = load i32, ptr %2500, align 4, !tbaa !5
  %2520 = call ptr @strerror(i32 noundef %2519) #11
  %2521 = load i32, ptr %2500, align 4, !tbaa !5
  %2522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2512, ptr noundef nonnull %.str.5.sink2201, i32 noundef %2513, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %2516, ptr noundef %2518, ptr noundef %2520, i32 noundef %2521) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2523:                                             ; preds = %2487
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %34) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %34, i8 0, i64 80, i1 false)
  %2524 = load i32, ptr @test_count, align 4, !tbaa !5
  %2525 = add nsw i32 %2524, 1
  store i32 %2525, ptr @test_count, align 4, !tbaa !5
  %2526 = load ptr, ptr %33, align 8, !tbaa !9
  %2527 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %2526, ptr noundef nonnull %34, ptr noundef nonnull %32, i64 noundef 1)
  %2528 = call zeroext i1 @s2n_result_is_ok(i32 %2527)
  br i1 %2528, label %2553, label %2529

2529:                                             ; preds = %2523
  %2530 = tail call ptr @__errno_location() #12
  %2531 = load i32, ptr %2530, align 4, !tbaa !5
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = call i32 @s2n_print_stacktrace(ptr noundef %2532) #11
  %2534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2535 = trunc nuw i8 %2534 to i1
  br i1 %2535, label %2536, label %2540

2536:                                             ; preds = %2529
  %2537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2538 = call i32 @fileno(ptr noundef %2537) #11
  %2539 = call i32 @isatty(i32 noundef %2538) #11
  %.not1003 = icmp eq i32 %2539, 0
  br i1 %.not1003, label %2540, label %2541

2540:                                             ; preds = %2536, %2529
  br label %2541

2541:                                             ; preds = %2536, %2540
  %.str.5.sink2212 = phi ptr [ @.str.5, %2540 ], [ @.str.2, %2536 ]
  store i32 %2531, ptr %2530, align 4, !tbaa !5
  %2542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2543 = load i32, ptr @test_count, align 4, !tbaa !5
  %2544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror(i32 noundef %2545, ptr noundef nonnull @.str.4) #11
  %2547 = load i32, ptr %2544, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror_debug(i32 noundef %2547, ptr noundef nonnull @.str.4) #11
  %2549 = load i32, ptr %2530, align 4, !tbaa !5
  %2550 = call ptr @strerror(i32 noundef %2549) #11
  %2551 = load i32, ptr %2530, align 4, !tbaa !5
  %2552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2542, ptr noundef nonnull %.str.5.sink2212, i32 noundef %2543, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %2546, ptr noundef %2548, ptr noundef %2550, i32 noundef %2551) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2553:                                             ; preds = %2523
  %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 = load ptr, ptr %33, align 8, !tbaa !9
  %2557 = getelementptr inbounds i8, ptr %2556, i64 1268
  %2558 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %2557, ptr noundef nonnull %32, i64 noundef 1)
  %2559 = call zeroext i1 @s2n_result_is_ok(i32 %2558)
  br i1 %2559, label %2584, label %2560

2560:                                             ; preds = %2553
  %2561 = tail call ptr @__errno_location() #12
  %2562 = load i32, ptr %2561, align 4, !tbaa !5
  %2563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2564 = call i32 @s2n_print_stacktrace(ptr noundef %2563) #11
  %2565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2566 = trunc nuw i8 %2565 to i1
  br i1 %2566, label %2567, label %2571

2567:                                             ; preds = %2560
  %2568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2569 = call i32 @fileno(ptr noundef %2568) #11
  %2570 = call i32 @isatty(i32 noundef %2569) #11
  %.not1004 = icmp eq i32 %2570, 0
  br i1 %.not1004, label %2571, label %2572

2571:                                             ; preds = %2567, %2560
  br label %2572

2572:                                             ; preds = %2567, %2571
  %.str.5.sink2223 = phi ptr [ @.str.5, %2571 ], [ @.str.2, %2567 ]
  store i32 %2562, ptr %2561, align 4, !tbaa !5
  %2573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2574 = load i32, ptr @test_count, align 4, !tbaa !5
  %2575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2576 = load i32, ptr %2575, align 4, !tbaa !5
  %2577 = call ptr @s2n_strerror(i32 noundef %2576, ptr noundef nonnull @.str.4) #11
  %2578 = load i32, ptr %2575, align 4, !tbaa !5
  %2579 = call ptr @s2n_strerror_debug(i32 noundef %2578, ptr noundef nonnull @.str.4) #11
  %2580 = load i32, ptr %2561, align 4, !tbaa !5
  %2581 = call ptr @strerror(i32 noundef %2580) #11
  %2582 = load i32, ptr %2561, align 4, !tbaa !5
  %2583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2573, ptr noundef nonnull %.str.5.sink2223, i32 noundef %2574, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %2577, ptr noundef %2579, ptr noundef %2581, i32 noundef %2582) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2584:                                             ; preds = %2553
  %2585 = load i32, ptr @test_count, align 4, !tbaa !5
  %2586 = add nsw i32 %2585, 1
  store i32 %2586, ptr @test_count, align 4, !tbaa !5
  %2587 = load ptr, ptr %33, align 8, !tbaa !9
  %2588 = call i32 @s2n_signature_algorithm_select(ptr noundef %2587) #11
  %2589 = call zeroext i1 @s2n_result_is_ok(i32 %2588)
  br i1 %2589, label %2614, label %2590

2590:                                             ; preds = %2584
  %2591 = tail call ptr @__errno_location() #12
  %2592 = load i32, ptr %2591, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = call i32 @s2n_print_stacktrace(ptr noundef %2593) #11
  %2595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2596 = trunc nuw i8 %2595 to i1
  br i1 %2596, label %2597, label %2601

2597:                                             ; preds = %2590
  %2598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2599 = call i32 @fileno(ptr noundef %2598) #11
  %2600 = call i32 @isatty(i32 noundef %2599) #11
  %.not1005 = icmp eq i32 %2600, 0
  br i1 %.not1005, label %2601, label %2602

2601:                                             ; preds = %2597, %2590
  br label %2602

2602:                                             ; preds = %2597, %2601
  %.str.5.sink2234 = phi ptr [ @.str.5, %2601 ], [ @.str.2, %2597 ]
  store i32 %2592, ptr %2591, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = load i32, ptr @test_count, align 4, !tbaa !5
  %2605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2606 = load i32, ptr %2605, align 4, !tbaa !5
  %2607 = call ptr @s2n_strerror(i32 noundef %2606, ptr noundef nonnull @.str.4) #11
  %2608 = load i32, ptr %2605, align 4, !tbaa !5
  %2609 = call ptr @s2n_strerror_debug(i32 noundef %2608, ptr noundef nonnull @.str.4) #11
  %2610 = load i32, ptr %2591, align 4, !tbaa !5
  %2611 = call ptr @strerror(i32 noundef %2610) #11
  %2612 = load i32, ptr %2591, align 4, !tbaa !5
  %2613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2603, ptr noundef nonnull %.str.5.sink2234, i32 noundef %2604, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %2607, ptr noundef %2609, ptr noundef %2611, i32 noundef %2612) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2614:                                             ; preds = %2584
  %2615 = load i32, ptr @test_count, align 4, !tbaa !5
  %2616 = add nsw i32 %2615, 1
  store i32 %2616, ptr @test_count, align 4, !tbaa !5
  %2617 = load ptr, ptr %33, align 8, !tbaa !9
  %2618 = getelementptr inbounds i8, ptr %2617, i64 1528
  %2619 = load ptr, ptr %2618, align 8, !tbaa !66
  %2620 = load ptr, ptr %32, align 8, !tbaa !9
  %2621 = icmp eq ptr %2619, %2620
  br i1 %2621, label %2646, label %2622

2622:                                             ; preds = %2614
  %2623 = tail call ptr @__errno_location() #12
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2626 = call i32 @s2n_print_stacktrace(ptr noundef %2625) #11
  %2627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2628 = trunc nuw i8 %2627 to i1
  br i1 %2628, label %2629, label %2633

2629:                                             ; preds = %2622
  %2630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2631 = call i32 @fileno(ptr noundef %2630) #11
  %2632 = call i32 @isatty(i32 noundef %2631) #11
  %.not1006 = icmp eq i32 %2632, 0
  br i1 %.not1006, label %2633, label %2634

2633:                                             ; preds = %2629, %2622
  br label %2634

2634:                                             ; preds = %2629, %2633
  %.str.5.sink2245 = phi ptr [ @.str.5, %2633 ], [ @.str.2, %2629 ]
  store i32 %2624, ptr %2623, align 4, !tbaa !5
  %2635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2636 = load i32, ptr @test_count, align 4, !tbaa !5
  %2637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2638 = load i32, ptr %2637, align 4, !tbaa !5
  %2639 = call ptr @s2n_strerror(i32 noundef %2638, ptr noundef nonnull @.str.4) #11
  %2640 = load i32, ptr %2637, align 4, !tbaa !5
  %2641 = call ptr @s2n_strerror_debug(i32 noundef %2640, ptr noundef nonnull @.str.4) #11
  %2642 = load i32, ptr %2623, align 4, !tbaa !5
  %2643 = call ptr @strerror(i32 noundef %2642) #11
  %2644 = load i32, ptr %2623, align 4, !tbaa !5
  %2645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2635, ptr noundef nonnull %.str.5.sink2245, i32 noundef %2636, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %2639, ptr noundef %2641, ptr noundef %2643, i32 noundef %2644) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2646:                                             ; preds = %2614
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %34) #11
  %2647 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %35) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %35, ptr noundef nonnull align 16 dereferenceable(24) @__const.main.order, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %36) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %36, ptr noundef nonnull align 16 dereferenceable(24) @__const.main.reversed_order, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #11
  %2648 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2648, ptr %37, align 8, !tbaa !9
  %2649 = getelementptr inbounds i8, ptr %2648, i64 220
  store i8 33, ptr %2649, align 4, !tbaa !50
  %2650 = getelementptr inbounds i8, ptr %2648, i64 232
  %2651 = load ptr, ptr %2650, align 8, !tbaa !60
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %2651, align 8, !tbaa !61
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = add nsw i32 %2652, 1
  store i32 %2653, ptr @test_count, align 4, !tbaa !5
  %2654 = load ptr, ptr %37, align 8, !tbaa !9
  %2655 = load ptr, ptr %21, align 8, !tbaa !9
  %2656 = call i32 @s2n_connection_set_config(ptr noundef %2654, ptr noundef %2655) #11
  %2657 = icmp eq i32 %2656, -1
  br i1 %2657, label %2658, label %2682

2658:                                             ; preds = %2646
  %2659 = tail call ptr @__errno_location() #12
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2662 = call i32 @s2n_print_stacktrace(ptr noundef %2661) #11
  %2663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2664 = trunc nuw i8 %2663 to i1
  br i1 %2664, label %2665, label %2669

2665:                                             ; preds = %2658
  %2666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2667 = call i32 @fileno(ptr noundef %2666) #11
  %2668 = call i32 @isatty(i32 noundef %2667) #11
  %.not1268 = icmp eq i32 %2668, 0
  br i1 %.not1268, label %2669, label %2670

2669:                                             ; preds = %2665, %2658
  br label %2670

2670:                                             ; preds = %2665, %2669
  %.str.5.sink2256 = phi ptr [ @.str.5, %2669 ], [ @.str.2, %2665 ]
  store i32 %2660, ptr %2659, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2674, ptr noundef nonnull @.str.4) #11
  %2676 = load i32, ptr %2673, align 4, !tbaa !5
  %2677 = call ptr @s2n_strerror_debug(i32 noundef %2676, ptr noundef nonnull @.str.4) #11
  %2678 = load i32, ptr %2659, align 4, !tbaa !5
  %2679 = call ptr @strerror(i32 noundef %2678) #11
  %2680 = load i32, ptr %2659, align 4, !tbaa !5
  %2681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2671, ptr noundef nonnull %.str.5.sink2256, i32 noundef %2672, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 394, ptr noundef %2675, ptr noundef %2677, ptr noundef %2679, i32 noundef %2680) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2682:                                             ; preds = %2646
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %38) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %38, i8 0, i64 80, i1 false)
  %2683 = load i32, ptr @test_count, align 4, !tbaa !5
  %2684 = add nsw i32 %2683, 1
  store i32 %2684, ptr @test_count, align 4, !tbaa !5
  %2685 = load ptr, ptr %37, align 8, !tbaa !9
  %2686 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %2685, ptr noundef nonnull %38, ptr noundef nonnull %35, i64 noundef 3)
  %2687 = call zeroext i1 @s2n_result_is_ok(i32 %2686)
  br i1 %2687, label %2712, label %2688

2688:                                             ; preds = %2682
  %2689 = tail call ptr @__errno_location() #12
  %2690 = load i32, ptr %2689, align 4, !tbaa !5
  %2691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2692 = call i32 @s2n_print_stacktrace(ptr noundef %2691) #11
  %2693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2694 = trunc nuw i8 %2693 to i1
  br i1 %2694, label %2695, label %2699

2695:                                             ; preds = %2688
  %2696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2697 = call i32 @fileno(ptr noundef %2696) #11
  %2698 = call i32 @isatty(i32 noundef %2697) #11
  %.not1007 = icmp eq i32 %2698, 0
  br i1 %.not1007, label %2699, label %2700

2699:                                             ; preds = %2695, %2688
  br label %2700

2700:                                             ; preds = %2695, %2699
  %.str.5.sink2267 = phi ptr [ @.str.5, %2699 ], [ @.str.2, %2695 ]
  store i32 %2690, ptr %2689, align 4, !tbaa !5
  %2701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2702 = load i32, ptr @test_count, align 4, !tbaa !5
  %2703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2704 = load i32, ptr %2703, align 4, !tbaa !5
  %2705 = call ptr @s2n_strerror(i32 noundef %2704, ptr noundef nonnull @.str.4) #11
  %2706 = load i32, ptr %2703, align 4, !tbaa !5
  %2707 = call ptr @s2n_strerror_debug(i32 noundef %2706, ptr noundef nonnull @.str.4) #11
  %2708 = load i32, ptr %2689, align 4, !tbaa !5
  %2709 = call ptr @strerror(i32 noundef %2708) #11
  %2710 = load i32, ptr %2689, align 4, !tbaa !5
  %2711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2701, ptr noundef nonnull %.str.5.sink2267, i32 noundef %2702, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 400, ptr noundef %2705, ptr noundef %2707, ptr noundef %2709, i32 noundef %2710) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2712:                                             ; preds = %2682
  %2713 = load i32, ptr @test_count, align 4, !tbaa !5
  %2714 = add nsw i32 %2713, 1
  store i32 %2714, ptr @test_count, align 4, !tbaa !5
  %2715 = load ptr, ptr %37, align 8, !tbaa !9
  %2716 = getelementptr inbounds i8, ptr %2715, i64 1268
  %2717 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %2716, ptr noundef nonnull %36, i64 noundef 3)
  %2718 = call zeroext i1 @s2n_result_is_ok(i32 %2717)
  br i1 %2718, label %2743, label %2719

2719:                                             ; preds = %2712
  %2720 = tail call ptr @__errno_location() #12
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = call i32 @s2n_print_stacktrace(ptr noundef %2722) #11
  %2724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2725 = trunc nuw i8 %2724 to i1
  br i1 %2725, label %2726, label %2730

2726:                                             ; preds = %2719
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = call i32 @fileno(ptr noundef %2727) #11
  %2729 = call i32 @isatty(i32 noundef %2728) #11
  %.not1008 = icmp eq i32 %2729, 0
  br i1 %.not1008, label %2730, label %2731

2730:                                             ; preds = %2726, %2719
  br label %2731

2731:                                             ; preds = %2726, %2730
  %.str.5.sink2278 = phi ptr [ @.str.5, %2730 ], [ @.str.2, %2726 ]
  store i32 %2721, ptr %2720, align 4, !tbaa !5
  %2732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2733 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2735, ptr noundef nonnull @.str.4) #11
  %2737 = load i32, ptr %2734, align 4, !tbaa !5
  %2738 = call ptr @s2n_strerror_debug(i32 noundef %2737, ptr noundef nonnull @.str.4) #11
  %2739 = load i32, ptr %2720, align 4, !tbaa !5
  %2740 = call ptr @strerror(i32 noundef %2739) #11
  %2741 = load i32, ptr %2720, align 4, !tbaa !5
  %2742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2732, ptr noundef nonnull %.str.5.sink2278, i32 noundef %2733, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %2736, ptr noundef %2738, ptr noundef %2740, i32 noundef %2741) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2743:                                             ; preds = %2712
  %2744 = load i32, ptr @test_count, align 4, !tbaa !5
  %2745 = add nsw i32 %2744, 1
  store i32 %2745, ptr @test_count, align 4, !tbaa !5
  %2746 = load ptr, ptr %37, align 8, !tbaa !9
  %2747 = call i32 @s2n_signature_algorithm_select(ptr noundef %2746) #11
  %2748 = call zeroext i1 @s2n_result_is_ok(i32 %2747)
  br i1 %2748, label %2773, label %2749

2749:                                             ; preds = %2743
  %2750 = tail call ptr @__errno_location() #12
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  %2752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2753 = call i32 @s2n_print_stacktrace(ptr noundef %2752) #11
  %2754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2755 = trunc nuw i8 %2754 to i1
  br i1 %2755, label %2756, label %2760

2756:                                             ; preds = %2749
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = call i32 @fileno(ptr noundef %2757) #11
  %2759 = call i32 @isatty(i32 noundef %2758) #11
  %.not1009 = icmp eq i32 %2759, 0
  br i1 %.not1009, label %2760, label %2761

2760:                                             ; preds = %2756, %2749
  br label %2761

2761:                                             ; preds = %2756, %2760
  %.str.5.sink2289 = phi ptr [ @.str.5, %2760 ], [ @.str.2, %2756 ]
  store i32 %2751, ptr %2750, align 4, !tbaa !5
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = load i32, ptr @test_count, align 4, !tbaa !5
  %2764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2765 = load i32, ptr %2764, align 4, !tbaa !5
  %2766 = call ptr @s2n_strerror(i32 noundef %2765, ptr noundef nonnull @.str.4) #11
  %2767 = load i32, ptr %2764, align 4, !tbaa !5
  %2768 = call ptr @s2n_strerror_debug(i32 noundef %2767, ptr noundef nonnull @.str.4) #11
  %2769 = load i32, ptr %2750, align 4, !tbaa !5
  %2770 = call ptr @strerror(i32 noundef %2769) #11
  %2771 = load i32, ptr %2750, align 4, !tbaa !5
  %2772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2762, ptr noundef nonnull %.str.5.sink2289, i32 noundef %2763, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 404, ptr noundef %2766, ptr noundef %2768, ptr noundef %2770, i32 noundef %2771) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2773:                                             ; preds = %2743
  %2774 = load i32, ptr @test_count, align 4, !tbaa !5
  %2775 = add nsw i32 %2774, 1
  store i32 %2775, ptr @test_count, align 4, !tbaa !5
  %2776 = load ptr, ptr %37, align 8, !tbaa !9
  %2777 = getelementptr inbounds i8, ptr %2776, i64 1528
  %2778 = load ptr, ptr %2777, align 8, !tbaa !66
  %2779 = load ptr, ptr %35, align 16, !tbaa !9
  %2780 = icmp eq ptr %2778, %2779
  br i1 %2780, label %2805, label %2781

2781:                                             ; preds = %2773
  %2782 = tail call ptr @__errno_location() #12
  %2783 = load i32, ptr %2782, align 4, !tbaa !5
  %2784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2785 = call i32 @s2n_print_stacktrace(ptr noundef %2784) #11
  %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 = %2781
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = call i32 @fileno(ptr noundef %2789) #11
  %2791 = call i32 @isatty(i32 noundef %2790) #11
  %.not1010 = icmp eq i32 %2791, 0
  br i1 %.not1010, label %2792, label %2793

2792:                                             ; preds = %2788, %2781
  br label %2793

2793:                                             ; preds = %2788, %2792
  %.str.5.sink2300 = phi ptr [ @.str.5, %2792 ], [ @.str.2, %2788 ]
  store i32 %2783, ptr %2782, align 4, !tbaa !5
  %2794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2795 = load i32, ptr @test_count, align 4, !tbaa !5
  %2796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2797 = load i32, ptr %2796, align 4, !tbaa !5
  %2798 = call ptr @s2n_strerror(i32 noundef %2797, ptr noundef nonnull @.str.4) #11
  %2799 = load i32, ptr %2796, align 4, !tbaa !5
  %2800 = call ptr @s2n_strerror_debug(i32 noundef %2799, ptr noundef nonnull @.str.4) #11
  %2801 = load i32, ptr %2782, align 4, !tbaa !5
  %2802 = call ptr @strerror(i32 noundef %2801) #11
  %2803 = load i32, ptr %2782, align 4, !tbaa !5
  %2804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2794, ptr noundef nonnull %.str.5.sink2300, i32 noundef %2795, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 405, ptr noundef %2798, ptr noundef %2800, ptr noundef %2802, i32 noundef %2803) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2805:                                             ; preds = %2773
  %2806 = add nsw i32 %2774, 2
  store i32 %2806, ptr @test_count, align 4, !tbaa !5
  %2807 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef nonnull %2776, ptr noundef nonnull %38, ptr noundef nonnull %36, i64 noundef 3)
  %2808 = call zeroext i1 @s2n_result_is_ok(i32 %2807)
  br i1 %2808, label %2833, label %2809

2809:                                             ; preds = %2805
  %2810 = tail call ptr @__errno_location() #12
  %2811 = load i32, ptr %2810, align 4, !tbaa !5
  %2812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2813 = call i32 @s2n_print_stacktrace(ptr noundef %2812) #11
  %2814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2815 = trunc nuw i8 %2814 to i1
  br i1 %2815, label %2816, label %2820

2816:                                             ; preds = %2809
  %2817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2818 = call i32 @fileno(ptr noundef %2817) #11
  %2819 = call i32 @isatty(i32 noundef %2818) #11
  %.not1011 = icmp eq i32 %2819, 0
  br i1 %.not1011, label %2820, label %2821

2820:                                             ; preds = %2816, %2809
  br label %2821

2821:                                             ; preds = %2816, %2820
  %.str.5.sink2311 = phi ptr [ @.str.5, %2820 ], [ @.str.2, %2816 ]
  store i32 %2811, ptr %2810, align 4, !tbaa !5
  %2822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2823 = load i32, ptr @test_count, align 4, !tbaa !5
  %2824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call ptr @s2n_strerror(i32 noundef %2825, ptr noundef nonnull @.str.4) #11
  %2827 = load i32, ptr %2824, align 4, !tbaa !5
  %2828 = call ptr @s2n_strerror_debug(i32 noundef %2827, ptr noundef nonnull @.str.4) #11
  %2829 = load i32, ptr %2810, align 4, !tbaa !5
  %2830 = call ptr @strerror(i32 noundef %2829) #11
  %2831 = load i32, ptr %2810, align 4, !tbaa !5
  %2832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2822, ptr noundef nonnull %.str.5.sink2311, i32 noundef %2823, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 411, ptr noundef %2826, ptr noundef %2828, ptr noundef %2830, i32 noundef %2831) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2833:                                             ; preds = %2805
  %2834 = load i32, ptr @test_count, align 4, !tbaa !5
  %2835 = add nsw i32 %2834, 1
  store i32 %2835, ptr @test_count, align 4, !tbaa !5
  %2836 = load ptr, ptr %37, align 8, !tbaa !9
  %2837 = getelementptr inbounds i8, ptr %2836, i64 1268
  %2838 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %2837, ptr noundef nonnull %35, i64 noundef 3)
  %2839 = call zeroext i1 @s2n_result_is_ok(i32 %2838)
  br i1 %2839, label %2864, label %2840

2840:                                             ; preds = %2833
  %2841 = tail call ptr @__errno_location() #12
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  %2843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2844 = call i32 @s2n_print_stacktrace(ptr noundef %2843) #11
  %2845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2846 = trunc nuw i8 %2845 to i1
  br i1 %2846, label %2847, label %2851

2847:                                             ; preds = %2840
  %2848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2849 = call i32 @fileno(ptr noundef %2848) #11
  %2850 = call i32 @isatty(i32 noundef %2849) #11
  %.not1012 = icmp eq i32 %2850, 0
  br i1 %.not1012, label %2851, label %2852

2851:                                             ; preds = %2847, %2840
  br label %2852

2852:                                             ; preds = %2847, %2851
  %.str.5.sink2322 = phi ptr [ @.str.5, %2851 ], [ @.str.2, %2847 ]
  store i32 %2842, ptr %2841, align 4, !tbaa !5
  %2853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2854 = load i32, ptr @test_count, align 4, !tbaa !5
  %2855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2856 = load i32, ptr %2855, align 4, !tbaa !5
  %2857 = call ptr @s2n_strerror(i32 noundef %2856, ptr noundef nonnull @.str.4) #11
  %2858 = load i32, ptr %2855, align 4, !tbaa !5
  %2859 = call ptr @s2n_strerror_debug(i32 noundef %2858, ptr noundef nonnull @.str.4) #11
  %2860 = load i32, ptr %2841, align 4, !tbaa !5
  %2861 = call ptr @strerror(i32 noundef %2860) #11
  %2862 = load i32, ptr %2841, align 4, !tbaa !5
  %2863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2853, ptr noundef nonnull %.str.5.sink2322, i32 noundef %2854, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %2857, ptr noundef %2859, ptr noundef %2861, i32 noundef %2862) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2864:                                             ; preds = %2833
  %2865 = load i32, ptr @test_count, align 4, !tbaa !5
  %2866 = add nsw i32 %2865, 1
  store i32 %2866, ptr @test_count, align 4, !tbaa !5
  %2867 = load ptr, ptr %37, align 8, !tbaa !9
  %2868 = call i32 @s2n_signature_algorithm_select(ptr noundef %2867) #11
  %2869 = call zeroext i1 @s2n_result_is_ok(i32 %2868)
  br i1 %2869, label %2894, label %2870

2870:                                             ; preds = %2864
  %2871 = tail call ptr @__errno_location() #12
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  %2873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2874 = call i32 @s2n_print_stacktrace(ptr noundef %2873) #11
  %2875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2876 = trunc nuw i8 %2875 to i1
  br i1 %2876, label %2877, label %2881

2877:                                             ; preds = %2870
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = call i32 @fileno(ptr noundef %2878) #11
  %2880 = call i32 @isatty(i32 noundef %2879) #11
  %.not1013 = icmp eq i32 %2880, 0
  br i1 %.not1013, label %2881, label %2882

2881:                                             ; preds = %2877, %2870
  br label %2882

2882:                                             ; preds = %2877, %2881
  %.str.5.sink2333 = phi ptr [ @.str.5, %2881 ], [ @.str.2, %2877 ]
  store i32 %2872, ptr %2871, align 4, !tbaa !5
  %2883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2884 = load i32, ptr @test_count, align 4, !tbaa !5
  %2885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  %2887 = call ptr @s2n_strerror(i32 noundef %2886, ptr noundef nonnull @.str.4) #11
  %2888 = load i32, ptr %2885, align 4, !tbaa !5
  %2889 = call ptr @s2n_strerror_debug(i32 noundef %2888, ptr noundef nonnull @.str.4) #11
  %2890 = load i32, ptr %2871, align 4, !tbaa !5
  %2891 = call ptr @strerror(i32 noundef %2890) #11
  %2892 = load i32, ptr %2871, align 4, !tbaa !5
  %2893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2883, ptr noundef nonnull %.str.5.sink2333, i32 noundef %2884, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 415, ptr noundef %2887, ptr noundef %2889, ptr noundef %2891, i32 noundef %2892) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2894:                                             ; preds = %2864
  %2895 = load i32, ptr @test_count, align 4, !tbaa !5
  %2896 = add nsw i32 %2895, 1
  store i32 %2896, ptr @test_count, align 4, !tbaa !5
  %2897 = load ptr, ptr %37, align 8, !tbaa !9
  %2898 = getelementptr inbounds i8, ptr %2897, i64 1528
  %2899 = load ptr, ptr %2898, align 8, !tbaa !66
  %2900 = load ptr, ptr %36, align 16, !tbaa !9
  %2901 = icmp eq ptr %2899, %2900
  br i1 %2901, label %2926, label %2902

2902:                                             ; preds = %2894
  %2903 = tail call ptr @__errno_location() #12
  %2904 = load i32, ptr %2903, align 4, !tbaa !5
  %2905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2906 = call i32 @s2n_print_stacktrace(ptr noundef %2905) #11
  %2907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2908 = trunc nuw i8 %2907 to i1
  br i1 %2908, label %2909, label %2913

2909:                                             ; preds = %2902
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = call i32 @fileno(ptr noundef %2910) #11
  %2912 = call i32 @isatty(i32 noundef %2911) #11
  %.not1014 = icmp eq i32 %2912, 0
  br i1 %.not1014, label %2913, label %2914

2913:                                             ; preds = %2909, %2902
  br label %2914

2914:                                             ; preds = %2909, %2913
  %.str.5.sink2344 = phi ptr [ @.str.5, %2913 ], [ @.str.2, %2909 ]
  store i32 %2904, ptr %2903, align 4, !tbaa !5
  %2915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2916 = load i32, ptr @test_count, align 4, !tbaa !5
  %2917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2918 = load i32, ptr %2917, align 4, !tbaa !5
  %2919 = call ptr @s2n_strerror(i32 noundef %2918, ptr noundef nonnull @.str.4) #11
  %2920 = load i32, ptr %2917, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror_debug(i32 noundef %2920, ptr noundef nonnull @.str.4) #11
  %2922 = load i32, ptr %2903, align 4, !tbaa !5
  %2923 = call ptr @strerror(i32 noundef %2922) #11
  %2924 = load i32, ptr %2903, align 4, !tbaa !5
  %2925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2915, ptr noundef nonnull %.str.5.sink2344, i32 noundef %2916, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 416, ptr noundef %2919, ptr noundef %2921, ptr noundef %2923, i32 noundef %2924) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2926:                                             ; preds = %2894
  %2927 = add nsw i32 %2895, 2
  store i32 %2927, ptr @test_count, align 4, !tbaa !5
  %2928 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef nonnull %2897, ptr noundef nonnull %38, ptr noundef nonnull %35, i64 noundef 3)
  %2929 = call zeroext i1 @s2n_result_is_ok(i32 %2928)
  br i1 %2929, label %2954, label %2930

2930:                                             ; preds = %2926
  %2931 = tail call ptr @__errno_location() #12
  %2932 = load i32, ptr %2931, align 4, !tbaa !5
  %2933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2934 = call i32 @s2n_print_stacktrace(ptr noundef %2933) #11
  %2935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2936 = trunc nuw i8 %2935 to i1
  br i1 %2936, label %2937, label %2941

2937:                                             ; preds = %2930
  %2938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2939 = call i32 @fileno(ptr noundef %2938) #11
  %2940 = call i32 @isatty(i32 noundef %2939) #11
  %.not1015 = icmp eq i32 %2940, 0
  br i1 %.not1015, label %2941, label %2942

2941:                                             ; preds = %2937, %2930
  br label %2942

2942:                                             ; preds = %2937, %2941
  %.str.5.sink2355 = phi ptr [ @.str.5, %2941 ], [ @.str.2, %2937 ]
  store i32 %2932, ptr %2931, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef nonnull @.str.4) #11
  %2948 = load i32, ptr %2945, align 4, !tbaa !5
  %2949 = call ptr @s2n_strerror_debug(i32 noundef %2948, ptr noundef nonnull @.str.4) #11
  %2950 = load i32, ptr %2931, align 4, !tbaa !5
  %2951 = call ptr @strerror(i32 noundef %2950) #11
  %2952 = load i32, ptr %2931, align 4, !tbaa !5
  %2953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef nonnull %.str.5.sink2355, i32 noundef %2944, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 424, ptr noundef %2947, ptr noundef %2949, ptr noundef %2951, i32 noundef %2952) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2954:                                             ; preds = %2926
  %2955 = load i32, ptr @test_count, align 4, !tbaa !5
  %2956 = add nsw i32 %2955, 1
  store i32 %2956, ptr @test_count, align 4, !tbaa !5
  %2957 = load ptr, ptr %37, align 8, !tbaa !9
  %2958 = getelementptr inbounds i8, ptr %2957, i64 1268
  %2959 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %2958, ptr noundef nonnull %35, i64 noundef 3)
  %2960 = call zeroext i1 @s2n_result_is_ok(i32 %2959)
  br i1 %2960, label %2985, label %2961

2961:                                             ; preds = %2954
  %2962 = tail call ptr @__errno_location() #12
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2965 = call i32 @s2n_print_stacktrace(ptr noundef %2964) #11
  %2966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2967 = trunc nuw i8 %2966 to i1
  br i1 %2967, label %2968, label %2972

2968:                                             ; preds = %2961
  %2969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2970 = call i32 @fileno(ptr noundef %2969) #11
  %2971 = call i32 @isatty(i32 noundef %2970) #11
  %.not1016 = icmp eq i32 %2971, 0
  br i1 %.not1016, label %2972, label %2973

2972:                                             ; preds = %2968, %2961
  br label %2973

2973:                                             ; preds = %2968, %2972
  %.str.5.sink2366 = phi ptr [ @.str.5, %2972 ], [ @.str.2, %2968 ]
  store i32 %2963, ptr %2962, align 4, !tbaa !5
  %2974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2975 = load i32, ptr @test_count, align 4, !tbaa !5
  %2976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror(i32 noundef %2977, ptr noundef nonnull @.str.4) #11
  %2979 = load i32, ptr %2976, align 4, !tbaa !5
  %2980 = call ptr @s2n_strerror_debug(i32 noundef %2979, ptr noundef nonnull @.str.4) #11
  %2981 = load i32, ptr %2962, align 4, !tbaa !5
  %2982 = call ptr @strerror(i32 noundef %2981) #11
  %2983 = load i32, ptr %2962, align 4, !tbaa !5
  %2984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2974, ptr noundef nonnull %.str.5.sink2366, i32 noundef %2975, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 426, ptr noundef %2978, ptr noundef %2980, ptr noundef %2982, i32 noundef %2983) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2985:                                             ; preds = %2954
  %2986 = load i32, ptr @test_count, align 4, !tbaa !5
  %2987 = add nsw i32 %2986, 1
  store i32 %2987, ptr @test_count, align 4, !tbaa !5
  %2988 = load ptr, ptr %37, align 8, !tbaa !9
  %2989 = call i32 @s2n_signature_algorithm_select(ptr noundef %2988) #11
  %2990 = call zeroext i1 @s2n_result_is_ok(i32 %2989)
  br i1 %2990, label %3015, label %2991

2991:                                             ; preds = %2985
  %2992 = tail call ptr @__errno_location() #12
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2995 = call i32 @s2n_print_stacktrace(ptr noundef %2994) #11
  %2996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2997 = trunc nuw i8 %2996 to i1
  br i1 %2997, label %2998, label %3002

2998:                                             ; preds = %2991
  %2999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3000 = call i32 @fileno(ptr noundef %2999) #11
  %3001 = call i32 @isatty(i32 noundef %3000) #11
  %.not1017 = icmp eq i32 %3001, 0
  br i1 %.not1017, label %3002, label %3003

3002:                                             ; preds = %2998, %2991
  br label %3003

3003:                                             ; preds = %2998, %3002
  %.str.5.sink2377 = phi ptr [ @.str.5, %3002 ], [ @.str.2, %2998 ]
  store i32 %2993, ptr %2992, align 4, !tbaa !5
  %3004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3005 = load i32, ptr @test_count, align 4, !tbaa !5
  %3006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  %3008 = call ptr @s2n_strerror(i32 noundef %3007, ptr noundef nonnull @.str.4) #11
  %3009 = load i32, ptr %3006, align 4, !tbaa !5
  %3010 = call ptr @s2n_strerror_debug(i32 noundef %3009, ptr noundef nonnull @.str.4) #11
  %3011 = load i32, ptr %2992, align 4, !tbaa !5
  %3012 = call ptr @strerror(i32 noundef %3011) #11
  %3013 = load i32, ptr %2992, align 4, !tbaa !5
  %3014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3004, ptr noundef nonnull %.str.5.sink2377, i32 noundef %3005, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %3008, ptr noundef %3010, ptr noundef %3012, i32 noundef %3013) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3015:                                             ; preds = %2985
  %3016 = load i32, ptr @test_count, align 4, !tbaa !5
  %3017 = add nsw i32 %3016, 1
  store i32 %3017, ptr @test_count, align 4, !tbaa !5
  %3018 = load ptr, ptr %37, align 8, !tbaa !9
  %3019 = getelementptr inbounds i8, ptr %3018, i64 1528
  %3020 = load ptr, ptr %3019, align 8, !tbaa !66
  %3021 = load ptr, ptr %35, align 16, !tbaa !9
  %3022 = icmp eq ptr %3020, %3021
  br i1 %3022, label %3047, label %3023

3023:                                             ; preds = %3015
  %3024 = tail call ptr @__errno_location() #12
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = call i32 @s2n_print_stacktrace(ptr noundef %3026) #11
  %3028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3029 = trunc nuw i8 %3028 to i1
  br i1 %3029, label %3030, label %3034

3030:                                             ; preds = %3023
  %3031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3032 = call i32 @fileno(ptr noundef %3031) #11
  %3033 = call i32 @isatty(i32 noundef %3032) #11
  %.not1018 = icmp eq i32 %3033, 0
  br i1 %.not1018, label %3034, label %3035

3034:                                             ; preds = %3030, %3023
  br label %3035

3035:                                             ; preds = %3030, %3034
  %.str.5.sink2388 = phi ptr [ @.str.5, %3034 ], [ @.str.2, %3030 ]
  store i32 %3025, ptr %3024, align 4, !tbaa !5
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = load i32, ptr @test_count, align 4, !tbaa !5
  %3038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror(i32 noundef %3039, ptr noundef nonnull @.str.4) #11
  %3041 = load i32, ptr %3038, align 4, !tbaa !5
  %3042 = call ptr @s2n_strerror_debug(i32 noundef %3041, ptr noundef nonnull @.str.4) #11
  %3043 = load i32, ptr %3024, align 4, !tbaa !5
  %3044 = call ptr @strerror(i32 noundef %3043) #11
  %3045 = load i32, ptr %3024, align 4, !tbaa !5
  %3046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3036, ptr noundef nonnull %.str.5.sink2388, i32 noundef %3037, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 429, ptr noundef %3040, ptr noundef %3042, ptr noundef %3044, i32 noundef %3045) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3047:                                             ; preds = %3015
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %38) #11
  %3048 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %37) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #11
  store ptr @s2n_ecdsa_sha224, ptr %39, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #11
  %3049 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %3049, ptr %40, align 8, !tbaa !9
  %3050 = load i32, ptr @test_count, align 4, !tbaa !5
  %3051 = add nsw i32 %3050, 1
  store i32 %3051, ptr @test_count, align 4, !tbaa !5
  %3052 = load ptr, ptr %21, align 8, !tbaa !9
  %3053 = call i32 @s2n_connection_set_config(ptr noundef %3049, ptr noundef %3052) #11
  %3054 = icmp eq i32 %3053, -1
  br i1 %3054, label %3055, label %3079

3055:                                             ; preds = %3047
  %3056 = tail call ptr @__errno_location() #12
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3059 = call i32 @s2n_print_stacktrace(ptr noundef %3058) #11
  %3060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3061 = trunc nuw i8 %3060 to i1
  br i1 %3061, label %3062, label %3066

3062:                                             ; preds = %3055
  %3063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3064 = call i32 @fileno(ptr noundef %3063) #11
  %3065 = call i32 @isatty(i32 noundef %3064) #11
  %.not1267 = icmp eq i32 %3065, 0
  br i1 %.not1267, label %3066, label %3067

3066:                                             ; preds = %3062, %3055
  br label %3067

3067:                                             ; preds = %3062, %3066
  %.str.5.sink2399 = phi ptr [ @.str.5, %3066 ], [ @.str.2, %3062 ]
  store i32 %3057, ptr %3056, align 4, !tbaa !5
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = load i32, ptr @test_count, align 4, !tbaa !5
  %3070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @s2n_strerror(i32 noundef %3071, ptr noundef nonnull @.str.4) #11
  %3073 = load i32, ptr %3070, align 4, !tbaa !5
  %3074 = call ptr @s2n_strerror_debug(i32 noundef %3073, ptr noundef nonnull @.str.4) #11
  %3075 = load i32, ptr %3056, align 4, !tbaa !5
  %3076 = call ptr @strerror(i32 noundef %3075) #11
  %3077 = load i32, ptr %3056, align 4, !tbaa !5
  %3078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3068, ptr noundef nonnull %.str.5.sink2399, i32 noundef %3069, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %3072, ptr noundef %3074, ptr noundef %3076, i32 noundef %3077) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3079:                                             ; preds = %3047
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %41) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %41, i8 0, i64 80, i1 false)
  %3080 = load i32, ptr @test_count, align 4, !tbaa !5
  %3081 = add nsw i32 %3080, 1
  store i32 %3081, ptr @test_count, align 4, !tbaa !5
  %3082 = load ptr, ptr %40, align 8, !tbaa !9
  %3083 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %3082, ptr noundef nonnull %41, ptr noundef nonnull %39, i64 noundef 1)
  %3084 = call zeroext i1 @s2n_result_is_ok(i32 %3083)
  br i1 %3084, label %3109, label %3085

3085:                                             ; preds = %3079
  %3086 = tail call ptr @__errno_location() #12
  %3087 = load i32, ptr %3086, align 4, !tbaa !5
  %3088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3089 = call i32 @s2n_print_stacktrace(ptr noundef %3088) #11
  %3090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3091 = trunc nuw i8 %3090 to i1
  br i1 %3091, label %3092, label %3096

3092:                                             ; preds = %3085
  %3093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3094 = call i32 @fileno(ptr noundef %3093) #11
  %3095 = call i32 @isatty(i32 noundef %3094) #11
  %.not1019 = icmp eq i32 %3095, 0
  br i1 %.not1019, label %3096, label %3097

3096:                                             ; preds = %3092, %3085
  br label %3097

3097:                                             ; preds = %3092, %3096
  %.str.5.sink2410 = phi ptr [ @.str.5, %3096 ], [ @.str.2, %3092 ]
  store i32 %3087, ptr %3086, align 4, !tbaa !5
  %3098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3099 = load i32, ptr @test_count, align 4, !tbaa !5
  %3100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3101 = load i32, ptr %3100, align 4, !tbaa !5
  %3102 = call ptr @s2n_strerror(i32 noundef %3101, ptr noundef nonnull @.str.4) #11
  %3103 = load i32, ptr %3100, align 4, !tbaa !5
  %3104 = call ptr @s2n_strerror_debug(i32 noundef %3103, ptr noundef nonnull @.str.4) #11
  %3105 = load i32, ptr %3086, align 4, !tbaa !5
  %3106 = call ptr @strerror(i32 noundef %3105) #11
  %3107 = load i32, ptr %3086, align 4, !tbaa !5
  %3108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3098, ptr noundef nonnull %.str.5.sink2410, i32 noundef %3099, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %3102, ptr noundef %3104, ptr noundef %3106, i32 noundef %3107) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3109:                                             ; preds = %3079
  %3110 = load i32, ptr @test_count, align 4, !tbaa !5
  %3111 = add nsw i32 %3110, 1
  store i32 %3111, ptr @test_count, align 4, !tbaa !5
  %3112 = load ptr, ptr %40, align 8, !tbaa !9
  %3113 = getelementptr inbounds i8, ptr %3112, i64 1268
  %3114 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %3113, ptr noundef nonnull %39, i64 noundef 1)
  %3115 = call zeroext i1 @s2n_result_is_ok(i32 %3114)
  br i1 %3115, label %3140, label %3116

3116:                                             ; preds = %3109
  %3117 = tail call ptr @__errno_location() #12
  %3118 = load i32, ptr %3117, align 4, !tbaa !5
  %3119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3120 = call i32 @s2n_print_stacktrace(ptr noundef %3119) #11
  %3121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3122 = trunc nuw i8 %3121 to i1
  br i1 %3122, label %3123, label %3127

3123:                                             ; preds = %3116
  %3124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3125 = call i32 @fileno(ptr noundef %3124) #11
  %3126 = call i32 @isatty(i32 noundef %3125) #11
  %.not1020 = icmp eq i32 %3126, 0
  br i1 %.not1020, label %3127, label %3128

3127:                                             ; preds = %3123, %3116
  br label %3128

3128:                                             ; preds = %3123, %3127
  %.str.5.sink2421 = phi ptr [ @.str.5, %3127 ], [ @.str.2, %3123 ]
  store i32 %3118, ptr %3117, align 4, !tbaa !5
  %3129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3130 = load i32, ptr @test_count, align 4, !tbaa !5
  %3131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3132 = load i32, ptr %3131, align 4, !tbaa !5
  %3133 = call ptr @s2n_strerror(i32 noundef %3132, ptr noundef nonnull @.str.4) #11
  %3134 = load i32, ptr %3131, align 4, !tbaa !5
  %3135 = call ptr @s2n_strerror_debug(i32 noundef %3134, ptr noundef nonnull @.str.4) #11
  %3136 = load i32, ptr %3117, align 4, !tbaa !5
  %3137 = call ptr @strerror(i32 noundef %3136) #11
  %3138 = load i32, ptr %3117, align 4, !tbaa !5
  %3139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3129, ptr noundef nonnull %.str.5.sink2421, i32 noundef %3130, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 448, ptr noundef %3133, ptr noundef %3135, ptr noundef %3137, i32 noundef %3138) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3140:                                             ; preds = %3109
  %3141 = load ptr, ptr %40, align 8, !tbaa !9
  %3142 = getelementptr inbounds i8, ptr %3141, i64 220
  store i8 34, ptr %3142, align 4, !tbaa !50
  %3143 = getelementptr inbounds i8, ptr %3141, i64 232
  %3144 = load ptr, ptr %3143, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %3144, align 8, !tbaa !61
  %3145 = load i32, ptr @test_count, align 4, !tbaa !5
  %3146 = add nsw i32 %3145, 1
  store i32 %3146, ptr @test_count, align 4, !tbaa !5
  %3147 = load ptr, ptr %40, align 8, !tbaa !9
  %3148 = call i32 @s2n_signature_algorithm_select(ptr noundef %3147) #11
  %3149 = call zeroext i1 @s2n_result_is_error(i32 %3148)
  br i1 %3149, label %3174, label %3150

3150:                                             ; preds = %3140
  %3151 = tail call ptr @__errno_location() #12
  %3152 = load i32, ptr %3151, align 4, !tbaa !5
  %3153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3154 = call i32 @s2n_print_stacktrace(ptr noundef %3153) #11
  %3155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3156 = trunc nuw i8 %3155 to i1
  br i1 %3156, label %3157, label %3161

3157:                                             ; preds = %3150
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = call i32 @fileno(ptr noundef %3158) #11
  %3160 = call i32 @isatty(i32 noundef %3159) #11
  %.not1021 = icmp eq i32 %3160, 0
  br i1 %.not1021, label %3161, label %3162

3161:                                             ; preds = %3157, %3150
  br label %3162

3162:                                             ; preds = %3157, %3161
  %.str.5.sink2432 = phi ptr [ @.str.5, %3161 ], [ @.str.2, %3157 ]
  store i32 %3152, ptr %3151, 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 nonnull @.str.4) #11
  %3168 = load i32, ptr %3165, align 4, !tbaa !5
  %3169 = call ptr @s2n_strerror_debug(i32 noundef %3168, ptr noundef nonnull @.str.4) #11
  %3170 = load i32, ptr %3151, align 4, !tbaa !5
  %3171 = call ptr @strerror(i32 noundef %3170) #11
  %3172 = load i32, ptr %3151, align 4, !tbaa !5
  %3173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3163, ptr noundef nonnull %.str.5.sink2432, i32 noundef %3164, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 455, ptr noundef %3167, ptr noundef %3169, ptr noundef %3171, i32 noundef %3172) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3174:                                             ; preds = %3140
  %3175 = load i32, ptr @test_count, align 4, !tbaa !5
  %3176 = add nsw i32 %3175, 1
  store i32 %3176, ptr @test_count, align 4, !tbaa !5
  %3177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  %3179 = icmp eq i32 %3178, 335544349
  br i1 %3179, label %3203, label %3180

3180:                                             ; preds = %3174
  %3181 = tail call ptr @__errno_location() #12
  %3182 = load i32, ptr %3181, align 4, !tbaa !5
  %3183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3184 = call i32 @s2n_print_stacktrace(ptr noundef %3183) #11
  %3185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3186 = trunc nuw i8 %3185 to i1
  br i1 %3186, label %3187, label %3191

3187:                                             ; preds = %3180
  %3188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3189 = call i32 @fileno(ptr noundef %3188) #11
  %3190 = call i32 @isatty(i32 noundef %3189) #11
  %.not1022 = icmp eq i32 %3190, 0
  br i1 %.not1022, label %3191, label %3192

3191:                                             ; preds = %3187, %3180
  br label %3192

3192:                                             ; preds = %3187, %3191
  %.str.5.sink2443 = phi ptr [ @.str.5, %3191 ], [ @.str.2, %3187 ]
  store i32 %3182, ptr %3181, align 4, !tbaa !5
  %3193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3194 = load i32, ptr @test_count, align 4, !tbaa !5
  %3195 = load i32, ptr %3177, align 4, !tbaa !5
  %3196 = call ptr @s2n_strerror(i32 noundef %3195, ptr noundef nonnull @.str.4) #11
  %3197 = load i32, ptr %3177, align 4, !tbaa !5
  %3198 = call ptr @s2n_strerror_debug(i32 noundef %3197, ptr noundef nonnull @.str.4) #11
  %3199 = load i32, ptr %3181, align 4, !tbaa !5
  %3200 = call ptr @strerror(i32 noundef %3199) #11
  %3201 = load i32, ptr %3181, align 4, !tbaa !5
  %3202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3193, ptr noundef nonnull %.str.5.sink2443, i32 noundef %3194, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 455, ptr noundef %3196, ptr noundef %3198, ptr noundef %3200, i32 noundef %3201) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3203:                                             ; preds = %3174
  %3204 = add nsw i32 %3175, 2
  store i32 %3204, ptr @test_count, align 4, !tbaa !5
  %3205 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %3206 = icmp eq ptr %3205, null
  br i1 %3206, label %3207, label %3230

3207:                                             ; preds = %3203
  %3208 = tail call ptr @__errno_location() #12
  %3209 = load i32, ptr %3208, align 4, !tbaa !5
  %3210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3211 = call i32 @s2n_print_stacktrace(ptr noundef %3210) #11
  %3212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3213 = trunc nuw i8 %3212 to i1
  br i1 %3213, label %3214, label %3218

3214:                                             ; preds = %3207
  %3215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3216 = call i32 @fileno(ptr noundef %3215) #11
  %3217 = call i32 @isatty(i32 noundef %3216) #11
  %.not1266 = icmp eq i32 %3217, 0
  br i1 %.not1266, label %3218, label %3219

3218:                                             ; preds = %3214, %3207
  br label %3219

3219:                                             ; preds = %3214, %3218
  %.str.5.sink2452 = phi ptr [ @.str.5, %3218 ], [ @.str.2, %3214 ]
  store i32 %3209, ptr %3208, align 4, !tbaa !5
  %3220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3221 = load i32, ptr @test_count, align 4, !tbaa !5
  %3222 = load i32, ptr %3177, align 4, !tbaa !5
  %3223 = call ptr @s2n_strerror(i32 noundef %3222, ptr noundef nonnull @.str.4) #11
  %3224 = load i32, ptr %3177, align 4, !tbaa !5
  %3225 = call ptr @s2n_strerror_debug(i32 noundef %3224, ptr noundef nonnull @.str.4) #11
  %3226 = load i32, ptr %3208, align 4, !tbaa !5
  %3227 = call ptr @strerror(i32 noundef %3226) #11
  %3228 = load i32, ptr %3208, align 4, !tbaa !5
  %3229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3220, ptr noundef nonnull %.str.5.sink2452, i32 noundef %3221, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 455, ptr noundef %3223, ptr noundef %3225, ptr noundef %3227, i32 noundef %3228) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3230:                                             ; preds = %3203
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %3231 = tail call ptr @__errno_location() #12
  store i32 0, ptr %3231, align 4, !tbaa !5
  %3232 = load ptr, ptr %40, align 8, !tbaa !9
  %3233 = getelementptr inbounds i8, ptr %3232, i64 220
  store i8 33, ptr %3233, align 4, !tbaa !50
  %3234 = getelementptr inbounds i8, ptr %3232, i64 232
  %3235 = load ptr, ptr %3234, align 8, !tbaa !60
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %3235, align 8, !tbaa !61
  %3236 = load i32, ptr @test_count, align 4, !tbaa !5
  %3237 = add nsw i32 %3236, 1
  store i32 %3237, ptr @test_count, align 4, !tbaa !5
  %3238 = load ptr, ptr %40, align 8, !tbaa !9
  %3239 = call i32 @s2n_signature_algorithm_select(ptr noundef %3238) #11
  %3240 = call zeroext i1 @s2n_result_is_ok(i32 %3239)
  br i1 %3240, label %3263, label %3241

3241:                                             ; preds = %3230
  %3242 = load i32, ptr %3231, align 4, !tbaa !5
  %3243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3244 = call i32 @s2n_print_stacktrace(ptr noundef %3243) #11
  %3245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3246 = trunc nuw i8 %3245 to i1
  br i1 %3246, label %3247, label %3251

3247:                                             ; preds = %3241
  %3248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3249 = call i32 @fileno(ptr noundef %3248) #11
  %3250 = call i32 @isatty(i32 noundef %3249) #11
  %.not1023 = icmp eq i32 %3250, 0
  br i1 %.not1023, label %3251, label %3252

3251:                                             ; preds = %3247, %3241
  br label %3252

3252:                                             ; preds = %3247, %3251
  %.str.5.sink2461 = phi ptr [ @.str.5, %3251 ], [ @.str.2, %3247 ]
  store i32 %3242, ptr %3231, align 4, !tbaa !5
  %3253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3254 = load i32, ptr @test_count, align 4, !tbaa !5
  %3255 = load i32, ptr %3177, align 4, !tbaa !5
  %3256 = call ptr @s2n_strerror(i32 noundef %3255, ptr noundef nonnull @.str.4) #11
  %3257 = load i32, ptr %3177, align 4, !tbaa !5
  %3258 = call ptr @s2n_strerror_debug(i32 noundef %3257, ptr noundef nonnull @.str.4) #11
  %3259 = load i32, ptr %3231, align 4, !tbaa !5
  %3260 = call ptr @strerror(i32 noundef %3259) #11
  %3261 = load i32, ptr %3231, align 4, !tbaa !5
  %3262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3253, ptr noundef nonnull %.str.5.sink2461, i32 noundef %3254, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 460, ptr noundef %3256, ptr noundef %3258, ptr noundef %3260, i32 noundef %3261) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3263:                                             ; preds = %3230
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %41) #11
  %3264 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #11
  store ptr @s2n_test_tls13_ecdsa_sha384, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #11
  %3265 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %3265, ptr %43, align 8, !tbaa !9
  %3266 = load i32, ptr @test_count, align 4, !tbaa !5
  %3267 = add nsw i32 %3266, 1
  store i32 %3267, ptr @test_count, align 4, !tbaa !5
  %3268 = load ptr, ptr %21, align 8, !tbaa !9
  %3269 = call i32 @s2n_connection_set_config(ptr noundef %3265, ptr noundef %3268) #11
  %3270 = icmp eq i32 %3269, -1
  br i1 %3270, label %3271, label %3293

3271:                                             ; preds = %3263
  %3272 = load i32, ptr %3231, align 4, !tbaa !5
  %3273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3274 = call i32 @s2n_print_stacktrace(ptr noundef %3273) #11
  %3275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3276 = trunc nuw i8 %3275 to i1
  br i1 %3276, label %3277, label %3281

3277:                                             ; preds = %3271
  %3278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3279 = call i32 @fileno(ptr noundef %3278) #11
  %3280 = call i32 @isatty(i32 noundef %3279) #11
  %.not1265 = icmp eq i32 %3280, 0
  br i1 %.not1265, label %3281, label %3282

3281:                                             ; preds = %3277, %3271
  br label %3282

3282:                                             ; preds = %3277, %3281
  %.str.5.sink2470 = phi ptr [ @.str.5, %3281 ], [ @.str.2, %3277 ]
  store i32 %3272, ptr %3231, align 4, !tbaa !5
  %3283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3284 = load i32, ptr @test_count, align 4, !tbaa !5
  %3285 = load i32, ptr %3177, align 4, !tbaa !5
  %3286 = call ptr @s2n_strerror(i32 noundef %3285, ptr noundef nonnull @.str.4) #11
  %3287 = load i32, ptr %3177, align 4, !tbaa !5
  %3288 = call ptr @s2n_strerror_debug(i32 noundef %3287, ptr noundef nonnull @.str.4) #11
  %3289 = load i32, ptr %3231, align 4, !tbaa !5
  %3290 = call ptr @strerror(i32 noundef %3289) #11
  %3291 = load i32, ptr %3231, align 4, !tbaa !5
  %3292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3283, ptr noundef nonnull %.str.5.sink2470, i32 noundef %3284, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 469, ptr noundef %3286, ptr noundef %3288, ptr noundef %3290, i32 noundef %3291) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3293:                                             ; preds = %3263
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %44) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %44, i8 0, i64 80, i1 false)
  %3294 = load i32, ptr @test_count, align 4, !tbaa !5
  %3295 = add nsw i32 %3294, 1
  store i32 %3295, ptr @test_count, align 4, !tbaa !5
  %3296 = load ptr, ptr %43, align 8, !tbaa !9
  %3297 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %3296, ptr noundef nonnull %44, ptr noundef nonnull %42, i64 noundef 1)
  %3298 = call zeroext i1 @s2n_result_is_ok(i32 %3297)
  br i1 %3298, label %3321, label %3299

3299:                                             ; preds = %3293
  %3300 = load i32, ptr %3231, align 4, !tbaa !5
  %3301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3302 = call i32 @s2n_print_stacktrace(ptr noundef %3301) #11
  %3303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3304 = trunc nuw i8 %3303 to i1
  br i1 %3304, label %3305, label %3309

3305:                                             ; preds = %3299
  %3306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3307 = call i32 @fileno(ptr noundef %3306) #11
  %3308 = call i32 @isatty(i32 noundef %3307) #11
  %.not1024 = icmp eq i32 %3308, 0
  br i1 %.not1024, label %3309, label %3310

3309:                                             ; preds = %3305, %3299
  br label %3310

3310:                                             ; preds = %3305, %3309
  %.str.5.sink2479 = phi ptr [ @.str.5, %3309 ], [ @.str.2, %3305 ]
  store i32 %3300, ptr %3231, align 4, !tbaa !5
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = load i32, ptr @test_count, align 4, !tbaa !5
  %3313 = load i32, ptr %3177, align 4, !tbaa !5
  %3314 = call ptr @s2n_strerror(i32 noundef %3313, ptr noundef nonnull @.str.4) #11
  %3315 = load i32, ptr %3177, align 4, !tbaa !5
  %3316 = call ptr @s2n_strerror_debug(i32 noundef %3315, ptr noundef nonnull @.str.4) #11
  %3317 = load i32, ptr %3231, align 4, !tbaa !5
  %3318 = call ptr @strerror(i32 noundef %3317) #11
  %3319 = load i32, ptr %3231, align 4, !tbaa !5
  %3320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3311, ptr noundef nonnull %.str.5.sink2479, i32 noundef %3312, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %3314, ptr noundef %3316, ptr noundef %3318, i32 noundef %3319) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3321:                                             ; preds = %3293
  %3322 = load i32, ptr @test_count, align 4, !tbaa !5
  %3323 = add nsw i32 %3322, 1
  store i32 %3323, ptr @test_count, align 4, !tbaa !5
  %3324 = load ptr, ptr %43, align 8, !tbaa !9
  %3325 = getelementptr inbounds i8, ptr %3324, i64 1268
  %3326 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %3325, ptr noundef nonnull %42, i64 noundef 1)
  %3327 = call zeroext i1 @s2n_result_is_ok(i32 %3326)
  br i1 %3327, label %3350, label %3328

3328:                                             ; preds = %3321
  %3329 = load i32, ptr %3231, align 4, !tbaa !5
  %3330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3331 = call i32 @s2n_print_stacktrace(ptr noundef %3330) #11
  %3332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3333 = trunc nuw i8 %3332 to i1
  br i1 %3333, label %3334, label %3338

3334:                                             ; preds = %3328
  %3335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3336 = call i32 @fileno(ptr noundef %3335) #11
  %3337 = call i32 @isatty(i32 noundef %3336) #11
  %.not1025 = icmp eq i32 %3337, 0
  br i1 %.not1025, label %3338, label %3339

3338:                                             ; preds = %3334, %3328
  br label %3339

3339:                                             ; preds = %3334, %3338
  %.str.5.sink2488 = phi ptr [ @.str.5, %3338 ], [ @.str.2, %3334 ]
  store i32 %3329, ptr %3231, align 4, !tbaa !5
  %3340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3341 = load i32, ptr @test_count, align 4, !tbaa !5
  %3342 = load i32, ptr %3177, align 4, !tbaa !5
  %3343 = call ptr @s2n_strerror(i32 noundef %3342, ptr noundef nonnull @.str.4) #11
  %3344 = load i32, ptr %3177, align 4, !tbaa !5
  %3345 = call ptr @s2n_strerror_debug(i32 noundef %3344, ptr noundef nonnull @.str.4) #11
  %3346 = load i32, ptr %3231, align 4, !tbaa !5
  %3347 = call ptr @strerror(i32 noundef %3346) #11
  %3348 = load i32, ptr %3231, align 4, !tbaa !5
  %3349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3340, ptr noundef nonnull %.str.5.sink2488, i32 noundef %3341, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 475, ptr noundef %3343, ptr noundef %3345, ptr noundef %3347, i32 noundef %3348) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3350:                                             ; preds = %3321
  %3351 = load ptr, ptr %43, align 8, !tbaa !9
  %3352 = getelementptr inbounds i8, ptr %3351, i64 220
  store i8 33, ptr %3352, align 4, !tbaa !50
  %3353 = getelementptr inbounds i8, ptr %3351, i64 232
  %3354 = load ptr, ptr %3353, align 8, !tbaa !60
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %3354, align 8, !tbaa !61
  %3355 = load i32, ptr @test_count, align 4, !tbaa !5
  %3356 = add nsw i32 %3355, 1
  store i32 %3356, ptr @test_count, align 4, !tbaa !5
  %3357 = load ptr, ptr %43, align 8, !tbaa !9
  %3358 = call i32 @s2n_signature_algorithm_select(ptr noundef %3357) #11
  %3359 = call zeroext i1 @s2n_result_is_error(i32 %3358)
  br i1 %3359, label %3382, label %3360

3360:                                             ; preds = %3350
  %3361 = load i32, ptr %3231, align 4, !tbaa !5
  %3362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3363 = call i32 @s2n_print_stacktrace(ptr noundef %3362) #11
  %3364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3365 = trunc nuw i8 %3364 to i1
  br i1 %3365, label %3366, label %3370

3366:                                             ; preds = %3360
  %3367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3368 = call i32 @fileno(ptr noundef %3367) #11
  %3369 = call i32 @isatty(i32 noundef %3368) #11
  %.not1026 = icmp eq i32 %3369, 0
  br i1 %.not1026, label %3370, label %3371

3370:                                             ; preds = %3366, %3360
  br label %3371

3371:                                             ; preds = %3366, %3370
  %.str.5.sink2497 = phi ptr [ @.str.5, %3370 ], [ @.str.2, %3366 ]
  store i32 %3361, ptr %3231, align 4, !tbaa !5
  %3372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3373 = load i32, ptr @test_count, align 4, !tbaa !5
  %3374 = load i32, ptr %3177, align 4, !tbaa !5
  %3375 = call ptr @s2n_strerror(i32 noundef %3374, ptr noundef nonnull @.str.4) #11
  %3376 = load i32, ptr %3177, align 4, !tbaa !5
  %3377 = call ptr @s2n_strerror_debug(i32 noundef %3376, ptr noundef nonnull @.str.4) #11
  %3378 = load i32, ptr %3231, align 4, !tbaa !5
  %3379 = call ptr @strerror(i32 noundef %3378) #11
  %3380 = load i32, ptr %3231, align 4, !tbaa !5
  %3381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3372, ptr noundef nonnull %.str.5.sink2497, i32 noundef %3373, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 482, ptr noundef %3375, ptr noundef %3377, ptr noundef %3379, i32 noundef %3380) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3382:                                             ; preds = %3350
  %3383 = load i32, ptr @test_count, align 4, !tbaa !5
  %3384 = add nsw i32 %3383, 1
  store i32 %3384, ptr @test_count, align 4, !tbaa !5
  %3385 = load i32, ptr %3177, align 4, !tbaa !5
  %3386 = icmp eq i32 %3385, 335544349
  br i1 %3386, label %3409, label %3387

3387:                                             ; preds = %3382
  %3388 = load i32, ptr %3231, align 4, !tbaa !5
  %3389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3390 = call i32 @s2n_print_stacktrace(ptr noundef %3389) #11
  %3391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3392 = trunc nuw i8 %3391 to i1
  br i1 %3392, label %3393, label %3397

3393:                                             ; preds = %3387
  %3394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3395 = call i32 @fileno(ptr noundef %3394) #11
  %3396 = call i32 @isatty(i32 noundef %3395) #11
  %.not1027 = icmp eq i32 %3396, 0
  br i1 %.not1027, label %3397, label %3398

3397:                                             ; preds = %3393, %3387
  br label %3398

3398:                                             ; preds = %3393, %3397
  %.str.5.sink2506 = phi ptr [ @.str.5, %3397 ], [ @.str.2, %3393 ]
  store i32 %3388, ptr %3231, align 4, !tbaa !5
  %3399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3400 = load i32, ptr @test_count, align 4, !tbaa !5
  %3401 = load i32, ptr %3177, align 4, !tbaa !5
  %3402 = call ptr @s2n_strerror(i32 noundef %3401, ptr noundef nonnull @.str.4) #11
  %3403 = load i32, ptr %3177, align 4, !tbaa !5
  %3404 = call ptr @s2n_strerror_debug(i32 noundef %3403, ptr noundef nonnull @.str.4) #11
  %3405 = load i32, ptr %3231, align 4, !tbaa !5
  %3406 = call ptr @strerror(i32 noundef %3405) #11
  %3407 = load i32, ptr %3231, align 4, !tbaa !5
  %3408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3399, ptr noundef nonnull %.str.5.sink2506, i32 noundef %3400, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 482, ptr noundef %3402, ptr noundef %3404, ptr noundef %3406, i32 noundef %3407) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3409:                                             ; preds = %3382
  %3410 = add nsw i32 %3383, 2
  store i32 %3410, ptr @test_count, align 4, !tbaa !5
  %3411 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %3412 = icmp eq ptr %3411, null
  br i1 %3412, label %3413, label %3435

3413:                                             ; preds = %3409
  %3414 = load i32, ptr %3231, align 4, !tbaa !5
  %3415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3416 = call i32 @s2n_print_stacktrace(ptr noundef %3415) #11
  %3417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3418 = trunc nuw i8 %3417 to i1
  br i1 %3418, label %3419, label %3423

3419:                                             ; preds = %3413
  %3420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3421 = call i32 @fileno(ptr noundef %3420) #11
  %3422 = call i32 @isatty(i32 noundef %3421) #11
  %.not1264 = icmp eq i32 %3422, 0
  br i1 %.not1264, label %3423, label %3424

3423:                                             ; preds = %3419, %3413
  br label %3424

3424:                                             ; preds = %3419, %3423
  %.str.5.sink2515 = phi ptr [ @.str.5, %3423 ], [ @.str.2, %3419 ]
  store i32 %3414, ptr %3231, align 4, !tbaa !5
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = load i32, ptr @test_count, align 4, !tbaa !5
  %3427 = load i32, ptr %3177, align 4, !tbaa !5
  %3428 = call ptr @s2n_strerror(i32 noundef %3427, ptr noundef nonnull @.str.4) #11
  %3429 = load i32, ptr %3177, align 4, !tbaa !5
  %3430 = call ptr @s2n_strerror_debug(i32 noundef %3429, ptr noundef nonnull @.str.4) #11
  %3431 = load i32, ptr %3231, align 4, !tbaa !5
  %3432 = call ptr @strerror(i32 noundef %3431) #11
  %3433 = load i32, ptr %3231, align 4, !tbaa !5
  %3434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3425, ptr noundef nonnull %.str.5.sink2515, i32 noundef %3426, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 482, ptr noundef %3428, ptr noundef %3430, ptr noundef %3432, i32 noundef %3433) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3435:                                             ; preds = %3409
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %3436 = load ptr, ptr %43, align 8, !tbaa !9
  %3437 = getelementptr inbounds i8, ptr %3436, i64 220
  store i8 34, ptr %3437, align 4, !tbaa !50
  %3438 = getelementptr inbounds i8, ptr %3436, i64 232
  %3439 = load ptr, ptr %3438, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %3439, align 8, !tbaa !61
  %3440 = load i32, ptr @test_count, align 4, !tbaa !5
  %3441 = add nsw i32 %3440, 1
  store i32 %3441, ptr @test_count, align 4, !tbaa !5
  %3442 = load ptr, ptr %43, align 8, !tbaa !9
  %3443 = call i32 @s2n_signature_algorithm_select(ptr noundef %3442) #11
  %3444 = call zeroext i1 @s2n_result_is_ok(i32 %3443)
  br i1 %3444, label %3467, label %3445

3445:                                             ; preds = %3435
  %3446 = load i32, ptr %3231, align 4, !tbaa !5
  %3447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3448 = call i32 @s2n_print_stacktrace(ptr noundef %3447) #11
  %3449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3450 = trunc nuw i8 %3449 to i1
  br i1 %3450, label %3451, label %3455

3451:                                             ; preds = %3445
  %3452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3453 = call i32 @fileno(ptr noundef %3452) #11
  %3454 = call i32 @isatty(i32 noundef %3453) #11
  %.not1028 = icmp eq i32 %3454, 0
  br i1 %.not1028, label %3455, label %3456

3455:                                             ; preds = %3451, %3445
  br label %3456

3456:                                             ; preds = %3451, %3455
  %.str.5.sink2524 = phi ptr [ @.str.5, %3455 ], [ @.str.2, %3451 ]
  store i32 %3446, ptr %3231, align 4, !tbaa !5
  %3457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3458 = load i32, ptr @test_count, align 4, !tbaa !5
  %3459 = load i32, ptr %3177, align 4, !tbaa !5
  %3460 = call ptr @s2n_strerror(i32 noundef %3459, ptr noundef nonnull @.str.4) #11
  %3461 = load i32, ptr %3177, align 4, !tbaa !5
  %3462 = call ptr @s2n_strerror_debug(i32 noundef %3461, ptr noundef nonnull @.str.4) #11
  %3463 = load i32, ptr %3231, align 4, !tbaa !5
  %3464 = call ptr @strerror(i32 noundef %3463) #11
  %3465 = load i32, ptr %3231, align 4, !tbaa !5
  %3466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3457, ptr noundef nonnull %.str.5.sink2524, i32 noundef %3458, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %3460, ptr noundef %3462, ptr noundef %3464, i32 noundef %3465) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3467:                                             ; preds = %3435
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %44) #11
  %3468 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %43) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %45) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %45, ptr noundef nonnull align 8 dereferenceable(40) @s2n_ecdsa_sha384, i64 40, i1 false), !tbaa.struct !67
  %3469 = load i32, ptr getelementptr inbounds (i8, ptr @s2n_ecdsa_sha1, i64 16), align 8, !tbaa !68
  %3470 = getelementptr inbounds i8, ptr %45, i64 16
  store i32 %3469, ptr %3470, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #11
  store ptr %45, ptr %46, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #11
  %3471 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %3471, ptr %47, align 8, !tbaa !9
  %3472 = getelementptr inbounds i8, ptr %3471, i64 220
  store i8 34, ptr %3472, align 4, !tbaa !50
  %3473 = getelementptr inbounds i8, ptr %3471, i64 232
  %3474 = load ptr, ptr %3473, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %3474, align 8, !tbaa !61
  %3475 = load i32, ptr @test_count, align 4, !tbaa !5
  %3476 = add nsw i32 %3475, 1
  store i32 %3476, ptr @test_count, align 4, !tbaa !5
  %3477 = load ptr, ptr %47, align 8, !tbaa !9
  %3478 = load ptr, ptr %21, align 8, !tbaa !9
  %3479 = call i32 @s2n_connection_set_config(ptr noundef %3477, ptr noundef %3478) #11
  %3480 = icmp eq i32 %3479, -1
  br i1 %3480, label %3481, label %3503

3481:                                             ; preds = %3467
  %3482 = load i32, ptr %3231, align 4, !tbaa !5
  %3483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3484 = call i32 @s2n_print_stacktrace(ptr noundef %3483) #11
  %3485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3486 = trunc nuw i8 %3485 to i1
  br i1 %3486, label %3487, label %3491

3487:                                             ; preds = %3481
  %3488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3489 = call i32 @fileno(ptr noundef %3488) #11
  %3490 = call i32 @isatty(i32 noundef %3489) #11
  %.not1263 = icmp eq i32 %3490, 0
  br i1 %.not1263, label %3491, label %3492

3491:                                             ; preds = %3487, %3481
  br label %3492

3492:                                             ; preds = %3487, %3491
  %.str.5.sink2533 = phi ptr [ @.str.5, %3491 ], [ @.str.2, %3487 ]
  store i32 %3482, ptr %3231, align 4, !tbaa !5
  %3493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3494 = load i32, ptr @test_count, align 4, !tbaa !5
  %3495 = load i32, ptr %3177, align 4, !tbaa !5
  %3496 = call ptr @s2n_strerror(i32 noundef %3495, ptr noundef nonnull @.str.4) #11
  %3497 = load i32, ptr %3177, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror_debug(i32 noundef %3497, ptr noundef nonnull @.str.4) #11
  %3499 = load i32, ptr %3231, align 4, !tbaa !5
  %3500 = call ptr @strerror(i32 noundef %3499) #11
  %3501 = load i32, ptr %3231, align 4, !tbaa !5
  %3502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3493, ptr noundef nonnull %.str.5.sink2533, i32 noundef %3494, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 503, ptr noundef %3496, ptr noundef %3498, ptr noundef %3500, i32 noundef %3501) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3503:                                             ; preds = %3467
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %48) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %48, i8 0, i64 80, i1 false)
  %3504 = load i32, ptr @test_count, align 4, !tbaa !5
  %3505 = add nsw i32 %3504, 1
  store i32 %3505, ptr @test_count, align 4, !tbaa !5
  %3506 = load ptr, ptr %47, align 8, !tbaa !9
  %3507 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %3506, ptr noundef nonnull %48, ptr noundef nonnull %46, i64 noundef 1)
  %3508 = call zeroext i1 @s2n_result_is_ok(i32 %3507)
  br i1 %3508, label %3531, label %3509

3509:                                             ; preds = %3503
  %3510 = load i32, ptr %3231, align 4, !tbaa !5
  %3511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3512 = call i32 @s2n_print_stacktrace(ptr noundef %3511) #11
  %3513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3514 = trunc nuw i8 %3513 to i1
  br i1 %3514, label %3515, label %3519

3515:                                             ; preds = %3509
  %3516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3517 = call i32 @fileno(ptr noundef %3516) #11
  %3518 = call i32 @isatty(i32 noundef %3517) #11
  %.not1029 = icmp eq i32 %3518, 0
  br i1 %.not1029, label %3519, label %3520

3519:                                             ; preds = %3515, %3509
  br label %3520

3520:                                             ; preds = %3515, %3519
  %.str.5.sink2542 = phi ptr [ @.str.5, %3519 ], [ @.str.2, %3515 ]
  store i32 %3510, ptr %3231, align 4, !tbaa !5
  %3521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3522 = load i32, ptr @test_count, align 4, !tbaa !5
  %3523 = load i32, ptr %3177, align 4, !tbaa !5
  %3524 = call ptr @s2n_strerror(i32 noundef %3523, ptr noundef nonnull @.str.4) #11
  %3525 = load i32, ptr %3177, align 4, !tbaa !5
  %3526 = call ptr @s2n_strerror_debug(i32 noundef %3525, ptr noundef nonnull @.str.4) #11
  %3527 = load i32, ptr %3231, align 4, !tbaa !5
  %3528 = call ptr @strerror(i32 noundef %3527) #11
  %3529 = load i32, ptr %3231, align 4, !tbaa !5
  %3530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3521, ptr noundef nonnull %.str.5.sink2542, i32 noundef %3522, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 507, ptr noundef %3524, ptr noundef %3526, ptr noundef %3528, i32 noundef %3529) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3531:                                             ; preds = %3503
  %3532 = load i32, ptr @test_count, align 4, !tbaa !5
  %3533 = add nsw i32 %3532, 1
  store i32 %3533, ptr @test_count, align 4, !tbaa !5
  %3534 = load ptr, ptr %47, align 8, !tbaa !9
  %3535 = getelementptr inbounds i8, ptr %3534, i64 1268
  %3536 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %3535, ptr noundef nonnull %46, i64 noundef 1)
  %3537 = call zeroext i1 @s2n_result_is_ok(i32 %3536)
  br i1 %3537, label %3560, label %3538

3538:                                             ; preds = %3531
  %3539 = load i32, ptr %3231, align 4, !tbaa !5
  %3540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3541 = call i32 @s2n_print_stacktrace(ptr noundef %3540) #11
  %3542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3543 = trunc nuw i8 %3542 to i1
  br i1 %3543, label %3544, label %3548

3544:                                             ; preds = %3538
  %3545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3546 = call i32 @fileno(ptr noundef %3545) #11
  %3547 = call i32 @isatty(i32 noundef %3546) #11
  %.not1030 = icmp eq i32 %3547, 0
  br i1 %.not1030, label %3548, label %3549

3548:                                             ; preds = %3544, %3538
  br label %3549

3549:                                             ; preds = %3544, %3548
  %.str.5.sink2551 = phi ptr [ @.str.5, %3548 ], [ @.str.2, %3544 ]
  store i32 %3539, ptr %3231, align 4, !tbaa !5
  %3550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3551 = load i32, ptr @test_count, align 4, !tbaa !5
  %3552 = load i32, ptr %3177, align 4, !tbaa !5
  %3553 = call ptr @s2n_strerror(i32 noundef %3552, ptr noundef nonnull @.str.4) #11
  %3554 = load i32, ptr %3177, align 4, !tbaa !5
  %3555 = call ptr @s2n_strerror_debug(i32 noundef %3554, ptr noundef nonnull @.str.4) #11
  %3556 = load i32, ptr %3231, align 4, !tbaa !5
  %3557 = call ptr @strerror(i32 noundef %3556) #11
  %3558 = load i32, ptr %3231, align 4, !tbaa !5
  %3559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3550, ptr noundef nonnull %.str.5.sink2551, i32 noundef %3551, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 509, ptr noundef %3553, ptr noundef %3555, ptr noundef %3557, i32 noundef %3558) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3560:                                             ; preds = %3531
  %3561 = load i32, ptr @test_count, align 4, !tbaa !5
  %3562 = add nsw i32 %3561, 1
  store i32 %3562, ptr @test_count, align 4, !tbaa !5
  %3563 = load ptr, ptr %47, align 8, !tbaa !9
  %3564 = call i32 @s2n_signature_algorithm_select(ptr noundef %3563) #11
  %3565 = call zeroext i1 @s2n_result_is_error(i32 %3564)
  br i1 %3565, label %3588, label %3566

3566:                                             ; preds = %3560
  %3567 = load i32, ptr %3231, align 4, !tbaa !5
  %3568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3569 = call i32 @s2n_print_stacktrace(ptr noundef %3568) #11
  %3570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3571 = trunc nuw i8 %3570 to i1
  br i1 %3571, label %3572, label %3576

3572:                                             ; preds = %3566
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = call i32 @fileno(ptr noundef %3573) #11
  %3575 = call i32 @isatty(i32 noundef %3574) #11
  %.not1031 = icmp eq i32 %3575, 0
  br i1 %.not1031, label %3576, label %3577

3576:                                             ; preds = %3572, %3566
  br label %3577

3577:                                             ; preds = %3572, %3576
  %.str.5.sink2560 = phi ptr [ @.str.5, %3576 ], [ @.str.2, %3572 ]
  store i32 %3567, ptr %3231, align 4, !tbaa !5
  %3578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3579 = load i32, ptr @test_count, align 4, !tbaa !5
  %3580 = load i32, ptr %3177, align 4, !tbaa !5
  %3581 = call ptr @s2n_strerror(i32 noundef %3580, ptr noundef nonnull @.str.4) #11
  %3582 = load i32, ptr %3177, align 4, !tbaa !5
  %3583 = call ptr @s2n_strerror_debug(i32 noundef %3582, ptr noundef nonnull @.str.4) #11
  %3584 = load i32, ptr %3231, align 4, !tbaa !5
  %3585 = call ptr @strerror(i32 noundef %3584) #11
  %3586 = load i32, ptr %3231, align 4, !tbaa !5
  %3587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3578, ptr noundef nonnull %.str.5.sink2560, i32 noundef %3579, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 514, ptr noundef %3581, ptr noundef %3583, ptr noundef %3585, i32 noundef %3586) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3588:                                             ; preds = %3560
  %3589 = load i32, ptr @test_count, align 4, !tbaa !5
  %3590 = add nsw i32 %3589, 1
  store i32 %3590, ptr @test_count, align 4, !tbaa !5
  %3591 = load i32, ptr %3177, align 4, !tbaa !5
  %3592 = icmp eq i32 %3591, 335544349
  br i1 %3592, label %3615, label %3593

3593:                                             ; preds = %3588
  %3594 = load i32, ptr %3231, align 4, !tbaa !5
  %3595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3596 = call i32 @s2n_print_stacktrace(ptr noundef %3595) #11
  %3597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3598 = trunc nuw i8 %3597 to i1
  br i1 %3598, label %3599, label %3603

3599:                                             ; preds = %3593
  %3600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3601 = call i32 @fileno(ptr noundef %3600) #11
  %3602 = call i32 @isatty(i32 noundef %3601) #11
  %.not1032 = icmp eq i32 %3602, 0
  br i1 %.not1032, label %3603, label %3604

3603:                                             ; preds = %3599, %3593
  br label %3604

3604:                                             ; preds = %3599, %3603
  %.str.5.sink2569 = phi ptr [ @.str.5, %3603 ], [ @.str.2, %3599 ]
  store i32 %3594, ptr %3231, align 4, !tbaa !5
  %3605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3606 = load i32, ptr @test_count, align 4, !tbaa !5
  %3607 = load i32, ptr %3177, align 4, !tbaa !5
  %3608 = call ptr @s2n_strerror(i32 noundef %3607, ptr noundef nonnull @.str.4) #11
  %3609 = load i32, ptr %3177, align 4, !tbaa !5
  %3610 = call ptr @s2n_strerror_debug(i32 noundef %3609, ptr noundef nonnull @.str.4) #11
  %3611 = load i32, ptr %3231, align 4, !tbaa !5
  %3612 = call ptr @strerror(i32 noundef %3611) #11
  %3613 = load i32, ptr %3231, align 4, !tbaa !5
  %3614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3605, ptr noundef nonnull %.str.5.sink2569, i32 noundef %3606, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 514, ptr noundef %3608, ptr noundef %3610, ptr noundef %3612, i32 noundef %3613) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3615:                                             ; preds = %3588
  %3616 = add nsw i32 %3589, 2
  store i32 %3616, ptr @test_count, align 4, !tbaa !5
  %3617 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %3618 = icmp eq ptr %3617, null
  br i1 %3618, label %3619, label %3641

3619:                                             ; preds = %3615
  %3620 = load i32, ptr %3231, align 4, !tbaa !5
  %3621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3622 = call i32 @s2n_print_stacktrace(ptr noundef %3621) #11
  %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) #11
  %3628 = call i32 @isatty(i32 noundef %3627) #11
  %.not1262 = icmp eq i32 %3628, 0
  br i1 %.not1262, label %3629, label %3630

3629:                                             ; preds = %3625, %3619
  br label %3630

3630:                                             ; preds = %3625, %3629
  %.str.5.sink2578 = phi ptr [ @.str.5, %3629 ], [ @.str.2, %3625 ]
  store i32 %3620, ptr %3231, 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 %3177, align 4, !tbaa !5
  %3634 = call ptr @s2n_strerror(i32 noundef %3633, ptr noundef nonnull @.str.4) #11
  %3635 = load i32, ptr %3177, align 4, !tbaa !5
  %3636 = call ptr @s2n_strerror_debug(i32 noundef %3635, ptr noundef nonnull @.str.4) #11
  %3637 = load i32, ptr %3231, align 4, !tbaa !5
  %3638 = call ptr @strerror(i32 noundef %3637) #11
  %3639 = load i32, ptr %3231, align 4, !tbaa !5
  %3640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3631, ptr noundef nonnull %.str.5.sink2578, i32 noundef %3632, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 514, ptr noundef %3634, ptr noundef %3636, ptr noundef %3638, i32 noundef %3639) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3641:                                             ; preds = %3615
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %3642 = load i32, ptr getelementptr inbounds (i8, ptr @s2n_ecdsa_sha384, i64 16), align 8, !tbaa !68
  store i32 %3642, ptr %3470, align 8, !tbaa !68
  %3643 = load i32, ptr @test_count, align 4, !tbaa !5
  %3644 = add nsw i32 %3643, 1
  store i32 %3644, ptr @test_count, align 4, !tbaa !5
  %3645 = load ptr, ptr %47, align 8, !tbaa !9
  %3646 = call i32 @s2n_signature_algorithm_select(ptr noundef %3645) #11
  %3647 = call zeroext i1 @s2n_result_is_ok(i32 %3646)
  br i1 %3647, label %3670, label %3648

3648:                                             ; preds = %3641
  %3649 = load i32, ptr %3231, align 4, !tbaa !5
  %3650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3651 = call i32 @s2n_print_stacktrace(ptr noundef %3650) #11
  %3652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3653 = trunc nuw i8 %3652 to i1
  br i1 %3653, label %3654, label %3658

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

3658:                                             ; preds = %3654, %3648
  br label %3659

3659:                                             ; preds = %3654, %3658
  %.str.5.sink2587 = phi ptr [ @.str.5, %3658 ], [ @.str.2, %3654 ]
  store i32 %3649, ptr %3231, align 4, !tbaa !5
  %3660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3661 = load i32, ptr @test_count, align 4, !tbaa !5
  %3662 = load i32, ptr %3177, align 4, !tbaa !5
  %3663 = call ptr @s2n_strerror(i32 noundef %3662, ptr noundef nonnull @.str.4) #11
  %3664 = load i32, ptr %3177, align 4, !tbaa !5
  %3665 = call ptr @s2n_strerror_debug(i32 noundef %3664, ptr noundef nonnull @.str.4) #11
  %3666 = load i32, ptr %3231, align 4, !tbaa !5
  %3667 = call ptr @strerror(i32 noundef %3666) #11
  %3668 = load i32, ptr %3231, align 4, !tbaa !5
  %3669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3660, ptr noundef nonnull %.str.5.sink2587, i32 noundef %3661, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 518, ptr noundef %3663, ptr noundef %3665, ptr noundef %3667, i32 noundef %3668) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3670:                                             ; preds = %3641
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %48) #11
  %3671 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %45) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %49) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %49, ptr noundef nonnull align 8 dereferenceable(40) @s2n_rsa_pss_rsae_sha256, i64 40, i1 false), !tbaa.struct !67
  %3672 = load i32, ptr getelementptr inbounds (i8, ptr @s2n_rsa_pkcs1_sha256, i64 20), align 4, !tbaa !69
  %3673 = getelementptr inbounds i8, ptr %49, i64 20
  store i32 %3672, ptr %3673, align 4, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #11
  store ptr %49, ptr %50, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #11
  %3674 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %3674, ptr %51, align 8, !tbaa !9
  %3675 = getelementptr inbounds i8, ptr %3674, i64 220
  store i8 34, ptr %3675, align 4, !tbaa !50
  %3676 = getelementptr inbounds i8, ptr %3674, i64 232
  %3677 = load ptr, ptr %3676, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %3677, align 8, !tbaa !61
  %3678 = load i32, ptr @test_count, align 4, !tbaa !5
  %3679 = add nsw i32 %3678, 1
  store i32 %3679, ptr @test_count, align 4, !tbaa !5
  %3680 = load ptr, ptr %51, align 8, !tbaa !9
  %3681 = load ptr, ptr %21, align 8, !tbaa !9
  %3682 = call i32 @s2n_connection_set_config(ptr noundef %3680, ptr noundef %3681) #11
  %3683 = icmp eq i32 %3682, -1
  br i1 %3683, label %3684, label %3706

3684:                                             ; preds = %3670
  %3685 = load i32, ptr %3231, align 4, !tbaa !5
  %3686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3687 = call i32 @s2n_print_stacktrace(ptr noundef %3686) #11
  %3688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3689 = trunc nuw i8 %3688 to i1
  br i1 %3689, label %3690, label %3694

3690:                                             ; preds = %3684
  %3691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3692 = call i32 @fileno(ptr noundef %3691) #11
  %3693 = call i32 @isatty(i32 noundef %3692) #11
  %.not1261 = icmp eq i32 %3693, 0
  br i1 %.not1261, label %3694, label %3695

3694:                                             ; preds = %3690, %3684
  br label %3695

3695:                                             ; preds = %3690, %3694
  %.str.5.sink2596 = phi ptr [ @.str.5, %3694 ], [ @.str.2, %3690 ]
  store i32 %3685, ptr %3231, align 4, !tbaa !5
  %3696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3697 = load i32, ptr @test_count, align 4, !tbaa !5
  %3698 = load i32, ptr %3177, align 4, !tbaa !5
  %3699 = call ptr @s2n_strerror(i32 noundef %3698, ptr noundef nonnull @.str.4) #11
  %3700 = load i32, ptr %3177, align 4, !tbaa !5
  %3701 = call ptr @s2n_strerror_debug(i32 noundef %3700, ptr noundef nonnull @.str.4) #11
  %3702 = load i32, ptr %3231, align 4, !tbaa !5
  %3703 = call ptr @strerror(i32 noundef %3702) #11
  %3704 = load i32, ptr %3231, align 4, !tbaa !5
  %3705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3696, ptr noundef nonnull %.str.5.sink2596, i32 noundef %3697, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 534, ptr noundef %3699, ptr noundef %3701, ptr noundef %3703, i32 noundef %3704) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3706:                                             ; preds = %3670
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %52) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %52, i8 0, i64 80, i1 false)
  %3707 = load i32, ptr @test_count, align 4, !tbaa !5
  %3708 = add nsw i32 %3707, 1
  store i32 %3708, ptr @test_count, align 4, !tbaa !5
  %3709 = load ptr, ptr %51, align 8, !tbaa !9
  %3710 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %3709, ptr noundef nonnull %52, ptr noundef nonnull %50, i64 noundef 1)
  %3711 = call zeroext i1 @s2n_result_is_ok(i32 %3710)
  br i1 %3711, label %3734, label %3712

3712:                                             ; preds = %3706
  %3713 = load i32, ptr %3231, align 4, !tbaa !5
  %3714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3715 = call i32 @s2n_print_stacktrace(ptr noundef %3714) #11
  %3716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3717 = trunc nuw i8 %3716 to i1
  br i1 %3717, label %3718, label %3722

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

3722:                                             ; preds = %3718, %3712
  br label %3723

3723:                                             ; preds = %3718, %3722
  %.str.5.sink2605 = phi ptr [ @.str.5, %3722 ], [ @.str.2, %3718 ]
  store i32 %3713, ptr %3231, align 4, !tbaa !5
  %3724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3725 = load i32, ptr @test_count, align 4, !tbaa !5
  %3726 = load i32, ptr %3177, align 4, !tbaa !5
  %3727 = call ptr @s2n_strerror(i32 noundef %3726, ptr noundef nonnull @.str.4) #11
  %3728 = load i32, ptr %3177, align 4, !tbaa !5
  %3729 = call ptr @s2n_strerror_debug(i32 noundef %3728, ptr noundef nonnull @.str.4) #11
  %3730 = load i32, ptr %3231, align 4, !tbaa !5
  %3731 = call ptr @strerror(i32 noundef %3730) #11
  %3732 = load i32, ptr %3231, align 4, !tbaa !5
  %3733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3724, ptr noundef nonnull %.str.5.sink2605, i32 noundef %3725, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 538, ptr noundef %3727, ptr noundef %3729, ptr noundef %3731, i32 noundef %3732) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3734:                                             ; preds = %3706
  %3735 = load i32, ptr @test_count, align 4, !tbaa !5
  %3736 = add nsw i32 %3735, 1
  store i32 %3736, ptr @test_count, align 4, !tbaa !5
  %3737 = load ptr, ptr %51, align 8, !tbaa !9
  %3738 = getelementptr inbounds i8, ptr %3737, i64 1268
  %3739 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %3738, ptr noundef nonnull %50, i64 noundef 1)
  %3740 = call zeroext i1 @s2n_result_is_ok(i32 %3739)
  br i1 %3740, label %3763, label %3741

3741:                                             ; preds = %3734
  %3742 = load i32, ptr %3231, align 4, !tbaa !5
  %3743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3744 = call i32 @s2n_print_stacktrace(ptr noundef %3743) #11
  %3745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3746 = trunc nuw i8 %3745 to i1
  br i1 %3746, label %3747, label %3751

3747:                                             ; preds = %3741
  %3748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3749 = call i32 @fileno(ptr noundef %3748) #11
  %3750 = call i32 @isatty(i32 noundef %3749) #11
  %.not1035 = icmp eq i32 %3750, 0
  br i1 %.not1035, label %3751, label %3752

3751:                                             ; preds = %3747, %3741
  br label %3752

3752:                                             ; preds = %3747, %3751
  %.str.5.sink2614 = phi ptr [ @.str.5, %3751 ], [ @.str.2, %3747 ]
  store i32 %3742, ptr %3231, align 4, !tbaa !5
  %3753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3754 = load i32, ptr @test_count, align 4, !tbaa !5
  %3755 = load i32, ptr %3177, align 4, !tbaa !5
  %3756 = call ptr @s2n_strerror(i32 noundef %3755, ptr noundef nonnull @.str.4) #11
  %3757 = load i32, ptr %3177, align 4, !tbaa !5
  %3758 = call ptr @s2n_strerror_debug(i32 noundef %3757, ptr noundef nonnull @.str.4) #11
  %3759 = load i32, ptr %3231, align 4, !tbaa !5
  %3760 = call ptr @strerror(i32 noundef %3759) #11
  %3761 = load i32, ptr %3231, align 4, !tbaa !5
  %3762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3753, ptr noundef nonnull %.str.5.sink2614, i32 noundef %3754, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 540, ptr noundef %3756, ptr noundef %3758, ptr noundef %3760, i32 noundef %3761) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3763:                                             ; preds = %3734
  %3764 = load i32, ptr @test_count, align 4, !tbaa !5
  %3765 = add nsw i32 %3764, 1
  store i32 %3765, ptr @test_count, align 4, !tbaa !5
  %3766 = load ptr, ptr %51, align 8, !tbaa !9
  %3767 = call i32 @s2n_signature_algorithm_select(ptr noundef %3766) #11
  %3768 = call zeroext i1 @s2n_result_is_error(i32 %3767)
  br i1 %3768, label %3791, label %3769

3769:                                             ; preds = %3763
  %3770 = load i32, ptr %3231, align 4, !tbaa !5
  %3771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3772 = call i32 @s2n_print_stacktrace(ptr noundef %3771) #11
  %3773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3774 = trunc nuw i8 %3773 to i1
  br i1 %3774, label %3775, label %3779

3775:                                             ; preds = %3769
  %3776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3777 = call i32 @fileno(ptr noundef %3776) #11
  %3778 = call i32 @isatty(i32 noundef %3777) #11
  %.not1036 = icmp eq i32 %3778, 0
  br i1 %.not1036, label %3779, label %3780

3779:                                             ; preds = %3775, %3769
  br label %3780

3780:                                             ; preds = %3775, %3779
  %.str.5.sink2623 = phi ptr [ @.str.5, %3779 ], [ @.str.2, %3775 ]
  store i32 %3770, ptr %3231, align 4, !tbaa !5
  %3781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3782 = load i32, ptr @test_count, align 4, !tbaa !5
  %3783 = load i32, ptr %3177, align 4, !tbaa !5
  %3784 = call ptr @s2n_strerror(i32 noundef %3783, ptr noundef nonnull @.str.4) #11
  %3785 = load i32, ptr %3177, align 4, !tbaa !5
  %3786 = call ptr @s2n_strerror_debug(i32 noundef %3785, ptr noundef nonnull @.str.4) #11
  %3787 = load i32, ptr %3231, align 4, !tbaa !5
  %3788 = call ptr @strerror(i32 noundef %3787) #11
  %3789 = load i32, ptr %3231, align 4, !tbaa !5
  %3790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3781, ptr noundef nonnull %.str.5.sink2623, i32 noundef %3782, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 545, ptr noundef %3784, ptr noundef %3786, ptr noundef %3788, i32 noundef %3789) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3791:                                             ; preds = %3763
  %3792 = load i32, ptr @test_count, align 4, !tbaa !5
  %3793 = add nsw i32 %3792, 1
  store i32 %3793, ptr @test_count, align 4, !tbaa !5
  %3794 = load i32, ptr %3177, align 4, !tbaa !5
  %3795 = icmp eq i32 %3794, 335544349
  br i1 %3795, label %3818, label %3796

3796:                                             ; preds = %3791
  %3797 = load i32, ptr %3231, align 4, !tbaa !5
  %3798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3799 = call i32 @s2n_print_stacktrace(ptr noundef %3798) #11
  %3800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3801 = trunc nuw i8 %3800 to i1
  br i1 %3801, label %3802, label %3806

3802:                                             ; preds = %3796
  %3803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3804 = call i32 @fileno(ptr noundef %3803) #11
  %3805 = call i32 @isatty(i32 noundef %3804) #11
  %.not1037 = icmp eq i32 %3805, 0
  br i1 %.not1037, label %3806, label %3807

3806:                                             ; preds = %3802, %3796
  br label %3807

3807:                                             ; preds = %3802, %3806
  %.str.5.sink2632 = phi ptr [ @.str.5, %3806 ], [ @.str.2, %3802 ]
  store i32 %3797, ptr %3231, align 4, !tbaa !5
  %3808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3809 = load i32, ptr @test_count, align 4, !tbaa !5
  %3810 = load i32, ptr %3177, align 4, !tbaa !5
  %3811 = call ptr @s2n_strerror(i32 noundef %3810, ptr noundef nonnull @.str.4) #11
  %3812 = load i32, ptr %3177, align 4, !tbaa !5
  %3813 = call ptr @s2n_strerror_debug(i32 noundef %3812, ptr noundef nonnull @.str.4) #11
  %3814 = load i32, ptr %3231, align 4, !tbaa !5
  %3815 = call ptr @strerror(i32 noundef %3814) #11
  %3816 = load i32, ptr %3231, align 4, !tbaa !5
  %3817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3808, ptr noundef nonnull %.str.5.sink2632, i32 noundef %3809, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 545, ptr noundef %3811, ptr noundef %3813, ptr noundef %3815, i32 noundef %3816) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3818:                                             ; preds = %3791
  %3819 = add nsw i32 %3792, 2
  store i32 %3819, ptr @test_count, align 4, !tbaa !5
  %3820 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %3821 = icmp eq ptr %3820, null
  br i1 %3821, label %3822, label %3844

3822:                                             ; preds = %3818
  %3823 = load i32, ptr %3231, align 4, !tbaa !5
  %3824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3825 = call i32 @s2n_print_stacktrace(ptr noundef %3824) #11
  %3826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3827 = trunc nuw i8 %3826 to i1
  br i1 %3827, label %3828, label %3832

3828:                                             ; preds = %3822
  %3829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3830 = call i32 @fileno(ptr noundef %3829) #11
  %3831 = call i32 @isatty(i32 noundef %3830) #11
  %.not1260 = icmp eq i32 %3831, 0
  br i1 %.not1260, label %3832, label %3833

3832:                                             ; preds = %3828, %3822
  br label %3833

3833:                                             ; preds = %3828, %3832
  %.str.5.sink2641 = phi ptr [ @.str.5, %3832 ], [ @.str.2, %3828 ]
  store i32 %3823, ptr %3231, align 4, !tbaa !5
  %3834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3835 = load i32, ptr @test_count, align 4, !tbaa !5
  %3836 = load i32, ptr %3177, align 4, !tbaa !5
  %3837 = call ptr @s2n_strerror(i32 noundef %3836, ptr noundef nonnull @.str.4) #11
  %3838 = load i32, ptr %3177, align 4, !tbaa !5
  %3839 = call ptr @s2n_strerror_debug(i32 noundef %3838, ptr noundef nonnull @.str.4) #11
  %3840 = load i32, ptr %3231, align 4, !tbaa !5
  %3841 = call ptr @strerror(i32 noundef %3840) #11
  %3842 = load i32, ptr %3231, align 4, !tbaa !5
  %3843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3834, ptr noundef nonnull %.str.5.sink2641, i32 noundef %3835, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 545, ptr noundef %3837, ptr noundef %3839, ptr noundef %3841, i32 noundef %3842) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3844:                                             ; preds = %3818
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %3845 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported() #11
  br i1 %3845, label %3846, label %3875

3846:                                             ; preds = %3844
  %3847 = load i32, ptr getelementptr inbounds (i8, ptr @s2n_rsa_pss_rsae_sha256, i64 20), align 4, !tbaa !69
  store i32 %3847, ptr %3673, align 4, !tbaa !69
  %3848 = load i32, ptr @test_count, align 4, !tbaa !5
  %3849 = add nsw i32 %3848, 1
  store i32 %3849, ptr @test_count, align 4, !tbaa !5
  %3850 = load ptr, ptr %51, align 8, !tbaa !9
  %3851 = call i32 @s2n_signature_algorithm_select(ptr noundef %3850) #11
  %3852 = call zeroext i1 @s2n_result_is_ok(i32 %3851)
  br i1 %3852, label %3875, label %3853

3853:                                             ; preds = %3846
  %3854 = load i32, ptr %3231, align 4, !tbaa !5
  %3855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3856 = call i32 @s2n_print_stacktrace(ptr noundef %3855) #11
  %3857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3858 = trunc nuw i8 %3857 to i1
  br i1 %3858, label %3859, label %3863

3859:                                             ; preds = %3853
  %3860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3861 = call i32 @fileno(ptr noundef %3860) #11
  %3862 = call i32 @isatty(i32 noundef %3861) #11
  %.not1038 = icmp eq i32 %3862, 0
  br i1 %.not1038, label %3863, label %3864

3863:                                             ; preds = %3859, %3853
  br label %3864

3864:                                             ; preds = %3859, %3863
  %.str.5.sink2650 = phi ptr [ @.str.5, %3863 ], [ @.str.2, %3859 ]
  store i32 %3854, ptr %3231, align 4, !tbaa !5
  %3865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3866 = load i32, ptr @test_count, align 4, !tbaa !5
  %3867 = load i32, ptr %3177, align 4, !tbaa !5
  %3868 = call ptr @s2n_strerror(i32 noundef %3867, ptr noundef nonnull @.str.4) #11
  %3869 = load i32, ptr %3177, align 4, !tbaa !5
  %3870 = call ptr @s2n_strerror_debug(i32 noundef %3869, ptr noundef nonnull @.str.4) #11
  %3871 = load i32, ptr %3231, align 4, !tbaa !5
  %3872 = call ptr @strerror(i32 noundef %3871) #11
  %3873 = load i32, ptr %3231, align 4, !tbaa !5
  %3874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3865, ptr noundef nonnull %.str.5.sink2650, i32 noundef %3866, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 550, ptr noundef %3868, ptr noundef %3870, ptr noundef %3872, i32 noundef %3873) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3875:                                             ; preds = %3846, %3844
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %52) #11
  %3876 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %51) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %49) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #11
  store ptr @s2n_rsa_pkcs1_sha256, ptr %53, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #11
  %3877 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %3877, ptr %54, align 8, !tbaa !9
  %3878 = getelementptr inbounds i8, ptr %3877, i64 220
  store i8 33, ptr %3878, align 4, !tbaa !50
  %3879 = getelementptr inbounds i8, ptr %3877, i64 232
  %3880 = load ptr, ptr %3879, align 8, !tbaa !60
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %3880, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %55) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %55, i8 0, i64 80, i1 false)
  %3881 = load i32, ptr @test_count, align 4, !tbaa !5
  %3882 = add nsw i32 %3881, 1
  store i32 %3882, ptr @test_count, align 4, !tbaa !5
  %3883 = load ptr, ptr %54, align 8, !tbaa !9
  %3884 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %3883, ptr noundef nonnull %55, ptr noundef nonnull %53, i64 noundef 1)
  %3885 = call zeroext i1 @s2n_result_is_ok(i32 %3884)
  br i1 %3885, label %3908, label %3886

3886:                                             ; preds = %3875
  %3887 = load i32, ptr %3231, align 4, !tbaa !5
  %3888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3889 = call i32 @s2n_print_stacktrace(ptr noundef %3888) #11
  %3890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3891 = trunc nuw i8 %3890 to i1
  br i1 %3891, label %3892, label %3896

3892:                                             ; preds = %3886
  %3893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3894 = call i32 @fileno(ptr noundef %3893) #11
  %3895 = call i32 @isatty(i32 noundef %3894) #11
  %.not1039 = icmp eq i32 %3895, 0
  br i1 %.not1039, label %3896, label %3897

3896:                                             ; preds = %3892, %3886
  br label %3897

3897:                                             ; preds = %3892, %3896
  %.str.5.sink2659 = phi ptr [ @.str.5, %3896 ], [ @.str.2, %3892 ]
  store i32 %3887, ptr %3231, align 4, !tbaa !5
  %3898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3899 = load i32, ptr @test_count, align 4, !tbaa !5
  %3900 = load i32, ptr %3177, align 4, !tbaa !5
  %3901 = call ptr @s2n_strerror(i32 noundef %3900, ptr noundef nonnull @.str.4) #11
  %3902 = load i32, ptr %3177, align 4, !tbaa !5
  %3903 = call ptr @s2n_strerror_debug(i32 noundef %3902, ptr noundef nonnull @.str.4) #11
  %3904 = load i32, ptr %3231, align 4, !tbaa !5
  %3905 = call ptr @strerror(i32 noundef %3904) #11
  %3906 = load i32, ptr %3231, align 4, !tbaa !5
  %3907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3898, ptr noundef nonnull %.str.5.sink2659, i32 noundef %3899, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 565, ptr noundef %3901, ptr noundef %3903, ptr noundef %3905, i32 noundef %3906) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3908:                                             ; preds = %3875
  %3909 = load i32, ptr @test_count, align 4, !tbaa !5
  %3910 = add nsw i32 %3909, 1
  store i32 %3910, ptr @test_count, align 4, !tbaa !5
  %3911 = load ptr, ptr %54, align 8, !tbaa !9
  %3912 = getelementptr inbounds i8, ptr %3911, i64 1268
  %3913 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %3912, ptr noundef nonnull %53, i64 noundef 1)
  %3914 = call zeroext i1 @s2n_result_is_ok(i32 %3913)
  br i1 %3914, label %3937, label %3915

3915:                                             ; preds = %3908
  %3916 = load i32, ptr %3231, align 4, !tbaa !5
  %3917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3918 = call i32 @s2n_print_stacktrace(ptr noundef %3917) #11
  %3919 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3920 = trunc nuw i8 %3919 to i1
  br i1 %3920, label %3921, label %3925

3921:                                             ; preds = %3915
  %3922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3923 = call i32 @fileno(ptr noundef %3922) #11
  %3924 = call i32 @isatty(i32 noundef %3923) #11
  %.not1040 = icmp eq i32 %3924, 0
  br i1 %.not1040, label %3925, label %3926

3925:                                             ; preds = %3921, %3915
  br label %3926

3926:                                             ; preds = %3921, %3925
  %.str.5.sink2668 = phi ptr [ @.str.5, %3925 ], [ @.str.2, %3921 ]
  store i32 %3916, ptr %3231, align 4, !tbaa !5
  %3927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3928 = load i32, ptr @test_count, align 4, !tbaa !5
  %3929 = load i32, ptr %3177, align 4, !tbaa !5
  %3930 = call ptr @s2n_strerror(i32 noundef %3929, ptr noundef nonnull @.str.4) #11
  %3931 = load i32, ptr %3177, align 4, !tbaa !5
  %3932 = call ptr @s2n_strerror_debug(i32 noundef %3931, ptr noundef nonnull @.str.4) #11
  %3933 = load i32, ptr %3231, align 4, !tbaa !5
  %3934 = call ptr @strerror(i32 noundef %3933) #11
  %3935 = load i32, ptr %3231, align 4, !tbaa !5
  %3936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3927, ptr noundef nonnull %.str.5.sink2668, i32 noundef %3928, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 567, ptr noundef %3930, ptr noundef %3932, ptr noundef %3934, i32 noundef %3935) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3937:                                             ; preds = %3908
  %3938 = load i32, ptr @test_count, align 4, !tbaa !5
  %3939 = add nsw i32 %3938, 1
  store i32 %3939, ptr @test_count, align 4, !tbaa !5
  %3940 = load ptr, ptr %54, align 8, !tbaa !9
  %3941 = call i32 @s2n_signature_algorithm_select(ptr noundef %3940) #11
  %3942 = call zeroext i1 @s2n_result_is_error(i32 %3941)
  br i1 %3942, label %3965, label %3943

3943:                                             ; preds = %3937
  %3944 = load i32, ptr %3231, align 4, !tbaa !5
  %3945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3946 = call i32 @s2n_print_stacktrace(ptr noundef %3945) #11
  %3947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3948 = trunc nuw i8 %3947 to i1
  br i1 %3948, label %3949, label %3953

3949:                                             ; preds = %3943
  %3950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3951 = call i32 @fileno(ptr noundef %3950) #11
  %3952 = call i32 @isatty(i32 noundef %3951) #11
  %.not1041 = icmp eq i32 %3952, 0
  br i1 %.not1041, label %3953, label %3954

3953:                                             ; preds = %3949, %3943
  br label %3954

3954:                                             ; preds = %3949, %3953
  %.str.5.sink2677 = phi ptr [ @.str.5, %3953 ], [ @.str.2, %3949 ]
  store i32 %3944, ptr %3231, align 4, !tbaa !5
  %3955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3956 = load i32, ptr @test_count, align 4, !tbaa !5
  %3957 = load i32, ptr %3177, align 4, !tbaa !5
  %3958 = call ptr @s2n_strerror(i32 noundef %3957, ptr noundef nonnull @.str.4) #11
  %3959 = load i32, ptr %3177, align 4, !tbaa !5
  %3960 = call ptr @s2n_strerror_debug(i32 noundef %3959, ptr noundef nonnull @.str.4) #11
  %3961 = load i32, ptr %3231, align 4, !tbaa !5
  %3962 = call ptr @strerror(i32 noundef %3961) #11
  %3963 = load i32, ptr %3231, align 4, !tbaa !5
  %3964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3955, ptr noundef nonnull %.str.5.sink2677, i32 noundef %3956, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 572, ptr noundef %3958, ptr noundef %3960, ptr noundef %3962, i32 noundef %3963) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3965:                                             ; preds = %3937
  %3966 = load i32, ptr @test_count, align 4, !tbaa !5
  %3967 = add nsw i32 %3966, 1
  store i32 %3967, ptr @test_count, align 4, !tbaa !5
  %3968 = load i32, ptr %3177, align 4, !tbaa !5
  %3969 = icmp eq i32 %3968, 335544349
  br i1 %3969, label %3992, label %3970

3970:                                             ; preds = %3965
  %3971 = load i32, ptr %3231, align 4, !tbaa !5
  %3972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3973 = call i32 @s2n_print_stacktrace(ptr noundef %3972) #11
  %3974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3975 = trunc nuw i8 %3974 to i1
  br i1 %3975, label %3976, label %3980

3976:                                             ; preds = %3970
  %3977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3978 = call i32 @fileno(ptr noundef %3977) #11
  %3979 = call i32 @isatty(i32 noundef %3978) #11
  %.not1042 = icmp eq i32 %3979, 0
  br i1 %.not1042, label %3980, label %3981

3980:                                             ; preds = %3976, %3970
  br label %3981

3981:                                             ; preds = %3976, %3980
  %.str.5.sink2686 = phi ptr [ @.str.5, %3980 ], [ @.str.2, %3976 ]
  store i32 %3971, ptr %3231, align 4, !tbaa !5
  %3982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3983 = load i32, ptr @test_count, align 4, !tbaa !5
  %3984 = load i32, ptr %3177, align 4, !tbaa !5
  %3985 = call ptr @s2n_strerror(i32 noundef %3984, ptr noundef nonnull @.str.4) #11
  %3986 = load i32, ptr %3177, align 4, !tbaa !5
  %3987 = call ptr @s2n_strerror_debug(i32 noundef %3986, ptr noundef nonnull @.str.4) #11
  %3988 = load i32, ptr %3231, align 4, !tbaa !5
  %3989 = call ptr @strerror(i32 noundef %3988) #11
  %3990 = load i32, ptr %3231, align 4, !tbaa !5
  %3991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3982, ptr noundef nonnull %.str.5.sink2686, i32 noundef %3983, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 572, ptr noundef %3985, ptr noundef %3987, ptr noundef %3989, i32 noundef %3990) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3992:                                             ; preds = %3965
  %3993 = add nsw i32 %3966, 2
  store i32 %3993, ptr @test_count, align 4, !tbaa !5
  %3994 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %3995 = icmp eq ptr %3994, null
  br i1 %3995, label %3996, label %4018

3996:                                             ; preds = %3992
  %3997 = load i32, ptr %3231, align 4, !tbaa !5
  %3998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3999 = call i32 @s2n_print_stacktrace(ptr noundef %3998) #11
  %4000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4001 = trunc nuw i8 %4000 to i1
  br i1 %4001, label %4002, label %4006

4002:                                             ; preds = %3996
  %4003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4004 = call i32 @fileno(ptr noundef %4003) #11
  %4005 = call i32 @isatty(i32 noundef %4004) #11
  %.not1259 = icmp eq i32 %4005, 0
  br i1 %.not1259, label %4006, label %4007

4006:                                             ; preds = %4002, %3996
  br label %4007

4007:                                             ; preds = %4002, %4006
  %.str.5.sink2695 = phi ptr [ @.str.5, %4006 ], [ @.str.2, %4002 ]
  store i32 %3997, ptr %3231, align 4, !tbaa !5
  %4008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4009 = load i32, ptr @test_count, align 4, !tbaa !5
  %4010 = load i32, ptr %3177, align 4, !tbaa !5
  %4011 = call ptr @s2n_strerror(i32 noundef %4010, ptr noundef nonnull @.str.4) #11
  %4012 = load i32, ptr %3177, align 4, !tbaa !5
  %4013 = call ptr @s2n_strerror_debug(i32 noundef %4012, ptr noundef nonnull @.str.4) #11
  %4014 = load i32, ptr %3231, align 4, !tbaa !5
  %4015 = call ptr @strerror(i32 noundef %4014) #11
  %4016 = load i32, ptr %3231, align 4, !tbaa !5
  %4017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4008, ptr noundef nonnull %.str.5.sink2695, i32 noundef %4009, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 572, ptr noundef %4011, ptr noundef %4013, ptr noundef %4015, i32 noundef %4016) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4018:                                             ; preds = %3992
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %4019 = load i32, ptr @test_count, align 4, !tbaa !5
  %4020 = add nsw i32 %4019, 1
  store i32 %4020, ptr @test_count, align 4, !tbaa !5
  %4021 = load ptr, ptr %54, align 8, !tbaa !9
  %4022 = load ptr, ptr %22, align 8, !tbaa !9
  %4023 = call i32 @s2n_connection_set_config(ptr noundef %4021, ptr noundef %4022) #11
  %4024 = icmp eq i32 %4023, -1
  br i1 %4024, label %4025, label %4047

4025:                                             ; preds = %4018
  %4026 = load i32, ptr %3231, align 4, !tbaa !5
  %4027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4028 = call i32 @s2n_print_stacktrace(ptr noundef %4027) #11
  %4029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4030 = trunc nuw i8 %4029 to i1
  br i1 %4030, label %4031, label %4035

4031:                                             ; preds = %4025
  %4032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4033 = call i32 @fileno(ptr noundef %4032) #11
  %4034 = call i32 @isatty(i32 noundef %4033) #11
  %.not1258 = icmp eq i32 %4034, 0
  br i1 %.not1258, label %4035, label %4036

4035:                                             ; preds = %4031, %4025
  br label %4036

4036:                                             ; preds = %4031, %4035
  %.str.5.sink2704 = phi ptr [ @.str.5, %4035 ], [ @.str.2, %4031 ]
  store i32 %4026, ptr %3231, align 4, !tbaa !5
  %4037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4038 = load i32, ptr @test_count, align 4, !tbaa !5
  %4039 = load i32, ptr %3177, align 4, !tbaa !5
  %4040 = call ptr @s2n_strerror(i32 noundef %4039, ptr noundef nonnull @.str.4) #11
  %4041 = load i32, ptr %3177, align 4, !tbaa !5
  %4042 = call ptr @s2n_strerror_debug(i32 noundef %4041, ptr noundef nonnull @.str.4) #11
  %4043 = load i32, ptr %3231, align 4, !tbaa !5
  %4044 = call ptr @strerror(i32 noundef %4043) #11
  %4045 = load i32, ptr %3231, align 4, !tbaa !5
  %4046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4037, ptr noundef nonnull %.str.5.sink2704, i32 noundef %4038, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 575, ptr noundef %4040, ptr noundef %4042, ptr noundef %4044, i32 noundef %4045) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4047:                                             ; preds = %4018
  %4048 = load i32, ptr @test_count, align 4, !tbaa !5
  %4049 = add nsw i32 %4048, 1
  store i32 %4049, ptr @test_count, align 4, !tbaa !5
  %4050 = load ptr, ptr %54, align 8, !tbaa !9
  %4051 = call i32 @s2n_signature_algorithm_select(ptr noundef %4050) #11
  %4052 = call zeroext i1 @s2n_result_is_error(i32 %4051)
  br i1 %4052, label %4075, label %4053

4053:                                             ; preds = %4047
  %4054 = load i32, ptr %3231, align 4, !tbaa !5
  %4055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4056 = call i32 @s2n_print_stacktrace(ptr noundef %4055) #11
  %4057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4058 = trunc nuw i8 %4057 to i1
  br i1 %4058, label %4059, label %4063

4059:                                             ; preds = %4053
  %4060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4061 = call i32 @fileno(ptr noundef %4060) #11
  %4062 = call i32 @isatty(i32 noundef %4061) #11
  %.not1043 = icmp eq i32 %4062, 0
  br i1 %.not1043, label %4063, label %4064

4063:                                             ; preds = %4059, %4053
  br label %4064

4064:                                             ; preds = %4059, %4063
  %.str.5.sink2713 = phi ptr [ @.str.5, %4063 ], [ @.str.2, %4059 ]
  store i32 %4054, ptr %3231, align 4, !tbaa !5
  %4065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4066 = load i32, ptr @test_count, align 4, !tbaa !5
  %4067 = load i32, ptr %3177, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror(i32 noundef %4067, ptr noundef nonnull @.str.4) #11
  %4069 = load i32, ptr %3177, align 4, !tbaa !5
  %4070 = call ptr @s2n_strerror_debug(i32 noundef %4069, ptr noundef nonnull @.str.4) #11
  %4071 = load i32, ptr %3231, align 4, !tbaa !5
  %4072 = call ptr @strerror(i32 noundef %4071) #11
  %4073 = load i32, ptr %3231, align 4, !tbaa !5
  %4074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4065, ptr noundef nonnull %.str.5.sink2713, i32 noundef %4066, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 578, ptr noundef %4068, ptr noundef %4070, ptr noundef %4072, i32 noundef %4073) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4075:                                             ; preds = %4047
  %4076 = load i32, ptr @test_count, align 4, !tbaa !5
  %4077 = add nsw i32 %4076, 1
  store i32 %4077, ptr @test_count, align 4, !tbaa !5
  %4078 = load i32, ptr %3177, align 4, !tbaa !5
  %4079 = icmp eq i32 %4078, 335544349
  br i1 %4079, label %4102, label %4080

4080:                                             ; preds = %4075
  %4081 = load i32, ptr %3231, align 4, !tbaa !5
  %4082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4083 = call i32 @s2n_print_stacktrace(ptr noundef %4082) #11
  %4084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4085 = trunc nuw i8 %4084 to i1
  br i1 %4085, label %4086, label %4090

4086:                                             ; preds = %4080
  %4087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4088 = call i32 @fileno(ptr noundef %4087) #11
  %4089 = call i32 @isatty(i32 noundef %4088) #11
  %.not1044 = icmp eq i32 %4089, 0
  br i1 %.not1044, label %4090, label %4091

4090:                                             ; preds = %4086, %4080
  br label %4091

4091:                                             ; preds = %4086, %4090
  %.str.5.sink2722 = phi ptr [ @.str.5, %4090 ], [ @.str.2, %4086 ]
  store i32 %4081, ptr %3231, align 4, !tbaa !5
  %4092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4093 = load i32, ptr @test_count, align 4, !tbaa !5
  %4094 = load i32, ptr %3177, align 4, !tbaa !5
  %4095 = call ptr @s2n_strerror(i32 noundef %4094, ptr noundef nonnull @.str.4) #11
  %4096 = load i32, ptr %3177, align 4, !tbaa !5
  %4097 = call ptr @s2n_strerror_debug(i32 noundef %4096, ptr noundef nonnull @.str.4) #11
  %4098 = load i32, ptr %3231, align 4, !tbaa !5
  %4099 = call ptr @strerror(i32 noundef %4098) #11
  %4100 = load i32, ptr %3231, align 4, !tbaa !5
  %4101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4092, ptr noundef nonnull %.str.5.sink2722, i32 noundef %4093, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 578, ptr noundef %4095, ptr noundef %4097, ptr noundef %4099, i32 noundef %4100) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4102:                                             ; preds = %4075
  %4103 = add nsw i32 %4076, 2
  store i32 %4103, ptr @test_count, align 4, !tbaa !5
  %4104 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %4105 = icmp eq ptr %4104, null
  br i1 %4105, label %4106, label %4128

4106:                                             ; preds = %4102
  %4107 = load i32, ptr %3231, align 4, !tbaa !5
  %4108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4109 = call i32 @s2n_print_stacktrace(ptr noundef %4108) #11
  %4110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4111 = trunc nuw i8 %4110 to i1
  br i1 %4111, label %4112, label %4116

4112:                                             ; preds = %4106
  %4113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4114 = call i32 @fileno(ptr noundef %4113) #11
  %4115 = call i32 @isatty(i32 noundef %4114) #11
  %.not1257 = icmp eq i32 %4115, 0
  br i1 %.not1257, label %4116, label %4117

4116:                                             ; preds = %4112, %4106
  br label %4117

4117:                                             ; preds = %4112, %4116
  %.str.5.sink2731 = phi ptr [ @.str.5, %4116 ], [ @.str.2, %4112 ]
  store i32 %4107, ptr %3231, align 4, !tbaa !5
  %4118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4119 = load i32, ptr @test_count, align 4, !tbaa !5
  %4120 = load i32, ptr %3177, align 4, !tbaa !5
  %4121 = call ptr @s2n_strerror(i32 noundef %4120, ptr noundef nonnull @.str.4) #11
  %4122 = load i32, ptr %3177, align 4, !tbaa !5
  %4123 = call ptr @s2n_strerror_debug(i32 noundef %4122, ptr noundef nonnull @.str.4) #11
  %4124 = load i32, ptr %3231, align 4, !tbaa !5
  %4125 = call ptr @strerror(i32 noundef %4124) #11
  %4126 = load i32, ptr %3231, align 4, !tbaa !5
  %4127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4118, ptr noundef nonnull %.str.5.sink2731, i32 noundef %4119, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 578, ptr noundef %4121, ptr noundef %4123, ptr noundef %4125, i32 noundef %4126) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4128:                                             ; preds = %4102
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %4129 = load i32, ptr @test_count, align 4, !tbaa !5
  %4130 = add nsw i32 %4129, 1
  store i32 %4130, ptr @test_count, align 4, !tbaa !5
  %4131 = load ptr, ptr %54, align 8, !tbaa !9
  %4132 = load ptr, ptr %23, align 8, !tbaa !9
  %4133 = call i32 @s2n_connection_set_config(ptr noundef %4131, ptr noundef %4132) #11
  %4134 = icmp eq i32 %4133, -1
  br i1 %4134, label %4135, label %4157

4135:                                             ; preds = %4128
  %4136 = load i32, ptr %3231, align 4, !tbaa !5
  %4137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4138 = call i32 @s2n_print_stacktrace(ptr noundef %4137) #11
  %4139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4140 = trunc nuw i8 %4139 to i1
  br i1 %4140, label %4141, label %4145

4141:                                             ; preds = %4135
  %4142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4143 = call i32 @fileno(ptr noundef %4142) #11
  %4144 = call i32 @isatty(i32 noundef %4143) #11
  %.not1256 = icmp eq i32 %4144, 0
  br i1 %.not1256, label %4145, label %4146

4145:                                             ; preds = %4141, %4135
  br label %4146

4146:                                             ; preds = %4141, %4145
  %.str.5.sink2740 = phi ptr [ @.str.5, %4145 ], [ @.str.2, %4141 ]
  store i32 %4136, ptr %3231, align 4, !tbaa !5
  %4147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4148 = load i32, ptr @test_count, align 4, !tbaa !5
  %4149 = load i32, ptr %3177, align 4, !tbaa !5
  %4150 = call ptr @s2n_strerror(i32 noundef %4149, ptr noundef nonnull @.str.4) #11
  %4151 = load i32, ptr %3177, align 4, !tbaa !5
  %4152 = call ptr @s2n_strerror_debug(i32 noundef %4151, ptr noundef nonnull @.str.4) #11
  %4153 = load i32, ptr %3231, align 4, !tbaa !5
  %4154 = call ptr @strerror(i32 noundef %4153) #11
  %4155 = load i32, ptr %3231, align 4, !tbaa !5
  %4156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4147, ptr noundef nonnull %.str.5.sink2740, i32 noundef %4148, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 581, ptr noundef %4150, ptr noundef %4152, ptr noundef %4154, i32 noundef %4155) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4157:                                             ; preds = %4128
  %4158 = load i32, ptr @test_count, align 4, !tbaa !5
  %4159 = add nsw i32 %4158, 1
  store i32 %4159, ptr @test_count, align 4, !tbaa !5
  %4160 = load ptr, ptr %54, align 8, !tbaa !9
  %4161 = call i32 @s2n_signature_algorithm_select(ptr noundef %4160) #11
  %4162 = call zeroext i1 @s2n_result_is_ok(i32 %4161)
  br i1 %4162, label %4185, label %4163

4163:                                             ; preds = %4157
  %4164 = load i32, ptr %3231, align 4, !tbaa !5
  %4165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4166 = call i32 @s2n_print_stacktrace(ptr noundef %4165) #11
  %4167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4168 = trunc nuw i8 %4167 to i1
  br i1 %4168, label %4169, label %4173

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

4173:                                             ; preds = %4169, %4163
  br label %4174

4174:                                             ; preds = %4169, %4173
  %.str.5.sink2749 = phi ptr [ @.str.5, %4173 ], [ @.str.2, %4169 ]
  store i32 %4164, ptr %3231, align 4, !tbaa !5
  %4175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4176 = load i32, ptr @test_count, align 4, !tbaa !5
  %4177 = load i32, ptr %3177, align 4, !tbaa !5
  %4178 = call ptr @s2n_strerror(i32 noundef %4177, ptr noundef nonnull @.str.4) #11
  %4179 = load i32, ptr %3177, align 4, !tbaa !5
  %4180 = call ptr @s2n_strerror_debug(i32 noundef %4179, ptr noundef nonnull @.str.4) #11
  %4181 = load i32, ptr %3231, align 4, !tbaa !5
  %4182 = call ptr @strerror(i32 noundef %4181) #11
  %4183 = load i32, ptr %3231, align 4, !tbaa !5
  %4184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4175, ptr noundef nonnull %.str.5.sink2749, i32 noundef %4176, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 582, ptr noundef %4178, ptr noundef %4180, ptr noundef %4182, i32 noundef %4183) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4185:                                             ; preds = %4157
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %55) #11
  %4186 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %54) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #11
  store ptr @s2n_ecdsa_sha384, ptr %56, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #11
  %4187 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %4187, ptr %57, align 8, !tbaa !9
  %4188 = getelementptr inbounds i8, ptr %4187, i64 220
  store i8 33, ptr %4188, align 4, !tbaa !50
  %4189 = getelementptr inbounds i8, ptr %4187, i64 232
  %4190 = load ptr, ptr %4189, align 8, !tbaa !60
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %4190, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %58) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %58, i8 0, i64 80, i1 false)
  %4191 = load i32, ptr @test_count, align 4, !tbaa !5
  %4192 = add nsw i32 %4191, 1
  store i32 %4192, ptr @test_count, align 4, !tbaa !5
  %4193 = load ptr, ptr %57, align 8, !tbaa !9
  %4194 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %4193, ptr noundef nonnull %58, ptr noundef nonnull %56, i64 noundef 1)
  %4195 = call zeroext i1 @s2n_result_is_ok(i32 %4194)
  br i1 %4195, label %4218, label %4196

4196:                                             ; preds = %4185
  %4197 = load i32, ptr %3231, align 4, !tbaa !5
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = call i32 @s2n_print_stacktrace(ptr noundef %4198) #11
  %4200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4201 = trunc nuw i8 %4200 to i1
  br i1 %4201, label %4202, label %4206

4202:                                             ; preds = %4196
  %4203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4204 = call i32 @fileno(ptr noundef %4203) #11
  %4205 = call i32 @isatty(i32 noundef %4204) #11
  %.not1046 = icmp eq i32 %4205, 0
  br i1 %.not1046, label %4206, label %4207

4206:                                             ; preds = %4202, %4196
  br label %4207

4207:                                             ; preds = %4202, %4206
  %.str.5.sink2758 = phi ptr [ @.str.5, %4206 ], [ @.str.2, %4202 ]
  store i32 %4197, ptr %3231, align 4, !tbaa !5
  %4208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4209 = load i32, ptr @test_count, align 4, !tbaa !5
  %4210 = load i32, ptr %3177, align 4, !tbaa !5
  %4211 = call ptr @s2n_strerror(i32 noundef %4210, ptr noundef nonnull @.str.4) #11
  %4212 = load i32, ptr %3177, align 4, !tbaa !5
  %4213 = call ptr @s2n_strerror_debug(i32 noundef %4212, ptr noundef nonnull @.str.4) #11
  %4214 = load i32, ptr %3231, align 4, !tbaa !5
  %4215 = call ptr @strerror(i32 noundef %4214) #11
  %4216 = load i32, ptr %3231, align 4, !tbaa !5
  %4217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4208, ptr noundef nonnull %.str.5.sink2758, i32 noundef %4209, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 596, ptr noundef %4211, ptr noundef %4213, ptr noundef %4215, i32 noundef %4216) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4218:                                             ; preds = %4185
  %4219 = load i32, ptr @test_count, align 4, !tbaa !5
  %4220 = add nsw i32 %4219, 1
  store i32 %4220, ptr @test_count, align 4, !tbaa !5
  %4221 = load ptr, ptr %57, align 8, !tbaa !9
  %4222 = getelementptr inbounds i8, ptr %4221, i64 1268
  %4223 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %4222, ptr noundef nonnull %56, i64 noundef 1)
  %4224 = call zeroext i1 @s2n_result_is_ok(i32 %4223)
  br i1 %4224, label %4247, label %4225

4225:                                             ; preds = %4218
  %4226 = load i32, ptr %3231, align 4, !tbaa !5
  %4227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4228 = call i32 @s2n_print_stacktrace(ptr noundef %4227) #11
  %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) #11
  %4234 = call i32 @isatty(i32 noundef %4233) #11
  %.not1047 = icmp eq i32 %4234, 0
  br i1 %.not1047, label %4235, label %4236

4235:                                             ; preds = %4231, %4225
  br label %4236

4236:                                             ; preds = %4231, %4235
  %.str.5.sink2767 = phi ptr [ @.str.5, %4235 ], [ @.str.2, %4231 ]
  store i32 %4226, ptr %3231, 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 %3177, align 4, !tbaa !5
  %4240 = call ptr @s2n_strerror(i32 noundef %4239, ptr noundef nonnull @.str.4) #11
  %4241 = load i32, ptr %3177, align 4, !tbaa !5
  %4242 = call ptr @s2n_strerror_debug(i32 noundef %4241, ptr noundef nonnull @.str.4) #11
  %4243 = load i32, ptr %3231, align 4, !tbaa !5
  %4244 = call ptr @strerror(i32 noundef %4243) #11
  %4245 = load i32, ptr %3231, align 4, !tbaa !5
  %4246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4237, ptr noundef nonnull %.str.5.sink2767, i32 noundef %4238, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 598, ptr noundef %4240, ptr noundef %4242, ptr noundef %4244, i32 noundef %4245) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4247:                                             ; preds = %4218
  %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 = load ptr, ptr %57, align 8, !tbaa !9
  %4251 = call i32 @s2n_signature_algorithm_select(ptr noundef %4250) #11
  %4252 = call zeroext i1 @s2n_result_is_error(i32 %4251)
  br i1 %4252, label %4275, label %4253

4253:                                             ; preds = %4247
  %4254 = load i32, ptr %3231, align 4, !tbaa !5
  %4255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4256 = call i32 @s2n_print_stacktrace(ptr noundef %4255) #11
  %4257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4258 = trunc nuw i8 %4257 to i1
  br i1 %4258, label %4259, label %4263

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

4263:                                             ; preds = %4259, %4253
  br label %4264

4264:                                             ; preds = %4259, %4263
  %.str.5.sink2776 = phi ptr [ @.str.5, %4263 ], [ @.str.2, %4259 ]
  store i32 %4254, ptr %3231, align 4, !tbaa !5
  %4265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4266 = load i32, ptr @test_count, align 4, !tbaa !5
  %4267 = load i32, ptr %3177, align 4, !tbaa !5
  %4268 = call ptr @s2n_strerror(i32 noundef %4267, ptr noundef nonnull @.str.4) #11
  %4269 = load i32, ptr %3177, align 4, !tbaa !5
  %4270 = call ptr @s2n_strerror_debug(i32 noundef %4269, ptr noundef nonnull @.str.4) #11
  %4271 = load i32, ptr %3231, align 4, !tbaa !5
  %4272 = call ptr @strerror(i32 noundef %4271) #11
  %4273 = load i32, ptr %3231, align 4, !tbaa !5
  %4274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4265, ptr noundef nonnull %.str.5.sink2776, i32 noundef %4266, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 603, ptr noundef %4268, ptr noundef %4270, ptr noundef %4272, i32 noundef %4273) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4275:                                             ; preds = %4247
  %4276 = load i32, ptr @test_count, align 4, !tbaa !5
  %4277 = add nsw i32 %4276, 1
  store i32 %4277, ptr @test_count, align 4, !tbaa !5
  %4278 = load i32, ptr %3177, align 4, !tbaa !5
  %4279 = icmp eq i32 %4278, 335544349
  br i1 %4279, label %4302, label %4280

4280:                                             ; preds = %4275
  %4281 = load i32, ptr %3231, align 4, !tbaa !5
  %4282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4283 = call i32 @s2n_print_stacktrace(ptr noundef %4282) #11
  %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) #11
  %4289 = call i32 @isatty(i32 noundef %4288) #11
  %.not1049 = icmp eq i32 %4289, 0
  br i1 %.not1049, label %4290, label %4291

4290:                                             ; preds = %4286, %4280
  br label %4291

4291:                                             ; preds = %4286, %4290
  %.str.5.sink2785 = phi ptr [ @.str.5, %4290 ], [ @.str.2, %4286 ]
  store i32 %4281, ptr %3231, 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 %3177, align 4, !tbaa !5
  %4295 = call ptr @s2n_strerror(i32 noundef %4294, ptr noundef nonnull @.str.4) #11
  %4296 = load i32, ptr %3177, align 4, !tbaa !5
  %4297 = call ptr @s2n_strerror_debug(i32 noundef %4296, ptr noundef nonnull @.str.4) #11
  %4298 = load i32, ptr %3231, align 4, !tbaa !5
  %4299 = call ptr @strerror(i32 noundef %4298) #11
  %4300 = load i32, ptr %3231, align 4, !tbaa !5
  %4301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4292, ptr noundef nonnull %.str.5.sink2785, i32 noundef %4293, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 603, ptr noundef %4295, ptr noundef %4297, ptr noundef %4299, i32 noundef %4300) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4302:                                             ; preds = %4275
  %4303 = add nsw i32 %4276, 2
  store i32 %4303, ptr @test_count, align 4, !tbaa !5
  %4304 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %4305 = icmp eq ptr %4304, null
  br i1 %4305, label %4306, label %4328

4306:                                             ; preds = %4302
  %4307 = load i32, ptr %3231, align 4, !tbaa !5
  %4308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4309 = call i32 @s2n_print_stacktrace(ptr noundef %4308) #11
  %4310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4311 = trunc nuw i8 %4310 to i1
  br i1 %4311, label %4312, label %4316

4312:                                             ; preds = %4306
  %4313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4314 = call i32 @fileno(ptr noundef %4313) #11
  %4315 = call i32 @isatty(i32 noundef %4314) #11
  %.not1255 = icmp eq i32 %4315, 0
  br i1 %.not1255, label %4316, label %4317

4316:                                             ; preds = %4312, %4306
  br label %4317

4317:                                             ; preds = %4312, %4316
  %.str.5.sink2794 = phi ptr [ @.str.5, %4316 ], [ @.str.2, %4312 ]
  store i32 %4307, ptr %3231, align 4, !tbaa !5
  %4318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4319 = load i32, ptr @test_count, align 4, !tbaa !5
  %4320 = load i32, ptr %3177, align 4, !tbaa !5
  %4321 = call ptr @s2n_strerror(i32 noundef %4320, ptr noundef nonnull @.str.4) #11
  %4322 = load i32, ptr %3177, align 4, !tbaa !5
  %4323 = call ptr @s2n_strerror_debug(i32 noundef %4322, ptr noundef nonnull @.str.4) #11
  %4324 = load i32, ptr %3231, align 4, !tbaa !5
  %4325 = call ptr @strerror(i32 noundef %4324) #11
  %4326 = load i32, ptr %3231, align 4, !tbaa !5
  %4327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4318, ptr noundef nonnull %.str.5.sink2794, i32 noundef %4319, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 603, ptr noundef %4321, ptr noundef %4323, ptr noundef %4325, i32 noundef %4326) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4328:                                             ; preds = %4302
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %4329 = load i32, ptr @test_count, align 4, !tbaa !5
  %4330 = add nsw i32 %4329, 1
  store i32 %4330, ptr @test_count, align 4, !tbaa !5
  %4331 = load ptr, ptr %57, align 8, !tbaa !9
  %4332 = load ptr, ptr %23, align 8, !tbaa !9
  %4333 = call i32 @s2n_connection_set_config(ptr noundef %4331, ptr noundef %4332) #11
  %4334 = icmp eq i32 %4333, -1
  br i1 %4334, label %4335, label %4357

4335:                                             ; preds = %4328
  %4336 = load i32, ptr %3231, align 4, !tbaa !5
  %4337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4338 = call i32 @s2n_print_stacktrace(ptr noundef %4337) #11
  %4339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4340 = trunc nuw i8 %4339 to i1
  br i1 %4340, label %4341, label %4345

4341:                                             ; preds = %4335
  %4342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4343 = call i32 @fileno(ptr noundef %4342) #11
  %4344 = call i32 @isatty(i32 noundef %4343) #11
  %.not1254 = icmp eq i32 %4344, 0
  br i1 %.not1254, label %4345, label %4346

4345:                                             ; preds = %4341, %4335
  br label %4346

4346:                                             ; preds = %4341, %4345
  %.str.5.sink2803 = phi ptr [ @.str.5, %4345 ], [ @.str.2, %4341 ]
  store i32 %4336, ptr %3231, align 4, !tbaa !5
  %4347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4348 = load i32, ptr @test_count, align 4, !tbaa !5
  %4349 = load i32, ptr %3177, align 4, !tbaa !5
  %4350 = call ptr @s2n_strerror(i32 noundef %4349, ptr noundef nonnull @.str.4) #11
  %4351 = load i32, ptr %3177, align 4, !tbaa !5
  %4352 = call ptr @s2n_strerror_debug(i32 noundef %4351, ptr noundef nonnull @.str.4) #11
  %4353 = load i32, ptr %3231, align 4, !tbaa !5
  %4354 = call ptr @strerror(i32 noundef %4353) #11
  %4355 = load i32, ptr %3231, align 4, !tbaa !5
  %4356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4347, ptr noundef nonnull %.str.5.sink2803, i32 noundef %4348, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 606, ptr noundef %4350, ptr noundef %4352, ptr noundef %4354, i32 noundef %4355) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4357:                                             ; preds = %4328
  %4358 = load i32, ptr @test_count, align 4, !tbaa !5
  %4359 = add nsw i32 %4358, 1
  store i32 %4359, ptr @test_count, align 4, !tbaa !5
  %4360 = load ptr, ptr %57, align 8, !tbaa !9
  %4361 = call i32 @s2n_signature_algorithm_select(ptr noundef %4360) #11
  %4362 = call zeroext i1 @s2n_result_is_error(i32 %4361)
  br i1 %4362, label %4385, label %4363

4363:                                             ; preds = %4357
  %4364 = load i32, ptr %3231, align 4, !tbaa !5
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = call i32 @s2n_print_stacktrace(ptr noundef %4365) #11
  %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) #11
  %4372 = call i32 @isatty(i32 noundef %4371) #11
  %.not1050 = icmp eq i32 %4372, 0
  br i1 %.not1050, label %4373, label %4374

4373:                                             ; preds = %4369, %4363
  br label %4374

4374:                                             ; preds = %4369, %4373
  %.str.5.sink2812 = phi ptr [ @.str.5, %4373 ], [ @.str.2, %4369 ]
  store i32 %4364, ptr %3231, 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 %3177, align 4, !tbaa !5
  %4378 = call ptr @s2n_strerror(i32 noundef %4377, ptr noundef nonnull @.str.4) #11
  %4379 = load i32, ptr %3177, align 4, !tbaa !5
  %4380 = call ptr @s2n_strerror_debug(i32 noundef %4379, ptr noundef nonnull @.str.4) #11
  %4381 = load i32, ptr %3231, align 4, !tbaa !5
  %4382 = call ptr @strerror(i32 noundef %4381) #11
  %4383 = load i32, ptr %3231, align 4, !tbaa !5
  %4384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4375, ptr noundef nonnull %.str.5.sink2812, i32 noundef %4376, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 609, ptr noundef %4378, ptr noundef %4380, ptr noundef %4382, i32 noundef %4383) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4385:                                             ; preds = %4357
  %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 = load i32, ptr %3177, align 4, !tbaa !5
  %4389 = icmp eq i32 %4388, 335544349
  br i1 %4389, label %4412, label %4390

4390:                                             ; preds = %4385
  %4391 = load i32, ptr %3231, align 4, !tbaa !5
  %4392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4393 = call i32 @s2n_print_stacktrace(ptr noundef %4392) #11
  %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) #11
  %4399 = call i32 @isatty(i32 noundef %4398) #11
  %.not1051 = icmp eq i32 %4399, 0
  br i1 %.not1051, label %4400, label %4401

4400:                                             ; preds = %4396, %4390
  br label %4401

4401:                                             ; preds = %4396, %4400
  %.str.5.sink2821 = phi ptr [ @.str.5, %4400 ], [ @.str.2, %4396 ]
  store i32 %4391, ptr %3231, 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 %3177, align 4, !tbaa !5
  %4405 = call ptr @s2n_strerror(i32 noundef %4404, ptr noundef nonnull @.str.4) #11
  %4406 = load i32, ptr %3177, align 4, !tbaa !5
  %4407 = call ptr @s2n_strerror_debug(i32 noundef %4406, ptr noundef nonnull @.str.4) #11
  %4408 = load i32, ptr %3231, align 4, !tbaa !5
  %4409 = call ptr @strerror(i32 noundef %4408) #11
  %4410 = load i32, ptr %3231, align 4, !tbaa !5
  %4411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4402, ptr noundef nonnull %.str.5.sink2821, i32 noundef %4403, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 609, ptr noundef %4405, ptr noundef %4407, ptr noundef %4409, i32 noundef %4410) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4412:                                             ; preds = %4385
  %4413 = add nsw i32 %4386, 2
  store i32 %4413, ptr @test_count, align 4, !tbaa !5
  %4414 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %4415 = icmp eq ptr %4414, null
  br i1 %4415, label %4416, label %4438

4416:                                             ; preds = %4412
  %4417 = load i32, ptr %3231, align 4, !tbaa !5
  %4418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4419 = call i32 @s2n_print_stacktrace(ptr noundef %4418) #11
  %4420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4421 = trunc nuw i8 %4420 to i1
  br i1 %4421, label %4422, label %4426

4422:                                             ; preds = %4416
  %4423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4424 = call i32 @fileno(ptr noundef %4423) #11
  %4425 = call i32 @isatty(i32 noundef %4424) #11
  %.not1253 = icmp eq i32 %4425, 0
  br i1 %.not1253, label %4426, label %4427

4426:                                             ; preds = %4422, %4416
  br label %4427

4427:                                             ; preds = %4422, %4426
  %.str.5.sink2830 = phi ptr [ @.str.5, %4426 ], [ @.str.2, %4422 ]
  store i32 %4417, ptr %3231, align 4, !tbaa !5
  %4428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4429 = load i32, ptr @test_count, align 4, !tbaa !5
  %4430 = load i32, ptr %3177, align 4, !tbaa !5
  %4431 = call ptr @s2n_strerror(i32 noundef %4430, ptr noundef nonnull @.str.4) #11
  %4432 = load i32, ptr %3177, align 4, !tbaa !5
  %4433 = call ptr @s2n_strerror_debug(i32 noundef %4432, ptr noundef nonnull @.str.4) #11
  %4434 = load i32, ptr %3231, align 4, !tbaa !5
  %4435 = call ptr @strerror(i32 noundef %4434) #11
  %4436 = load i32, ptr %3231, align 4, !tbaa !5
  %4437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4428, ptr noundef nonnull %.str.5.sink2830, i32 noundef %4429, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 609, ptr noundef %4431, ptr noundef %4433, ptr noundef %4435, i32 noundef %4436) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4438:                                             ; preds = %4412
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %4439 = load i32, ptr @test_count, align 4, !tbaa !5
  %4440 = add nsw i32 %4439, 1
  store i32 %4440, ptr @test_count, align 4, !tbaa !5
  %4441 = load ptr, ptr %57, align 8, !tbaa !9
  %4442 = load ptr, ptr %22, align 8, !tbaa !9
  %4443 = call i32 @s2n_connection_set_config(ptr noundef %4441, ptr noundef %4442) #11
  %4444 = icmp eq i32 %4443, -1
  br i1 %4444, label %4445, label %4467

4445:                                             ; preds = %4438
  %4446 = load i32, ptr %3231, align 4, !tbaa !5
  %4447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4448 = call i32 @s2n_print_stacktrace(ptr noundef %4447) #11
  %4449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4450 = trunc nuw i8 %4449 to i1
  br i1 %4450, label %4451, label %4455

4451:                                             ; preds = %4445
  %4452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4453 = call i32 @fileno(ptr noundef %4452) #11
  %4454 = call i32 @isatty(i32 noundef %4453) #11
  %.not1252 = icmp eq i32 %4454, 0
  br i1 %.not1252, label %4455, label %4456

4455:                                             ; preds = %4451, %4445
  br label %4456

4456:                                             ; preds = %4451, %4455
  %.str.5.sink2839 = phi ptr [ @.str.5, %4455 ], [ @.str.2, %4451 ]
  store i32 %4446, ptr %3231, align 4, !tbaa !5
  %4457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4458 = load i32, ptr @test_count, align 4, !tbaa !5
  %4459 = load i32, ptr %3177, align 4, !tbaa !5
  %4460 = call ptr @s2n_strerror(i32 noundef %4459, ptr noundef nonnull @.str.4) #11
  %4461 = load i32, ptr %3177, align 4, !tbaa !5
  %4462 = call ptr @s2n_strerror_debug(i32 noundef %4461, ptr noundef nonnull @.str.4) #11
  %4463 = load i32, ptr %3231, align 4, !tbaa !5
  %4464 = call ptr @strerror(i32 noundef %4463) #11
  %4465 = load i32, ptr %3231, align 4, !tbaa !5
  %4466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4457, ptr noundef nonnull %.str.5.sink2839, i32 noundef %4458, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 612, ptr noundef %4460, ptr noundef %4462, ptr noundef %4464, i32 noundef %4465) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4467:                                             ; preds = %4438
  %4468 = load i32, ptr @test_count, align 4, !tbaa !5
  %4469 = add nsw i32 %4468, 1
  store i32 %4469, ptr @test_count, align 4, !tbaa !5
  %4470 = load ptr, ptr %57, align 8, !tbaa !9
  %4471 = call i32 @s2n_signature_algorithm_select(ptr noundef %4470) #11
  %4472 = call zeroext i1 @s2n_result_is_ok(i32 %4471)
  br i1 %4472, label %4495, label %4473

4473:                                             ; preds = %4467
  %4474 = load i32, ptr %3231, align 4, !tbaa !5
  %4475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4476 = call i32 @s2n_print_stacktrace(ptr noundef %4475) #11
  %4477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4478 = trunc nuw i8 %4477 to i1
  br i1 %4478, label %4479, label %4483

4479:                                             ; preds = %4473
  %4480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4481 = call i32 @fileno(ptr noundef %4480) #11
  %4482 = call i32 @isatty(i32 noundef %4481) #11
  %.not1052 = icmp eq i32 %4482, 0
  br i1 %.not1052, label %4483, label %4484

4483:                                             ; preds = %4479, %4473
  br label %4484

4484:                                             ; preds = %4479, %4483
  %.str.5.sink2848 = phi ptr [ @.str.5, %4483 ], [ @.str.2, %4479 ]
  store i32 %4474, ptr %3231, align 4, !tbaa !5
  %4485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4486 = load i32, ptr @test_count, align 4, !tbaa !5
  %4487 = load i32, ptr %3177, align 4, !tbaa !5
  %4488 = call ptr @s2n_strerror(i32 noundef %4487, ptr noundef nonnull @.str.4) #11
  %4489 = load i32, ptr %3177, align 4, !tbaa !5
  %4490 = call ptr @s2n_strerror_debug(i32 noundef %4489, ptr noundef nonnull @.str.4) #11
  %4491 = load i32, ptr %3231, align 4, !tbaa !5
  %4492 = call ptr @strerror(i32 noundef %4491) #11
  %4493 = load i32, ptr %3231, align 4, !tbaa !5
  %4494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4485, ptr noundef nonnull %.str.5.sink2848, i32 noundef %4486, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 613, ptr noundef %4488, ptr noundef %4490, ptr noundef %4492, i32 noundef %4493) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4495:                                             ; preds = %4467
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %58) #11
  %4496 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %57) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #11
  store ptr @s2n_ecdsa_sha384, ptr %59, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #11
  store ptr @s2n_ecdsa_sha256, ptr %60, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #11
  %4497 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %4497, ptr %61, align 8, !tbaa !9
  %4498 = getelementptr inbounds i8, ptr %4497, i64 220
  store i8 34, ptr %4498, align 4, !tbaa !50
  %4499 = getelementptr inbounds i8, ptr %4497, i64 232
  %4500 = load ptr, ptr %4499, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %4500, align 8, !tbaa !61
  %4501 = load i32, ptr @test_count, align 4, !tbaa !5
  %4502 = add nsw i32 %4501, 1
  store i32 %4502, ptr @test_count, align 4, !tbaa !5
  %4503 = load ptr, ptr %61, align 8, !tbaa !9
  %4504 = load ptr, ptr %21, align 8, !tbaa !9
  %4505 = call i32 @s2n_connection_set_config(ptr noundef %4503, ptr noundef %4504) #11
  %4506 = icmp eq i32 %4505, -1
  br i1 %4506, label %4507, label %4529

4507:                                             ; preds = %4495
  %4508 = load i32, ptr %3231, align 4, !tbaa !5
  %4509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4510 = call i32 @s2n_print_stacktrace(ptr noundef %4509) #11
  %4511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4512 = trunc nuw i8 %4511 to i1
  br i1 %4512, label %4513, label %4517

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

4517:                                             ; preds = %4513, %4507
  br label %4518

4518:                                             ; preds = %4513, %4517
  %.str.5.sink2857 = phi ptr [ @.str.5, %4517 ], [ @.str.2, %4513 ]
  store i32 %4508, ptr %3231, align 4, !tbaa !5
  %4519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4520 = load i32, ptr @test_count, align 4, !tbaa !5
  %4521 = load i32, ptr %3177, align 4, !tbaa !5
  %4522 = call ptr @s2n_strerror(i32 noundef %4521, ptr noundef nonnull @.str.4) #11
  %4523 = load i32, ptr %3177, align 4, !tbaa !5
  %4524 = call ptr @s2n_strerror_debug(i32 noundef %4523, ptr noundef nonnull @.str.4) #11
  %4525 = load i32, ptr %3231, align 4, !tbaa !5
  %4526 = call ptr @strerror(i32 noundef %4525) #11
  %4527 = load i32, ptr %3231, align 4, !tbaa !5
  %4528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4519, ptr noundef nonnull %.str.5.sink2857, i32 noundef %4520, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 630, ptr noundef %4522, ptr noundef %4524, ptr noundef %4526, i32 noundef %4527) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4529:                                             ; preds = %4495
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %62) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %62, i8 0, i64 80, i1 false)
  %4530 = load i32, ptr @test_count, align 4, !tbaa !5
  %4531 = add nsw i32 %4530, 1
  store i32 %4531, ptr @test_count, align 4, !tbaa !5
  %4532 = load ptr, ptr %61, align 8, !tbaa !9
  %4533 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %4532, ptr noundef nonnull %62, ptr noundef nonnull %60, i64 noundef 1)
  %4534 = call zeroext i1 @s2n_result_is_ok(i32 %4533)
  br i1 %4534, label %4557, label %4535

4535:                                             ; preds = %4529
  %4536 = load i32, ptr %3231, align 4, !tbaa !5
  %4537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4538 = call i32 @s2n_print_stacktrace(ptr noundef %4537) #11
  %4539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4540 = trunc nuw i8 %4539 to i1
  br i1 %4540, label %4541, label %4545

4541:                                             ; preds = %4535
  %4542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4543 = call i32 @fileno(ptr noundef %4542) #11
  %4544 = call i32 @isatty(i32 noundef %4543) #11
  %.not1053 = icmp eq i32 %4544, 0
  br i1 %.not1053, label %4545, label %4546

4545:                                             ; preds = %4541, %4535
  br label %4546

4546:                                             ; preds = %4541, %4545
  %.str.5.sink2866 = phi ptr [ @.str.5, %4545 ], [ @.str.2, %4541 ]
  store i32 %4536, ptr %3231, align 4, !tbaa !5
  %4547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4548 = load i32, ptr @test_count, align 4, !tbaa !5
  %4549 = load i32, ptr %3177, align 4, !tbaa !5
  %4550 = call ptr @s2n_strerror(i32 noundef %4549, ptr noundef nonnull @.str.4) #11
  %4551 = load i32, ptr %3177, align 4, !tbaa !5
  %4552 = call ptr @s2n_strerror_debug(i32 noundef %4551, ptr noundef nonnull @.str.4) #11
  %4553 = load i32, ptr %3231, align 4, !tbaa !5
  %4554 = call ptr @strerror(i32 noundef %4553) #11
  %4555 = load i32, ptr %3231, align 4, !tbaa !5
  %4556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4547, ptr noundef nonnull %.str.5.sink2866, i32 noundef %4548, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 636, ptr noundef %4550, ptr noundef %4552, ptr noundef %4554, i32 noundef %4555) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4557:                                             ; preds = %4529
  %4558 = load i32, ptr @test_count, align 4, !tbaa !5
  %4559 = add nsw i32 %4558, 1
  store i32 %4559, ptr @test_count, align 4, !tbaa !5
  %4560 = load ptr, ptr %61, align 8, !tbaa !9
  %4561 = getelementptr inbounds i8, ptr %4560, i64 1268
  %4562 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %4561, ptr noundef nonnull %60, i64 noundef 1)
  %4563 = call zeroext i1 @s2n_result_is_ok(i32 %4562)
  br i1 %4563, label %4586, label %4564

4564:                                             ; preds = %4557
  %4565 = load i32, ptr %3231, align 4, !tbaa !5
  %4566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4567 = call i32 @s2n_print_stacktrace(ptr noundef %4566) #11
  %4568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4569 = trunc nuw i8 %4568 to i1
  br i1 %4569, label %4570, label %4574

4570:                                             ; preds = %4564
  %4571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4572 = call i32 @fileno(ptr noundef %4571) #11
  %4573 = call i32 @isatty(i32 noundef %4572) #11
  %.not1054 = icmp eq i32 %4573, 0
  br i1 %.not1054, label %4574, label %4575

4574:                                             ; preds = %4570, %4564
  br label %4575

4575:                                             ; preds = %4570, %4574
  %.str.5.sink2875 = phi ptr [ @.str.5, %4574 ], [ @.str.2, %4570 ]
  store i32 %4565, ptr %3231, align 4, !tbaa !5
  %4576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4577 = load i32, ptr @test_count, align 4, !tbaa !5
  %4578 = load i32, ptr %3177, align 4, !tbaa !5
  %4579 = call ptr @s2n_strerror(i32 noundef %4578, ptr noundef nonnull @.str.4) #11
  %4580 = load i32, ptr %3177, align 4, !tbaa !5
  %4581 = call ptr @s2n_strerror_debug(i32 noundef %4580, ptr noundef nonnull @.str.4) #11
  %4582 = load i32, ptr %3231, align 4, !tbaa !5
  %4583 = call ptr @strerror(i32 noundef %4582) #11
  %4584 = load i32, ptr %3231, align 4, !tbaa !5
  %4585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4576, ptr noundef nonnull %.str.5.sink2875, i32 noundef %4577, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 638, ptr noundef %4579, ptr noundef %4581, ptr noundef %4583, i32 noundef %4584) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4586:                                             ; preds = %4557
  %4587 = load i32, ptr @test_count, align 4, !tbaa !5
  %4588 = add nsw i32 %4587, 1
  store i32 %4588, ptr @test_count, align 4, !tbaa !5
  %4589 = load ptr, ptr %61, align 8, !tbaa !9
  %4590 = call i32 @s2n_signature_algorithm_select(ptr noundef %4589) #11
  %4591 = call zeroext i1 @s2n_result_is_error(i32 %4590)
  br i1 %4591, label %4614, label %4592

4592:                                             ; preds = %4586
  %4593 = load i32, ptr %3231, align 4, !tbaa !5
  %4594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4595 = call i32 @s2n_print_stacktrace(ptr noundef %4594) #11
  %4596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4597 = trunc nuw i8 %4596 to i1
  br i1 %4597, label %4598, label %4602

4598:                                             ; preds = %4592
  %4599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4600 = call i32 @fileno(ptr noundef %4599) #11
  %4601 = call i32 @isatty(i32 noundef %4600) #11
  %.not1055 = icmp eq i32 %4601, 0
  br i1 %.not1055, label %4602, label %4603

4602:                                             ; preds = %4598, %4592
  br label %4603

4603:                                             ; preds = %4598, %4602
  %.str.5.sink2884 = phi ptr [ @.str.5, %4602 ], [ @.str.2, %4598 ]
  store i32 %4593, ptr %3231, align 4, !tbaa !5
  %4604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4605 = load i32, ptr @test_count, align 4, !tbaa !5
  %4606 = load i32, ptr %3177, align 4, !tbaa !5
  %4607 = call ptr @s2n_strerror(i32 noundef %4606, ptr noundef nonnull @.str.4) #11
  %4608 = load i32, ptr %3177, align 4, !tbaa !5
  %4609 = call ptr @s2n_strerror_debug(i32 noundef %4608, ptr noundef nonnull @.str.4) #11
  %4610 = load i32, ptr %3231, align 4, !tbaa !5
  %4611 = call ptr @strerror(i32 noundef %4610) #11
  %4612 = load i32, ptr %3231, align 4, !tbaa !5
  %4613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4604, ptr noundef nonnull %.str.5.sink2884, i32 noundef %4605, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 641, ptr noundef %4607, ptr noundef %4609, ptr noundef %4611, i32 noundef %4612) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4614:                                             ; preds = %4586
  %4615 = load i32, ptr @test_count, align 4, !tbaa !5
  %4616 = add nsw i32 %4615, 1
  store i32 %4616, ptr @test_count, align 4, !tbaa !5
  %4617 = load i32, ptr %3177, align 4, !tbaa !5
  %4618 = icmp eq i32 %4617, 335544349
  br i1 %4618, label %4641, label %4619

4619:                                             ; preds = %4614
  %4620 = load i32, ptr %3231, align 4, !tbaa !5
  %4621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4622 = call i32 @s2n_print_stacktrace(ptr noundef %4621) #11
  %4623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4624 = trunc nuw i8 %4623 to i1
  br i1 %4624, label %4625, label %4629

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

4629:                                             ; preds = %4625, %4619
  br label %4630

4630:                                             ; preds = %4625, %4629
  %.str.5.sink2893 = phi ptr [ @.str.5, %4629 ], [ @.str.2, %4625 ]
  store i32 %4620, ptr %3231, align 4, !tbaa !5
  %4631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4632 = load i32, ptr @test_count, align 4, !tbaa !5
  %4633 = load i32, ptr %3177, align 4, !tbaa !5
  %4634 = call ptr @s2n_strerror(i32 noundef %4633, ptr noundef nonnull @.str.4) #11
  %4635 = load i32, ptr %3177, align 4, !tbaa !5
  %4636 = call ptr @s2n_strerror_debug(i32 noundef %4635, ptr noundef nonnull @.str.4) #11
  %4637 = load i32, ptr %3231, align 4, !tbaa !5
  %4638 = call ptr @strerror(i32 noundef %4637) #11
  %4639 = load i32, ptr %3231, align 4, !tbaa !5
  %4640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4631, ptr noundef nonnull %.str.5.sink2893, i32 noundef %4632, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 641, ptr noundef %4634, ptr noundef %4636, ptr noundef %4638, i32 noundef %4639) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4641:                                             ; preds = %4614
  %4642 = add nsw i32 %4615, 2
  store i32 %4642, ptr @test_count, align 4, !tbaa !5
  %4643 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %4644 = icmp eq ptr %4643, null
  br i1 %4644, label %4645, label %4667

4645:                                             ; preds = %4641
  %4646 = load i32, ptr %3231, align 4, !tbaa !5
  %4647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4648 = call i32 @s2n_print_stacktrace(ptr noundef %4647) #11
  %4649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4650 = trunc nuw i8 %4649 to i1
  br i1 %4650, label %4651, label %4655

4651:                                             ; preds = %4645
  %4652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4653 = call i32 @fileno(ptr noundef %4652) #11
  %4654 = call i32 @isatty(i32 noundef %4653) #11
  %.not1250 = icmp eq i32 %4654, 0
  br i1 %.not1250, label %4655, label %4656

4655:                                             ; preds = %4651, %4645
  br label %4656

4656:                                             ; preds = %4651, %4655
  %.str.5.sink2902 = phi ptr [ @.str.5, %4655 ], [ @.str.2, %4651 ]
  store i32 %4646, ptr %3231, align 4, !tbaa !5
  %4657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4658 = load i32, ptr @test_count, align 4, !tbaa !5
  %4659 = load i32, ptr %3177, align 4, !tbaa !5
  %4660 = call ptr @s2n_strerror(i32 noundef %4659, ptr noundef nonnull @.str.4) #11
  %4661 = load i32, ptr %3177, align 4, !tbaa !5
  %4662 = call ptr @s2n_strerror_debug(i32 noundef %4661, ptr noundef nonnull @.str.4) #11
  %4663 = load i32, ptr %3231, align 4, !tbaa !5
  %4664 = call ptr @strerror(i32 noundef %4663) #11
  %4665 = load i32, ptr %3231, align 4, !tbaa !5
  %4666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4657, ptr noundef nonnull %.str.5.sink2902, i32 noundef %4658, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 641, ptr noundef %4660, ptr noundef %4662, ptr noundef %4664, i32 noundef %4665) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4667:                                             ; preds = %4641
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %4668 = load i32, ptr @test_count, align 4, !tbaa !5
  %4669 = add nsw i32 %4668, 1
  store i32 %4669, ptr @test_count, align 4, !tbaa !5
  %4670 = load ptr, ptr %61, align 8, !tbaa !9
  %4671 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %4670, ptr noundef nonnull %62, ptr noundef nonnull %59, i64 noundef 1)
  %4672 = call zeroext i1 @s2n_result_is_ok(i32 %4671)
  br i1 %4672, label %4695, label %4673

4673:                                             ; preds = %4667
  %4674 = load i32, ptr %3231, align 4, !tbaa !5
  %4675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4676 = call i32 @s2n_print_stacktrace(ptr noundef %4675) #11
  %4677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4678 = trunc nuw i8 %4677 to i1
  br i1 %4678, label %4679, label %4683

4679:                                             ; preds = %4673
  %4680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4681 = call i32 @fileno(ptr noundef %4680) #11
  %4682 = call i32 @isatty(i32 noundef %4681) #11
  %.not1057 = icmp eq i32 %4682, 0
  br i1 %.not1057, label %4683, label %4684

4683:                                             ; preds = %4679, %4673
  br label %4684

4684:                                             ; preds = %4679, %4683
  %.str.5.sink2911 = phi ptr [ @.str.5, %4683 ], [ @.str.2, %4679 ]
  store i32 %4674, ptr %3231, align 4, !tbaa !5
  %4685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4686 = load i32, ptr @test_count, align 4, !tbaa !5
  %4687 = load i32, ptr %3177, align 4, !tbaa !5
  %4688 = call ptr @s2n_strerror(i32 noundef %4687, ptr noundef nonnull @.str.4) #11
  %4689 = load i32, ptr %3177, align 4, !tbaa !5
  %4690 = call ptr @s2n_strerror_debug(i32 noundef %4689, ptr noundef nonnull @.str.4) #11
  %4691 = load i32, ptr %3231, align 4, !tbaa !5
  %4692 = call ptr @strerror(i32 noundef %4691) #11
  %4693 = load i32, ptr %3231, align 4, !tbaa !5
  %4694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4685, ptr noundef nonnull %.str.5.sink2911, i32 noundef %4686, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 645, ptr noundef %4688, ptr noundef %4690, ptr noundef %4692, i32 noundef %4693) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4695:                                             ; preds = %4667
  %4696 = load i32, ptr @test_count, align 4, !tbaa !5
  %4697 = add nsw i32 %4696, 1
  store i32 %4697, ptr @test_count, align 4, !tbaa !5
  %4698 = load ptr, ptr %61, align 8, !tbaa !9
  %4699 = getelementptr inbounds i8, ptr %4698, i64 1268
  %4700 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %4699, ptr noundef nonnull %59, i64 noundef 1)
  %4701 = call zeroext i1 @s2n_result_is_ok(i32 %4700)
  br i1 %4701, label %4724, label %4702

4702:                                             ; preds = %4695
  %4703 = load i32, ptr %3231, align 4, !tbaa !5
  %4704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4705 = call i32 @s2n_print_stacktrace(ptr noundef %4704) #11
  %4706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4707 = trunc nuw i8 %4706 to i1
  br i1 %4707, label %4708, label %4712

4708:                                             ; preds = %4702
  %4709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4710 = call i32 @fileno(ptr noundef %4709) #11
  %4711 = call i32 @isatty(i32 noundef %4710) #11
  %.not1058 = icmp eq i32 %4711, 0
  br i1 %.not1058, label %4712, label %4713

4712:                                             ; preds = %4708, %4702
  br label %4713

4713:                                             ; preds = %4708, %4712
  %.str.5.sink2920 = phi ptr [ @.str.5, %4712 ], [ @.str.2, %4708 ]
  store i32 %4703, ptr %3231, align 4, !tbaa !5
  %4714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4715 = load i32, ptr @test_count, align 4, !tbaa !5
  %4716 = load i32, ptr %3177, align 4, !tbaa !5
  %4717 = call ptr @s2n_strerror(i32 noundef %4716, ptr noundef nonnull @.str.4) #11
  %4718 = load i32, ptr %3177, align 4, !tbaa !5
  %4719 = call ptr @s2n_strerror_debug(i32 noundef %4718, ptr noundef nonnull @.str.4) #11
  %4720 = load i32, ptr %3231, align 4, !tbaa !5
  %4721 = call ptr @strerror(i32 noundef %4720) #11
  %4722 = load i32, ptr %3231, align 4, !tbaa !5
  %4723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4714, ptr noundef nonnull %.str.5.sink2920, i32 noundef %4715, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 647, ptr noundef %4717, ptr noundef %4719, ptr noundef %4721, i32 noundef %4722) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4724:                                             ; preds = %4695
  %4725 = load i32, ptr @test_count, align 4, !tbaa !5
  %4726 = add nsw i32 %4725, 1
  store i32 %4726, ptr @test_count, align 4, !tbaa !5
  %4727 = load ptr, ptr %61, align 8, !tbaa !9
  %4728 = call i32 @s2n_signature_algorithm_select(ptr noundef %4727) #11
  %4729 = call zeroext i1 @s2n_result_is_ok(i32 %4728)
  br i1 %4729, label %4752, label %4730

4730:                                             ; preds = %4724
  %4731 = load i32, ptr %3231, align 4, !tbaa !5
  %4732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4733 = call i32 @s2n_print_stacktrace(ptr noundef %4732) #11
  %4734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4735 = trunc nuw i8 %4734 to i1
  br i1 %4735, label %4736, label %4740

4736:                                             ; preds = %4730
  %4737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4738 = call i32 @fileno(ptr noundef %4737) #11
  %4739 = call i32 @isatty(i32 noundef %4738) #11
  %.not1059 = icmp eq i32 %4739, 0
  br i1 %.not1059, label %4740, label %4741

4740:                                             ; preds = %4736, %4730
  br label %4741

4741:                                             ; preds = %4736, %4740
  %.str.5.sink2929 = phi ptr [ @.str.5, %4740 ], [ @.str.2, %4736 ]
  store i32 %4731, ptr %3231, align 4, !tbaa !5
  %4742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4743 = load i32, ptr @test_count, align 4, !tbaa !5
  %4744 = load i32, ptr %3177, align 4, !tbaa !5
  %4745 = call ptr @s2n_strerror(i32 noundef %4744, ptr noundef nonnull @.str.4) #11
  %4746 = load i32, ptr %3177, align 4, !tbaa !5
  %4747 = call ptr @s2n_strerror_debug(i32 noundef %4746, ptr noundef nonnull @.str.4) #11
  %4748 = load i32, ptr %3231, align 4, !tbaa !5
  %4749 = call ptr @strerror(i32 noundef %4748) #11
  %4750 = load i32, ptr %3231, align 4, !tbaa !5
  %4751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4742, ptr noundef nonnull %.str.5.sink2929, i32 noundef %4743, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 648, ptr noundef %4745, ptr noundef %4747, ptr noundef %4749, i32 noundef %4750) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4752:                                             ; preds = %4724
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %62) #11
  %4753 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %61) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #11
  %4754 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %4754, ptr %63, align 8, !tbaa !9
  %4755 = getelementptr inbounds i8, ptr %4754, i64 220
  store i8 34, ptr %4755, align 4, !tbaa !50
  %4756 = getelementptr inbounds i8, ptr %4754, i64 232
  %4757 = load ptr, ptr %4756, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %4757, align 8, !tbaa !61
  %4758 = load i32, ptr @test_count, align 4, !tbaa !5
  %4759 = add nsw i32 %4758, 1
  store i32 %4759, ptr @test_count, align 4, !tbaa !5
  %4760 = load ptr, ptr %63, align 8, !tbaa !9
  %4761 = load ptr, ptr %22, align 8, !tbaa !9
  %4762 = call i32 @s2n_connection_set_config(ptr noundef %4760, ptr noundef %4761) #11
  %4763 = icmp eq i32 %4762, -1
  br i1 %4763, label %4764, label %4786

4764:                                             ; preds = %4752
  %4765 = load i32, ptr %3231, align 4, !tbaa !5
  %4766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4767 = call i32 @s2n_print_stacktrace(ptr noundef %4766) #11
  %4768 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4769 = trunc nuw i8 %4768 to i1
  br i1 %4769, label %4770, label %4774

4770:                                             ; preds = %4764
  %4771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4772 = call i32 @fileno(ptr noundef %4771) #11
  %4773 = call i32 @isatty(i32 noundef %4772) #11
  %.not1249 = icmp eq i32 %4773, 0
  br i1 %.not1249, label %4774, label %4775

4774:                                             ; preds = %4770, %4764
  br label %4775

4775:                                             ; preds = %4770, %4774
  %.str.5.sink2938 = phi ptr [ @.str.5, %4774 ], [ @.str.2, %4770 ]
  store i32 %4765, ptr %3231, align 4, !tbaa !5
  %4776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4777 = load i32, ptr @test_count, align 4, !tbaa !5
  %4778 = load i32, ptr %3177, align 4, !tbaa !5
  %4779 = call ptr @s2n_strerror(i32 noundef %4778, ptr noundef nonnull @.str.4) #11
  %4780 = load i32, ptr %3177, align 4, !tbaa !5
  %4781 = call ptr @s2n_strerror_debug(i32 noundef %4780, ptr noundef nonnull @.str.4) #11
  %4782 = load i32, ptr %3231, align 4, !tbaa !5
  %4783 = call ptr @strerror(i32 noundef %4782) #11
  %4784 = load i32, ptr %3231, align 4, !tbaa !5
  %4785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4776, ptr noundef nonnull %.str.5.sink2938, i32 noundef %4777, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 658, ptr noundef %4779, ptr noundef %4781, ptr noundef %4783, i32 noundef %4784) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4786:                                             ; preds = %4752
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %64) #11
  store ptr @s2n_rsa_pss_rsae_sha256, ptr %64, align 16, !tbaa !9
  %4787 = getelementptr inbounds i8, ptr %64, i64 8
  store ptr @s2n_rsa_pss_pss_sha256, ptr %4787, align 8, !tbaa !9
  %4788 = getelementptr inbounds i8, ptr %64, i64 16
  store ptr @s2n_rsa_pkcs1_sha256, ptr %4788, align 16, !tbaa !9
  %4789 = getelementptr inbounds i8, ptr %64, i64 24
  store ptr @s2n_ecdsa_sha224, ptr %4789, align 8, !tbaa !9
  %4790 = getelementptr inbounds i8, ptr %64, i64 32
  store ptr @s2n_ecdsa_sha256, ptr %4790, align 16, !tbaa !9
  %4791 = getelementptr inbounds i8, ptr %64, i64 40
  store ptr @s2n_ecdsa_sha384, ptr %4791, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %65) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %65, i8 0, i64 80, i1 false)
  %4792 = load i32, ptr @test_count, align 4, !tbaa !5
  %4793 = add nsw i32 %4792, 1
  store i32 %4793, ptr @test_count, align 4, !tbaa !5
  %4794 = load ptr, ptr %63, align 8, !tbaa !9
  %4795 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %4794, ptr noundef nonnull %65, ptr noundef nonnull %64, i64 noundef 6)
  %4796 = call zeroext i1 @s2n_result_is_ok(i32 %4795)
  br i1 %4796, label %4819, label %4797

4797:                                             ; preds = %4786
  %4798 = load i32, ptr %3231, align 4, !tbaa !5
  %4799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4800 = call i32 @s2n_print_stacktrace(ptr noundef %4799) #11
  %4801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4802 = trunc nuw i8 %4801 to i1
  br i1 %4802, label %4803, label %4807

4803:                                             ; preds = %4797
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = call i32 @fileno(ptr noundef %4804) #11
  %4806 = call i32 @isatty(i32 noundef %4805) #11
  %.not1060 = icmp eq i32 %4806, 0
  br i1 %.not1060, label %4807, label %4808

4807:                                             ; preds = %4803, %4797
  br label %4808

4808:                                             ; preds = %4803, %4807
  %.str.5.sink2947 = phi ptr [ @.str.5, %4807 ], [ @.str.2, %4803 ]
  store i32 %4798, ptr %3231, align 4, !tbaa !5
  %4809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4810 = load i32, ptr @test_count, align 4, !tbaa !5
  %4811 = load i32, ptr %3177, align 4, !tbaa !5
  %4812 = call ptr @s2n_strerror(i32 noundef %4811, ptr noundef nonnull @.str.4) #11
  %4813 = load i32, ptr %3177, align 4, !tbaa !5
  %4814 = call ptr @s2n_strerror_debug(i32 noundef %4813, ptr noundef nonnull @.str.4) #11
  %4815 = load i32, ptr %3231, align 4, !tbaa !5
  %4816 = call ptr @strerror(i32 noundef %4815) #11
  %4817 = load i32, ptr %3231, align 4, !tbaa !5
  %4818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4809, ptr noundef nonnull %.str.5.sink2947, i32 noundef %4810, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 675, ptr noundef %4812, ptr noundef %4814, ptr noundef %4816, i32 noundef %4817) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4819:                                             ; preds = %4786
  %4820 = load i32, ptr @test_count, align 4, !tbaa !5
  %4821 = add nsw i32 %4820, 1
  store i32 %4821, ptr @test_count, align 4, !tbaa !5
  %4822 = load ptr, ptr %63, align 8, !tbaa !9
  %4823 = getelementptr inbounds i8, ptr %4822, i64 1268
  %4824 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %4823, ptr noundef nonnull %64, i64 noundef 6)
  %4825 = call zeroext i1 @s2n_result_is_ok(i32 %4824)
  br i1 %4825, label %4848, label %4826

4826:                                             ; preds = %4819
  %4827 = load i32, ptr %3231, align 4, !tbaa !5
  %4828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4829 = call i32 @s2n_print_stacktrace(ptr noundef %4828) #11
  %4830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4831 = trunc nuw i8 %4830 to i1
  br i1 %4831, label %4832, label %4836

4832:                                             ; preds = %4826
  %4833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4834 = call i32 @fileno(ptr noundef %4833) #11
  %4835 = call i32 @isatty(i32 noundef %4834) #11
  %.not1061 = icmp eq i32 %4835, 0
  br i1 %.not1061, label %4836, label %4837

4836:                                             ; preds = %4832, %4826
  br label %4837

4837:                                             ; preds = %4832, %4836
  %.str.5.sink2956 = phi ptr [ @.str.5, %4836 ], [ @.str.2, %4832 ]
  store i32 %4827, ptr %3231, align 4, !tbaa !5
  %4838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4839 = load i32, ptr @test_count, align 4, !tbaa !5
  %4840 = load i32, ptr %3177, align 4, !tbaa !5
  %4841 = call ptr @s2n_strerror(i32 noundef %4840, ptr noundef nonnull @.str.4) #11
  %4842 = load i32, ptr %3177, align 4, !tbaa !5
  %4843 = call ptr @s2n_strerror_debug(i32 noundef %4842, ptr noundef nonnull @.str.4) #11
  %4844 = load i32, ptr %3231, align 4, !tbaa !5
  %4845 = call ptr @strerror(i32 noundef %4844) #11
  %4846 = load i32, ptr %3231, align 4, !tbaa !5
  %4847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4838, ptr noundef nonnull %.str.5.sink2956, i32 noundef %4839, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 677, ptr noundef %4841, ptr noundef %4843, ptr noundef %4845, i32 noundef %4846) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4848:                                             ; preds = %4819
  %4849 = load i32, ptr @test_count, align 4, !tbaa !5
  %4850 = add nsw i32 %4849, 1
  store i32 %4850, ptr @test_count, align 4, !tbaa !5
  %4851 = load ptr, ptr %63, align 8, !tbaa !9
  %4852 = call i32 @s2n_signature_algorithm_select(ptr noundef %4851) #11
  %4853 = call zeroext i1 @s2n_result_is_ok(i32 %4852)
  br i1 %4853, label %4876, label %4854

4854:                                             ; preds = %4848
  %4855 = load i32, ptr %3231, align 4, !tbaa !5
  %4856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4857 = call i32 @s2n_print_stacktrace(ptr noundef %4856) #11
  %4858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4859 = trunc nuw i8 %4858 to i1
  br i1 %4859, label %4860, label %4864

4860:                                             ; preds = %4854
  %4861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4862 = call i32 @fileno(ptr noundef %4861) #11
  %4863 = call i32 @isatty(i32 noundef %4862) #11
  %.not1062 = icmp eq i32 %4863, 0
  br i1 %.not1062, label %4864, label %4865

4864:                                             ; preds = %4860, %4854
  br label %4865

4865:                                             ; preds = %4860, %4864
  %.str.5.sink2965 = phi ptr [ @.str.5, %4864 ], [ @.str.2, %4860 ]
  store i32 %4855, ptr %3231, align 4, !tbaa !5
  %4866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4867 = load i32, ptr @test_count, align 4, !tbaa !5
  %4868 = load i32, ptr %3177, align 4, !tbaa !5
  %4869 = call ptr @s2n_strerror(i32 noundef %4868, ptr noundef nonnull @.str.4) #11
  %4870 = load i32, ptr %3177, align 4, !tbaa !5
  %4871 = call ptr @s2n_strerror_debug(i32 noundef %4870, ptr noundef nonnull @.str.4) #11
  %4872 = load i32, ptr %3231, align 4, !tbaa !5
  %4873 = call ptr @strerror(i32 noundef %4872) #11
  %4874 = load i32, ptr %3231, align 4, !tbaa !5
  %4875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4866, ptr noundef nonnull %.str.5.sink2965, i32 noundef %4867, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 679, ptr noundef %4869, ptr noundef %4871, ptr noundef %4873, i32 noundef %4874) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4876:                                             ; preds = %4848
  %4877 = load i32, ptr @test_count, align 4, !tbaa !5
  %4878 = add nsw i32 %4877, 1
  store i32 %4878, ptr @test_count, align 4, !tbaa !5
  %4879 = load ptr, ptr %63, align 8, !tbaa !9
  %4880 = getelementptr inbounds i8, ptr %4879, i64 1536
  %4881 = load ptr, ptr %4880, align 8, !tbaa !59
  %4882 = icmp eq ptr %4881, @s2n_ecdsa_sha384
  br i1 %4882, label %4905, label %4883

4883:                                             ; preds = %4876
  %4884 = load i32, ptr %3231, align 4, !tbaa !5
  %4885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4886 = call i32 @s2n_print_stacktrace(ptr noundef %4885) #11
  %4887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4888 = trunc nuw i8 %4887 to i1
  br i1 %4888, label %4889, label %4893

4889:                                             ; preds = %4883
  %4890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4891 = call i32 @fileno(ptr noundef %4890) #11
  %4892 = call i32 @isatty(i32 noundef %4891) #11
  %.not1063 = icmp eq i32 %4892, 0
  br i1 %.not1063, label %4893, label %4894

4893:                                             ; preds = %4889, %4883
  br label %4894

4894:                                             ; preds = %4889, %4893
  %.str.5.sink2974 = phi ptr [ @.str.5, %4893 ], [ @.str.2, %4889 ]
  store i32 %4884, ptr %3231, align 4, !tbaa !5
  %4895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4896 = load i32, ptr @test_count, align 4, !tbaa !5
  %4897 = load i32, ptr %3177, align 4, !tbaa !5
  %4898 = call ptr @s2n_strerror(i32 noundef %4897, ptr noundef nonnull @.str.4) #11
  %4899 = load i32, ptr %3177, align 4, !tbaa !5
  %4900 = call ptr @s2n_strerror_debug(i32 noundef %4899, ptr noundef nonnull @.str.4) #11
  %4901 = load i32, ptr %3231, align 4, !tbaa !5
  %4902 = call ptr @strerror(i32 noundef %4901) #11
  %4903 = load i32, ptr %3231, align 4, !tbaa !5
  %4904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4895, ptr noundef nonnull %.str.5.sink2974, i32 noundef %4896, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 680, ptr noundef %4898, ptr noundef %4900, ptr noundef %4902, i32 noundef %4903) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4905:                                             ; preds = %4876
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %65) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %64) #11
  %4906 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %63) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #11
  store ptr @s2n_rsa_pkcs1_sha256, ptr %66, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #11
  store ptr @s2n_rsa_pss_rsae_sha256, ptr %67, align 16, !tbaa !9
  %4907 = getelementptr inbounds i8, ptr %67, i64 8
  store ptr @s2n_rsa_pss_pss_sha256, ptr %4907, align 8, !tbaa !9
  %4908 = getelementptr inbounds i8, ptr %67, i64 16
  store ptr @s2n_ecdsa_sha384, ptr %4908, align 16, !tbaa !9
  %4909 = getelementptr inbounds i8, ptr %67, i64 24
  store ptr @s2n_rsa_pkcs1_sha256, ptr %4909, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #11
  %4910 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %4910, ptr %68, align 8, !tbaa !9
  %4911 = getelementptr inbounds i8, ptr %4910, i64 220
  store i8 33, ptr %4911, align 4, !tbaa !50
  %4912 = getelementptr inbounds i8, ptr %4910, i64 232
  %4913 = load ptr, ptr %4912, align 8, !tbaa !60
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %4913, align 8, !tbaa !61
  %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 = load ptr, ptr %68, align 8, !tbaa !9
  %4917 = load ptr, ptr %21, align 8, !tbaa !9
  %4918 = call i32 @s2n_connection_set_config(ptr noundef %4916, ptr noundef %4917) #11
  %4919 = icmp eq i32 %4918, -1
  br i1 %4919, label %4920, label %4942

4920:                                             ; preds = %4905
  %4921 = load i32, ptr %3231, align 4, !tbaa !5
  %4922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4923 = call i32 @s2n_print_stacktrace(ptr noundef %4922) #11
  %4924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4925 = trunc nuw i8 %4924 to i1
  br i1 %4925, label %4926, label %4930

4926:                                             ; preds = %4920
  %4927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4928 = call i32 @fileno(ptr noundef %4927) #11
  %4929 = call i32 @isatty(i32 noundef %4928) #11
  %.not1248 = icmp eq i32 %4929, 0
  br i1 %.not1248, label %4930, label %4931

4930:                                             ; preds = %4926, %4920
  br label %4931

4931:                                             ; preds = %4926, %4930
  %.str.5.sink2983 = phi ptr [ @.str.5, %4930 ], [ @.str.2, %4926 ]
  store i32 %4921, ptr %3231, align 4, !tbaa !5
  %4932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4933 = load i32, ptr @test_count, align 4, !tbaa !5
  %4934 = load i32, ptr %3177, align 4, !tbaa !5
  %4935 = call ptr @s2n_strerror(i32 noundef %4934, ptr noundef nonnull @.str.4) #11
  %4936 = load i32, ptr %3177, align 4, !tbaa !5
  %4937 = call ptr @s2n_strerror_debug(i32 noundef %4936, ptr noundef nonnull @.str.4) #11
  %4938 = load i32, ptr %3231, align 4, !tbaa !5
  %4939 = call ptr @strerror(i32 noundef %4938) #11
  %4940 = load i32, ptr %3231, align 4, !tbaa !5
  %4941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4932, ptr noundef nonnull %.str.5.sink2983, i32 noundef %4933, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 700, ptr noundef %4935, ptr noundef %4937, ptr noundef %4939, i32 noundef %4940) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4942:                                             ; preds = %4905
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %69) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %69, i8 0, i64 80, i1 false)
  %4943 = load i32, ptr @test_count, align 4, !tbaa !5
  %4944 = add nsw i32 %4943, 1
  store i32 %4944, ptr @test_count, align 4, !tbaa !5
  %4945 = load ptr, ptr %68, align 8, !tbaa !9
  %4946 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %4945, ptr noundef nonnull %69, ptr noundef nonnull %67, i64 noundef 4)
  %4947 = call zeroext i1 @s2n_result_is_ok(i32 %4946)
  br i1 %4947, label %4970, label %4948

4948:                                             ; preds = %4942
  %4949 = load i32, ptr %3231, align 4, !tbaa !5
  %4950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4951 = call i32 @s2n_print_stacktrace(ptr noundef %4950) #11
  %4952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4953 = trunc nuw i8 %4952 to i1
  br i1 %4953, label %4954, label %4958

4954:                                             ; preds = %4948
  %4955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4956 = call i32 @fileno(ptr noundef %4955) #11
  %4957 = call i32 @isatty(i32 noundef %4956) #11
  %.not1064 = icmp eq i32 %4957, 0
  br i1 %.not1064, label %4958, label %4959

4958:                                             ; preds = %4954, %4948
  br label %4959

4959:                                             ; preds = %4954, %4958
  %.str.5.sink2992 = phi ptr [ @.str.5, %4958 ], [ @.str.2, %4954 ]
  store i32 %4949, ptr %3231, align 4, !tbaa !5
  %4960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4961 = load i32, ptr @test_count, align 4, !tbaa !5
  %4962 = load i32, ptr %3177, align 4, !tbaa !5
  %4963 = call ptr @s2n_strerror(i32 noundef %4962, ptr noundef nonnull @.str.4) #11
  %4964 = load i32, ptr %3177, align 4, !tbaa !5
  %4965 = call ptr @s2n_strerror_debug(i32 noundef %4964, ptr noundef nonnull @.str.4) #11
  %4966 = load i32, ptr %3231, align 4, !tbaa !5
  %4967 = call ptr @strerror(i32 noundef %4966) #11
  %4968 = load i32, ptr %3231, align 4, !tbaa !5
  %4969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4960, ptr noundef nonnull %.str.5.sink2992, i32 noundef %4961, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 704, ptr noundef %4963, ptr noundef %4965, ptr noundef %4967, i32 noundef %4968) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4970:                                             ; preds = %4942
  %4971 = load i32, ptr @test_count, align 4, !tbaa !5
  %4972 = add nsw i32 %4971, 1
  store i32 %4972, ptr @test_count, align 4, !tbaa !5
  %4973 = load ptr, ptr %68, align 8, !tbaa !9
  %4974 = getelementptr inbounds i8, ptr %4973, i64 1268
  %4975 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %4974, ptr noundef nonnull %66, i64 noundef 1)
  %4976 = call zeroext i1 @s2n_result_is_ok(i32 %4975)
  br i1 %4976, label %4999, label %4977

4977:                                             ; preds = %4970
  %4978 = load i32, ptr %3231, align 4, !tbaa !5
  %4979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4980 = call i32 @s2n_print_stacktrace(ptr noundef %4979) #11
  %4981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4982 = trunc nuw i8 %4981 to i1
  br i1 %4982, label %4983, label %4987

4983:                                             ; preds = %4977
  %4984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4985 = call i32 @fileno(ptr noundef %4984) #11
  %4986 = call i32 @isatty(i32 noundef %4985) #11
  %.not1065 = icmp eq i32 %4986, 0
  br i1 %.not1065, label %4987, label %4988

4987:                                             ; preds = %4983, %4977
  br label %4988

4988:                                             ; preds = %4983, %4987
  %.str.5.sink3001 = phi ptr [ @.str.5, %4987 ], [ @.str.2, %4983 ]
  store i32 %4978, ptr %3231, align 4, !tbaa !5
  %4989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4990 = load i32, ptr @test_count, align 4, !tbaa !5
  %4991 = load i32, ptr %3177, align 4, !tbaa !5
  %4992 = call ptr @s2n_strerror(i32 noundef %4991, ptr noundef nonnull @.str.4) #11
  %4993 = load i32, ptr %3177, align 4, !tbaa !5
  %4994 = call ptr @s2n_strerror_debug(i32 noundef %4993, ptr noundef nonnull @.str.4) #11
  %4995 = load i32, ptr %3231, align 4, !tbaa !5
  %4996 = call ptr @strerror(i32 noundef %4995) #11
  %4997 = load i32, ptr %3231, align 4, !tbaa !5
  %4998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4989, ptr noundef nonnull %.str.5.sink3001, i32 noundef %4990, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 706, ptr noundef %4992, ptr noundef %4994, ptr noundef %4996, i32 noundef %4997) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4999:                                             ; preds = %4970
  %5000 = load i32, ptr @test_count, align 4, !tbaa !5
  %5001 = add nsw i32 %5000, 1
  store i32 %5001, ptr @test_count, align 4, !tbaa !5
  %5002 = load ptr, ptr %68, align 8, !tbaa !9
  %5003 = call i32 @s2n_signature_algorithm_select(ptr noundef %5002) #11
  %5004 = call zeroext i1 @s2n_result_is_ok(i32 %5003)
  br i1 %5004, label %5027, label %5005

5005:                                             ; preds = %4999
  %5006 = load i32, ptr %3231, align 4, !tbaa !5
  %5007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5008 = call i32 @s2n_print_stacktrace(ptr noundef %5007) #11
  %5009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5010 = trunc nuw i8 %5009 to i1
  br i1 %5010, label %5011, label %5015

5011:                                             ; preds = %5005
  %5012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5013 = call i32 @fileno(ptr noundef %5012) #11
  %5014 = call i32 @isatty(i32 noundef %5013) #11
  %.not1066 = icmp eq i32 %5014, 0
  br i1 %.not1066, label %5015, label %5016

5015:                                             ; preds = %5011, %5005
  br label %5016

5016:                                             ; preds = %5011, %5015
  %.str.5.sink3010 = phi ptr [ @.str.5, %5015 ], [ @.str.2, %5011 ]
  store i32 %5006, ptr %3231, align 4, !tbaa !5
  %5017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5018 = load i32, ptr @test_count, align 4, !tbaa !5
  %5019 = load i32, ptr %3177, align 4, !tbaa !5
  %5020 = call ptr @s2n_strerror(i32 noundef %5019, ptr noundef nonnull @.str.4) #11
  %5021 = load i32, ptr %3177, align 4, !tbaa !5
  %5022 = call ptr @s2n_strerror_debug(i32 noundef %5021, ptr noundef nonnull @.str.4) #11
  %5023 = load i32, ptr %3231, align 4, !tbaa !5
  %5024 = call ptr @strerror(i32 noundef %5023) #11
  %5025 = load i32, ptr %3231, align 4, !tbaa !5
  %5026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5017, ptr noundef nonnull %.str.5.sink3010, i32 noundef %5018, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 708, ptr noundef %5020, ptr noundef %5022, ptr noundef %5024, i32 noundef %5025) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5027:                                             ; preds = %4999
  %5028 = load i32, ptr @test_count, align 4, !tbaa !5
  %5029 = add nsw i32 %5028, 1
  store i32 %5029, ptr @test_count, align 4, !tbaa !5
  %5030 = load ptr, ptr %68, align 8, !tbaa !9
  %5031 = getelementptr inbounds i8, ptr %5030, i64 1528
  %5032 = load ptr, ptr %5031, align 8, !tbaa !66
  %5033 = icmp eq ptr %5032, @s2n_rsa_pkcs1_sha256
  br i1 %5033, label %5056, label %5034

5034:                                             ; preds = %5027
  %5035 = load i32, ptr %3231, align 4, !tbaa !5
  %5036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5037 = call i32 @s2n_print_stacktrace(ptr noundef %5036) #11
  %5038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5039 = trunc nuw i8 %5038 to i1
  br i1 %5039, label %5040, label %5044

5040:                                             ; preds = %5034
  %5041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5042 = call i32 @fileno(ptr noundef %5041) #11
  %5043 = call i32 @isatty(i32 noundef %5042) #11
  %.not1067 = icmp eq i32 %5043, 0
  br i1 %.not1067, label %5044, label %5045

5044:                                             ; preds = %5040, %5034
  br label %5045

5045:                                             ; preds = %5040, %5044
  %.str.5.sink3019 = phi ptr [ @.str.5, %5044 ], [ @.str.2, %5040 ]
  store i32 %5035, ptr %3231, align 4, !tbaa !5
  %5046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5047 = load i32, ptr @test_count, align 4, !tbaa !5
  %5048 = load i32, ptr %3177, align 4, !tbaa !5
  %5049 = call ptr @s2n_strerror(i32 noundef %5048, ptr noundef nonnull @.str.4) #11
  %5050 = load i32, ptr %3177, align 4, !tbaa !5
  %5051 = call ptr @s2n_strerror_debug(i32 noundef %5050, ptr noundef nonnull @.str.4) #11
  %5052 = load i32, ptr %3231, align 4, !tbaa !5
  %5053 = call ptr @strerror(i32 noundef %5052) #11
  %5054 = load i32, ptr %3231, align 4, !tbaa !5
  %5055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5046, ptr noundef nonnull %.str.5.sink3019, i32 noundef %5047, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 709, ptr noundef %5049, ptr noundef %5051, ptr noundef %5053, i32 noundef %5054) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5056:                                             ; preds = %5027
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %69) #11
  %5057 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %68) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #11
  store ptr @s2n_ecdsa_sha384, ptr %70, align 16, !tbaa !9
  %5058 = getelementptr inbounds i8, ptr %70, i64 8
  store ptr @s2n_rsa_pkcs1_sha256, ptr %5058, align 8, !tbaa !9
  %5059 = getelementptr inbounds i8, ptr %70, i64 16
  store ptr @s2n_rsa_pkcs1_sha1, ptr %5059, align 16, !tbaa !9
  %5060 = getelementptr inbounds i8, ptr %70, i64 24
  store ptr @s2n_ecdsa_sha1, ptr %5060, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #11
  %5061 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %5061, ptr %71, align 8, !tbaa !9
  %5062 = load i32, ptr @test_count, align 4, !tbaa !5
  %5063 = add nsw i32 %5062, 1
  store i32 %5063, ptr @test_count, align 4, !tbaa !5
  %5064 = load ptr, ptr %21, align 8, !tbaa !9
  %5065 = call i32 @s2n_connection_set_config(ptr noundef %5061, ptr noundef %5064) #11
  %5066 = icmp eq i32 %5065, -1
  br i1 %5066, label %5067, label %5089

5067:                                             ; preds = %5056
  %5068 = load i32, ptr %3231, align 4, !tbaa !5
  %5069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5070 = call i32 @s2n_print_stacktrace(ptr noundef %5069) #11
  %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) #11
  %5076 = call i32 @isatty(i32 noundef %5075) #11
  %.not1247 = icmp eq i32 %5076, 0
  br i1 %.not1247, label %5077, label %5078

5077:                                             ; preds = %5073, %5067
  br label %5078

5078:                                             ; preds = %5073, %5077
  %.str.5.sink3028 = phi ptr [ @.str.5, %5077 ], [ @.str.2, %5073 ]
  store i32 %5068, ptr %3231, 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 %3177, align 4, !tbaa !5
  %5082 = call ptr @s2n_strerror(i32 noundef %5081, ptr noundef nonnull @.str.4) #11
  %5083 = load i32, ptr %3177, align 4, !tbaa !5
  %5084 = call ptr @s2n_strerror_debug(i32 noundef %5083, ptr noundef nonnull @.str.4) #11
  %5085 = load i32, ptr %3231, align 4, !tbaa !5
  %5086 = call ptr @strerror(i32 noundef %5085) #11
  %5087 = load i32, ptr %3231, align 4, !tbaa !5
  %5088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5079, ptr noundef nonnull %.str.5.sink3028, i32 noundef %5080, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 729, ptr noundef %5082, ptr noundef %5084, ptr noundef %5086, i32 noundef %5087) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5089:                                             ; preds = %5056
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %72) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %72, i8 0, i64 80, i1 false)
  %5090 = load i32, ptr @test_count, align 4, !tbaa !5
  %5091 = add nsw i32 %5090, 1
  store i32 %5091, ptr @test_count, align 4, !tbaa !5
  %5092 = load ptr, ptr %71, align 8, !tbaa !9
  %5093 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %5092, ptr noundef nonnull %72, ptr noundef nonnull %70, i64 noundef 4)
  %5094 = call zeroext i1 @s2n_result_is_ok(i32 %5093)
  br i1 %5094, label %5117, label %5095

5095:                                             ; preds = %5089
  %5096 = load i32, ptr %3231, align 4, !tbaa !5
  %5097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5098 = call i32 @s2n_print_stacktrace(ptr noundef %5097) #11
  %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) #11
  %5104 = call i32 @isatty(i32 noundef %5103) #11
  %.not1068 = icmp eq i32 %5104, 0
  br i1 %.not1068, label %5105, label %5106

5105:                                             ; preds = %5101, %5095
  br label %5106

5106:                                             ; preds = %5101, %5105
  %.str.5.sink3037 = phi ptr [ @.str.5, %5105 ], [ @.str.2, %5101 ]
  store i32 %5096, ptr %3231, 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 %3177, align 4, !tbaa !5
  %5110 = call ptr @s2n_strerror(i32 noundef %5109, ptr noundef nonnull @.str.4) #11
  %5111 = load i32, ptr %3177, align 4, !tbaa !5
  %5112 = call ptr @s2n_strerror_debug(i32 noundef %5111, ptr noundef nonnull @.str.4) #11
  %5113 = load i32, ptr %3231, align 4, !tbaa !5
  %5114 = call ptr @strerror(i32 noundef %5113) #11
  %5115 = load i32, ptr %3231, align 4, !tbaa !5
  %5116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5107, ptr noundef nonnull %.str.5.sink3037, i32 noundef %5108, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 733, ptr noundef %5110, ptr noundef %5112, ptr noundef %5114, i32 noundef %5115) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5117:                                             ; preds = %5089
  %5118 = load ptr, ptr %71, align 8, !tbaa !9
  %5119 = getelementptr inbounds i8, ptr %5118, i64 220
  store i8 33, ptr %5119, align 4, !tbaa !50
  %5120 = getelementptr inbounds i8, ptr %5118, i64 232
  %5121 = load ptr, ptr %5120, align 8, !tbaa !60
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %5121, align 8, !tbaa !61
  %5122 = load i32, ptr @test_count, align 4, !tbaa !5
  %5123 = add nsw i32 %5122, 1
  store i32 %5123, ptr @test_count, align 4, !tbaa !5
  %5124 = load ptr, ptr %71, align 8, !tbaa !9
  %5125 = call i32 @s2n_signature_algorithm_select(ptr noundef %5124) #11
  %5126 = call zeroext i1 @s2n_result_is_ok(i32 %5125)
  br i1 %5126, label %5149, label %5127

5127:                                             ; preds = %5117
  %5128 = load i32, ptr %3231, align 4, !tbaa !5
  %5129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5130 = call i32 @s2n_print_stacktrace(ptr noundef %5129) #11
  %5131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5132 = trunc nuw i8 %5131 to i1
  br i1 %5132, label %5133, label %5137

5133:                                             ; preds = %5127
  %5134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5135 = call i32 @fileno(ptr noundef %5134) #11
  %5136 = call i32 @isatty(i32 noundef %5135) #11
  %.not1069 = icmp eq i32 %5136, 0
  br i1 %.not1069, label %5137, label %5138

5137:                                             ; preds = %5133, %5127
  br label %5138

5138:                                             ; preds = %5133, %5137
  %.str.5.sink3046 = phi ptr [ @.str.5, %5137 ], [ @.str.2, %5133 ]
  store i32 %5128, ptr %3231, align 4, !tbaa !5
  %5139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5140 = load i32, ptr @test_count, align 4, !tbaa !5
  %5141 = load i32, ptr %3177, align 4, !tbaa !5
  %5142 = call ptr @s2n_strerror(i32 noundef %5141, ptr noundef nonnull @.str.4) #11
  %5143 = load i32, ptr %3177, align 4, !tbaa !5
  %5144 = call ptr @s2n_strerror_debug(i32 noundef %5143, ptr noundef nonnull @.str.4) #11
  %5145 = load i32, ptr %3231, align 4, !tbaa !5
  %5146 = call ptr @strerror(i32 noundef %5145) #11
  %5147 = load i32, ptr %3231, align 4, !tbaa !5
  %5148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5139, ptr noundef nonnull %.str.5.sink3046, i32 noundef %5140, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 738, ptr noundef %5142, ptr noundef %5144, ptr noundef %5146, i32 noundef %5147) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5149:                                             ; preds = %5117
  %5150 = load i32, ptr @test_count, align 4, !tbaa !5
  %5151 = add nsw i32 %5150, 1
  store i32 %5151, ptr @test_count, align 4, !tbaa !5
  %5152 = load ptr, ptr %71, align 8, !tbaa !9
  %5153 = getelementptr inbounds i8, ptr %5152, i64 1528
  %5154 = load ptr, ptr %5153, align 8, !tbaa !66
  %5155 = icmp eq ptr %5154, @s2n_ecdsa_sha1
  br i1 %5155, label %5178, label %5156

5156:                                             ; preds = %5149
  %5157 = load i32, ptr %3231, align 4, !tbaa !5
  %5158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5159 = call i32 @s2n_print_stacktrace(ptr noundef %5158) #11
  %5160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5161 = trunc nuw i8 %5160 to i1
  br i1 %5161, label %5162, label %5166

5162:                                             ; preds = %5156
  %5163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5164 = call i32 @fileno(ptr noundef %5163) #11
  %5165 = call i32 @isatty(i32 noundef %5164) #11
  %.not1070 = icmp eq i32 %5165, 0
  br i1 %.not1070, label %5166, label %5167

5166:                                             ; preds = %5162, %5156
  br label %5167

5167:                                             ; preds = %5162, %5166
  %.str.5.sink3055 = phi ptr [ @.str.5, %5166 ], [ @.str.2, %5162 ]
  store i32 %5157, ptr %3231, align 4, !tbaa !5
  %5168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5169 = load i32, ptr @test_count, align 4, !tbaa !5
  %5170 = load i32, ptr %3177, align 4, !tbaa !5
  %5171 = call ptr @s2n_strerror(i32 noundef %5170, ptr noundef nonnull @.str.4) #11
  %5172 = load i32, ptr %3177, align 4, !tbaa !5
  %5173 = call ptr @s2n_strerror_debug(i32 noundef %5172, ptr noundef nonnull @.str.4) #11
  %5174 = load i32, ptr %3231, align 4, !tbaa !5
  %5175 = call ptr @strerror(i32 noundef %5174) #11
  %5176 = load i32, ptr %3231, align 4, !tbaa !5
  %5177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5168, ptr noundef nonnull %.str.5.sink3055, i32 noundef %5169, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 739, ptr noundef %5171, ptr noundef %5173, ptr noundef %5175, i32 noundef %5176) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5178:                                             ; preds = %5149
  %5179 = getelementptr inbounds i8, ptr %5152, i64 220
  store i8 33, ptr %5179, align 4, !tbaa !50
  %5180 = getelementptr inbounds i8, ptr %5152, i64 232
  %5181 = load ptr, ptr %5180, align 8, !tbaa !60
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %5181, align 8, !tbaa !61
  %5182 = add nsw i32 %5150, 2
  store i32 %5182, ptr @test_count, align 4, !tbaa !5
  %5183 = load ptr, ptr %71, align 8, !tbaa !9
  %5184 = call i32 @s2n_signature_algorithm_select(ptr noundef %5183) #11
  %5185 = call zeroext i1 @s2n_result_is_ok(i32 %5184)
  br i1 %5185, label %5208, label %5186

5186:                                             ; preds = %5178
  %5187 = load i32, ptr %3231, align 4, !tbaa !5
  %5188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5189 = call i32 @s2n_print_stacktrace(ptr noundef %5188) #11
  %5190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5191 = trunc nuw i8 %5190 to i1
  br i1 %5191, label %5192, label %5196

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

5196:                                             ; preds = %5192, %5186
  br label %5197

5197:                                             ; preds = %5192, %5196
  %.str.5.sink3064 = phi ptr [ @.str.5, %5196 ], [ @.str.2, %5192 ]
  store i32 %5187, ptr %3231, align 4, !tbaa !5
  %5198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5199 = load i32, ptr @test_count, align 4, !tbaa !5
  %5200 = load i32, ptr %3177, align 4, !tbaa !5
  %5201 = call ptr @s2n_strerror(i32 noundef %5200, ptr noundef nonnull @.str.4) #11
  %5202 = load i32, ptr %3177, align 4, !tbaa !5
  %5203 = call ptr @s2n_strerror_debug(i32 noundef %5202, ptr noundef nonnull @.str.4) #11
  %5204 = load i32, ptr %3231, align 4, !tbaa !5
  %5205 = call ptr @strerror(i32 noundef %5204) #11
  %5206 = load i32, ptr %3231, align 4, !tbaa !5
  %5207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5198, ptr noundef nonnull %.str.5.sink3064, i32 noundef %5199, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 744, ptr noundef %5201, ptr noundef %5203, ptr noundef %5205, i32 noundef %5206) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5208:                                             ; preds = %5178
  %5209 = load i32, ptr @test_count, align 4, !tbaa !5
  %5210 = add nsw i32 %5209, 1
  store i32 %5210, ptr @test_count, align 4, !tbaa !5
  %5211 = load ptr, ptr %71, align 8, !tbaa !9
  %5212 = getelementptr inbounds i8, ptr %5211, i64 1528
  %5213 = load ptr, ptr %5212, align 8, !tbaa !66
  %5214 = icmp eq ptr %5213, @s2n_rsa_pkcs1_sha1
  br i1 %5214, label %5237, label %5215

5215:                                             ; preds = %5208
  %5216 = load i32, ptr %3231, align 4, !tbaa !5
  %5217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5218 = call i32 @s2n_print_stacktrace(ptr noundef %5217) #11
  %5219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5220 = trunc nuw i8 %5219 to i1
  br i1 %5220, label %5221, label %5225

5221:                                             ; preds = %5215
  %5222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5223 = call i32 @fileno(ptr noundef %5222) #11
  %5224 = call i32 @isatty(i32 noundef %5223) #11
  %.not1072 = icmp eq i32 %5224, 0
  br i1 %.not1072, label %5225, label %5226

5225:                                             ; preds = %5221, %5215
  br label %5226

5226:                                             ; preds = %5221, %5225
  %.str.5.sink3073 = phi ptr [ @.str.5, %5225 ], [ @.str.2, %5221 ]
  store i32 %5216, ptr %3231, align 4, !tbaa !5
  %5227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5228 = load i32, ptr @test_count, align 4, !tbaa !5
  %5229 = load i32, ptr %3177, align 4, !tbaa !5
  %5230 = call ptr @s2n_strerror(i32 noundef %5229, ptr noundef nonnull @.str.4) #11
  %5231 = load i32, ptr %3177, align 4, !tbaa !5
  %5232 = call ptr @s2n_strerror_debug(i32 noundef %5231, ptr noundef nonnull @.str.4) #11
  %5233 = load i32, ptr %3231, align 4, !tbaa !5
  %5234 = call ptr @strerror(i32 noundef %5233) #11
  %5235 = load i32, ptr %3231, align 4, !tbaa !5
  %5236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5227, ptr noundef nonnull %.str.5.sink3073, i32 noundef %5228, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 745, ptr noundef %5230, ptr noundef %5232, ptr noundef %5234, i32 noundef %5235) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5237:                                             ; preds = %5208
  %5238 = getelementptr inbounds i8, ptr %5211, i64 220
  store i8 34, ptr %5238, align 4, !tbaa !50
  %5239 = getelementptr inbounds i8, ptr %5211, i64 232
  %5240 = load ptr, ptr %5239, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %5240, align 8, !tbaa !61
  %5241 = add nsw i32 %5209, 2
  store i32 %5241, ptr @test_count, align 4, !tbaa !5
  %5242 = load ptr, ptr %71, align 8, !tbaa !9
  %5243 = call i32 @s2n_signature_algorithm_select(ptr noundef %5242) #11
  %5244 = call zeroext i1 @s2n_result_is_ok(i32 %5243)
  br i1 %5244, label %5267, label %5245

5245:                                             ; preds = %5237
  %5246 = load i32, ptr %3231, align 4, !tbaa !5
  %5247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5248 = call i32 @s2n_print_stacktrace(ptr noundef %5247) #11
  %5249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5250 = trunc nuw i8 %5249 to i1
  br i1 %5250, label %5251, label %5255

5251:                                             ; preds = %5245
  %5252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5253 = call i32 @fileno(ptr noundef %5252) #11
  %5254 = call i32 @isatty(i32 noundef %5253) #11
  %.not1073 = icmp eq i32 %5254, 0
  br i1 %.not1073, label %5255, label %5256

5255:                                             ; preds = %5251, %5245
  br label %5256

5256:                                             ; preds = %5251, %5255
  %.str.5.sink3082 = phi ptr [ @.str.5, %5255 ], [ @.str.2, %5251 ]
  store i32 %5246, ptr %3231, align 4, !tbaa !5
  %5257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5258 = load i32, ptr @test_count, align 4, !tbaa !5
  %5259 = load i32, ptr %3177, align 4, !tbaa !5
  %5260 = call ptr @s2n_strerror(i32 noundef %5259, ptr noundef nonnull @.str.4) #11
  %5261 = load i32, ptr %3177, align 4, !tbaa !5
  %5262 = call ptr @s2n_strerror_debug(i32 noundef %5261, ptr noundef nonnull @.str.4) #11
  %5263 = load i32, ptr %3231, align 4, !tbaa !5
  %5264 = call ptr @strerror(i32 noundef %5263) #11
  %5265 = load i32, ptr %3231, align 4, !tbaa !5
  %5266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5257, ptr noundef nonnull %.str.5.sink3082, i32 noundef %5258, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 750, ptr noundef %5260, ptr noundef %5262, ptr noundef %5264, i32 noundef %5265) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5267:                                             ; preds = %5237
  %5268 = load i32, ptr @test_count, align 4, !tbaa !5
  %5269 = add nsw i32 %5268, 1
  store i32 %5269, ptr @test_count, align 4, !tbaa !5
  %5270 = load ptr, ptr %71, align 8, !tbaa !9
  %5271 = getelementptr inbounds i8, ptr %5270, i64 1528
  %5272 = load ptr, ptr %5271, align 8, !tbaa !66
  %5273 = icmp eq ptr %5272, @s2n_ecdsa_sha384
  br i1 %5273, label %5296, label %5274

5274:                                             ; preds = %5267
  %5275 = load i32, ptr %3231, align 4, !tbaa !5
  %5276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5277 = call i32 @s2n_print_stacktrace(ptr noundef %5276) #11
  %5278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5279 = trunc nuw i8 %5278 to i1
  br i1 %5279, label %5280, label %5284

5280:                                             ; preds = %5274
  %5281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5282 = call i32 @fileno(ptr noundef %5281) #11
  %5283 = call i32 @isatty(i32 noundef %5282) #11
  %.not1074 = icmp eq i32 %5283, 0
  br i1 %.not1074, label %5284, label %5285

5284:                                             ; preds = %5280, %5274
  br label %5285

5285:                                             ; preds = %5280, %5284
  %.str.5.sink3091 = phi ptr [ @.str.5, %5284 ], [ @.str.2, %5280 ]
  store i32 %5275, ptr %3231, align 4, !tbaa !5
  %5286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5287 = load i32, ptr @test_count, align 4, !tbaa !5
  %5288 = load i32, ptr %3177, align 4, !tbaa !5
  %5289 = call ptr @s2n_strerror(i32 noundef %5288, ptr noundef nonnull @.str.4) #11
  %5290 = load i32, ptr %3177, align 4, !tbaa !5
  %5291 = call ptr @s2n_strerror_debug(i32 noundef %5290, ptr noundef nonnull @.str.4) #11
  %5292 = load i32, ptr %3231, align 4, !tbaa !5
  %5293 = call ptr @strerror(i32 noundef %5292) #11
  %5294 = load i32, ptr %3231, align 4, !tbaa !5
  %5295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5286, ptr noundef nonnull %.str.5.sink3091, i32 noundef %5287, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 751, ptr noundef %5289, ptr noundef %5291, ptr noundef %5293, i32 noundef %5294) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5296:                                             ; preds = %5267
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %72) #11
  %5297 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %71) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %73) #11
  store ptr @s2n_ecdsa_sha384, ptr %73, align 16, !tbaa !9
  %5298 = getelementptr inbounds i8, ptr %73, i64 8
  store ptr @s2n_rsa_pkcs1_sha256, ptr %5298, align 8, !tbaa !9
  %5299 = getelementptr inbounds i8, ptr %73, i64 16
  store ptr @s2n_ecdsa_sha512, ptr %5299, align 16, !tbaa !9
  %5300 = getelementptr inbounds i8, ptr %73, i64 24
  store ptr @s2n_ecdsa_sha256, ptr %5300, align 8, !tbaa !9
  %5301 = getelementptr inbounds i8, ptr %73, i64 32
  store ptr @s2n_rsa_pss_rsae_sha384, ptr %5301, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #11
  %5302 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %5302, ptr %74, align 8, !tbaa !9
  %5303 = load i32, ptr @test_count, align 4, !tbaa !5
  %5304 = add nsw i32 %5303, 1
  store i32 %5304, ptr @test_count, align 4, !tbaa !5
  %5305 = load ptr, ptr %21, align 8, !tbaa !9
  %5306 = call i32 @s2n_connection_set_config(ptr noundef %5302, ptr noundef %5305) #11
  %5307 = icmp eq i32 %5306, -1
  br i1 %5307, label %5308, label %5330

5308:                                             ; preds = %5296
  %5309 = load i32, ptr %3231, align 4, !tbaa !5
  %5310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5311 = call i32 @s2n_print_stacktrace(ptr noundef %5310) #11
  %5312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5313 = trunc nuw i8 %5312 to i1
  br i1 %5313, label %5314, label %5318

5314:                                             ; preds = %5308
  %5315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5316 = call i32 @fileno(ptr noundef %5315) #11
  %5317 = call i32 @isatty(i32 noundef %5316) #11
  %.not1246 = icmp eq i32 %5317, 0
  br i1 %.not1246, label %5318, label %5319

5318:                                             ; preds = %5314, %5308
  br label %5319

5319:                                             ; preds = %5314, %5318
  %.str.5.sink3100 = phi ptr [ @.str.5, %5318 ], [ @.str.2, %5314 ]
  store i32 %5309, ptr %3231, align 4, !tbaa !5
  %5320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5321 = load i32, ptr @test_count, align 4, !tbaa !5
  %5322 = load i32, ptr %3177, align 4, !tbaa !5
  %5323 = call ptr @s2n_strerror(i32 noundef %5322, ptr noundef nonnull @.str.4) #11
  %5324 = load i32, ptr %3177, align 4, !tbaa !5
  %5325 = call ptr @s2n_strerror_debug(i32 noundef %5324, ptr noundef nonnull @.str.4) #11
  %5326 = load i32, ptr %3231, align 4, !tbaa !5
  %5327 = call ptr @strerror(i32 noundef %5326) #11
  %5328 = load i32, ptr %3231, align 4, !tbaa !5
  %5329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5320, ptr noundef nonnull %.str.5.sink3100, i32 noundef %5321, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 768, ptr noundef %5323, ptr noundef %5325, ptr noundef %5327, i32 noundef %5328) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5330:                                             ; preds = %5296
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %75) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %75, i8 0, i64 80, i1 false)
  %5331 = load i32, ptr @test_count, align 4, !tbaa !5
  %5332 = add nsw i32 %5331, 1
  store i32 %5332, ptr @test_count, align 4, !tbaa !5
  %5333 = load ptr, ptr %74, align 8, !tbaa !9
  %5334 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %5333, ptr noundef nonnull %75, ptr noundef nonnull %73, i64 noundef 5)
  %5335 = call zeroext i1 @s2n_result_is_ok(i32 %5334)
  br i1 %5335, label %5358, label %5336

5336:                                             ; preds = %5330
  %5337 = load i32, ptr %3231, align 4, !tbaa !5
  %5338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5339 = call i32 @s2n_print_stacktrace(ptr noundef %5338) #11
  %5340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5341 = trunc nuw i8 %5340 to i1
  br i1 %5341, label %5342, label %5346

5342:                                             ; preds = %5336
  %5343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5344 = call i32 @fileno(ptr noundef %5343) #11
  %5345 = call i32 @isatty(i32 noundef %5344) #11
  %.not1075 = icmp eq i32 %5345, 0
  br i1 %.not1075, label %5346, label %5347

5346:                                             ; preds = %5342, %5336
  br label %5347

5347:                                             ; preds = %5342, %5346
  %.str.5.sink3109 = phi ptr [ @.str.5, %5346 ], [ @.str.2, %5342 ]
  store i32 %5337, ptr %3231, align 4, !tbaa !5
  %5348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5349 = load i32, ptr @test_count, align 4, !tbaa !5
  %5350 = load i32, ptr %3177, align 4, !tbaa !5
  %5351 = call ptr @s2n_strerror(i32 noundef %5350, ptr noundef nonnull @.str.4) #11
  %5352 = load i32, ptr %3177, align 4, !tbaa !5
  %5353 = call ptr @s2n_strerror_debug(i32 noundef %5352, ptr noundef nonnull @.str.4) #11
  %5354 = load i32, ptr %3231, align 4, !tbaa !5
  %5355 = call ptr @strerror(i32 noundef %5354) #11
  %5356 = load i32, ptr %3231, align 4, !tbaa !5
  %5357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5348, ptr noundef nonnull %.str.5.sink3109, i32 noundef %5349, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 772, ptr noundef %5351, ptr noundef %5353, ptr noundef %5355, i32 noundef %5356) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5358:                                             ; preds = %5330
  %5359 = load ptr, ptr %74, align 8, !tbaa !9
  %5360 = getelementptr inbounds i8, ptr %5359, i64 220
  store i8 33, ptr %5360, align 4, !tbaa !50
  %5361 = getelementptr inbounds i8, ptr %5359, i64 232
  %5362 = load ptr, ptr %5361, align 8, !tbaa !60
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %5362, align 8, !tbaa !61
  %5363 = load i32, ptr @test_count, align 4, !tbaa !5
  %5364 = add nsw i32 %5363, 1
  store i32 %5364, ptr @test_count, align 4, !tbaa !5
  %5365 = load ptr, ptr %74, align 8, !tbaa !9
  %5366 = call i32 @s2n_signature_algorithm_select(ptr noundef %5365) #11
  %5367 = call zeroext i1 @s2n_result_is_ok(i32 %5366)
  br i1 %5367, label %5390, label %5368

5368:                                             ; preds = %5358
  %5369 = load i32, ptr %3231, align 4, !tbaa !5
  %5370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5371 = call i32 @s2n_print_stacktrace(ptr noundef %5370) #11
  %5372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5373 = trunc nuw i8 %5372 to i1
  br i1 %5373, label %5374, label %5378

5374:                                             ; preds = %5368
  %5375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5376 = call i32 @fileno(ptr noundef %5375) #11
  %5377 = call i32 @isatty(i32 noundef %5376) #11
  %.not1076 = icmp eq i32 %5377, 0
  br i1 %.not1076, label %5378, label %5379

5378:                                             ; preds = %5374, %5368
  br label %5379

5379:                                             ; preds = %5374, %5378
  %.str.5.sink3118 = phi ptr [ @.str.5, %5378 ], [ @.str.2, %5374 ]
  store i32 %5369, ptr %3231, align 4, !tbaa !5
  %5380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5381 = load i32, ptr @test_count, align 4, !tbaa !5
  %5382 = load i32, ptr %3177, align 4, !tbaa !5
  %5383 = call ptr @s2n_strerror(i32 noundef %5382, ptr noundef nonnull @.str.4) #11
  %5384 = load i32, ptr %3177, align 4, !tbaa !5
  %5385 = call ptr @s2n_strerror_debug(i32 noundef %5384, ptr noundef nonnull @.str.4) #11
  %5386 = load i32, ptr %3231, align 4, !tbaa !5
  %5387 = call ptr @strerror(i32 noundef %5386) #11
  %5388 = load i32, ptr %3231, align 4, !tbaa !5
  %5389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5380, ptr noundef nonnull %.str.5.sink3118, i32 noundef %5381, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 777, ptr noundef %5383, ptr noundef %5385, ptr noundef %5387, i32 noundef %5388) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5390:                                             ; preds = %5358
  %5391 = load i32, ptr @test_count, align 4, !tbaa !5
  %5392 = add nsw i32 %5391, 1
  store i32 %5392, ptr @test_count, align 4, !tbaa !5
  %5393 = load ptr, ptr %74, align 8, !tbaa !9
  %5394 = getelementptr inbounds i8, ptr %5393, i64 1528
  %5395 = load ptr, ptr %5394, align 8, !tbaa !66
  %5396 = icmp eq ptr %5395, @s2n_ecdsa_sha384
  br i1 %5396, label %5419, label %5397

5397:                                             ; preds = %5390
  %5398 = load i32, ptr %3231, align 4, !tbaa !5
  %5399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5400 = call i32 @s2n_print_stacktrace(ptr noundef %5399) #11
  %5401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5402 = trunc nuw i8 %5401 to i1
  br i1 %5402, label %5403, label %5407

5403:                                             ; preds = %5397
  %5404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5405 = call i32 @fileno(ptr noundef %5404) #11
  %5406 = call i32 @isatty(i32 noundef %5405) #11
  %.not1077 = icmp eq i32 %5406, 0
  br i1 %.not1077, label %5407, label %5408

5407:                                             ; preds = %5403, %5397
  br label %5408

5408:                                             ; preds = %5403, %5407
  %.str.5.sink3127 = phi ptr [ @.str.5, %5407 ], [ @.str.2, %5403 ]
  store i32 %5398, ptr %3231, align 4, !tbaa !5
  %5409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5410 = load i32, ptr @test_count, align 4, !tbaa !5
  %5411 = load i32, ptr %3177, align 4, !tbaa !5
  %5412 = call ptr @s2n_strerror(i32 noundef %5411, ptr noundef nonnull @.str.4) #11
  %5413 = load i32, ptr %3177, align 4, !tbaa !5
  %5414 = call ptr @s2n_strerror_debug(i32 noundef %5413, ptr noundef nonnull @.str.4) #11
  %5415 = load i32, ptr %3231, align 4, !tbaa !5
  %5416 = call ptr @strerror(i32 noundef %5415) #11
  %5417 = load i32, ptr %3231, align 4, !tbaa !5
  %5418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5409, ptr noundef nonnull %.str.5.sink3127, i32 noundef %5410, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 778, ptr noundef %5412, ptr noundef %5414, ptr noundef %5416, i32 noundef %5417) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5419:                                             ; preds = %5390
  %5420 = getelementptr inbounds i8, ptr %5393, i64 220
  store i8 33, ptr %5420, align 4, !tbaa !50
  %5421 = getelementptr inbounds i8, ptr %5393, i64 232
  %5422 = load ptr, ptr %5421, align 8, !tbaa !60
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %5422, align 8, !tbaa !61
  %5423 = add nsw i32 %5391, 2
  store i32 %5423, ptr @test_count, align 4, !tbaa !5
  %5424 = load ptr, ptr %74, align 8, !tbaa !9
  %5425 = call i32 @s2n_signature_algorithm_select(ptr noundef %5424) #11
  %5426 = call zeroext i1 @s2n_result_is_ok(i32 %5425)
  br i1 %5426, label %5449, label %5427

5427:                                             ; preds = %5419
  %5428 = load i32, ptr %3231, align 4, !tbaa !5
  %5429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5430 = call i32 @s2n_print_stacktrace(ptr noundef %5429) #11
  %5431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5432 = trunc nuw i8 %5431 to i1
  br i1 %5432, label %5433, label %5437

5433:                                             ; preds = %5427
  %5434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5435 = call i32 @fileno(ptr noundef %5434) #11
  %5436 = call i32 @isatty(i32 noundef %5435) #11
  %.not1078 = icmp eq i32 %5436, 0
  br i1 %.not1078, label %5437, label %5438

5437:                                             ; preds = %5433, %5427
  br label %5438

5438:                                             ; preds = %5433, %5437
  %.str.5.sink3136 = phi ptr [ @.str.5, %5437 ], [ @.str.2, %5433 ]
  store i32 %5428, ptr %3231, align 4, !tbaa !5
  %5439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5440 = load i32, ptr @test_count, align 4, !tbaa !5
  %5441 = load i32, ptr %3177, align 4, !tbaa !5
  %5442 = call ptr @s2n_strerror(i32 noundef %5441, ptr noundef nonnull @.str.4) #11
  %5443 = load i32, ptr %3177, align 4, !tbaa !5
  %5444 = call ptr @s2n_strerror_debug(i32 noundef %5443, ptr noundef nonnull @.str.4) #11
  %5445 = load i32, ptr %3231, align 4, !tbaa !5
  %5446 = call ptr @strerror(i32 noundef %5445) #11
  %5447 = load i32, ptr %3231, align 4, !tbaa !5
  %5448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5439, ptr noundef nonnull %.str.5.sink3136, i32 noundef %5440, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 783, ptr noundef %5442, ptr noundef %5444, ptr noundef %5446, i32 noundef %5447) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5449:                                             ; preds = %5419
  %5450 = load i32, ptr @test_count, align 4, !tbaa !5
  %5451 = add nsw i32 %5450, 1
  store i32 %5451, ptr @test_count, align 4, !tbaa !5
  %5452 = load ptr, ptr %74, align 8, !tbaa !9
  %5453 = getelementptr inbounds i8, ptr %5452, i64 1528
  %5454 = load ptr, ptr %5453, align 8, !tbaa !66
  %5455 = icmp eq ptr %5454, @s2n_rsa_pkcs1_sha256
  br i1 %5455, label %5478, label %5456

5456:                                             ; preds = %5449
  %5457 = load i32, ptr %3231, align 4, !tbaa !5
  %5458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5459 = call i32 @s2n_print_stacktrace(ptr noundef %5458) #11
  %5460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5461 = trunc nuw i8 %5460 to i1
  br i1 %5461, label %5462, label %5466

5462:                                             ; preds = %5456
  %5463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5464 = call i32 @fileno(ptr noundef %5463) #11
  %5465 = call i32 @isatty(i32 noundef %5464) #11
  %.not1079 = icmp eq i32 %5465, 0
  br i1 %.not1079, label %5466, label %5467

5466:                                             ; preds = %5462, %5456
  br label %5467

5467:                                             ; preds = %5462, %5466
  %.str.5.sink3145 = phi ptr [ @.str.5, %5466 ], [ @.str.2, %5462 ]
  store i32 %5457, ptr %3231, align 4, !tbaa !5
  %5468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5469 = load i32, ptr @test_count, align 4, !tbaa !5
  %5470 = load i32, ptr %3177, align 4, !tbaa !5
  %5471 = call ptr @s2n_strerror(i32 noundef %5470, ptr noundef nonnull @.str.4) #11
  %5472 = load i32, ptr %3177, align 4, !tbaa !5
  %5473 = call ptr @s2n_strerror_debug(i32 noundef %5472, ptr noundef nonnull @.str.4) #11
  %5474 = load i32, ptr %3231, align 4, !tbaa !5
  %5475 = call ptr @strerror(i32 noundef %5474) #11
  %5476 = load i32, ptr %3231, align 4, !tbaa !5
  %5477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5468, ptr noundef nonnull %.str.5.sink3145, i32 noundef %5469, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 784, ptr noundef %5471, ptr noundef %5473, ptr noundef %5475, i32 noundef %5476) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5478:                                             ; preds = %5449
  %5479 = getelementptr inbounds i8, ptr %5452, i64 220
  store i8 34, ptr %5479, align 4, !tbaa !50
  %5480 = getelementptr inbounds i8, ptr %5452, i64 232
  %5481 = load ptr, ptr %5480, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %5481, align 8, !tbaa !61
  %5482 = add nsw i32 %5450, 2
  store i32 %5482, ptr @test_count, align 4, !tbaa !5
  %5483 = load ptr, ptr %74, align 8, !tbaa !9
  %5484 = call i32 @s2n_signature_algorithm_select(ptr noundef %5483) #11
  %5485 = call zeroext i1 @s2n_result_is_ok(i32 %5484)
  br i1 %5485, label %5508, label %5486

5486:                                             ; preds = %5478
  %5487 = load i32, ptr %3231, align 4, !tbaa !5
  %5488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5489 = call i32 @s2n_print_stacktrace(ptr noundef %5488) #11
  %5490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5491 = trunc nuw i8 %5490 to i1
  br i1 %5491, label %5492, label %5496

5492:                                             ; preds = %5486
  %5493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5494 = call i32 @fileno(ptr noundef %5493) #11
  %5495 = call i32 @isatty(i32 noundef %5494) #11
  %.not1080 = icmp eq i32 %5495, 0
  br i1 %.not1080, label %5496, label %5497

5496:                                             ; preds = %5492, %5486
  br label %5497

5497:                                             ; preds = %5492, %5496
  %.str.5.sink3154 = phi ptr [ @.str.5, %5496 ], [ @.str.2, %5492 ]
  store i32 %5487, ptr %3231, align 4, !tbaa !5
  %5498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5499 = load i32, ptr @test_count, align 4, !tbaa !5
  %5500 = load i32, ptr %3177, align 4, !tbaa !5
  %5501 = call ptr @s2n_strerror(i32 noundef %5500, ptr noundef nonnull @.str.4) #11
  %5502 = load i32, ptr %3177, align 4, !tbaa !5
  %5503 = call ptr @s2n_strerror_debug(i32 noundef %5502, ptr noundef nonnull @.str.4) #11
  %5504 = load i32, ptr %3231, align 4, !tbaa !5
  %5505 = call ptr @strerror(i32 noundef %5504) #11
  %5506 = load i32, ptr %3231, align 4, !tbaa !5
  %5507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5498, ptr noundef nonnull %.str.5.sink3154, i32 noundef %5499, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 789, ptr noundef %5501, ptr noundef %5503, ptr noundef %5505, i32 noundef %5506) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5508:                                             ; preds = %5478
  %5509 = load i32, ptr @test_count, align 4, !tbaa !5
  %5510 = add nsw i32 %5509, 1
  store i32 %5510, ptr @test_count, align 4, !tbaa !5
  %5511 = load ptr, ptr %74, align 8, !tbaa !9
  %5512 = getelementptr inbounds i8, ptr %5511, i64 1528
  %5513 = load ptr, ptr %5512, align 8, !tbaa !66
  %5514 = icmp eq ptr %5513, @s2n_ecdsa_sha384
  br i1 %5514, label %5537, label %5515

5515:                                             ; preds = %5508
  %5516 = load i32, ptr %3231, align 4, !tbaa !5
  %5517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5518 = call i32 @s2n_print_stacktrace(ptr noundef %5517) #11
  %5519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5520 = trunc nuw i8 %5519 to i1
  br i1 %5520, label %5521, label %5525

5521:                                             ; preds = %5515
  %5522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5523 = call i32 @fileno(ptr noundef %5522) #11
  %5524 = call i32 @isatty(i32 noundef %5523) #11
  %.not1081 = icmp eq i32 %5524, 0
  br i1 %.not1081, label %5525, label %5526

5525:                                             ; preds = %5521, %5515
  br label %5526

5526:                                             ; preds = %5521, %5525
  %.str.5.sink3163 = phi ptr [ @.str.5, %5525 ], [ @.str.2, %5521 ]
  store i32 %5516, ptr %3231, align 4, !tbaa !5
  %5527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5528 = load i32, ptr @test_count, align 4, !tbaa !5
  %5529 = load i32, ptr %3177, align 4, !tbaa !5
  %5530 = call ptr @s2n_strerror(i32 noundef %5529, ptr noundef nonnull @.str.4) #11
  %5531 = load i32, ptr %3177, align 4, !tbaa !5
  %5532 = call ptr @s2n_strerror_debug(i32 noundef %5531, ptr noundef nonnull @.str.4) #11
  %5533 = load i32, ptr %3231, align 4, !tbaa !5
  %5534 = call ptr @strerror(i32 noundef %5533) #11
  %5535 = load i32, ptr %3231, align 4, !tbaa !5
  %5536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5527, ptr noundef nonnull %.str.5.sink3163, i32 noundef %5528, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 790, ptr noundef %5530, ptr noundef %5532, ptr noundef %5534, i32 noundef %5535) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5537:                                             ; preds = %5508
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %75) #11
  %5538 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %74) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %73) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %76) #11
  store ptr @s2n_rsa_pss_rsae_sha256, ptr %76, align 16, !tbaa !9
  %5539 = getelementptr inbounds i8, ptr %76, i64 8
  store ptr @s2n_rsa_pss_pss_sha256, ptr %5539, align 8, !tbaa !9
  %5540 = getelementptr inbounds i8, ptr %76, i64 16
  store ptr @s2n_rsa_pkcs1_sha256, ptr %5540, align 16, !tbaa !9
  %5541 = getelementptr inbounds i8, ptr %76, i64 24
  store ptr @s2n_ecdsa_sha224, ptr %5541, align 8, !tbaa !9
  %5542 = getelementptr inbounds i8, ptr %76, i64 32
  store ptr @s2n_ecdsa_sha256, ptr %5542, align 16, !tbaa !9
  %5543 = getelementptr inbounds i8, ptr %76, i64 40
  store ptr @s2n_ecdsa_sha384, ptr %5543, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %77) #11
  %5544 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %5544, ptr %77, align 8, !tbaa !9
  %5545 = getelementptr inbounds i8, ptr %5544, i64 220
  store i8 34, ptr %5545, align 4, !tbaa !50
  %5546 = getelementptr inbounds i8, ptr %5544, i64 232
  %5547 = load ptr, ptr %5546, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %5547, align 8, !tbaa !61
  %5548 = load i32, ptr @test_count, align 4, !tbaa !5
  %5549 = add nsw i32 %5548, 1
  store i32 %5549, ptr @test_count, align 4, !tbaa !5
  %5550 = load ptr, ptr %77, align 8, !tbaa !9
  %5551 = load ptr, ptr %22, align 8, !tbaa !9
  %5552 = call i32 @s2n_connection_set_config(ptr noundef %5550, ptr noundef %5551) #11
  %5553 = icmp eq i32 %5552, -1
  br i1 %5553, label %5554, label %5576

5554:                                             ; preds = %5537
  %5555 = load i32, ptr %3231, align 4, !tbaa !5
  %5556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5557 = call i32 @s2n_print_stacktrace(ptr noundef %5556) #11
  %5558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5559 = trunc nuw i8 %5558 to i1
  br i1 %5559, label %5560, label %5564

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

5564:                                             ; preds = %5560, %5554
  br label %5565

5565:                                             ; preds = %5560, %5564
  %.str.5.sink3172 = phi ptr [ @.str.5, %5564 ], [ @.str.2, %5560 ]
  store i32 %5555, ptr %3231, align 4, !tbaa !5
  %5566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5567 = load i32, ptr @test_count, align 4, !tbaa !5
  %5568 = load i32, ptr %3177, align 4, !tbaa !5
  %5569 = call ptr @s2n_strerror(i32 noundef %5568, ptr noundef nonnull @.str.4) #11
  %5570 = load i32, ptr %3177, align 4, !tbaa !5
  %5571 = call ptr @s2n_strerror_debug(i32 noundef %5570, ptr noundef nonnull @.str.4) #11
  %5572 = load i32, ptr %3231, align 4, !tbaa !5
  %5573 = call ptr @strerror(i32 noundef %5572) #11
  %5574 = load i32, ptr %3231, align 4, !tbaa !5
  %5575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5566, ptr noundef nonnull %.str.5.sink3172, i32 noundef %5567, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 812, ptr noundef %5569, ptr noundef %5571, ptr noundef %5573, i32 noundef %5574) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5576:                                             ; preds = %5537
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %78) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %78, i8 0, i64 80, i1 false)
  %5577 = load i32, ptr @test_count, align 4, !tbaa !5
  %5578 = add nsw i32 %5577, 1
  store i32 %5578, ptr @test_count, align 4, !tbaa !5
  %5579 = load ptr, ptr %77, align 8, !tbaa !9
  %5580 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %5579, ptr noundef nonnull %78, ptr noundef nonnull %76, i64 noundef 6)
  %5581 = call zeroext i1 @s2n_result_is_ok(i32 %5580)
  br i1 %5581, label %5604, label %5582

5582:                                             ; preds = %5576
  %5583 = load i32, ptr %3231, align 4, !tbaa !5
  %5584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5585 = call i32 @s2n_print_stacktrace(ptr noundef %5584) #11
  %5586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5587 = trunc nuw i8 %5586 to i1
  br i1 %5587, label %5588, label %5592

5588:                                             ; preds = %5582
  %5589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5590 = call i32 @fileno(ptr noundef %5589) #11
  %5591 = call i32 @isatty(i32 noundef %5590) #11
  %.not1082 = icmp eq i32 %5591, 0
  br i1 %.not1082, label %5592, label %5593

5592:                                             ; preds = %5588, %5582
  br label %5593

5593:                                             ; preds = %5588, %5592
  %.str.5.sink3181 = phi ptr [ @.str.5, %5592 ], [ @.str.2, %5588 ]
  store i32 %5583, ptr %3231, align 4, !tbaa !5
  %5594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5595 = load i32, ptr @test_count, align 4, !tbaa !5
  %5596 = load i32, ptr %3177, align 4, !tbaa !5
  %5597 = call ptr @s2n_strerror(i32 noundef %5596, ptr noundef nonnull @.str.4) #11
  %5598 = load i32, ptr %3177, align 4, !tbaa !5
  %5599 = call ptr @s2n_strerror_debug(i32 noundef %5598, ptr noundef nonnull @.str.4) #11
  %5600 = load i32, ptr %3231, align 4, !tbaa !5
  %5601 = call ptr @strerror(i32 noundef %5600) #11
  %5602 = load i32, ptr %3231, align 4, !tbaa !5
  %5603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5594, ptr noundef nonnull %.str.5.sink3181, i32 noundef %5595, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 816, ptr noundef %5597, ptr noundef %5599, ptr noundef %5601, i32 noundef %5602) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5604:                                             ; preds = %5576
  %5605 = load i32, ptr @test_count, align 4, !tbaa !5
  %5606 = add nsw i32 %5605, 1
  store i32 %5606, ptr @test_count, align 4, !tbaa !5
  %5607 = load ptr, ptr %77, align 8, !tbaa !9
  %5608 = call i32 @s2n_signature_algorithm_select(ptr noundef %5607) #11
  %5609 = call zeroext i1 @s2n_result_is_ok(i32 %5608)
  br i1 %5609, label %5632, label %5610

5610:                                             ; preds = %5604
  %5611 = load i32, ptr %3231, align 4, !tbaa !5
  %5612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5613 = call i32 @s2n_print_stacktrace(ptr noundef %5612) #11
  %5614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5615 = trunc nuw i8 %5614 to i1
  br i1 %5615, label %5616, label %5620

5616:                                             ; preds = %5610
  %5617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5618 = call i32 @fileno(ptr noundef %5617) #11
  %5619 = call i32 @isatty(i32 noundef %5618) #11
  %.not1083 = icmp eq i32 %5619, 0
  br i1 %.not1083, label %5620, label %5621

5620:                                             ; preds = %5616, %5610
  br label %5621

5621:                                             ; preds = %5616, %5620
  %.str.5.sink3190 = phi ptr [ @.str.5, %5620 ], [ @.str.2, %5616 ]
  store i32 %5611, ptr %3231, align 4, !tbaa !5
  %5622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5623 = load i32, ptr @test_count, align 4, !tbaa !5
  %5624 = load i32, ptr %3177, align 4, !tbaa !5
  %5625 = call ptr @s2n_strerror(i32 noundef %5624, ptr noundef nonnull @.str.4) #11
  %5626 = load i32, ptr %3177, align 4, !tbaa !5
  %5627 = call ptr @s2n_strerror_debug(i32 noundef %5626, ptr noundef nonnull @.str.4) #11
  %5628 = load i32, ptr %3231, align 4, !tbaa !5
  %5629 = call ptr @strerror(i32 noundef %5628) #11
  %5630 = load i32, ptr %3231, align 4, !tbaa !5
  %5631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5622, ptr noundef nonnull %.str.5.sink3190, i32 noundef %5623, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 817, ptr noundef %5625, ptr noundef %5627, ptr noundef %5629, i32 noundef %5630) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5632:                                             ; preds = %5604
  %5633 = load i32, ptr @test_count, align 4, !tbaa !5
  %5634 = add nsw i32 %5633, 1
  store i32 %5634, ptr @test_count, align 4, !tbaa !5
  %5635 = load ptr, ptr %77, align 8, !tbaa !9
  %5636 = getelementptr inbounds i8, ptr %5635, i64 1536
  %5637 = load ptr, ptr %5636, align 8, !tbaa !59
  %5638 = icmp eq ptr %5637, @s2n_ecdsa_sha384
  br i1 %5638, label %5661, label %5639

5639:                                             ; preds = %5632
  %5640 = load i32, ptr %3231, align 4, !tbaa !5
  %5641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5642 = call i32 @s2n_print_stacktrace(ptr noundef %5641) #11
  %5643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5644 = trunc nuw i8 %5643 to i1
  br i1 %5644, label %5645, label %5649

5645:                                             ; preds = %5639
  %5646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5647 = call i32 @fileno(ptr noundef %5646) #11
  %5648 = call i32 @isatty(i32 noundef %5647) #11
  %.not1084 = icmp eq i32 %5648, 0
  br i1 %.not1084, label %5649, label %5650

5649:                                             ; preds = %5645, %5639
  br label %5650

5650:                                             ; preds = %5645, %5649
  %.str.5.sink3199 = phi ptr [ @.str.5, %5649 ], [ @.str.2, %5645 ]
  store i32 %5640, ptr %3231, align 4, !tbaa !5
  %5651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5652 = load i32, ptr @test_count, align 4, !tbaa !5
  %5653 = load i32, ptr %3177, align 4, !tbaa !5
  %5654 = call ptr @s2n_strerror(i32 noundef %5653, ptr noundef nonnull @.str.4) #11
  %5655 = load i32, ptr %3177, align 4, !tbaa !5
  %5656 = call ptr @s2n_strerror_debug(i32 noundef %5655, ptr noundef nonnull @.str.4) #11
  %5657 = load i32, ptr %3231, align 4, !tbaa !5
  %5658 = call ptr @strerror(i32 noundef %5657) #11
  %5659 = load i32, ptr %3231, align 4, !tbaa !5
  %5660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5651, ptr noundef nonnull %.str.5.sink3199, i32 noundef %5652, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 818, ptr noundef %5654, ptr noundef %5656, ptr noundef %5658, i32 noundef %5659) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5661:                                             ; preds = %5632
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %78) #11
  %5662 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %77) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %76) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %79) #11
  store ptr @s2n_rsa_pss_pss_sha256, ptr %79, align 16, !tbaa !9
  %5663 = getelementptr inbounds i8, ptr %79, i64 8
  store ptr @s2n_ecdsa_sha384, ptr %5663, align 8, !tbaa !9
  %5664 = getelementptr inbounds i8, ptr %79, i64 16
  store ptr @s2n_rsa_pss_rsae_sha256, ptr %5664, align 16, !tbaa !9
  %5665 = getelementptr inbounds i8, ptr %79, i64 24
  store ptr @s2n_rsa_pkcs1_sha1, ptr %5665, align 8, !tbaa !9
  %5666 = getelementptr inbounds i8, ptr %79, i64 32
  store ptr @s2n_ecdsa_sha1, ptr %5666, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #11
  store ptr @s2n_rsa_pss_pss_sha256, ptr %80, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #11
  %5667 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %5667, ptr %81, align 8, !tbaa !9
  %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 %21, align 8, !tbaa !9
  %5671 = call i32 @s2n_connection_set_config(ptr noundef %5667, ptr noundef %5670) #11
  %5672 = icmp eq i32 %5671, -1
  br i1 %5672, label %5673, label %5695

5673:                                             ; preds = %5661
  %5674 = load i32, ptr %3231, align 4, !tbaa !5
  %5675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5676 = call i32 @s2n_print_stacktrace(ptr noundef %5675) #11
  %5677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5678 = trunc nuw i8 %5677 to i1
  br i1 %5678, label %5679, label %5683

5679:                                             ; preds = %5673
  %5680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5681 = call i32 @fileno(ptr noundef %5680) #11
  %5682 = call i32 @isatty(i32 noundef %5681) #11
  %.not1244 = icmp eq i32 %5682, 0
  br i1 %.not1244, label %5683, label %5684

5683:                                             ; preds = %5679, %5673
  br label %5684

5684:                                             ; preds = %5679, %5683
  %.str.5.sink3208 = phi ptr [ @.str.5, %5683 ], [ @.str.2, %5679 ]
  store i32 %5674, ptr %3231, align 4, !tbaa !5
  %5685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5686 = load i32, ptr @test_count, align 4, !tbaa !5
  %5687 = load i32, ptr %3177, align 4, !tbaa !5
  %5688 = call ptr @s2n_strerror(i32 noundef %5687, ptr noundef nonnull @.str.4) #11
  %5689 = load i32, ptr %3177, align 4, !tbaa !5
  %5690 = call ptr @s2n_strerror_debug(i32 noundef %5689, ptr noundef nonnull @.str.4) #11
  %5691 = load i32, ptr %3231, align 4, !tbaa !5
  %5692 = call ptr @strerror(i32 noundef %5691) #11
  %5693 = load i32, ptr %3231, align 4, !tbaa !5
  %5694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5685, ptr noundef nonnull %.str.5.sink3208, i32 noundef %5686, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 850, ptr noundef %5688, ptr noundef %5690, ptr noundef %5692, i32 noundef %5693) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5695:                                             ; preds = %5661
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %82) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %82, i8 0, i64 80, i1 false)
  %5696 = load i32, ptr @test_count, align 4, !tbaa !5
  %5697 = add nsw i32 %5696, 1
  store i32 %5697, ptr @test_count, align 4, !tbaa !5
  %5698 = load ptr, ptr %81, align 8, !tbaa !9
  %5699 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %5698, ptr noundef nonnull %82, ptr noundef nonnull %79, i64 noundef 5)
  %5700 = call zeroext i1 @s2n_result_is_ok(i32 %5699)
  br i1 %5700, label %5723, label %5701

5701:                                             ; preds = %5695
  %5702 = load i32, ptr %3231, align 4, !tbaa !5
  %5703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5704 = call i32 @s2n_print_stacktrace(ptr noundef %5703) #11
  %5705 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5706 = trunc nuw i8 %5705 to i1
  br i1 %5706, label %5707, label %5711

5707:                                             ; preds = %5701
  %5708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5709 = call i32 @fileno(ptr noundef %5708) #11
  %5710 = call i32 @isatty(i32 noundef %5709) #11
  %.not1085 = icmp eq i32 %5710, 0
  br i1 %.not1085, label %5711, label %5712

5711:                                             ; preds = %5707, %5701
  br label %5712

5712:                                             ; preds = %5707, %5711
  %.str.5.sink3217 = phi ptr [ @.str.5, %5711 ], [ @.str.2, %5707 ]
  store i32 %5702, ptr %3231, align 4, !tbaa !5
  %5713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5714 = load i32, ptr @test_count, align 4, !tbaa !5
  %5715 = load i32, ptr %3177, align 4, !tbaa !5
  %5716 = call ptr @s2n_strerror(i32 noundef %5715, ptr noundef nonnull @.str.4) #11
  %5717 = load i32, ptr %3177, align 4, !tbaa !5
  %5718 = call ptr @s2n_strerror_debug(i32 noundef %5717, ptr noundef nonnull @.str.4) #11
  %5719 = load i32, ptr %3231, align 4, !tbaa !5
  %5720 = call ptr @strerror(i32 noundef %5719) #11
  %5721 = load i32, ptr %3231, align 4, !tbaa !5
  %5722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5713, ptr noundef nonnull %.str.5.sink3217, i32 noundef %5714, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 854, ptr noundef %5716, ptr noundef %5718, ptr noundef %5720, i32 noundef %5721) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5723:                                             ; preds = %5695
  %5724 = load i32, ptr @test_count, align 4, !tbaa !5
  %5725 = add nsw i32 %5724, 1
  store i32 %5725, ptr @test_count, align 4, !tbaa !5
  %5726 = load ptr, ptr %81, align 8, !tbaa !9
  %5727 = getelementptr inbounds i8, ptr %5726, i64 1268
  %5728 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %5727, ptr noundef nonnull %80, i64 noundef 1)
  %5729 = call zeroext i1 @s2n_result_is_ok(i32 %5728)
  br i1 %5729, label %5752, label %5730

5730:                                             ; preds = %5723
  %5731 = load i32, ptr %3231, align 4, !tbaa !5
  %5732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5733 = call i32 @s2n_print_stacktrace(ptr noundef %5732) #11
  %5734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5735 = trunc nuw i8 %5734 to i1
  br i1 %5735, label %5736, label %5740

5736:                                             ; preds = %5730
  %5737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5738 = call i32 @fileno(ptr noundef %5737) #11
  %5739 = call i32 @isatty(i32 noundef %5738) #11
  %.not1086 = icmp eq i32 %5739, 0
  br i1 %.not1086, label %5740, label %5741

5740:                                             ; preds = %5736, %5730
  br label %5741

5741:                                             ; preds = %5736, %5740
  %.str.5.sink3226 = phi ptr [ @.str.5, %5740 ], [ @.str.2, %5736 ]
  store i32 %5731, ptr %3231, align 4, !tbaa !5
  %5742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5743 = load i32, ptr @test_count, align 4, !tbaa !5
  %5744 = load i32, ptr %3177, align 4, !tbaa !5
  %5745 = call ptr @s2n_strerror(i32 noundef %5744, ptr noundef nonnull @.str.4) #11
  %5746 = load i32, ptr %3177, align 4, !tbaa !5
  %5747 = call ptr @s2n_strerror_debug(i32 noundef %5746, ptr noundef nonnull @.str.4) #11
  %5748 = load i32, ptr %3231, align 4, !tbaa !5
  %5749 = call ptr @strerror(i32 noundef %5748) #11
  %5750 = load i32, ptr %3231, align 4, !tbaa !5
  %5751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5742, ptr noundef nonnull %.str.5.sink3226, i32 noundef %5743, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 856, ptr noundef %5745, ptr noundef %5747, ptr noundef %5749, i32 noundef %5750) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5752:                                             ; preds = %5723
  %5753 = load ptr, ptr %81, align 8, !tbaa !9
  %5754 = getelementptr inbounds i8, ptr %5753, i64 220
  store i8 33, ptr %5754, align 4, !tbaa !50
  %5755 = getelementptr inbounds i8, ptr %5753, i64 232
  %5756 = load ptr, ptr %5755, align 8, !tbaa !60
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %5756, align 8, !tbaa !61
  %5757 = load i32, ptr @test_count, align 4, !tbaa !5
  %5758 = add nsw i32 %5757, 1
  store i32 %5758, ptr @test_count, align 4, !tbaa !5
  %5759 = load ptr, ptr %81, align 8, !tbaa !9
  %5760 = call i32 @s2n_signature_algorithm_select(ptr noundef %5759) #11
  %5761 = call zeroext i1 @s2n_result_is_ok(i32 %5760)
  br i1 %5761, label %5784, label %5762

5762:                                             ; preds = %5752
  %5763 = load i32, ptr %3231, align 4, !tbaa !5
  %5764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5765 = call i32 @s2n_print_stacktrace(ptr noundef %5764) #11
  %5766 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5767 = trunc nuw i8 %5766 to i1
  br i1 %5767, label %5768, label %5772

5768:                                             ; preds = %5762
  %5769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5770 = call i32 @fileno(ptr noundef %5769) #11
  %5771 = call i32 @isatty(i32 noundef %5770) #11
  %.not1087 = icmp eq i32 %5771, 0
  br i1 %.not1087, label %5772, label %5773

5772:                                             ; preds = %5768, %5762
  br label %5773

5773:                                             ; preds = %5768, %5772
  %.str.5.sink3235 = phi ptr [ @.str.5, %5772 ], [ @.str.2, %5768 ]
  store i32 %5763, ptr %3231, align 4, !tbaa !5
  %5774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5775 = load i32, ptr @test_count, align 4, !tbaa !5
  %5776 = load i32, ptr %3177, align 4, !tbaa !5
  %5777 = call ptr @s2n_strerror(i32 noundef %5776, ptr noundef nonnull @.str.4) #11
  %5778 = load i32, ptr %3177, align 4, !tbaa !5
  %5779 = call ptr @s2n_strerror_debug(i32 noundef %5778, ptr noundef nonnull @.str.4) #11
  %5780 = load i32, ptr %3231, align 4, !tbaa !5
  %5781 = call ptr @strerror(i32 noundef %5780) #11
  %5782 = load i32, ptr %3231, align 4, !tbaa !5
  %5783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5774, ptr noundef nonnull %.str.5.sink3235, i32 noundef %5775, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 861, ptr noundef %5777, ptr noundef %5779, ptr noundef %5781, i32 noundef %5782) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5784:                                             ; preds = %5752
  %5785 = load i32, ptr @test_count, align 4, !tbaa !5
  %5786 = add nsw i32 %5785, 1
  store i32 %5786, ptr @test_count, align 4, !tbaa !5
  %5787 = load ptr, ptr %81, align 8, !tbaa !9
  %5788 = getelementptr inbounds i8, ptr %5787, i64 1528
  %5789 = load ptr, ptr %5788, align 8, !tbaa !66
  %5790 = icmp eq ptr %5789, @s2n_ecdsa_sha1
  br i1 %5790, label %5813, label %5791

5791:                                             ; preds = %5784
  %5792 = load i32, ptr %3231, align 4, !tbaa !5
  %5793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5794 = call i32 @s2n_print_stacktrace(ptr noundef %5793) #11
  %5795 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5796 = trunc nuw i8 %5795 to i1
  br i1 %5796, label %5797, label %5801

5797:                                             ; preds = %5791
  %5798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5799 = call i32 @fileno(ptr noundef %5798) #11
  %5800 = call i32 @isatty(i32 noundef %5799) #11
  %.not1088 = icmp eq i32 %5800, 0
  br i1 %.not1088, label %5801, label %5802

5801:                                             ; preds = %5797, %5791
  br label %5802

5802:                                             ; preds = %5797, %5801
  %.str.5.sink3244 = phi ptr [ @.str.5, %5801 ], [ @.str.2, %5797 ]
  store i32 %5792, ptr %3231, align 4, !tbaa !5
  %5803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5804 = load i32, ptr @test_count, align 4, !tbaa !5
  %5805 = load i32, ptr %3177, align 4, !tbaa !5
  %5806 = call ptr @s2n_strerror(i32 noundef %5805, ptr noundef nonnull @.str.4) #11
  %5807 = load i32, ptr %3177, align 4, !tbaa !5
  %5808 = call ptr @s2n_strerror_debug(i32 noundef %5807, ptr noundef nonnull @.str.4) #11
  %5809 = load i32, ptr %3231, align 4, !tbaa !5
  %5810 = call ptr @strerror(i32 noundef %5809) #11
  %5811 = load i32, ptr %3231, align 4, !tbaa !5
  %5812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5803, ptr noundef nonnull %.str.5.sink3244, i32 noundef %5804, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 862, ptr noundef %5806, ptr noundef %5808, ptr noundef %5810, i32 noundef %5811) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5813:                                             ; preds = %5784
  %5814 = getelementptr inbounds i8, ptr %5787, i64 220
  store i8 33, ptr %5814, align 4, !tbaa !50
  %5815 = getelementptr inbounds i8, ptr %5787, i64 232
  %5816 = load ptr, ptr %5815, align 8, !tbaa !60
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %5816, align 8, !tbaa !61
  %5817 = add nsw i32 %5785, 2
  store i32 %5817, ptr @test_count, align 4, !tbaa !5
  %5818 = load ptr, ptr %81, align 8, !tbaa !9
  %5819 = call i32 @s2n_signature_algorithm_select(ptr noundef %5818) #11
  %5820 = call zeroext i1 @s2n_result_is_ok(i32 %5819)
  br i1 %5820, label %5843, label %5821

5821:                                             ; preds = %5813
  %5822 = load i32, ptr %3231, align 4, !tbaa !5
  %5823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5824 = call i32 @s2n_print_stacktrace(ptr noundef %5823) #11
  %5825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5826 = trunc nuw i8 %5825 to i1
  br i1 %5826, label %5827, label %5831

5827:                                             ; preds = %5821
  %5828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5829 = call i32 @fileno(ptr noundef %5828) #11
  %5830 = call i32 @isatty(i32 noundef %5829) #11
  %.not1089 = icmp eq i32 %5830, 0
  br i1 %.not1089, label %5831, label %5832

5831:                                             ; preds = %5827, %5821
  br label %5832

5832:                                             ; preds = %5827, %5831
  %.str.5.sink3253 = phi ptr [ @.str.5, %5831 ], [ @.str.2, %5827 ]
  store i32 %5822, ptr %3231, align 4, !tbaa !5
  %5833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5834 = load i32, ptr @test_count, align 4, !tbaa !5
  %5835 = load i32, ptr %3177, align 4, !tbaa !5
  %5836 = call ptr @s2n_strerror(i32 noundef %5835, ptr noundef nonnull @.str.4) #11
  %5837 = load i32, ptr %3177, align 4, !tbaa !5
  %5838 = call ptr @s2n_strerror_debug(i32 noundef %5837, ptr noundef nonnull @.str.4) #11
  %5839 = load i32, ptr %3231, align 4, !tbaa !5
  %5840 = call ptr @strerror(i32 noundef %5839) #11
  %5841 = load i32, ptr %3231, align 4, !tbaa !5
  %5842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5833, ptr noundef nonnull %.str.5.sink3253, i32 noundef %5834, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 867, ptr noundef %5836, ptr noundef %5838, ptr noundef %5840, i32 noundef %5841) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5843:                                             ; preds = %5813
  %5844 = load i32, ptr @test_count, align 4, !tbaa !5
  %5845 = add nsw i32 %5844, 1
  store i32 %5845, ptr @test_count, align 4, !tbaa !5
  %5846 = load ptr, ptr %81, align 8, !tbaa !9
  %5847 = getelementptr inbounds i8, ptr %5846, i64 1528
  %5848 = load ptr, ptr %5847, align 8, !tbaa !66
  %5849 = icmp eq ptr %5848, @s2n_rsa_pkcs1_sha1
  br i1 %5849, label %5872, label %5850

5850:                                             ; preds = %5843
  %5851 = load i32, ptr %3231, align 4, !tbaa !5
  %5852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5853 = call i32 @s2n_print_stacktrace(ptr noundef %5852) #11
  %5854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5855 = trunc nuw i8 %5854 to i1
  br i1 %5855, label %5856, label %5860

5856:                                             ; preds = %5850
  %5857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5858 = call i32 @fileno(ptr noundef %5857) #11
  %5859 = call i32 @isatty(i32 noundef %5858) #11
  %.not1090 = icmp eq i32 %5859, 0
  br i1 %.not1090, label %5860, label %5861

5860:                                             ; preds = %5856, %5850
  br label %5861

5861:                                             ; preds = %5856, %5860
  %.str.5.sink3262 = phi ptr [ @.str.5, %5860 ], [ @.str.2, %5856 ]
  store i32 %5851, ptr %3231, align 4, !tbaa !5
  %5862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5863 = load i32, ptr @test_count, align 4, !tbaa !5
  %5864 = load i32, ptr %3177, align 4, !tbaa !5
  %5865 = call ptr @s2n_strerror(i32 noundef %5864, ptr noundef nonnull @.str.4) #11
  %5866 = load i32, ptr %3177, align 4, !tbaa !5
  %5867 = call ptr @s2n_strerror_debug(i32 noundef %5866, ptr noundef nonnull @.str.4) #11
  %5868 = load i32, ptr %3231, align 4, !tbaa !5
  %5869 = call ptr @strerror(i32 noundef %5868) #11
  %5870 = load i32, ptr %3231, align 4, !tbaa !5
  %5871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5862, ptr noundef nonnull %.str.5.sink3262, i32 noundef %5863, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 868, ptr noundef %5865, ptr noundef %5867, ptr noundef %5869, i32 noundef %5870) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5872:                                             ; preds = %5843
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %82) #11
  %5873 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %81) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %79) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #11
  store ptr @s2n_ecdsa_sha224, ptr %83, align 16, !tbaa !9
  %5874 = getelementptr inbounds i8, ptr %83, i64 8
  store ptr @s2n_rsa_pkcs1_sha1, ptr %5874, align 8, !tbaa !9
  %5875 = getelementptr inbounds i8, ptr %83, i64 16
  store ptr @s2n_ecdsa_sha1, ptr %5875, align 16, !tbaa !9
  %5876 = getelementptr inbounds i8, ptr %83, i64 24
  store ptr @s2n_ecdsa_sha384, ptr %5876, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %84) #11
  store ptr @s2n_ecdsa_sha224, ptr %84, align 16, !tbaa !9
  %5877 = getelementptr inbounds i8, ptr %84, i64 8
  store ptr @s2n_rsa_pkcs1_sha1, ptr %5877, align 8, !tbaa !9
  %5878 = getelementptr inbounds i8, ptr %84, i64 16
  store ptr @s2n_ecdsa_sha1, ptr %5878, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #11
  %5879 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %5879, ptr %85, align 8, !tbaa !9
  %5880 = getelementptr inbounds i8, ptr %5879, i64 220
  store i8 34, ptr %5880, align 4, !tbaa !50
  %5881 = getelementptr inbounds i8, ptr %5879, i64 232
  %5882 = load ptr, ptr %5881, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %5882, align 8, !tbaa !61
  %5883 = load i32, ptr @test_count, align 4, !tbaa !5
  %5884 = add nsw i32 %5883, 1
  store i32 %5884, ptr @test_count, align 4, !tbaa !5
  %5885 = load ptr, ptr %85, align 8, !tbaa !9
  %5886 = load ptr, ptr %21, align 8, !tbaa !9
  %5887 = call i32 @s2n_connection_set_config(ptr noundef %5885, ptr noundef %5886) #11
  %5888 = icmp eq i32 %5887, -1
  br i1 %5888, label %5889, label %5911

5889:                                             ; preds = %5872
  %5890 = load i32, ptr %3231, align 4, !tbaa !5
  %5891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5892 = call i32 @s2n_print_stacktrace(ptr noundef %5891) #11
  %5893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5894 = trunc nuw i8 %5893 to i1
  br i1 %5894, label %5895, label %5899

5895:                                             ; preds = %5889
  %5896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5897 = call i32 @fileno(ptr noundef %5896) #11
  %5898 = call i32 @isatty(i32 noundef %5897) #11
  %.not1243 = icmp eq i32 %5898, 0
  br i1 %.not1243, label %5899, label %5900

5899:                                             ; preds = %5895, %5889
  br label %5900

5900:                                             ; preds = %5895, %5899
  %.str.5.sink3271 = phi ptr [ @.str.5, %5899 ], [ @.str.2, %5895 ]
  store i32 %5890, ptr %3231, align 4, !tbaa !5
  %5901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5902 = load i32, ptr @test_count, align 4, !tbaa !5
  %5903 = load i32, ptr %3177, align 4, !tbaa !5
  %5904 = call ptr @s2n_strerror(i32 noundef %5903, ptr noundef nonnull @.str.4) #11
  %5905 = load i32, ptr %3177, align 4, !tbaa !5
  %5906 = call ptr @s2n_strerror_debug(i32 noundef %5905, ptr noundef nonnull @.str.4) #11
  %5907 = load i32, ptr %3231, align 4, !tbaa !5
  %5908 = call ptr @strerror(i32 noundef %5907) #11
  %5909 = load i32, ptr %3231, align 4, !tbaa !5
  %5910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5901, ptr noundef nonnull %.str.5.sink3271, i32 noundef %5902, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 891, ptr noundef %5904, ptr noundef %5906, ptr noundef %5908, i32 noundef %5909) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5911:                                             ; preds = %5872
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %86) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %86, i8 0, i64 80, i1 false)
  %5912 = load i32, ptr @test_count, align 4, !tbaa !5
  %5913 = add nsw i32 %5912, 1
  store i32 %5913, ptr @test_count, align 4, !tbaa !5
  %5914 = load ptr, ptr %85, align 8, !tbaa !9
  %5915 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %5914, ptr noundef nonnull %86, ptr noundef nonnull %83, i64 noundef 4)
  %5916 = call zeroext i1 @s2n_result_is_ok(i32 %5915)
  br i1 %5916, label %5939, label %5917

5917:                                             ; preds = %5911
  %5918 = load i32, ptr %3231, align 4, !tbaa !5
  %5919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5920 = call i32 @s2n_print_stacktrace(ptr noundef %5919) #11
  %5921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5922 = trunc nuw i8 %5921 to i1
  br i1 %5922, label %5923, label %5927

5923:                                             ; preds = %5917
  %5924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5925 = call i32 @fileno(ptr noundef %5924) #11
  %5926 = call i32 @isatty(i32 noundef %5925) #11
  %.not1091 = icmp eq i32 %5926, 0
  br i1 %.not1091, label %5927, label %5928

5927:                                             ; preds = %5923, %5917
  br label %5928

5928:                                             ; preds = %5923, %5927
  %.str.5.sink3280 = phi ptr [ @.str.5, %5927 ], [ @.str.2, %5923 ]
  store i32 %5918, ptr %3231, align 4, !tbaa !5
  %5929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5930 = load i32, ptr @test_count, align 4, !tbaa !5
  %5931 = load i32, ptr %3177, align 4, !tbaa !5
  %5932 = call ptr @s2n_strerror(i32 noundef %5931, ptr noundef nonnull @.str.4) #11
  %5933 = load i32, ptr %3177, align 4, !tbaa !5
  %5934 = call ptr @s2n_strerror_debug(i32 noundef %5933, ptr noundef nonnull @.str.4) #11
  %5935 = load i32, ptr %3231, align 4, !tbaa !5
  %5936 = call ptr @strerror(i32 noundef %5935) #11
  %5937 = load i32, ptr %3231, align 4, !tbaa !5
  %5938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5929, ptr noundef nonnull %.str.5.sink3280, i32 noundef %5930, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 895, ptr noundef %5932, ptr noundef %5934, ptr noundef %5936, i32 noundef %5937) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5939:                                             ; preds = %5911
  %5940 = load i32, ptr @test_count, align 4, !tbaa !5
  %5941 = add nsw i32 %5940, 1
  store i32 %5941, ptr @test_count, align 4, !tbaa !5
  %5942 = load ptr, ptr %85, align 8, !tbaa !9
  %5943 = getelementptr inbounds i8, ptr %5942, i64 1268
  %5944 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %5943, ptr noundef nonnull %84, i64 noundef 3)
  %5945 = call zeroext i1 @s2n_result_is_ok(i32 %5944)
  br i1 %5945, label %5968, label %5946

5946:                                             ; preds = %5939
  %5947 = load i32, ptr %3231, align 4, !tbaa !5
  %5948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5949 = call i32 @s2n_print_stacktrace(ptr noundef %5948) #11
  %5950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5951 = trunc nuw i8 %5950 to i1
  br i1 %5951, label %5952, label %5956

5952:                                             ; preds = %5946
  %5953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5954 = call i32 @fileno(ptr noundef %5953) #11
  %5955 = call i32 @isatty(i32 noundef %5954) #11
  %.not1092 = icmp eq i32 %5955, 0
  br i1 %.not1092, label %5956, label %5957

5956:                                             ; preds = %5952, %5946
  br label %5957

5957:                                             ; preds = %5952, %5956
  %.str.5.sink3289 = phi ptr [ @.str.5, %5956 ], [ @.str.2, %5952 ]
  store i32 %5947, ptr %3231, align 4, !tbaa !5
  %5958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5959 = load i32, ptr @test_count, align 4, !tbaa !5
  %5960 = load i32, ptr %3177, align 4, !tbaa !5
  %5961 = call ptr @s2n_strerror(i32 noundef %5960, ptr noundef nonnull @.str.4) #11
  %5962 = load i32, ptr %3177, align 4, !tbaa !5
  %5963 = call ptr @s2n_strerror_debug(i32 noundef %5962, ptr noundef nonnull @.str.4) #11
  %5964 = load i32, ptr %3231, align 4, !tbaa !5
  %5965 = call ptr @strerror(i32 noundef %5964) #11
  %5966 = load i32, ptr %3231, align 4, !tbaa !5
  %5967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5958, ptr noundef nonnull %.str.5.sink3289, i32 noundef %5959, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 897, ptr noundef %5961, ptr noundef %5963, ptr noundef %5965, i32 noundef %5966) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5968:                                             ; preds = %5939
  %5969 = load i32, ptr @test_count, align 4, !tbaa !5
  %5970 = add nsw i32 %5969, 1
  store i32 %5970, ptr @test_count, align 4, !tbaa !5
  %5971 = load ptr, ptr %85, align 8, !tbaa !9
  %5972 = call i32 @s2n_signature_algorithm_select(ptr noundef %5971) #11
  %5973 = call zeroext i1 @s2n_result_is_ok(i32 %5972)
  br i1 %5973, label %5996, label %5974

5974:                                             ; preds = %5968
  %5975 = load i32, ptr %3231, align 4, !tbaa !5
  %5976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5977 = call i32 @s2n_print_stacktrace(ptr noundef %5976) #11
  %5978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5979 = trunc nuw i8 %5978 to i1
  br i1 %5979, label %5980, label %5984

5980:                                             ; preds = %5974
  %5981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5982 = call i32 @fileno(ptr noundef %5981) #11
  %5983 = call i32 @isatty(i32 noundef %5982) #11
  %.not1093 = icmp eq i32 %5983, 0
  br i1 %.not1093, label %5984, label %5985

5984:                                             ; preds = %5980, %5974
  br label %5985

5985:                                             ; preds = %5980, %5984
  %.str.5.sink3298 = phi ptr [ @.str.5, %5984 ], [ @.str.2, %5980 ]
  store i32 %5975, ptr %3231, align 4, !tbaa !5
  %5986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5987 = load i32, ptr @test_count, align 4, !tbaa !5
  %5988 = load i32, ptr %3177, align 4, !tbaa !5
  %5989 = call ptr @s2n_strerror(i32 noundef %5988, ptr noundef nonnull @.str.4) #11
  %5990 = load i32, ptr %3177, align 4, !tbaa !5
  %5991 = call ptr @s2n_strerror_debug(i32 noundef %5990, ptr noundef nonnull @.str.4) #11
  %5992 = load i32, ptr %3231, align 4, !tbaa !5
  %5993 = call ptr @strerror(i32 noundef %5992) #11
  %5994 = load i32, ptr %3231, align 4, !tbaa !5
  %5995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5986, ptr noundef nonnull %.str.5.sink3298, i32 noundef %5987, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 899, ptr noundef %5989, ptr noundef %5991, ptr noundef %5993, i32 noundef %5994) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5996:                                             ; preds = %5968
  %5997 = load i32, ptr @test_count, align 4, !tbaa !5
  %5998 = add nsw i32 %5997, 1
  store i32 %5998, ptr @test_count, align 4, !tbaa !5
  %5999 = load ptr, ptr %85, align 8, !tbaa !9
  %6000 = getelementptr inbounds i8, ptr %5999, i64 1528
  %6001 = load ptr, ptr %6000, align 8, !tbaa !66
  %6002 = icmp eq ptr %6001, @s2n_ecdsa_sha384
  br i1 %6002, label %6025, label %6003

6003:                                             ; preds = %5996
  %6004 = load i32, ptr %3231, align 4, !tbaa !5
  %6005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6006 = call i32 @s2n_print_stacktrace(ptr noundef %6005) #11
  %6007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6008 = trunc nuw i8 %6007 to i1
  br i1 %6008, label %6009, label %6013

6009:                                             ; preds = %6003
  %6010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6011 = call i32 @fileno(ptr noundef %6010) #11
  %6012 = call i32 @isatty(i32 noundef %6011) #11
  %.not1094 = icmp eq i32 %6012, 0
  br i1 %.not1094, label %6013, label %6014

6013:                                             ; preds = %6009, %6003
  br label %6014

6014:                                             ; preds = %6009, %6013
  %.str.5.sink3307 = phi ptr [ @.str.5, %6013 ], [ @.str.2, %6009 ]
  store i32 %6004, ptr %3231, align 4, !tbaa !5
  %6015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6016 = load i32, ptr @test_count, align 4, !tbaa !5
  %6017 = load i32, ptr %3177, align 4, !tbaa !5
  %6018 = call ptr @s2n_strerror(i32 noundef %6017, ptr noundef nonnull @.str.4) #11
  %6019 = load i32, ptr %3177, align 4, !tbaa !5
  %6020 = call ptr @s2n_strerror_debug(i32 noundef %6019, ptr noundef nonnull @.str.4) #11
  %6021 = load i32, ptr %3231, align 4, !tbaa !5
  %6022 = call ptr @strerror(i32 noundef %6021) #11
  %6023 = load i32, ptr %3231, align 4, !tbaa !5
  %6024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6015, ptr noundef nonnull %.str.5.sink3307, i32 noundef %6016, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 900, ptr noundef %6018, ptr noundef %6020, ptr noundef %6022, i32 noundef %6023) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6025:                                             ; preds = %5996
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %86) #11
  %6026 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %85) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %84) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #11
  %6027 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  %6028 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  %6029 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %87) #11
  %6030 = call ptr @s2n_fetch_default_config() #11
  %6031 = getelementptr inbounds i8, ptr %6030, i64 96
  %6032 = load ptr, ptr %6031, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %87, ptr noundef nonnull align 8 dereferenceable(64) %6032, i64 64, i1 false), !tbaa.struct !22
  %6033 = getelementptr inbounds i8, ptr %87, i64 24
  store ptr @test_preferences, ptr %6033, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %88) #11
  %6034 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %6034, ptr %88, align 8, !tbaa !9
  %6035 = getelementptr inbounds i8, ptr %6034, i64 16
  store ptr %87, ptr %6035, align 8, !tbaa !26
  %6036 = getelementptr inbounds i8, ptr %6034, i64 220
  store i8 33, ptr %6036, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %89) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %89, i8 0, i64 40, i1 false)
  %6037 = load i32, ptr @test_count, align 4, !tbaa !5
  %6038 = add nsw i32 %6037, 1
  store i32 %6038, ptr @test_count, align 4, !tbaa !5
  %6039 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %89, i32 noundef 0) #11
  %6040 = icmp eq i32 %6039, -1
  br i1 %6040, label %6041, label %6063

6041:                                             ; preds = %6025
  %6042 = load i32, ptr %3231, align 4, !tbaa !5
  %6043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6044 = call i32 @s2n_print_stacktrace(ptr noundef %6043) #11
  %6045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6046 = trunc nuw i8 %6045 to i1
  br i1 %6046, label %6047, label %6051

6047:                                             ; preds = %6041
  %6048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6049 = call i32 @fileno(ptr noundef %6048) #11
  %6050 = call i32 @isatty(i32 noundef %6049) #11
  %.not1242 = icmp eq i32 %6050, 0
  br i1 %.not1242, label %6051, label %6052

6051:                                             ; preds = %6047, %6041
  br label %6052

6052:                                             ; preds = %6047, %6051
  %.str.5.sink3316 = phi ptr [ @.str.5, %6051 ], [ @.str.2, %6047 ]
  store i32 %6042, ptr %3231, align 4, !tbaa !5
  %6053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6054 = load i32, ptr @test_count, align 4, !tbaa !5
  %6055 = load i32, ptr %3177, align 4, !tbaa !5
  %6056 = call ptr @s2n_strerror(i32 noundef %6055, ptr noundef nonnull @.str.4) #11
  %6057 = load i32, ptr %3177, align 4, !tbaa !5
  %6058 = call ptr @s2n_strerror_debug(i32 noundef %6057, ptr noundef nonnull @.str.4) #11
  %6059 = load i32, ptr %3231, align 4, !tbaa !5
  %6060 = call ptr @strerror(i32 noundef %6059) #11
  %6061 = load i32, ptr %3231, align 4, !tbaa !5
  %6062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6053, ptr noundef nonnull %.str.5.sink3316, i32 noundef %6054, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 918, ptr noundef %6056, ptr noundef %6058, ptr noundef %6060, i32 noundef %6061) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6063:                                             ; preds = %6025
  %6064 = load i32, ptr @test_count, align 4, !tbaa !5
  %6065 = add nsw i32 %6064, 1
  store i32 %6065, ptr @test_count, align 4, !tbaa !5
  %6066 = load i16, ptr @s2n_rsa_pkcs1_sha256, align 8, !tbaa !54
  %6067 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %89, i16 noundef zeroext %6066) #11
  %6068 = icmp eq i32 %6067, -1
  br i1 %6068, label %6069, label %6091

6069:                                             ; preds = %6063
  %6070 = load i32, ptr %3231, align 4, !tbaa !5
  %6071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6072 = call i32 @s2n_print_stacktrace(ptr noundef %6071) #11
  %6073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6074 = trunc nuw i8 %6073 to i1
  br i1 %6074, label %6075, label %6079

6075:                                             ; preds = %6069
  %6076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6077 = call i32 @fileno(ptr noundef %6076) #11
  %6078 = call i32 @isatty(i32 noundef %6077) #11
  %.not1241 = icmp eq i32 %6078, 0
  br i1 %.not1241, label %6079, label %6080

6079:                                             ; preds = %6075, %6069
  br label %6080

6080:                                             ; preds = %6075, %6079
  %.str.5.sink3325 = phi ptr [ @.str.5, %6079 ], [ @.str.2, %6075 ]
  store i32 %6070, ptr %3231, align 4, !tbaa !5
  %6081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6082 = load i32, ptr @test_count, align 4, !tbaa !5
  %6083 = load i32, ptr %3177, align 4, !tbaa !5
  %6084 = call ptr @s2n_strerror(i32 noundef %6083, ptr noundef nonnull @.str.4) #11
  %6085 = load i32, ptr %3177, align 4, !tbaa !5
  %6086 = call ptr @s2n_strerror_debug(i32 noundef %6085, ptr noundef nonnull @.str.4) #11
  %6087 = load i32, ptr %3231, align 4, !tbaa !5
  %6088 = call ptr @strerror(i32 noundef %6087) #11
  %6089 = load i32, ptr %3231, align 4, !tbaa !5
  %6090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6081, ptr noundef nonnull %.str.5.sink3325, i32 noundef %6082, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 919, ptr noundef %6084, ptr noundef %6086, ptr noundef %6088, i32 noundef %6089) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6091:                                             ; preds = %6063
  %6092 = load i32, ptr @test_count, align 4, !tbaa !5
  %6093 = add nsw i32 %6092, 1
  store i32 %6093, ptr @test_count, align 4, !tbaa !5
  %6094 = load ptr, ptr %88, align 8, !tbaa !9
  %6095 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6094, ptr noundef nonnull %89) #11
  %6096 = call zeroext i1 @s2n_result_is_ok(i32 %6095)
  br i1 %6096, label %6119, label %6097

6097:                                             ; preds = %6091
  %6098 = load i32, ptr %3231, align 4, !tbaa !5
  %6099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6100 = call i32 @s2n_print_stacktrace(ptr noundef %6099) #11
  %6101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6102 = trunc nuw i8 %6101 to i1
  br i1 %6102, label %6103, label %6107

6103:                                             ; preds = %6097
  %6104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6105 = call i32 @fileno(ptr noundef %6104) #11
  %6106 = call i32 @isatty(i32 noundef %6105) #11
  %.not1095 = icmp eq i32 %6106, 0
  br i1 %.not1095, label %6107, label %6108

6107:                                             ; preds = %6103, %6097
  br label %6108

6108:                                             ; preds = %6103, %6107
  %.str.5.sink3334 = phi ptr [ @.str.5, %6107 ], [ @.str.2, %6103 ]
  store i32 %6098, ptr %3231, align 4, !tbaa !5
  %6109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6110 = load i32, ptr @test_count, align 4, !tbaa !5
  %6111 = load i32, ptr %3177, align 4, !tbaa !5
  %6112 = call ptr @s2n_strerror(i32 noundef %6111, ptr noundef nonnull @.str.4) #11
  %6113 = load i32, ptr %3177, align 4, !tbaa !5
  %6114 = call ptr @s2n_strerror_debug(i32 noundef %6113, ptr noundef nonnull @.str.4) #11
  %6115 = load i32, ptr %3231, align 4, !tbaa !5
  %6116 = call ptr @strerror(i32 noundef %6115) #11
  %6117 = load i32, ptr %3231, align 4, !tbaa !5
  %6118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6109, ptr noundef nonnull %.str.5.sink3334, i32 noundef %6110, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 921, ptr noundef %6112, ptr noundef %6114, ptr noundef %6116, i32 noundef %6117) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6119:                                             ; preds = %6091
  %6120 = load i32, ptr @test_count, align 4, !tbaa !5
  %6121 = add nsw i32 %6120, 1
  store i32 %6121, ptr @test_count, align 4, !tbaa !5
  %6122 = load ptr, ptr %88, align 8, !tbaa !9
  %6123 = getelementptr inbounds i8, ptr %6122, i64 1528
  %6124 = load ptr, ptr %6123, align 8, !tbaa !66
  %6125 = icmp eq ptr %6124, @s2n_rsa_pkcs1_sha256
  br i1 %6125, label %6148, label %6126

6126:                                             ; preds = %6119
  %6127 = load i32, ptr %3231, align 4, !tbaa !5
  %6128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6129 = call i32 @s2n_print_stacktrace(ptr noundef %6128) #11
  %6130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6131 = trunc nuw i8 %6130 to i1
  br i1 %6131, label %6132, label %6136

6132:                                             ; preds = %6126
  %6133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6134 = call i32 @fileno(ptr noundef %6133) #11
  %6135 = call i32 @isatty(i32 noundef %6134) #11
  %.not1096 = icmp eq i32 %6135, 0
  br i1 %.not1096, label %6136, label %6137

6136:                                             ; preds = %6132, %6126
  br label %6137

6137:                                             ; preds = %6132, %6136
  %.str.5.sink3343 = phi ptr [ @.str.5, %6136 ], [ @.str.2, %6132 ]
  store i32 %6127, ptr %3231, align 4, !tbaa !5
  %6138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6139 = load i32, ptr @test_count, align 4, !tbaa !5
  %6140 = load i32, ptr %3177, align 4, !tbaa !5
  %6141 = call ptr @s2n_strerror(i32 noundef %6140, ptr noundef nonnull @.str.4) #11
  %6142 = load i32, ptr %3177, align 4, !tbaa !5
  %6143 = call ptr @s2n_strerror_debug(i32 noundef %6142, ptr noundef nonnull @.str.4) #11
  %6144 = load i32, ptr %3231, align 4, !tbaa !5
  %6145 = call ptr @strerror(i32 noundef %6144) #11
  %6146 = load i32, ptr %3231, align 4, !tbaa !5
  %6147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6138, ptr noundef nonnull %.str.5.sink3343, i32 noundef %6139, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 922, ptr noundef %6141, ptr noundef %6143, ptr noundef %6145, i32 noundef %6146) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6148:                                             ; preds = %6119
  %6149 = call i32 @s2n_stuffer_free(ptr noundef nonnull %89) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %89) #11
  %6150 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %88) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #11
  %6151 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %6151, ptr %90, align 8, !tbaa !9
  %6152 = getelementptr inbounds i8, ptr %6151, i64 16
  store ptr %87, ptr %6152, align 8, !tbaa !26
  %6153 = getelementptr inbounds i8, ptr %6151, i64 220
  store i8 33, ptr %6153, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %91) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %91, i8 0, i64 40, i1 false)
  %6154 = load i32, ptr @test_count, align 4, !tbaa !5
  %6155 = add nsw i32 %6154, 1
  store i32 %6155, ptr @test_count, align 4, !tbaa !5
  %6156 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %91, i32 noundef 0) #11
  %6157 = icmp eq i32 %6156, -1
  br i1 %6157, label %6158, label %6180

6158:                                             ; preds = %6148
  %6159 = load i32, ptr %3231, align 4, !tbaa !5
  %6160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6161 = call i32 @s2n_print_stacktrace(ptr noundef %6160) #11
  %6162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6163 = trunc nuw i8 %6162 to i1
  br i1 %6163, label %6164, label %6168

6164:                                             ; preds = %6158
  %6165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6166 = call i32 @fileno(ptr noundef %6165) #11
  %6167 = call i32 @isatty(i32 noundef %6166) #11
  %.not1240 = icmp eq i32 %6167, 0
  br i1 %.not1240, label %6168, label %6169

6168:                                             ; preds = %6164, %6158
  br label %6169

6169:                                             ; preds = %6164, %6168
  %.str.5.sink3352 = phi ptr [ @.str.5, %6168 ], [ @.str.2, %6164 ]
  store i32 %6159, ptr %3231, align 4, !tbaa !5
  %6170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6171 = load i32, ptr @test_count, align 4, !tbaa !5
  %6172 = load i32, ptr %3177, align 4, !tbaa !5
  %6173 = call ptr @s2n_strerror(i32 noundef %6172, ptr noundef nonnull @.str.4) #11
  %6174 = load i32, ptr %3177, align 4, !tbaa !5
  %6175 = call ptr @s2n_strerror_debug(i32 noundef %6174, ptr noundef nonnull @.str.4) #11
  %6176 = load i32, ptr %3231, align 4, !tbaa !5
  %6177 = call ptr @strerror(i32 noundef %6176) #11
  %6178 = load i32, ptr %3231, align 4, !tbaa !5
  %6179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6170, ptr noundef nonnull %.str.5.sink3352, i32 noundef %6171, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 933, ptr noundef %6173, ptr noundef %6175, ptr noundef %6177, i32 noundef %6178) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6180:                                             ; preds = %6148
  %6181 = load i32, ptr @test_count, align 4, !tbaa !5
  %6182 = add nsw i32 %6181, 1
  store i32 %6182, ptr @test_count, align 4, !tbaa !5
  %6183 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %91, i16 noundef zeroext %6066) #11
  %6184 = icmp eq i32 %6183, -1
  br i1 %6184, label %6185, label %6207

6185:                                             ; preds = %6180
  %6186 = load i32, ptr %3231, align 4, !tbaa !5
  %6187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6188 = call i32 @s2n_print_stacktrace(ptr noundef %6187) #11
  %6189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6190 = trunc nuw i8 %6189 to i1
  br i1 %6190, label %6191, label %6195

6191:                                             ; preds = %6185
  %6192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6193 = call i32 @fileno(ptr noundef %6192) #11
  %6194 = call i32 @isatty(i32 noundef %6193) #11
  %.not1239 = icmp eq i32 %6194, 0
  br i1 %.not1239, label %6195, label %6196

6195:                                             ; preds = %6191, %6185
  br label %6196

6196:                                             ; preds = %6191, %6195
  %.str.5.sink3361 = phi ptr [ @.str.5, %6195 ], [ @.str.2, %6191 ]
  store i32 %6186, ptr %3231, align 4, !tbaa !5
  %6197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6198 = load i32, ptr @test_count, align 4, !tbaa !5
  %6199 = load i32, ptr %3177, align 4, !tbaa !5
  %6200 = call ptr @s2n_strerror(i32 noundef %6199, ptr noundef nonnull @.str.4) #11
  %6201 = load i32, ptr %3177, align 4, !tbaa !5
  %6202 = call ptr @s2n_strerror_debug(i32 noundef %6201, ptr noundef nonnull @.str.4) #11
  %6203 = load i32, ptr %3231, align 4, !tbaa !5
  %6204 = call ptr @strerror(i32 noundef %6203) #11
  %6205 = load i32, ptr %3231, align 4, !tbaa !5
  %6206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6197, ptr noundef nonnull %.str.5.sink3361, i32 noundef %6198, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 934, ptr noundef %6200, ptr noundef %6202, ptr noundef %6204, i32 noundef %6205) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6207:                                             ; preds = %6180
  %6208 = load i32, ptr @test_count, align 4, !tbaa !5
  %6209 = add nsw i32 %6208, 1
  store i32 %6209, ptr @test_count, align 4, !tbaa !5
  %6210 = load ptr, ptr %90, align 8, !tbaa !9
  %6211 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6210, ptr noundef nonnull %91) #11
  %6212 = call zeroext i1 @s2n_result_is_ok(i32 %6211)
  br i1 %6212, label %6235, label %6213

6213:                                             ; preds = %6207
  %6214 = load i32, ptr %3231, align 4, !tbaa !5
  %6215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6216 = call i32 @s2n_print_stacktrace(ptr noundef %6215) #11
  %6217 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6218 = trunc nuw i8 %6217 to i1
  br i1 %6218, label %6219, label %6223

6219:                                             ; preds = %6213
  %6220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6221 = call i32 @fileno(ptr noundef %6220) #11
  %6222 = call i32 @isatty(i32 noundef %6221) #11
  %.not1097 = icmp eq i32 %6222, 0
  br i1 %.not1097, label %6223, label %6224

6223:                                             ; preds = %6219, %6213
  br label %6224

6224:                                             ; preds = %6219, %6223
  %.str.5.sink3370 = phi ptr [ @.str.5, %6223 ], [ @.str.2, %6219 ]
  store i32 %6214, ptr %3231, align 4, !tbaa !5
  %6225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6226 = load i32, ptr @test_count, align 4, !tbaa !5
  %6227 = load i32, ptr %3177, align 4, !tbaa !5
  %6228 = call ptr @s2n_strerror(i32 noundef %6227, ptr noundef nonnull @.str.4) #11
  %6229 = load i32, ptr %3177, align 4, !tbaa !5
  %6230 = call ptr @s2n_strerror_debug(i32 noundef %6229, ptr noundef nonnull @.str.4) #11
  %6231 = load i32, ptr %3231, align 4, !tbaa !5
  %6232 = call ptr @strerror(i32 noundef %6231) #11
  %6233 = load i32, ptr %3231, align 4, !tbaa !5
  %6234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6225, ptr noundef nonnull %.str.5.sink3370, i32 noundef %6226, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 936, ptr noundef %6228, ptr noundef %6230, ptr noundef %6232, i32 noundef %6233) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6235:                                             ; preds = %6207
  %6236 = load i32, ptr @test_count, align 4, !tbaa !5
  %6237 = add nsw i32 %6236, 1
  store i32 %6237, ptr @test_count, align 4, !tbaa !5
  %6238 = load ptr, ptr %90, align 8, !tbaa !9
  %6239 = getelementptr inbounds i8, ptr %6238, i64 1536
  %6240 = load ptr, ptr %6239, align 8, !tbaa !59
  %6241 = icmp eq ptr %6240, @s2n_rsa_pkcs1_sha256
  br i1 %6241, label %6264, label %6242

6242:                                             ; preds = %6235
  %6243 = load i32, ptr %3231, align 4, !tbaa !5
  %6244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6245 = call i32 @s2n_print_stacktrace(ptr noundef %6244) #11
  %6246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6247 = trunc nuw i8 %6246 to i1
  br i1 %6247, label %6248, label %6252

6248:                                             ; preds = %6242
  %6249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6250 = call i32 @fileno(ptr noundef %6249) #11
  %6251 = call i32 @isatty(i32 noundef %6250) #11
  %.not1098 = icmp eq i32 %6251, 0
  br i1 %.not1098, label %6252, label %6253

6252:                                             ; preds = %6248, %6242
  br label %6253

6253:                                             ; preds = %6248, %6252
  %.str.5.sink3379 = phi ptr [ @.str.5, %6252 ], [ @.str.2, %6248 ]
  store i32 %6243, ptr %3231, align 4, !tbaa !5
  %6254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6255 = load i32, ptr @test_count, align 4, !tbaa !5
  %6256 = load i32, ptr %3177, align 4, !tbaa !5
  %6257 = call ptr @s2n_strerror(i32 noundef %6256, ptr noundef nonnull @.str.4) #11
  %6258 = load i32, ptr %3177, align 4, !tbaa !5
  %6259 = call ptr @s2n_strerror_debug(i32 noundef %6258, ptr noundef nonnull @.str.4) #11
  %6260 = load i32, ptr %3231, align 4, !tbaa !5
  %6261 = call ptr @strerror(i32 noundef %6260) #11
  %6262 = load i32, ptr %3231, align 4, !tbaa !5
  %6263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6254, ptr noundef nonnull %.str.5.sink3379, i32 noundef %6255, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 937, ptr noundef %6257, ptr noundef %6259, ptr noundef %6261, i32 noundef %6262) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6264:                                             ; preds = %6235
  %6265 = call i32 @s2n_stuffer_free(ptr noundef nonnull %91) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %91) #11
  %6266 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %90) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %92) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %92, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %93) #11
  %6267 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %6267, ptr %93, align 8, !tbaa !9
  %6268 = getelementptr inbounds i8, ptr %6267, i64 16
  store ptr %87, ptr %6268, align 8, !tbaa !26
  %6269 = getelementptr inbounds i8, ptr %6267, i64 220
  store i8 33, ptr %6269, align 4, !tbaa !50
  %6270 = getelementptr inbounds i8, ptr %6267, i64 232
  %6271 = load ptr, ptr %6270, align 8, !tbaa !60
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %6271, align 8, !tbaa !61
  %6272 = load i32, ptr @test_count, align 4, !tbaa !5
  %6273 = add nsw i32 %6272, 1
  store i32 %6273, ptr @test_count, align 4, !tbaa !5
  %6274 = load ptr, ptr %93, align 8, !tbaa !9
  %6275 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6274, ptr noundef nonnull %92) #11
  %6276 = call zeroext i1 @s2n_result_is_error(i32 %6275)
  br i1 %6276, label %6299, label %6277

6277:                                             ; preds = %6264
  %6278 = load i32, ptr %3231, align 4, !tbaa !5
  %6279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6280 = call i32 @s2n_print_stacktrace(ptr noundef %6279) #11
  %6281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6282 = trunc nuw i8 %6281 to i1
  br i1 %6282, label %6283, label %6287

6283:                                             ; preds = %6277
  %6284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6285 = call i32 @fileno(ptr noundef %6284) #11
  %6286 = call i32 @isatty(i32 noundef %6285) #11
  %.not1099 = icmp eq i32 %6286, 0
  br i1 %.not1099, label %6287, label %6288

6287:                                             ; preds = %6283, %6277
  br label %6288

6288:                                             ; preds = %6283, %6287
  %.str.5.sink3388 = phi ptr [ @.str.5, %6287 ], [ @.str.2, %6283 ]
  store i32 %6278, ptr %3231, align 4, !tbaa !5
  %6289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6290 = load i32, ptr @test_count, align 4, !tbaa !5
  %6291 = load i32, ptr %3177, align 4, !tbaa !5
  %6292 = call ptr @s2n_strerror(i32 noundef %6291, ptr noundef nonnull @.str.4) #11
  %6293 = load i32, ptr %3177, align 4, !tbaa !5
  %6294 = call ptr @s2n_strerror_debug(i32 noundef %6293, ptr noundef nonnull @.str.4) #11
  %6295 = load i32, ptr %3231, align 4, !tbaa !5
  %6296 = call ptr @strerror(i32 noundef %6295) #11
  %6297 = load i32, ptr %3231, align 4, !tbaa !5
  %6298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6289, ptr noundef nonnull %.str.5.sink3388, i32 noundef %6290, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 953, ptr noundef %6292, ptr noundef %6294, ptr noundef %6296, i32 noundef %6297) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6299:                                             ; preds = %6264
  %6300 = load i32, ptr @test_count, align 4, !tbaa !5
  %6301 = add nsw i32 %6300, 1
  store i32 %6301, ptr @test_count, align 4, !tbaa !5
  %6302 = load i32, ptr %3177, align 4, !tbaa !5
  %6303 = icmp eq i32 %6302, 335544322
  br i1 %6303, label %6326, label %6304

6304:                                             ; preds = %6299
  %6305 = load i32, ptr %3231, align 4, !tbaa !5
  %6306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6307 = call i32 @s2n_print_stacktrace(ptr noundef %6306) #11
  %6308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6309 = trunc nuw i8 %6308 to i1
  br i1 %6309, label %6310, label %6314

6310:                                             ; preds = %6304
  %6311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6312 = call i32 @fileno(ptr noundef %6311) #11
  %6313 = call i32 @isatty(i32 noundef %6312) #11
  %.not1100 = icmp eq i32 %6313, 0
  br i1 %.not1100, label %6314, label %6315

6314:                                             ; preds = %6310, %6304
  br label %6315

6315:                                             ; preds = %6310, %6314
  %.str.5.sink3397 = phi ptr [ @.str.5, %6314 ], [ @.str.2, %6310 ]
  store i32 %6305, ptr %3231, align 4, !tbaa !5
  %6316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6317 = load i32, ptr @test_count, align 4, !tbaa !5
  %6318 = load i32, ptr %3177, align 4, !tbaa !5
  %6319 = call ptr @s2n_strerror(i32 noundef %6318, ptr noundef nonnull @.str.4) #11
  %6320 = load i32, ptr %3177, align 4, !tbaa !5
  %6321 = call ptr @s2n_strerror_debug(i32 noundef %6320, ptr noundef nonnull @.str.4) #11
  %6322 = load i32, ptr %3231, align 4, !tbaa !5
  %6323 = call ptr @strerror(i32 noundef %6322) #11
  %6324 = load i32, ptr %3231, align 4, !tbaa !5
  %6325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6316, ptr noundef nonnull %.str.5.sink3397, i32 noundef %6317, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 953, ptr noundef %6319, ptr noundef %6321, ptr noundef %6323, i32 noundef %6324) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6326:                                             ; preds = %6299
  %6327 = add nsw i32 %6300, 2
  store i32 %6327, ptr @test_count, align 4, !tbaa !5
  %6328 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %6329 = icmp eq ptr %6328, null
  br i1 %6329, label %6330, label %6352

6330:                                             ; preds = %6326
  %6331 = load i32, ptr %3231, align 4, !tbaa !5
  %6332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6333 = call i32 @s2n_print_stacktrace(ptr noundef %6332) #11
  %6334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6335 = trunc nuw i8 %6334 to i1
  br i1 %6335, label %6336, label %6340

6336:                                             ; preds = %6330
  %6337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6338 = call i32 @fileno(ptr noundef %6337) #11
  %6339 = call i32 @isatty(i32 noundef %6338) #11
  %.not1238 = icmp eq i32 %6339, 0
  br i1 %.not1238, label %6340, label %6341

6340:                                             ; preds = %6336, %6330
  br label %6341

6341:                                             ; preds = %6336, %6340
  %.str.5.sink3406 = phi ptr [ @.str.5, %6340 ], [ @.str.2, %6336 ]
  store i32 %6331, ptr %3231, align 4, !tbaa !5
  %6342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6343 = load i32, ptr @test_count, align 4, !tbaa !5
  %6344 = load i32, ptr %3177, align 4, !tbaa !5
  %6345 = call ptr @s2n_strerror(i32 noundef %6344, ptr noundef nonnull @.str.4) #11
  %6346 = load i32, ptr %3177, align 4, !tbaa !5
  %6347 = call ptr @s2n_strerror_debug(i32 noundef %6346, ptr noundef nonnull @.str.4) #11
  %6348 = load i32, ptr %3231, align 4, !tbaa !5
  %6349 = call ptr @strerror(i32 noundef %6348) #11
  %6350 = load i32, ptr %3231, align 4, !tbaa !5
  %6351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6342, ptr noundef nonnull %.str.5.sink3406, i32 noundef %6343, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 953, ptr noundef %6345, ptr noundef %6347, ptr noundef %6349, i32 noundef %6350) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6352:                                             ; preds = %6326
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %6353 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %93) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %94) #11
  %6354 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %6354, ptr %94, align 8, !tbaa !9
  %6355 = getelementptr inbounds i8, ptr %6354, i64 16
  store ptr %87, ptr %6355, align 8, !tbaa !26
  %6356 = getelementptr inbounds i8, ptr %6354, i64 220
  store i8 32, ptr %6356, align 4, !tbaa !50
  %6357 = getelementptr inbounds i8, ptr %6354, i64 232
  %6358 = load ptr, ptr %6357, align 8, !tbaa !60
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %6358, align 8, !tbaa !61
  %6359 = load i32, ptr @test_count, align 4, !tbaa !5
  %6360 = add nsw i32 %6359, 1
  store i32 %6360, ptr @test_count, align 4, !tbaa !5
  %6361 = load ptr, ptr %94, align 8, !tbaa !9
  %6362 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6361, ptr noundef nonnull %92) #11
  %6363 = call zeroext i1 @s2n_result_is_ok(i32 %6362)
  br i1 %6363, label %6386, label %6364

6364:                                             ; preds = %6352
  %6365 = load i32, ptr %3231, align 4, !tbaa !5
  %6366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6367 = call i32 @s2n_print_stacktrace(ptr noundef %6366) #11
  %6368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6369 = trunc nuw i8 %6368 to i1
  br i1 %6369, label %6370, label %6374

6370:                                             ; preds = %6364
  %6371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6372 = call i32 @fileno(ptr noundef %6371) #11
  %6373 = call i32 @isatty(i32 noundef %6372) #11
  %.not1101 = icmp eq i32 %6373, 0
  br i1 %.not1101, label %6374, label %6375

6374:                                             ; preds = %6370, %6364
  br label %6375

6375:                                             ; preds = %6370, %6374
  %.str.5.sink3415 = phi ptr [ @.str.5, %6374 ], [ @.str.2, %6370 ]
  store i32 %6365, ptr %3231, align 4, !tbaa !5
  %6376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6377 = load i32, ptr @test_count, align 4, !tbaa !5
  %6378 = load i32, ptr %3177, align 4, !tbaa !5
  %6379 = call ptr @s2n_strerror(i32 noundef %6378, ptr noundef nonnull @.str.4) #11
  %6380 = load i32, ptr %3177, align 4, !tbaa !5
  %6381 = call ptr @s2n_strerror_debug(i32 noundef %6380, ptr noundef nonnull @.str.4) #11
  %6382 = load i32, ptr %3231, align 4, !tbaa !5
  %6383 = call ptr @strerror(i32 noundef %6382) #11
  %6384 = load i32, ptr %3231, align 4, !tbaa !5
  %6385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6376, ptr noundef nonnull %.str.5.sink3415, i32 noundef %6377, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 964, ptr noundef %6379, ptr noundef %6381, ptr noundef %6383, i32 noundef %6384) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6386:                                             ; preds = %6352
  %6387 = load i32, ptr @test_count, align 4, !tbaa !5
  %6388 = add nsw i32 %6387, 1
  store i32 %6388, ptr @test_count, align 4, !tbaa !5
  %6389 = load ptr, ptr %94, align 8, !tbaa !9
  %6390 = getelementptr inbounds i8, ptr %6389, i64 1528
  %6391 = load ptr, ptr %6390, align 8, !tbaa !66
  %6392 = icmp eq ptr %6391, @s2n_rsa_pkcs1_md5_sha1
  br i1 %6392, label %6415, label %6393

6393:                                             ; preds = %6386
  %6394 = load i32, ptr %3231, align 4, !tbaa !5
  %6395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6396 = call i32 @s2n_print_stacktrace(ptr noundef %6395) #11
  %6397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6398 = trunc nuw i8 %6397 to i1
  br i1 %6398, label %6399, label %6403

6399:                                             ; preds = %6393
  %6400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6401 = call i32 @fileno(ptr noundef %6400) #11
  %6402 = call i32 @isatty(i32 noundef %6401) #11
  %.not1102 = icmp eq i32 %6402, 0
  br i1 %.not1102, label %6403, label %6404

6403:                                             ; preds = %6399, %6393
  br label %6404

6404:                                             ; preds = %6399, %6403
  %.str.5.sink3424 = phi ptr [ @.str.5, %6403 ], [ @.str.2, %6399 ]
  store i32 %6394, ptr %3231, align 4, !tbaa !5
  %6405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6406 = load i32, ptr @test_count, align 4, !tbaa !5
  %6407 = load i32, ptr %3177, align 4, !tbaa !5
  %6408 = call ptr @s2n_strerror(i32 noundef %6407, ptr noundef nonnull @.str.4) #11
  %6409 = load i32, ptr %3177, align 4, !tbaa !5
  %6410 = call ptr @s2n_strerror_debug(i32 noundef %6409, ptr noundef nonnull @.str.4) #11
  %6411 = load i32, ptr %3231, align 4, !tbaa !5
  %6412 = call ptr @strerror(i32 noundef %6411) #11
  %6413 = load i32, ptr %3231, align 4, !tbaa !5
  %6414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6405, ptr noundef nonnull %.str.5.sink3424, i32 noundef %6406, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 965, ptr noundef %6408, ptr noundef %6410, ptr noundef %6412, i32 noundef %6413) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6415:                                             ; preds = %6386
  %6416 = getelementptr inbounds i8, ptr %6389, i64 232
  %6417 = load ptr, ptr %6416, align 8, !tbaa !60
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %6417, align 8, !tbaa !61
  %6418 = add nsw i32 %6387, 2
  store i32 %6418, ptr @test_count, align 4, !tbaa !5
  %6419 = load ptr, ptr %94, align 8, !tbaa !9
  %6420 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6419, ptr noundef nonnull %92) #11
  %6421 = call zeroext i1 @s2n_result_is_ok(i32 %6420)
  br i1 %6421, label %6444, label %6422

6422:                                             ; preds = %6415
  %6423 = load i32, ptr %3231, align 4, !tbaa !5
  %6424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6425 = call i32 @s2n_print_stacktrace(ptr noundef %6424) #11
  %6426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6427 = trunc nuw i8 %6426 to i1
  br i1 %6427, label %6428, label %6432

6428:                                             ; preds = %6422
  %6429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6430 = call i32 @fileno(ptr noundef %6429) #11
  %6431 = call i32 @isatty(i32 noundef %6430) #11
  %.not1103 = icmp eq i32 %6431, 0
  br i1 %.not1103, label %6432, label %6433

6432:                                             ; preds = %6428, %6422
  br label %6433

6433:                                             ; preds = %6428, %6432
  %.str.5.sink3433 = phi ptr [ @.str.5, %6432 ], [ @.str.2, %6428 ]
  store i32 %6423, ptr %3231, align 4, !tbaa !5
  %6434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6435 = load i32, ptr @test_count, align 4, !tbaa !5
  %6436 = load i32, ptr %3177, align 4, !tbaa !5
  %6437 = call ptr @s2n_strerror(i32 noundef %6436, ptr noundef nonnull @.str.4) #11
  %6438 = load i32, ptr %3177, align 4, !tbaa !5
  %6439 = call ptr @s2n_strerror_debug(i32 noundef %6438, ptr noundef nonnull @.str.4) #11
  %6440 = load i32, ptr %3231, align 4, !tbaa !5
  %6441 = call ptr @strerror(i32 noundef %6440) #11
  %6442 = load i32, ptr %3231, align 4, !tbaa !5
  %6443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6434, ptr noundef nonnull %.str.5.sink3433, i32 noundef %6435, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 968, ptr noundef %6437, ptr noundef %6439, ptr noundef %6441, i32 noundef %6442) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6444:                                             ; preds = %6415
  %6445 = load i32, ptr @test_count, align 4, !tbaa !5
  %6446 = add nsw i32 %6445, 1
  store i32 %6446, ptr @test_count, align 4, !tbaa !5
  %6447 = load ptr, ptr %94, align 8, !tbaa !9
  %6448 = getelementptr inbounds i8, ptr %6447, i64 1528
  %6449 = load ptr, ptr %6448, align 8, !tbaa !66
  %6450 = icmp eq ptr %6449, @s2n_ecdsa_sha1
  br i1 %6450, label %6473, label %6451

6451:                                             ; preds = %6444
  %6452 = load i32, ptr %3231, align 4, !tbaa !5
  %6453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6454 = call i32 @s2n_print_stacktrace(ptr noundef %6453) #11
  %6455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6456 = trunc nuw i8 %6455 to i1
  br i1 %6456, label %6457, label %6461

6457:                                             ; preds = %6451
  %6458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6459 = call i32 @fileno(ptr noundef %6458) #11
  %6460 = call i32 @isatty(i32 noundef %6459) #11
  %.not1104 = icmp eq i32 %6460, 0
  br i1 %.not1104, label %6461, label %6462

6461:                                             ; preds = %6457, %6451
  br label %6462

6462:                                             ; preds = %6457, %6461
  %.str.5.sink3442 = phi ptr [ @.str.5, %6461 ], [ @.str.2, %6457 ]
  store i32 %6452, ptr %3231, align 4, !tbaa !5
  %6463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6464 = load i32, ptr @test_count, align 4, !tbaa !5
  %6465 = load i32, ptr %3177, align 4, !tbaa !5
  %6466 = call ptr @s2n_strerror(i32 noundef %6465, ptr noundef nonnull @.str.4) #11
  %6467 = load i32, ptr %3177, align 4, !tbaa !5
  %6468 = call ptr @s2n_strerror_debug(i32 noundef %6467, ptr noundef nonnull @.str.4) #11
  %6469 = load i32, ptr %3231, align 4, !tbaa !5
  %6470 = call ptr @strerror(i32 noundef %6469) #11
  %6471 = load i32, ptr %3231, align 4, !tbaa !5
  %6472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6463, ptr noundef nonnull %.str.5.sink3442, i32 noundef %6464, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 969, ptr noundef %6466, ptr noundef %6468, ptr noundef %6470, i32 noundef %6471) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6473:                                             ; preds = %6444
  %6474 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %94) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %95) #11
  %6475 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %6475, ptr %95, align 8, !tbaa !9
  %6476 = getelementptr inbounds i8, ptr %6475, i64 16
  store ptr %87, ptr %6476, align 8, !tbaa !26
  %6477 = getelementptr inbounds i8, ptr %6475, i64 220
  store i8 32, ptr %6477, align 4, !tbaa !50
  %6478 = getelementptr inbounds i8, ptr %6475, i64 1264
  store i32 0, ptr %6478, align 8, !tbaa !58
  %6479 = load i32, ptr @test_count, align 4, !tbaa !5
  %6480 = add nsw i32 %6479, 1
  store i32 %6480, ptr @test_count, align 4, !tbaa !5
  %6481 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6475, ptr noundef nonnull %92) #11
  %6482 = call zeroext i1 @s2n_result_is_ok(i32 %6481)
  br i1 %6482, label %6505, label %6483

6483:                                             ; preds = %6473
  %6484 = load i32, ptr %3231, align 4, !tbaa !5
  %6485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6486 = call i32 @s2n_print_stacktrace(ptr noundef %6485) #11
  %6487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6488 = trunc nuw i8 %6487 to i1
  br i1 %6488, label %6489, label %6493

6489:                                             ; preds = %6483
  %6490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6491 = call i32 @fileno(ptr noundef %6490) #11
  %6492 = call i32 @isatty(i32 noundef %6491) #11
  %.not1105 = icmp eq i32 %6492, 0
  br i1 %.not1105, label %6493, label %6494

6493:                                             ; preds = %6489, %6483
  br label %6494

6494:                                             ; preds = %6489, %6493
  %.str.5.sink3451 = phi ptr [ @.str.5, %6493 ], [ @.str.2, %6489 ]
  store i32 %6484, ptr %3231, align 4, !tbaa !5
  %6495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6496 = load i32, ptr @test_count, align 4, !tbaa !5
  %6497 = load i32, ptr %3177, align 4, !tbaa !5
  %6498 = call ptr @s2n_strerror(i32 noundef %6497, ptr noundef nonnull @.str.4) #11
  %6499 = load i32, ptr %3177, align 4, !tbaa !5
  %6500 = call ptr @s2n_strerror_debug(i32 noundef %6499, ptr noundef nonnull @.str.4) #11
  %6501 = load i32, ptr %3231, align 4, !tbaa !5
  %6502 = call ptr @strerror(i32 noundef %6501) #11
  %6503 = load i32, ptr %3231, align 4, !tbaa !5
  %6504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6495, ptr noundef nonnull %.str.5.sink3451, i32 noundef %6496, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 980, ptr noundef %6498, ptr noundef %6500, ptr noundef %6502, i32 noundef %6503) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6505:                                             ; preds = %6473
  %6506 = load i32, ptr @test_count, align 4, !tbaa !5
  %6507 = add nsw i32 %6506, 1
  store i32 %6507, ptr @test_count, align 4, !tbaa !5
  %6508 = load ptr, ptr %95, align 8, !tbaa !9
  %6509 = getelementptr inbounds i8, ptr %6508, i64 1536
  %6510 = load ptr, ptr %6509, align 8, !tbaa !59
  %6511 = icmp eq ptr %6510, @s2n_rsa_pkcs1_md5_sha1
  br i1 %6511, label %6534, label %6512

6512:                                             ; preds = %6505
  %6513 = load i32, ptr %3231, align 4, !tbaa !5
  %6514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6515 = call i32 @s2n_print_stacktrace(ptr noundef %6514) #11
  %6516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6517 = trunc nuw i8 %6516 to i1
  br i1 %6517, label %6518, label %6522

6518:                                             ; preds = %6512
  %6519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6520 = call i32 @fileno(ptr noundef %6519) #11
  %6521 = call i32 @isatty(i32 noundef %6520) #11
  %.not1106 = icmp eq i32 %6521, 0
  br i1 %.not1106, label %6522, label %6523

6522:                                             ; preds = %6518, %6512
  br label %6523

6523:                                             ; preds = %6518, %6522
  %.str.5.sink3460 = phi ptr [ @.str.5, %6522 ], [ @.str.2, %6518 ]
  store i32 %6513, ptr %3231, align 4, !tbaa !5
  %6524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6525 = load i32, ptr @test_count, align 4, !tbaa !5
  %6526 = load i32, ptr %3177, align 4, !tbaa !5
  %6527 = call ptr @s2n_strerror(i32 noundef %6526, ptr noundef nonnull @.str.4) #11
  %6528 = load i32, ptr %3177, align 4, !tbaa !5
  %6529 = call ptr @s2n_strerror_debug(i32 noundef %6528, ptr noundef nonnull @.str.4) #11
  %6530 = load i32, ptr %3231, align 4, !tbaa !5
  %6531 = call ptr @strerror(i32 noundef %6530) #11
  %6532 = load i32, ptr %3231, align 4, !tbaa !5
  %6533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6524, ptr noundef nonnull %.str.5.sink3460, i32 noundef %6525, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 981, ptr noundef %6527, ptr noundef %6529, ptr noundef %6531, i32 noundef %6532) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6534:                                             ; preds = %6505
  %6535 = getelementptr inbounds i8, ptr %6508, i64 1264
  store i32 1, ptr %6535, align 8, !tbaa !58
  %6536 = add nsw i32 %6506, 2
  store i32 %6536, ptr @test_count, align 4, !tbaa !5
  %6537 = call i32 @s2n_signature_algorithm_recv(ptr noundef nonnull %6508, ptr noundef nonnull %92) #11
  %6538 = call zeroext i1 @s2n_result_is_ok(i32 %6537)
  br i1 %6538, label %6561, label %6539

6539:                                             ; preds = %6534
  %6540 = load i32, ptr %3231, align 4, !tbaa !5
  %6541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6542 = call i32 @s2n_print_stacktrace(ptr noundef %6541) #11
  %6543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6544 = trunc nuw i8 %6543 to i1
  br i1 %6544, label %6545, label %6549

6545:                                             ; preds = %6539
  %6546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6547 = call i32 @fileno(ptr noundef %6546) #11
  %6548 = call i32 @isatty(i32 noundef %6547) #11
  %.not1107 = icmp eq i32 %6548, 0
  br i1 %.not1107, label %6549, label %6550

6549:                                             ; preds = %6545, %6539
  br label %6550

6550:                                             ; preds = %6545, %6549
  %.str.5.sink3469 = phi ptr [ @.str.5, %6549 ], [ @.str.2, %6545 ]
  store i32 %6540, ptr %3231, align 4, !tbaa !5
  %6551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6552 = load i32, ptr @test_count, align 4, !tbaa !5
  %6553 = load i32, ptr %3177, align 4, !tbaa !5
  %6554 = call ptr @s2n_strerror(i32 noundef %6553, ptr noundef nonnull @.str.4) #11
  %6555 = load i32, ptr %3177, align 4, !tbaa !5
  %6556 = call ptr @s2n_strerror_debug(i32 noundef %6555, ptr noundef nonnull @.str.4) #11
  %6557 = load i32, ptr %3231, align 4, !tbaa !5
  %6558 = call ptr @strerror(i32 noundef %6557) #11
  %6559 = load i32, ptr %3231, align 4, !tbaa !5
  %6560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6551, ptr noundef nonnull %.str.5.sink3469, i32 noundef %6552, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 984, ptr noundef %6554, ptr noundef %6556, ptr noundef %6558, i32 noundef %6559) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6561:                                             ; preds = %6534
  %6562 = load i32, ptr @test_count, align 4, !tbaa !5
  %6563 = add nsw i32 %6562, 1
  store i32 %6563, ptr @test_count, align 4, !tbaa !5
  %6564 = load ptr, ptr %95, align 8, !tbaa !9
  %6565 = getelementptr inbounds i8, ptr %6564, i64 1536
  %6566 = load ptr, ptr %6565, align 8, !tbaa !59
  %6567 = icmp eq ptr %6566, @s2n_ecdsa_sha1
  br i1 %6567, label %6590, label %6568

6568:                                             ; preds = %6561
  %6569 = load i32, ptr %3231, align 4, !tbaa !5
  %6570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6571 = call i32 @s2n_print_stacktrace(ptr noundef %6570) #11
  %6572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6573 = trunc nuw i8 %6572 to i1
  br i1 %6573, label %6574, label %6578

6574:                                             ; preds = %6568
  %6575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6576 = call i32 @fileno(ptr noundef %6575) #11
  %6577 = call i32 @isatty(i32 noundef %6576) #11
  %.not1108 = icmp eq i32 %6577, 0
  br i1 %.not1108, label %6578, label %6579

6578:                                             ; preds = %6574, %6568
  br label %6579

6579:                                             ; preds = %6574, %6578
  %.str.5.sink3478 = phi ptr [ @.str.5, %6578 ], [ @.str.2, %6574 ]
  store i32 %6569, ptr %3231, align 4, !tbaa !5
  %6580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6581 = load i32, ptr @test_count, align 4, !tbaa !5
  %6582 = load i32, ptr %3177, align 4, !tbaa !5
  %6583 = call ptr @s2n_strerror(i32 noundef %6582, ptr noundef nonnull @.str.4) #11
  %6584 = load i32, ptr %3177, align 4, !tbaa !5
  %6585 = call ptr @s2n_strerror_debug(i32 noundef %6584, ptr noundef nonnull @.str.4) #11
  %6586 = load i32, ptr %3231, align 4, !tbaa !5
  %6587 = call ptr @strerror(i32 noundef %6586) #11
  %6588 = load i32, ptr %3231, align 4, !tbaa !5
  %6589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6580, ptr noundef nonnull %.str.5.sink3478, i32 noundef %6581, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 985, ptr noundef %6583, ptr noundef %6585, ptr noundef %6587, i32 noundef %6588) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6590:                                             ; preds = %6561
  %6591 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %95) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %92) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %96) #11
  %6592 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %6592, ptr %96, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %97) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %97, i8 0, i64 40, i1 false)
  %6593 = load i32, ptr @test_count, align 4, !tbaa !5
  %6594 = add nsw i32 %6593, 1
  store i32 %6594, ptr @test_count, align 4, !tbaa !5
  %6595 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %97, i32 noundef 0) #11
  %6596 = icmp eq i32 %6595, -1
  br i1 %6596, label %6597, label %6619

6597:                                             ; preds = %6590
  %6598 = load i32, ptr %3231, align 4, !tbaa !5
  %6599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6600 = call i32 @s2n_print_stacktrace(ptr noundef %6599) #11
  %6601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6602 = trunc nuw i8 %6601 to i1
  br i1 %6602, label %6603, label %6607

6603:                                             ; preds = %6597
  %6604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6605 = call i32 @fileno(ptr noundef %6604) #11
  %6606 = call i32 @isatty(i32 noundef %6605) #11
  %.not1237 = icmp eq i32 %6606, 0
  br i1 %.not1237, label %6607, label %6608

6607:                                             ; preds = %6603, %6597
  br label %6608

6608:                                             ; preds = %6603, %6607
  %.str.5.sink3487 = phi ptr [ @.str.5, %6607 ], [ @.str.2, %6603 ]
  store i32 %6598, ptr %3231, align 4, !tbaa !5
  %6609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6610 = load i32, ptr @test_count, align 4, !tbaa !5
  %6611 = load i32, ptr %3177, align 4, !tbaa !5
  %6612 = call ptr @s2n_strerror(i32 noundef %6611, ptr noundef nonnull @.str.4) #11
  %6613 = load i32, ptr %3177, align 4, !tbaa !5
  %6614 = call ptr @s2n_strerror_debug(i32 noundef %6613, ptr noundef nonnull @.str.4) #11
  %6615 = load i32, ptr %3231, align 4, !tbaa !5
  %6616 = call ptr @strerror(i32 noundef %6615) #11
  %6617 = load i32, ptr %3231, align 4, !tbaa !5
  %6618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6609, ptr noundef nonnull %.str.5.sink3487, i32 noundef %6610, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 995, ptr noundef %6612, ptr noundef %6614, ptr noundef %6616, i32 noundef %6617) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6619:                                             ; preds = %6590
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %98, ptr noundef nonnull align 16 dereferenceable(32) @__const.main.test_schemes.81, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %99) #11
  %6620 = load i64, ptr @__const.main.supported_schemes, align 8
  store i64 %6620, ptr %99, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %100) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %100, ptr noundef nonnull align 8 dereferenceable(64) %87, i64 64, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %101) #11
  store i8 1, ptr %101, align 8, !tbaa !70
  %6621 = getelementptr inbounds i8, ptr %101, i64 8
  store ptr %99, ptr %6621, align 8, !tbaa !72
  %6622 = getelementptr inbounds i8, ptr %100, i64 24
  store ptr %101, ptr %6622, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %102) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %102, ptr noundef nonnull align 8 dereferenceable(64) %87, i64 64, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %103) #11
  store i8 4, ptr %103, align 8, !tbaa !70
  %6623 = getelementptr inbounds i8, ptr %103, i64 8
  store ptr %98, ptr %6623, align 8, !tbaa !72
  %6624 = getelementptr inbounds i8, ptr %102, i64 24
  store ptr %103, ptr %6624, align 8, !tbaa !24
  %6625 = load ptr, ptr %96, align 8, !tbaa !9
  %6626 = getelementptr inbounds i8, ptr %6625, i64 16
  store ptr %100, ptr %6626, align 8, !tbaa !26
  %6627 = load i32, ptr @test_count, align 4, !tbaa !5
  %6628 = add nsw i32 %6627, 1
  store i32 %6628, ptr @test_count, align 4, !tbaa !5
  %6629 = load ptr, ptr %98, align 16, !tbaa !9
  %6630 = load i16, ptr %6629, align 8, !tbaa !54
  %6631 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %97, i16 noundef zeroext %6630) #11
  %6632 = icmp eq i32 %6631, -1
  br i1 %6632, label %6633, label %6655

6633:                                             ; preds = %6782, %6759, %6736, %6619
  %6634 = load i32, ptr %3231, align 4, !tbaa !5
  %6635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6636 = call i32 @s2n_print_stacktrace(ptr noundef %6635) #11
  %6637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6638 = trunc nuw i8 %6637 to i1
  br i1 %6638, label %6639, label %6643

6639:                                             ; preds = %6633
  %6640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6641 = call i32 @fileno(ptr noundef %6640) #11
  %6642 = call i32 @isatty(i32 noundef %6641) #11
  %.not1236 = icmp eq i32 %6642, 0
  br i1 %.not1236, label %6643, label %6644

6643:                                             ; preds = %6639, %6633
  br label %6644

6644:                                             ; preds = %6639, %6643
  %.str.5.sink3496 = phi ptr [ @.str.5, %6643 ], [ @.str.2, %6639 ]
  store i32 %6634, ptr %3231, align 4, !tbaa !5
  %6645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6646 = load i32, ptr @test_count, align 4, !tbaa !5
  %6647 = load i32, ptr %3177, align 4, !tbaa !5
  %6648 = call ptr @s2n_strerror(i32 noundef %6647, ptr noundef nonnull @.str.4) #11
  %6649 = load i32, ptr %3177, align 4, !tbaa !5
  %6650 = call ptr @s2n_strerror_debug(i32 noundef %6649, ptr noundef nonnull @.str.4) #11
  %6651 = load i32, ptr %3231, align 4, !tbaa !5
  %6652 = call ptr @strerror(i32 noundef %6651) #11
  %6653 = load i32, ptr %3231, align 4, !tbaa !5
  %6654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6645, ptr noundef nonnull %.str.5.sink3496, i32 noundef %6646, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 1025, ptr noundef %6648, ptr noundef %6650, ptr noundef %6652, i32 noundef %6653) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6655:                                             ; preds = %6619
  %6656 = load i32, ptr @test_count, align 4, !tbaa !5
  %6657 = add nsw i32 %6656, 1
  store i32 %6657, ptr @test_count, align 4, !tbaa !5
  %6658 = load ptr, ptr %96, align 8, !tbaa !9
  %6659 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6658, ptr noundef nonnull %97) #11
  %6660 = call zeroext i1 @s2n_result_is_error(i32 %6659)
  br i1 %6660, label %6683, label %6661

6661:                                             ; preds = %6790, %6767, %6744, %6655
  %6662 = load i32, ptr %3231, align 4, !tbaa !5
  %6663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6664 = call i32 @s2n_print_stacktrace(ptr noundef %6663) #11
  %6665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6666 = trunc nuw i8 %6665 to i1
  br i1 %6666, label %6667, label %6671

6667:                                             ; preds = %6661
  %6668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6669 = call i32 @fileno(ptr noundef %6668) #11
  %6670 = call i32 @isatty(i32 noundef %6669) #11
  %.not1233 = icmp eq i32 %6670, 0
  br i1 %.not1233, label %6671, label %6672

6671:                                             ; preds = %6667, %6661
  br label %6672

6672:                                             ; preds = %6667, %6671
  %.str.5.sink3505 = phi ptr [ @.str.5, %6671 ], [ @.str.2, %6667 ]
  store i32 %6662, ptr %3231, align 4, !tbaa !5
  %6673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6674 = load i32, ptr @test_count, align 4, !tbaa !5
  %6675 = load i32, ptr %3177, align 4, !tbaa !5
  %6676 = call ptr @s2n_strerror(i32 noundef %6675, ptr noundef nonnull @.str.4) #11
  %6677 = load i32, ptr %3177, align 4, !tbaa !5
  %6678 = call ptr @s2n_strerror_debug(i32 noundef %6677, ptr noundef nonnull @.str.4) #11
  %6679 = load i32, ptr %3231, align 4, !tbaa !5
  %6680 = call ptr @strerror(i32 noundef %6679) #11
  %6681 = load i32, ptr %3231, align 4, !tbaa !5
  %6682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6673, ptr noundef nonnull %.str.5.sink3505, i32 noundef %6674, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 1027, ptr noundef %6676, ptr noundef %6678, ptr noundef %6680, i32 noundef %6681) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6683:                                             ; preds = %6655
  %6684 = load i32, ptr @test_count, align 4, !tbaa !5
  %6685 = add nsw i32 %6684, 1
  store i32 %6685, ptr @test_count, align 4, !tbaa !5
  %6686 = load i32, ptr %3177, align 4, !tbaa !5
  %6687 = icmp eq i32 %6686, 335544348
  br i1 %6687, label %6710, label %6688

6688:                                             ; preds = %6796, %6773, %6750, %6683
  %6689 = load i32, ptr %3231, align 4, !tbaa !5
  %6690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6691 = call i32 @s2n_print_stacktrace(ptr noundef %6690) #11
  %6692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6693 = trunc nuw i8 %6692 to i1
  br i1 %6693, label %6694, label %6698

6694:                                             ; preds = %6688
  %6695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6696 = call i32 @fileno(ptr noundef %6695) #11
  %6697 = call i32 @isatty(i32 noundef %6696) #11
  %.not1234 = icmp eq i32 %6697, 0
  br i1 %.not1234, label %6698, label %6699

6698:                                             ; preds = %6694, %6688
  br label %6699

6699:                                             ; preds = %6694, %6698
  %.str.5.sink3514 = phi ptr [ @.str.5, %6698 ], [ @.str.2, %6694 ]
  store i32 %6689, ptr %3231, align 4, !tbaa !5
  %6700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6701 = load i32, ptr @test_count, align 4, !tbaa !5
  %6702 = load i32, ptr %3177, align 4, !tbaa !5
  %6703 = call ptr @s2n_strerror(i32 noundef %6702, ptr noundef nonnull @.str.4) #11
  %6704 = load i32, ptr %3177, align 4, !tbaa !5
  %6705 = call ptr @s2n_strerror_debug(i32 noundef %6704, ptr noundef nonnull @.str.4) #11
  %6706 = load i32, ptr %3231, align 4, !tbaa !5
  %6707 = call ptr @strerror(i32 noundef %6706) #11
  %6708 = load i32, ptr %3231, align 4, !tbaa !5
  %6709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6700, ptr noundef nonnull %.str.5.sink3514, i32 noundef %6701, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 1027, ptr noundef %6703, ptr noundef %6705, ptr noundef %6707, i32 noundef %6708) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6710:                                             ; preds = %6683
  %6711 = add nsw i32 %6684, 2
  store i32 %6711, ptr @test_count, align 4, !tbaa !5
  %6712 = call ptr @s2n_strerror_debug(i32 noundef 335544348, ptr noundef nonnull @.str.4) #11
  %6713 = icmp eq ptr %6712, null
  br i1 %6713, label %6714, label %6736

6714:                                             ; preds = %6801, %6778, %6755, %6710
  %6715 = load i32, ptr %3231, align 4, !tbaa !5
  %6716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6717 = call i32 @s2n_print_stacktrace(ptr noundef %6716) #11
  %6718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6719 = trunc nuw i8 %6718 to i1
  br i1 %6719, label %6720, label %6724

6720:                                             ; preds = %6714
  %6721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6722 = call i32 @fileno(ptr noundef %6721) #11
  %6723 = call i32 @isatty(i32 noundef %6722) #11
  %.not1235 = icmp eq i32 %6723, 0
  br i1 %.not1235, label %6724, label %6725

6724:                                             ; preds = %6720, %6714
  br label %6725

6725:                                             ; preds = %6720, %6724
  %.str.5.sink3523 = phi ptr [ @.str.5, %6724 ], [ @.str.2, %6720 ]
  store i32 %6715, ptr %3231, align 4, !tbaa !5
  %6726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6727 = load i32, ptr @test_count, align 4, !tbaa !5
  %6728 = load i32, ptr %3177, align 4, !tbaa !5
  %6729 = call ptr @s2n_strerror(i32 noundef %6728, ptr noundef nonnull @.str.4) #11
  %6730 = load i32, ptr %3177, align 4, !tbaa !5
  %6731 = call ptr @s2n_strerror_debug(i32 noundef %6730, ptr noundef nonnull @.str.4) #11
  %6732 = load i32, ptr %3231, align 4, !tbaa !5
  %6733 = call ptr @strerror(i32 noundef %6732) #11
  %6734 = load i32, ptr %3231, align 4, !tbaa !5
  %6735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6726, ptr noundef nonnull %.str.5.sink3523, i32 noundef %6727, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 1027, ptr noundef %6729, ptr noundef %6731, ptr noundef %6733, i32 noundef %6734) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6736:                                             ; preds = %6710
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %6737 = load i32, ptr @test_count, align 4, !tbaa !5
  %6738 = add nsw i32 %6737, 1
  store i32 %6738, ptr @test_count, align 4, !tbaa !5
  %6739 = getelementptr inbounds i8, ptr %98, i64 8
  %6740 = load ptr, ptr %6739, align 8, !tbaa !9
  %6741 = load i16, ptr %6740, align 8, !tbaa !54
  %6742 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %97, i16 noundef zeroext %6741) #11
  %6743 = icmp eq i32 %6742, -1
  br i1 %6743, label %6633, label %6744

6744:                                             ; preds = %6736
  %6745 = load i32, ptr @test_count, align 4, !tbaa !5
  %6746 = add nsw i32 %6745, 1
  store i32 %6746, ptr @test_count, align 4, !tbaa !5
  %6747 = load ptr, ptr %96, align 8, !tbaa !9
  %6748 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6747, ptr noundef nonnull %97) #11
  %6749 = call zeroext i1 @s2n_result_is_error(i32 %6748)
  br i1 %6749, label %6750, label %6661

6750:                                             ; preds = %6744
  %6751 = load i32, ptr @test_count, align 4, !tbaa !5
  %6752 = add nsw i32 %6751, 1
  store i32 %6752, ptr @test_count, align 4, !tbaa !5
  %6753 = load i32, ptr %3177, align 4, !tbaa !5
  %6754 = icmp eq i32 %6753, 335544348
  br i1 %6754, label %6755, label %6688

6755:                                             ; preds = %6750
  %6756 = add nsw i32 %6751, 2
  store i32 %6756, ptr @test_count, align 4, !tbaa !5
  %6757 = call ptr @s2n_strerror_debug(i32 noundef 335544348, ptr noundef nonnull @.str.4) #11
  %6758 = icmp eq ptr %6757, null
  br i1 %6758, label %6714, label %6759

6759:                                             ; preds = %6755
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %6760 = load i32, ptr @test_count, align 4, !tbaa !5
  %6761 = add nsw i32 %6760, 1
  store i32 %6761, ptr @test_count, align 4, !tbaa !5
  %6762 = getelementptr inbounds i8, ptr %98, i64 16
  %6763 = load ptr, ptr %6762, align 16, !tbaa !9
  %6764 = load i16, ptr %6763, align 8, !tbaa !54
  %6765 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %97, i16 noundef zeroext %6764) #11
  %6766 = icmp eq i32 %6765, -1
  br i1 %6766, label %6633, label %6767

6767:                                             ; preds = %6759
  %6768 = load i32, ptr @test_count, align 4, !tbaa !5
  %6769 = add nsw i32 %6768, 1
  store i32 %6769, ptr @test_count, align 4, !tbaa !5
  %6770 = load ptr, ptr %96, align 8, !tbaa !9
  %6771 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6770, ptr noundef nonnull %97) #11
  %6772 = call zeroext i1 @s2n_result_is_error(i32 %6771)
  br i1 %6772, label %6773, label %6661

6773:                                             ; preds = %6767
  %6774 = load i32, ptr @test_count, align 4, !tbaa !5
  %6775 = add nsw i32 %6774, 1
  store i32 %6775, ptr @test_count, align 4, !tbaa !5
  %6776 = load i32, ptr %3177, align 4, !tbaa !5
  %6777 = icmp eq i32 %6776, 335544348
  br i1 %6777, label %6778, label %6688

6778:                                             ; preds = %6773
  %6779 = add nsw i32 %6774, 2
  store i32 %6779, ptr @test_count, align 4, !tbaa !5
  %6780 = call ptr @s2n_strerror_debug(i32 noundef 335544348, ptr noundef nonnull @.str.4) #11
  %6781 = icmp eq ptr %6780, null
  br i1 %6781, label %6714, label %6782

6782:                                             ; preds = %6778
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %6783 = load i32, ptr @test_count, align 4, !tbaa !5
  %6784 = add nsw i32 %6783, 1
  store i32 %6784, ptr @test_count, align 4, !tbaa !5
  %6785 = getelementptr inbounds i8, ptr %98, i64 24
  %6786 = load ptr, ptr %6785, align 8, !tbaa !9
  %6787 = load i16, ptr %6786, align 8, !tbaa !54
  %6788 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %97, i16 noundef zeroext %6787) #11
  %6789 = icmp eq i32 %6788, -1
  br i1 %6789, label %6633, label %6790

6790:                                             ; preds = %6782
  %6791 = load i32, ptr @test_count, align 4, !tbaa !5
  %6792 = add nsw i32 %6791, 1
  store i32 %6792, ptr @test_count, align 4, !tbaa !5
  %6793 = load ptr, ptr %96, align 8, !tbaa !9
  %6794 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6793, ptr noundef nonnull %97) #11
  %6795 = call zeroext i1 @s2n_result_is_error(i32 %6794)
  br i1 %6795, label %6796, label %6661

6796:                                             ; preds = %6790
  %6797 = load i32, ptr @test_count, align 4, !tbaa !5
  %6798 = add nsw i32 %6797, 1
  store i32 %6798, ptr @test_count, align 4, !tbaa !5
  %6799 = load i32, ptr %3177, align 4, !tbaa !5
  %6800 = icmp eq i32 %6799, 335544348
  br i1 %6800, label %6801, label %6688

6801:                                             ; preds = %6796
  %6802 = add nsw i32 %6797, 2
  store i32 %6802, ptr @test_count, align 4, !tbaa !5
  %6803 = call ptr @s2n_strerror_debug(i32 noundef 335544348, ptr noundef nonnull @.str.4) #11
  %6804 = icmp eq ptr %6803, null
  br i1 %6804, label %6714, label %6805

6805:                                             ; preds = %6801
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %6806 = load ptr, ptr %96, align 8, !tbaa !9
  %6807 = getelementptr inbounds i8, ptr %6806, i64 16
  store ptr %102, ptr %6807, align 8, !tbaa !26
  %6808 = load i32, ptr @test_count, align 4, !tbaa !5
  %6809 = add nsw i32 %6808, 1
  store i32 %6809, ptr @test_count, align 4, !tbaa !5
  %6810 = load ptr, ptr %98, align 16, !tbaa !9
  %6811 = load i16, ptr %6810, align 8, !tbaa !54
  %6812 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %97, i16 noundef zeroext %6811) #11
  %6813 = icmp eq i32 %6812, -1
  br i1 %6813, label %6862, label %6884

6814:                                             ; preds = %6884
  %6815 = load i32, ptr @test_count, align 4, !tbaa !5
  %6816 = add nsw i32 %6815, 1
  store i32 %6816, ptr @test_count, align 4, !tbaa !5
  %6817 = load ptr, ptr %6739, align 8, !tbaa !9
  %6818 = load i16, ptr %6817, align 8, !tbaa !54
  %6819 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %97, i16 noundef zeroext %6818) #11
  %6820 = icmp eq i32 %6819, -1
  br i1 %6820, label %6862, label %6821

6821:                                             ; preds = %6814
  %6822 = load i32, ptr @test_count, align 4, !tbaa !5
  %6823 = add nsw i32 %6822, 1
  store i32 %6823, ptr @test_count, align 4, !tbaa !5
  %6824 = load ptr, ptr %96, align 8, !tbaa !9
  %6825 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6824, ptr noundef nonnull %97) #11
  %6826 = call zeroext i1 @s2n_result_is_ok(i32 %6825)
  br i1 %6826, label %6827, label %6890

6827:                                             ; preds = %6821
  %6828 = load i32, ptr @test_count, align 4, !tbaa !5
  %6829 = add nsw i32 %6828, 1
  store i32 %6829, ptr @test_count, align 4, !tbaa !5
  %6830 = load ptr, ptr %6762, align 16, !tbaa !9
  %6831 = load i16, ptr %6830, align 8, !tbaa !54
  %6832 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %97, i16 noundef zeroext %6831) #11
  %6833 = icmp eq i32 %6832, -1
  br i1 %6833, label %6862, label %6834

6834:                                             ; preds = %6827
  %6835 = load i32, ptr @test_count, align 4, !tbaa !5
  %6836 = add nsw i32 %6835, 1
  store i32 %6836, ptr @test_count, align 4, !tbaa !5
  %6837 = load ptr, ptr %96, align 8, !tbaa !9
  %6838 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6837, ptr noundef nonnull %97) #11
  %6839 = call zeroext i1 @s2n_result_is_ok(i32 %6838)
  br i1 %6839, label %6840, label %6890

6840:                                             ; preds = %6834
  %6841 = load i32, ptr @test_count, align 4, !tbaa !5
  %6842 = add nsw i32 %6841, 1
  store i32 %6842, ptr @test_count, align 4, !tbaa !5
  %6843 = load ptr, ptr %6785, align 8, !tbaa !9
  %6844 = load i16, ptr %6843, align 8, !tbaa !54
  %6845 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %97, i16 noundef zeroext %6844) #11
  %6846 = icmp eq i32 %6845, -1
  br i1 %6846, label %6862, label %6847

6847:                                             ; preds = %6840
  %6848 = load i32, ptr @test_count, align 4, !tbaa !5
  %6849 = add nsw i32 %6848, 1
  store i32 %6849, ptr @test_count, align 4, !tbaa !5
  %6850 = load ptr, ptr %96, align 8, !tbaa !9
  %6851 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6850, ptr noundef nonnull %97) #11
  %6852 = call zeroext i1 @s2n_result_is_ok(i32 %6851)
  br i1 %6852, label %6853, label %6890

6853:                                             ; preds = %6847
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %103) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %102) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %101) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %100) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #11
  %6854 = call i32 @s2n_stuffer_free(ptr noundef nonnull %97) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %97) #11
  %6855 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %96) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %104) #11
  %6856 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %6856, ptr %104, align 8, !tbaa !9
  %6857 = getelementptr inbounds i8, ptr %6856, i64 16
  store ptr %87, ptr %6857, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %105) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %105, i8 0, i64 40, i1 false)
  %6858 = load i32, ptr @test_count, align 4, !tbaa !5
  %6859 = add nsw i32 %6858, 1
  store i32 %6859, ptr @test_count, align 4, !tbaa !5
  %6860 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %105, i32 noundef 0) #11
  %6861 = icmp eq i32 %6860, -1
  br i1 %6861, label %6912, label %6934

6862:                                             ; preds = %6840, %6827, %6814, %6805
  %6863 = load i32, ptr %3231, align 4, !tbaa !5
  %6864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6865 = call i32 @s2n_print_stacktrace(ptr noundef %6864) #11
  %6866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6867 = trunc nuw i8 %6866 to i1
  br i1 %6867, label %6868, label %6872

6868:                                             ; preds = %6862
  %6869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6870 = call i32 @fileno(ptr noundef %6869) #11
  %6871 = call i32 @isatty(i32 noundef %6870) #11
  %.not1232 = icmp eq i32 %6871, 0
  br i1 %.not1232, label %6872, label %6873

6872:                                             ; preds = %6868, %6862
  br label %6873

6873:                                             ; preds = %6868, %6872
  %.str.5.sink3532 = phi ptr [ @.str.5, %6872 ], [ @.str.2, %6868 ]
  store i32 %6863, ptr %3231, align 4, !tbaa !5
  %6874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6875 = load i32, ptr @test_count, align 4, !tbaa !5
  %6876 = load i32, ptr %3177, align 4, !tbaa !5
  %6877 = call ptr @s2n_strerror(i32 noundef %6876, ptr noundef nonnull @.str.4) #11
  %6878 = load i32, ptr %3177, align 4, !tbaa !5
  %6879 = call ptr @s2n_strerror_debug(i32 noundef %6878, ptr noundef nonnull @.str.4) #11
  %6880 = load i32, ptr %3231, align 4, !tbaa !5
  %6881 = call ptr @strerror(i32 noundef %6880) #11
  %6882 = load i32, ptr %3231, align 4, !tbaa !5
  %6883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6874, ptr noundef nonnull %.str.5.sink3532, i32 noundef %6875, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 1033, ptr noundef %6877, ptr noundef %6879, ptr noundef %6881, i32 noundef %6882) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6884:                                             ; preds = %6805
  %6885 = load i32, ptr @test_count, align 4, !tbaa !5
  %6886 = add nsw i32 %6885, 1
  store i32 %6886, ptr @test_count, align 4, !tbaa !5
  %6887 = load ptr, ptr %96, align 8, !tbaa !9
  %6888 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6887, ptr noundef nonnull %97) #11
  %6889 = call zeroext i1 @s2n_result_is_ok(i32 %6888)
  br i1 %6889, label %6814, label %6890

6890:                                             ; preds = %6847, %6834, %6821, %6884
  %6891 = load i32, ptr %3231, align 4, !tbaa !5
  %6892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6893 = call i32 @s2n_print_stacktrace(ptr noundef %6892) #11
  %6894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6895 = trunc nuw i8 %6894 to i1
  br i1 %6895, label %6896, label %6900

6896:                                             ; preds = %6890
  %6897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6898 = call i32 @fileno(ptr noundef %6897) #11
  %6899 = call i32 @isatty(i32 noundef %6898) #11
  %.not1231 = icmp eq i32 %6899, 0
  br i1 %.not1231, label %6900, label %6901

6900:                                             ; preds = %6896, %6890
  br label %6901

6901:                                             ; preds = %6896, %6900
  %.str.5.sink3541 = phi ptr [ @.str.5, %6900 ], [ @.str.2, %6896 ]
  store i32 %6891, ptr %3231, align 4, !tbaa !5
  %6902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6903 = load i32, ptr @test_count, align 4, !tbaa !5
  %6904 = load i32, ptr %3177, align 4, !tbaa !5
  %6905 = call ptr @s2n_strerror(i32 noundef %6904, ptr noundef nonnull @.str.4) #11
  %6906 = load i32, ptr %3177, align 4, !tbaa !5
  %6907 = call ptr @s2n_strerror_debug(i32 noundef %6906, ptr noundef nonnull @.str.4) #11
  %6908 = load i32, ptr %3231, align 4, !tbaa !5
  %6909 = call ptr @strerror(i32 noundef %6908) #11
  %6910 = load i32, ptr %3231, align 4, !tbaa !5
  %6911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6902, ptr noundef nonnull %.str.5.sink3541, i32 noundef %6903, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 1034, ptr noundef %6905, ptr noundef %6907, ptr noundef %6909, i32 noundef %6910) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6912:                                             ; preds = %6853
  %6913 = load i32, ptr %3231, align 4, !tbaa !5
  %6914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6915 = call i32 @s2n_print_stacktrace(ptr noundef %6914) #11
  %6916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6917 = trunc nuw i8 %6916 to i1
  br i1 %6917, label %6918, label %6922

6918:                                             ; preds = %6912
  %6919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6920 = call i32 @fileno(ptr noundef %6919) #11
  %6921 = call i32 @isatty(i32 noundef %6920) #11
  %.not1230 = icmp eq i32 %6921, 0
  br i1 %.not1230, label %6922, label %6923

6922:                                             ; preds = %6918, %6912
  br label %6923

6923:                                             ; preds = %6918, %6922
  %.str.5.sink3550 = phi ptr [ @.str.5, %6922 ], [ @.str.2, %6918 ]
  store i32 %6913, ptr %3231, align 4, !tbaa !5
  %6924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6925 = load i32, ptr @test_count, align 4, !tbaa !5
  %6926 = load i32, ptr %3177, align 4, !tbaa !5
  %6927 = call ptr @s2n_strerror(i32 noundef %6926, ptr noundef nonnull @.str.4) #11
  %6928 = load i32, ptr %3177, align 4, !tbaa !5
  %6929 = call ptr @s2n_strerror_debug(i32 noundef %6928, ptr noundef nonnull @.str.4) #11
  %6930 = load i32, ptr %3231, align 4, !tbaa !5
  %6931 = call ptr @strerror(i32 noundef %6930) #11
  %6932 = load i32, ptr %3231, align 4, !tbaa !5
  %6933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6924, ptr noundef nonnull %.str.5.sink3550, i32 noundef %6925, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 1045, ptr noundef %6927, ptr noundef %6929, ptr noundef %6931, i32 noundef %6932) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6934:                                             ; preds = %6853
  %6935 = load ptr, ptr %104, align 8, !tbaa !9
  %6936 = getelementptr inbounds i8, ptr %6935, i64 220
  store i8 33, ptr %6936, align 4, !tbaa !50
  %6937 = load i32, ptr @test_count, align 4, !tbaa !5
  %6938 = add nsw i32 %6937, 1
  store i32 %6938, ptr @test_count, align 4, !tbaa !5
  %6939 = load i16, ptr @s2n_rsa_pkcs1_sha224, align 8, !tbaa !54
  %6940 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %105, i16 noundef zeroext %6939) #11
  %6941 = icmp eq i32 %6940, -1
  br i1 %6941, label %6942, label %6964

6942:                                             ; preds = %6934
  %6943 = load i32, ptr %3231, align 4, !tbaa !5
  %6944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6945 = call i32 @s2n_print_stacktrace(ptr noundef %6944) #11
  %6946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6947 = trunc nuw i8 %6946 to i1
  br i1 %6947, label %6948, label %6952

6948:                                             ; preds = %6942
  %6949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6950 = call i32 @fileno(ptr noundef %6949) #11
  %6951 = call i32 @isatty(i32 noundef %6950) #11
  %.not1229 = icmp eq i32 %6951, 0
  br i1 %.not1229, label %6952, label %6953

6952:                                             ; preds = %6948, %6942
  br label %6953

6953:                                             ; preds = %6948, %6952
  %.str.5.sink3559 = phi ptr [ @.str.5, %6952 ], [ @.str.2, %6948 ]
  store i32 %6943, ptr %3231, align 4, !tbaa !5
  %6954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6955 = load i32, ptr @test_count, align 4, !tbaa !5
  %6956 = load i32, ptr %3177, align 4, !tbaa !5
  %6957 = call ptr @s2n_strerror(i32 noundef %6956, ptr noundef nonnull @.str.4) #11
  %6958 = load i32, ptr %3177, align 4, !tbaa !5
  %6959 = call ptr @s2n_strerror_debug(i32 noundef %6958, ptr noundef nonnull @.str.4) #11
  %6960 = load i32, ptr %3231, align 4, !tbaa !5
  %6961 = call ptr @strerror(i32 noundef %6960) #11
  %6962 = load i32, ptr %3231, align 4, !tbaa !5
  %6963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6954, ptr noundef nonnull %.str.5.sink3559, i32 noundef %6955, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 1048, ptr noundef %6957, ptr noundef %6959, ptr noundef %6961, i32 noundef %6962) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6964:                                             ; preds = %6934
  %6965 = load i32, ptr @test_count, align 4, !tbaa !5
  %6966 = add nsw i32 %6965, 1
  store i32 %6966, ptr @test_count, align 4, !tbaa !5
  %6967 = load ptr, ptr %104, align 8, !tbaa !9
  %6968 = call i32 @s2n_signature_algorithm_recv(ptr noundef %6967, ptr noundef nonnull %105) #11
  %6969 = call zeroext i1 @s2n_result_is_ok(i32 %6968)
  br i1 %6969, label %6992, label %6970

6970:                                             ; preds = %6964
  %6971 = load i32, ptr %3231, align 4, !tbaa !5
  %6972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6973 = call i32 @s2n_print_stacktrace(ptr noundef %6972) #11
  %6974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6975 = trunc nuw i8 %6974 to i1
  br i1 %6975, label %6976, label %6980

6976:                                             ; preds = %6970
  %6977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6978 = call i32 @fileno(ptr noundef %6977) #11
  %6979 = call i32 @isatty(i32 noundef %6978) #11
  %.not1109 = icmp eq i32 %6979, 0
  br i1 %.not1109, label %6980, label %6981

6980:                                             ; preds = %6976, %6970
  br label %6981

6981:                                             ; preds = %6976, %6980
  %.str.5.sink3568 = phi ptr [ @.str.5, %6980 ], [ @.str.2, %6976 ]
  store i32 %6971, ptr %3231, align 4, !tbaa !5
  %6982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6983 = load i32, ptr @test_count, align 4, !tbaa !5
  %6984 = load i32, ptr %3177, align 4, !tbaa !5
  %6985 = call ptr @s2n_strerror(i32 noundef %6984, ptr noundef nonnull @.str.4) #11
  %6986 = load i32, ptr %3177, align 4, !tbaa !5
  %6987 = call ptr @s2n_strerror_debug(i32 noundef %6986, ptr noundef nonnull @.str.4) #11
  %6988 = load i32, ptr %3231, align 4, !tbaa !5
  %6989 = call ptr @strerror(i32 noundef %6988) #11
  %6990 = load i32, ptr %3231, align 4, !tbaa !5
  %6991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6982, ptr noundef nonnull %.str.5.sink3568, i32 noundef %6983, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 1049, ptr noundef %6985, ptr noundef %6987, ptr noundef %6989, i32 noundef %6990) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6992:                                             ; preds = %6964
  %6993 = load i32, ptr @test_count, align 4, !tbaa !5
  %6994 = add nsw i32 %6993, 1
  store i32 %6994, ptr @test_count, align 4, !tbaa !5
  %6995 = load ptr, ptr %104, align 8, !tbaa !9
  %6996 = getelementptr inbounds i8, ptr %6995, i64 1528
  %6997 = load ptr, ptr %6996, align 8, !tbaa !66
  %6998 = icmp eq ptr %6997, @s2n_rsa_pkcs1_sha224
  br i1 %6998, label %7021, label %6999

6999:                                             ; preds = %6992
  %7000 = load i32, ptr %3231, align 4, !tbaa !5
  %7001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7002 = call i32 @s2n_print_stacktrace(ptr noundef %7001) #11
  %7003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7004 = trunc nuw i8 %7003 to i1
  br i1 %7004, label %7005, label %7009

7005:                                             ; preds = %6999
  %7006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7007 = call i32 @fileno(ptr noundef %7006) #11
  %7008 = call i32 @isatty(i32 noundef %7007) #11
  %.not1110 = icmp eq i32 %7008, 0
  br i1 %.not1110, label %7009, label %7010

7009:                                             ; preds = %7005, %6999
  br label %7010

7010:                                             ; preds = %7005, %7009
  %.str.5.sink3577 = phi ptr [ @.str.5, %7009 ], [ @.str.2, %7005 ]
  store i32 %7000, ptr %3231, align 4, !tbaa !5
  %7011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7012 = load i32, ptr @test_count, align 4, !tbaa !5
  %7013 = load i32, ptr %3177, align 4, !tbaa !5
  %7014 = call ptr @s2n_strerror(i32 noundef %7013, ptr noundef nonnull @.str.4) #11
  %7015 = load i32, ptr %3177, align 4, !tbaa !5
  %7016 = call ptr @s2n_strerror_debug(i32 noundef %7015, ptr noundef nonnull @.str.4) #11
  %7017 = load i32, ptr %3231, align 4, !tbaa !5
  %7018 = call ptr @strerror(i32 noundef %7017) #11
  %7019 = load i32, ptr %3231, align 4, !tbaa !5
  %7020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7011, ptr noundef nonnull %.str.5.sink3577, i32 noundef %7012, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 1050, ptr noundef %7014, ptr noundef %7016, ptr noundef %7018, i32 noundef %7019) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7021:                                             ; preds = %6992
  %7022 = getelementptr inbounds i8, ptr %6995, i64 220
  store i8 34, ptr %7022, align 4, !tbaa !50
  %7023 = add nsw i32 %6993, 2
  store i32 %7023, ptr @test_count, align 4, !tbaa !5
  %7024 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %105, i16 noundef zeroext %6939) #11
  %7025 = icmp eq i32 %7024, -1
  br i1 %7025, label %7026, label %7048

7026:                                             ; preds = %7021
  %7027 = load i32, ptr %3231, align 4, !tbaa !5
  %7028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7029 = call i32 @s2n_print_stacktrace(ptr noundef %7028) #11
  %7030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7031 = trunc nuw i8 %7030 to i1
  br i1 %7031, label %7032, label %7036

7032:                                             ; preds = %7026
  %7033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7034 = call i32 @fileno(ptr noundef %7033) #11
  %7035 = call i32 @isatty(i32 noundef %7034) #11
  %.not1228 = icmp eq i32 %7035, 0
  br i1 %.not1228, label %7036, label %7037

7036:                                             ; preds = %7032, %7026
  br label %7037

7037:                                             ; preds = %7032, %7036
  %.str.5.sink3586 = phi ptr [ @.str.5, %7036 ], [ @.str.2, %7032 ]
  store i32 %7027, ptr %3231, align 4, !tbaa !5
  %7038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7039 = load i32, ptr @test_count, align 4, !tbaa !5
  %7040 = load i32, ptr %3177, align 4, !tbaa !5
  %7041 = call ptr @s2n_strerror(i32 noundef %7040, ptr noundef nonnull @.str.4) #11
  %7042 = load i32, ptr %3177, align 4, !tbaa !5
  %7043 = call ptr @s2n_strerror_debug(i32 noundef %7042, ptr noundef nonnull @.str.4) #11
  %7044 = load i32, ptr %3231, align 4, !tbaa !5
  %7045 = call ptr @strerror(i32 noundef %7044) #11
  %7046 = load i32, ptr %3231, align 4, !tbaa !5
  %7047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7038, ptr noundef nonnull %.str.5.sink3586, i32 noundef %7039, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 1053, ptr noundef %7041, ptr noundef %7043, ptr noundef %7045, i32 noundef %7046) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7048:                                             ; preds = %7021
  %7049 = load i32, ptr @test_count, align 4, !tbaa !5
  %7050 = add nsw i32 %7049, 1
  store i32 %7050, ptr @test_count, align 4, !tbaa !5
  %7051 = load ptr, ptr %104, align 8, !tbaa !9
  %7052 = call i32 @s2n_signature_algorithm_recv(ptr noundef %7051, ptr noundef nonnull %105) #11
  %7053 = call zeroext i1 @s2n_result_is_error(i32 %7052)
  br i1 %7053, label %7076, label %7054

7054:                                             ; preds = %7048
  %7055 = load i32, ptr %3231, align 4, !tbaa !5
  %7056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7057 = call i32 @s2n_print_stacktrace(ptr noundef %7056) #11
  %7058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7059 = trunc nuw i8 %7058 to i1
  br i1 %7059, label %7060, label %7064

7060:                                             ; preds = %7054
  %7061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7062 = call i32 @fileno(ptr noundef %7061) #11
  %7063 = call i32 @isatty(i32 noundef %7062) #11
  %.not1111 = icmp eq i32 %7063, 0
  br i1 %.not1111, label %7064, label %7065

7064:                                             ; preds = %7060, %7054
  br label %7065

7065:                                             ; preds = %7060, %7064
  %.str.5.sink3595 = phi ptr [ @.str.5, %7064 ], [ @.str.2, %7060 ]
  store i32 %7055, ptr %3231, align 4, !tbaa !5
  %7066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7067 = load i32, ptr @test_count, align 4, !tbaa !5
  %7068 = load i32, ptr %3177, align 4, !tbaa !5
  %7069 = call ptr @s2n_strerror(i32 noundef %7068, ptr noundef nonnull @.str.4) #11
  %7070 = load i32, ptr %3177, align 4, !tbaa !5
  %7071 = call ptr @s2n_strerror_debug(i32 noundef %7070, ptr noundef nonnull @.str.4) #11
  %7072 = load i32, ptr %3231, align 4, !tbaa !5
  %7073 = call ptr @strerror(i32 noundef %7072) #11
  %7074 = load i32, ptr %3231, align 4, !tbaa !5
  %7075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7066, ptr noundef nonnull %.str.5.sink3595, i32 noundef %7067, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 1055, ptr noundef %7069, ptr noundef %7071, ptr noundef %7073, i32 noundef %7074) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7076:                                             ; preds = %7048
  %7077 = load i32, ptr @test_count, align 4, !tbaa !5
  %7078 = add nsw i32 %7077, 1
  store i32 %7078, ptr @test_count, align 4, !tbaa !5
  %7079 = load i32, ptr %3177, align 4, !tbaa !5
  %7080 = icmp eq i32 %7079, 335544348
  br i1 %7080, label %7103, label %7081

7081:                                             ; preds = %7076
  %7082 = load i32, ptr %3231, align 4, !tbaa !5
  %7083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7084 = call i32 @s2n_print_stacktrace(ptr noundef %7083) #11
  %7085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7086 = trunc nuw i8 %7085 to i1
  br i1 %7086, label %7087, label %7091

7087:                                             ; preds = %7081
  %7088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7089 = call i32 @fileno(ptr noundef %7088) #11
  %7090 = call i32 @isatty(i32 noundef %7089) #11
  %.not1112 = icmp eq i32 %7090, 0
  br i1 %.not1112, label %7091, label %7092

7091:                                             ; preds = %7087, %7081
  br label %7092

7092:                                             ; preds = %7087, %7091
  %.str.5.sink3604 = phi ptr [ @.str.5, %7091 ], [ @.str.2, %7087 ]
  store i32 %7082, ptr %3231, align 4, !tbaa !5
  %7093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7094 = load i32, ptr @test_count, align 4, !tbaa !5
  %7095 = load i32, ptr %3177, align 4, !tbaa !5
  %7096 = call ptr @s2n_strerror(i32 noundef %7095, ptr noundef nonnull @.str.4) #11
  %7097 = load i32, ptr %3177, align 4, !tbaa !5
  %7098 = call ptr @s2n_strerror_debug(i32 noundef %7097, ptr noundef nonnull @.str.4) #11
  %7099 = load i32, ptr %3231, align 4, !tbaa !5
  %7100 = call ptr @strerror(i32 noundef %7099) #11
  %7101 = load i32, ptr %3231, align 4, !tbaa !5
  %7102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7093, ptr noundef nonnull %.str.5.sink3604, i32 noundef %7094, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 1055, ptr noundef %7096, ptr noundef %7098, ptr noundef %7100, i32 noundef %7101) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7103:                                             ; preds = %7076
  %7104 = add nsw i32 %7077, 2
  store i32 %7104, ptr @test_count, align 4, !tbaa !5
  %7105 = call ptr @s2n_strerror_debug(i32 noundef 335544348, ptr noundef nonnull @.str.4) #11
  %7106 = icmp eq ptr %7105, null
  br i1 %7106, label %7107, label %7129

7107:                                             ; preds = %7103
  %7108 = load i32, ptr %3231, align 4, !tbaa !5
  %7109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7110 = call i32 @s2n_print_stacktrace(ptr noundef %7109) #11
  %7111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7112 = trunc nuw i8 %7111 to i1
  br i1 %7112, label %7113, label %7117

7113:                                             ; preds = %7107
  %7114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7115 = call i32 @fileno(ptr noundef %7114) #11
  %7116 = call i32 @isatty(i32 noundef %7115) #11
  %.not1227 = icmp eq i32 %7116, 0
  br i1 %.not1227, label %7117, label %7118

7117:                                             ; preds = %7113, %7107
  br label %7118

7118:                                             ; preds = %7113, %7117
  %.str.5.sink3613 = phi ptr [ @.str.5, %7117 ], [ @.str.2, %7113 ]
  store i32 %7108, ptr %3231, align 4, !tbaa !5
  %7119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7120 = load i32, ptr @test_count, align 4, !tbaa !5
  %7121 = load i32, ptr %3177, align 4, !tbaa !5
  %7122 = call ptr @s2n_strerror(i32 noundef %7121, ptr noundef nonnull @.str.4) #11
  %7123 = load i32, ptr %3177, align 4, !tbaa !5
  %7124 = call ptr @s2n_strerror_debug(i32 noundef %7123, ptr noundef nonnull @.str.4) #11
  %7125 = load i32, ptr %3231, align 4, !tbaa !5
  %7126 = call ptr @strerror(i32 noundef %7125) #11
  %7127 = load i32, ptr %3231, align 4, !tbaa !5
  %7128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7119, ptr noundef nonnull %.str.5.sink3613, i32 noundef %7120, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 1055, ptr noundef %7122, ptr noundef %7124, ptr noundef %7126, i32 noundef %7127) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7129:                                             ; preds = %7103
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %7130 = call i32 @s2n_stuffer_free(ptr noundef nonnull %105) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %105) #11
  %7131 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %104) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %87) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %106) #11
  %7132 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %7132, ptr %106, align 8, !tbaa !9
  %7133 = load i32, ptr @test_count, align 4, !tbaa !5
  %7134 = add nsw i32 %7133, 1
  store i32 %7134, ptr @test_count, align 4, !tbaa !5
  %7135 = icmp eq ptr %7132, null
  br i1 %7135, label %7136, label %7158

7136:                                             ; preds = %7358, %7329, %7129
  %7137 = load i32, ptr %3231, align 4, !tbaa !5
  %7138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7139 = call i32 @s2n_print_stacktrace(ptr noundef %7138) #11
  %7140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7141 = trunc nuw i8 %7140 to i1
  br i1 %7141, label %7142, label %7146

7142:                                             ; preds = %7136
  %7143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7144 = call i32 @fileno(ptr noundef %7143) #11
  %7145 = call i32 @isatty(i32 noundef %7144) #11
  %.not1226 = icmp eq i32 %7145, 0
  br i1 %.not1226, label %7146, label %7147

7146:                                             ; preds = %7142, %7136
  br label %7147

7147:                                             ; preds = %7142, %7146
  %.str.5.sink3622 = phi ptr [ @.str.5, %7146 ], [ @.str.2, %7142 ]
  store i32 %7137, ptr %3231, align 4, !tbaa !5
  %7148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7149 = load i32, ptr @test_count, align 4, !tbaa !5
  %7150 = load i32, ptr %3177, align 4, !tbaa !5
  %7151 = call ptr @s2n_strerror(i32 noundef %7150, ptr noundef nonnull @.str.4) #11
  %7152 = load i32, ptr %3177, align 4, !tbaa !5
  %7153 = call ptr @s2n_strerror_debug(i32 noundef %7152, ptr noundef nonnull @.str.4) #11
  %7154 = load i32, ptr %3231, align 4, !tbaa !5
  %7155 = call ptr @strerror(i32 noundef %7154) #11
  %7156 = load i32, ptr %3231, align 4, !tbaa !5
  %7157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7148, ptr noundef nonnull %.str.5.sink3622, i32 noundef %7149, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 1064, ptr noundef %7151, ptr noundef %7153, ptr noundef %7155, i32 noundef %7156) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7158:                                             ; preds = %7129
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %107) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %107, i8 0, i64 40, i1 false)
  %7159 = add nsw i32 %7133, 2
  store i32 %7159, ptr @test_count, align 4, !tbaa !5
  %7160 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %107, i32 noundef 0) #11
  %7161 = icmp eq i32 %7160, -1
  br i1 %7161, label %7162, label %7184

7162:                                             ; preds = %7365, %7336, %7158
  %7163 = load i32, ptr %3231, align 4, !tbaa !5
  %7164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7165 = call i32 @s2n_print_stacktrace(ptr noundef %7164) #11
  %7166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7167 = trunc nuw i8 %7166 to i1
  br i1 %7167, label %7168, label %7172

7168:                                             ; preds = %7162
  %7169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7170 = call i32 @fileno(ptr noundef %7169) #11
  %7171 = call i32 @isatty(i32 noundef %7170) #11
  %.not1225 = icmp eq i32 %7171, 0
  br i1 %.not1225, label %7172, label %7173

7172:                                             ; preds = %7168, %7162
  br label %7173

7173:                                             ; preds = %7168, %7172
  %.str.5.sink3631 = phi ptr [ @.str.5, %7172 ], [ @.str.2, %7168 ]
  store i32 %7163, ptr %3231, align 4, !tbaa !5
  %7174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7175 = load i32, ptr @test_count, align 4, !tbaa !5
  %7176 = load i32, ptr %3177, align 4, !tbaa !5
  %7177 = call ptr @s2n_strerror(i32 noundef %7176, ptr noundef nonnull @.str.4) #11
  %7178 = load i32, ptr %3177, align 4, !tbaa !5
  %7179 = call ptr @s2n_strerror_debug(i32 noundef %7178, ptr noundef nonnull @.str.4) #11
  %7180 = load i32, ptr %3231, align 4, !tbaa !5
  %7181 = call ptr @strerror(i32 noundef %7180) #11
  %7182 = load i32, ptr %3231, align 4, !tbaa !5
  %7183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7174, ptr noundef nonnull %.str.5.sink3631, i32 noundef %7175, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 1067, ptr noundef %7177, ptr noundef %7179, ptr noundef %7181, i32 noundef %7182) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7184:                                             ; preds = %7158
  %7185 = load i32, ptr @test_count, align 4, !tbaa !5
  %7186 = add nsw i32 %7185, 1
  store i32 %7186, ptr @test_count, align 4, !tbaa !5
  %7187 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %107, i16 noundef zeroext 254) #11
  %7188 = icmp eq i32 %7187, -1
  br i1 %7188, label %7189, label %.preheader1313

7189:                                             ; preds = %7369, %7340, %7184
  %7190 = load i32, ptr %3231, align 4, !tbaa !5
  %7191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7192 = call i32 @s2n_print_stacktrace(ptr noundef %7191) #11
  %7193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7194 = trunc nuw i8 %7193 to i1
  br i1 %7194, label %7195, label %7199

7195:                                             ; preds = %7189
  %7196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7197 = call i32 @fileno(ptr noundef %7196) #11
  %7198 = call i32 @isatty(i32 noundef %7197) #11
  %.not1224 = icmp eq i32 %7198, 0
  br i1 %.not1224, label %7199, label %7200

7199:                                             ; preds = %7195, %7189
  br label %7200

7200:                                             ; preds = %7195, %7199
  %.str.5.sink3640 = phi ptr [ @.str.5, %7199 ], [ @.str.2, %7195 ]
  store i32 %7190, ptr %3231, align 4, !tbaa !5
  %7201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7202 = load i32, ptr @test_count, align 4, !tbaa !5
  %7203 = load i32, ptr %3177, align 4, !tbaa !5
  %7204 = call ptr @s2n_strerror(i32 noundef %7203, ptr noundef nonnull @.str.4) #11
  %7205 = load i32, ptr %3177, align 4, !tbaa !5
  %7206 = call ptr @s2n_strerror_debug(i32 noundef %7205, ptr noundef nonnull @.str.4) #11
  %7207 = load i32, ptr %3231, align 4, !tbaa !5
  %7208 = call ptr @strerror(i32 noundef %7207) #11
  %7209 = load i32, ptr %3231, align 4, !tbaa !5
  %7210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7201, ptr noundef nonnull %.str.5.sink3640, i32 noundef %7202, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 1070, ptr noundef %7204, ptr noundef %7206, ptr noundef %7208, i32 noundef %7209) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7211:                                             ; preds = %.preheader1313
  %7212 = add nuw nsw i64 %.09481325, 1
  %exitcond.not = icmp eq i64 %7212, 127
  br i1 %exitcond.not, label %7238, label %.preheader1313, !llvm.loop !73

.preheader1313:                                   ; preds = %7184, %7211
  %.09481325 = phi i64 [ %7212, %7211 ], [ 0, %7184 ]
  %7213 = load i32, ptr @test_count, align 4, !tbaa !5
  %7214 = add nsw i32 %7213, 1
  store i32 %7214, ptr @test_count, align 4, !tbaa !5
  %7215 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %107, i16 noundef zeroext %6066) #11
  %7216 = icmp eq i32 %7215, -1
  br i1 %7216, label %.loopexit, label %7211

.loopexit:                                        ; preds = %.preheader1313, %.preheader1313.1, %.preheader1313.2
  %7217 = load i32, ptr %3231, align 4, !tbaa !5
  %7218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7219 = call i32 @s2n_print_stacktrace(ptr noundef %7218) #11
  %7220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7221 = trunc nuw i8 %7220 to i1
  br i1 %7221, label %7222, label %7226

7222:                                             ; preds = %.loopexit
  %7223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7224 = call i32 @fileno(ptr noundef %7223) #11
  %7225 = call i32 @isatty(i32 noundef %7224) #11
  %.not1223 = icmp eq i32 %7225, 0
  br i1 %.not1223, label %7226, label %7227

7226:                                             ; preds = %7222, %.loopexit
  br label %7227

7227:                                             ; preds = %7222, %7226
  %.str.5.sink3649 = phi ptr [ @.str.5, %7226 ], [ @.str.2, %7222 ]
  store i32 %7217, ptr %3231, align 4, !tbaa !5
  %7228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7229 = load i32, ptr @test_count, align 4, !tbaa !5
  %7230 = load i32, ptr %3177, align 4, !tbaa !5
  %7231 = call ptr @s2n_strerror(i32 noundef %7230, ptr noundef nonnull @.str.4) #11
  %7232 = load i32, ptr %3177, align 4, !tbaa !5
  %7233 = call ptr @s2n_strerror_debug(i32 noundef %7232, ptr noundef nonnull @.str.4) #11
  %7234 = load i32, ptr %3231, align 4, !tbaa !5
  %7235 = call ptr @strerror(i32 noundef %7234) #11
  %7236 = load i32, ptr %3231, align 4, !tbaa !5
  %7237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7228, ptr noundef nonnull %.str.5.sink3649, i32 noundef %7229, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 1072, ptr noundef %7231, ptr noundef %7233, ptr noundef %7235, i32 noundef %7236) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7238:                                             ; preds = %7211
  %7239 = load ptr, ptr %106, align 8, !tbaa !9
  %7240 = getelementptr inbounds i8, ptr %7239, i64 1268
  %7241 = call i32 @s2n_recv_supported_sig_scheme_list(ptr noundef nonnull %107, ptr noundef nonnull %7240) #11
  %7242 = load i32, ptr @test_count, align 4, !tbaa !5
  %7243 = add nsw i32 %7242, 1
  store i32 %7243, ptr @test_count, align 4, !tbaa !5
  %7244 = icmp eq i32 %7241, -1
  br i1 %7244, label %7245, label %7329

7245:                                             ; preds = %7351, %7238
  %7246 = load i32, ptr %3231, align 4, !tbaa !5
  %7247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7248 = call i32 @s2n_print_stacktrace(ptr noundef %7247) #11
  %7249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7250 = trunc nuw i8 %7249 to i1
  br i1 %7250, label %7251, label %7255

7251:                                             ; preds = %7245
  %7252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7253 = call i32 @fileno(ptr noundef %7252) #11
  %7254 = call i32 @isatty(i32 noundef %7253) #11
  %.not1222 = icmp eq i32 %7254, 0
  br i1 %.not1222, label %7255, label %7256

7255:                                             ; preds = %7251, %7245
  br label %7256

7256:                                             ; preds = %7251, %7255
  %.str.5.sink3658 = phi ptr [ @.str.5, %7255 ], [ @.str.2, %7251 ]
  store i32 %7246, ptr %3231, align 4, !tbaa !5
  %7257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7258 = load i32, ptr @test_count, align 4, !tbaa !5
  %7259 = load i32, ptr %3177, align 4, !tbaa !5
  %7260 = call ptr @s2n_strerror(i32 noundef %7259, ptr noundef nonnull @.str.4) #11
  %7261 = load i32, ptr %3177, align 4, !tbaa !5
  %7262 = call ptr @s2n_strerror_debug(i32 noundef %7261, ptr noundef nonnull @.str.4) #11
  %7263 = load i32, ptr %3231, align 4, !tbaa !5
  %7264 = call ptr @strerror(i32 noundef %7263) #11
  %7265 = load i32, ptr %3231, align 4, !tbaa !5
  %7266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7257, ptr noundef nonnull %.str.5.sink3658, i32 noundef %7258, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 1077, ptr noundef %7260, ptr noundef %7262, ptr noundef %7264, i32 noundef %7265) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7267:                                             ; preds = %7380
  %.pre = load i32, ptr %3231, align 4, !tbaa !5
  %7268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7269 = call i32 @s2n_print_stacktrace(ptr noundef %7268) #11
  %7270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7271 = trunc nuw i8 %7270 to i1
  br i1 %7271, label %7272, label %7276

7272:                                             ; preds = %7267
  %7273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7274 = call i32 @fileno(ptr noundef %7273) #11
  %7275 = call i32 @isatty(i32 noundef %7274) #11
  %.not1219 = icmp eq i32 %7275, 0
  br i1 %.not1219, label %7276, label %7277

7276:                                             ; preds = %7272, %7267
  br label %7277

7277:                                             ; preds = %7272, %7276
  %.str.5.sink3667 = phi ptr [ @.str.5, %7276 ], [ @.str.2, %7272 ]
  store i32 %.pre, ptr %3231, align 4, !tbaa !5
  %7278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7279 = load i32, ptr @test_count, align 4, !tbaa !5
  %7280 = load i32, ptr %3177, align 4, !tbaa !5
  %7281 = call ptr @s2n_strerror(i32 noundef %7280, ptr noundef nonnull @.str.4) #11
  %7282 = load i32, ptr %3177, align 4, !tbaa !5
  %7283 = call ptr @s2n_strerror_debug(i32 noundef %7282, ptr noundef nonnull @.str.4) #11
  %7284 = load i32, ptr %3231, align 4, !tbaa !5
  %7285 = call ptr @strerror(i32 noundef %7284) #11
  %7286 = load i32, ptr %3231, align 4, !tbaa !5
  %7287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7278, ptr noundef nonnull %.str.5.sink3667, i32 noundef %7279, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 1079, ptr noundef %7281, ptr noundef %7283, ptr noundef %7285, i32 noundef %7286) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7288:                                             ; preds = %7387
  %.pre1412 = load i32, ptr %3231, align 4, !tbaa !5
  %7289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7290 = call i32 @s2n_print_stacktrace(ptr noundef %7289) #11
  %7291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7292 = trunc nuw i8 %7291 to i1
  br i1 %7292, label %7293, label %7297

7293:                                             ; preds = %7288
  %7294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7295 = call i32 @fileno(ptr noundef %7294) #11
  %7296 = call i32 @isatty(i32 noundef %7295) #11
  %.not1220 = icmp eq i32 %7296, 0
  br i1 %.not1220, label %7297, label %7298

7297:                                             ; preds = %7293, %7288
  br label %7298

7298:                                             ; preds = %7293, %7297
  %.str.5.sink3676 = phi ptr [ @.str.5, %7297 ], [ @.str.2, %7293 ]
  store i32 %.pre1412, ptr %3231, align 4, !tbaa !5
  %7299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7300 = load i32, ptr @test_count, align 4, !tbaa !5
  %7301 = load i32, ptr %3177, align 4, !tbaa !5
  %7302 = call ptr @s2n_strerror(i32 noundef %7301, ptr noundef nonnull @.str.4) #11
  %7303 = load i32, ptr %3177, align 4, !tbaa !5
  %7304 = call ptr @s2n_strerror_debug(i32 noundef %7303, ptr noundef nonnull @.str.4) #11
  %7305 = load i32, ptr %3231, align 4, !tbaa !5
  %7306 = call ptr @strerror(i32 noundef %7305) #11
  %7307 = load i32, ptr %3231, align 4, !tbaa !5
  %7308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7299, ptr noundef nonnull %.str.5.sink3676, i32 noundef %7300, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 1079, ptr noundef %7302, ptr noundef %7304, ptr noundef %7306, i32 noundef %7307) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7309:                                             ; preds = %7391
  %.pre1427 = load i32, ptr %3231, align 4, !tbaa !5
  %.pre1428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7310 = call i32 @s2n_print_stacktrace(ptr noundef %.pre1428) #11
  %7311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7312 = trunc nuw i8 %7311 to i1
  br i1 %7312, label %7313, label %7317

7313:                                             ; preds = %7309
  %7314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7315 = call i32 @fileno(ptr noundef %7314) #11
  %7316 = call i32 @isatty(i32 noundef %7315) #11
  %.not1221 = icmp eq i32 %7316, 0
  br i1 %.not1221, label %7317, label %7318

7317:                                             ; preds = %7313, %7309
  br label %7318

7318:                                             ; preds = %7313, %7317
  %.str.5.sink3685 = phi ptr [ @.str.5, %7317 ], [ @.str.2, %7313 ]
  store i32 %.pre1427, ptr %3231, align 4, !tbaa !5
  %7319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7320 = load i32, ptr @test_count, align 4, !tbaa !5
  %7321 = load i32, ptr %3177, align 4, !tbaa !5
  %7322 = call ptr @s2n_strerror(i32 noundef %7321, ptr noundef nonnull @.str.4) #11
  %7323 = load i32, ptr %3177, align 4, !tbaa !5
  %7324 = call ptr @s2n_strerror_debug(i32 noundef %7323, ptr noundef nonnull @.str.4) #11
  %7325 = load i32, ptr %3231, align 4, !tbaa !5
  %7326 = call ptr @strerror(i32 noundef %7325) #11
  %7327 = load i32, ptr %3231, align 4, !tbaa !5
  %7328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7319, ptr noundef nonnull %.str.5.sink3685, i32 noundef %7320, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 1079, ptr noundef %7322, ptr noundef %7324, ptr noundef %7326, i32 noundef %7327) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7329:                                             ; preds = %7238
  %7330 = call i32 @s2n_stuffer_free(ptr noundef nonnull %107) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %107) #11
  %7331 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %106) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %106) #11
  %7332 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %7332, ptr %106, align 8, !tbaa !9
  %7333 = load i32, ptr @test_count, align 4, !tbaa !5
  %7334 = add nsw i32 %7333, 1
  store i32 %7334, ptr @test_count, align 4, !tbaa !5
  %7335 = icmp eq ptr %7332, null
  br i1 %7335, label %7136, label %7336

7336:                                             ; preds = %7329
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %107) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %107, i8 0, i64 40, i1 false)
  %7337 = add nsw i32 %7333, 2
  store i32 %7337, ptr @test_count, align 4, !tbaa !5
  %7338 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %107, i32 noundef 0) #11
  %7339 = icmp eq i32 %7338, -1
  br i1 %7339, label %7162, label %7340

7340:                                             ; preds = %7336
  %7341 = load i32, ptr @test_count, align 4, !tbaa !5
  %7342 = add nsw i32 %7341, 1
  store i32 %7342, ptr @test_count, align 4, !tbaa !5
  %7343 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %107, i16 noundef zeroext 256) #11
  %7344 = icmp eq i32 %7343, -1
  br i1 %7344, label %7189, label %.preheader1313.1

.preheader1313.1:                                 ; preds = %7340, %7349
  %.09481325.1 = phi i64 [ %7350, %7349 ], [ 0, %7340 ]
  %7345 = load i32, ptr @test_count, align 4, !tbaa !5
  %7346 = add nsw i32 %7345, 1
  store i32 %7346, ptr @test_count, align 4, !tbaa !5
  %7347 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %107, i16 noundef zeroext %6066) #11
  %7348 = icmp eq i32 %7347, -1
  br i1 %7348, label %.loopexit, label %7349

7349:                                             ; preds = %.preheader1313.1
  %7350 = add nuw nsw i64 %.09481325.1, 1
  %exitcond.1.not = icmp eq i64 %7350, 128
  br i1 %exitcond.1.not, label %7351, label %.preheader1313.1, !llvm.loop !73

7351:                                             ; preds = %7349
  %7352 = load ptr, ptr %106, align 8, !tbaa !9
  %7353 = getelementptr inbounds i8, ptr %7352, i64 1268
  %7354 = call i32 @s2n_recv_supported_sig_scheme_list(ptr noundef nonnull %107, ptr noundef nonnull %7353) #11
  %7355 = load i32, ptr @test_count, align 4, !tbaa !5
  %7356 = add nsw i32 %7355, 1
  store i32 %7356, ptr @test_count, align 4, !tbaa !5
  %7357 = icmp eq i32 %7354, -1
  br i1 %7357, label %7245, label %7358

7358:                                             ; preds = %7351
  %7359 = call i32 @s2n_stuffer_free(ptr noundef nonnull %107) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %107) #11
  %7360 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %106) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %106) #11
  %7361 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %7361, ptr %106, align 8, !tbaa !9
  %7362 = load i32, ptr @test_count, align 4, !tbaa !5
  %7363 = add nsw i32 %7362, 1
  store i32 %7363, ptr @test_count, align 4, !tbaa !5
  %7364 = icmp eq ptr %7361, null
  br i1 %7364, label %7136, label %7365

7365:                                             ; preds = %7358
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %107) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %107, i8 0, i64 40, i1 false)
  %7366 = add nsw i32 %7362, 2
  store i32 %7366, ptr @test_count, align 4, !tbaa !5
  %7367 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %107, i32 noundef 0) #11
  %7368 = icmp eq i32 %7367, -1
  br i1 %7368, label %7162, label %7369

7369:                                             ; preds = %7365
  %7370 = load i32, ptr @test_count, align 4, !tbaa !5
  %7371 = add nsw i32 %7370, 1
  store i32 %7371, ptr @test_count, align 4, !tbaa !5
  %7372 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %107, i16 noundef zeroext 258) #11
  %7373 = icmp eq i32 %7372, -1
  br i1 %7373, label %7189, label %.preheader1313.2

.preheader1313.2:                                 ; preds = %7369, %7378
  %.09481325.2 = phi i64 [ %7379, %7378 ], [ 0, %7369 ]
  %7374 = load i32, ptr @test_count, align 4, !tbaa !5
  %7375 = add nsw i32 %7374, 1
  store i32 %7375, ptr @test_count, align 4, !tbaa !5
  %7376 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %107, i16 noundef zeroext %6066) #11
  %7377 = icmp eq i32 %7376, -1
  br i1 %7377, label %.loopexit, label %7378

7378:                                             ; preds = %.preheader1313.2
  %7379 = add nuw nsw i64 %.09481325.2, 1
  %exitcond.2.not = icmp eq i64 %7379, 129
  br i1 %exitcond.2.not, label %7380, label %.preheader1313.2, !llvm.loop !73

7380:                                             ; preds = %7378
  %7381 = load ptr, ptr %106, align 8, !tbaa !9
  %7382 = getelementptr inbounds i8, ptr %7381, i64 1268
  %7383 = call i32 @s2n_recv_supported_sig_scheme_list(ptr noundef nonnull %107, ptr noundef nonnull %7382) #11
  %7384 = load i32, ptr @test_count, align 4, !tbaa !5
  %7385 = add nsw i32 %7384, 1
  store i32 %7385, ptr @test_count, align 4, !tbaa !5
  %7386 = icmp eq i32 %7383, -1
  br i1 %7386, label %7387, label %7267

7387:                                             ; preds = %7380
  %7388 = add nsw i32 %7384, 2
  store i32 %7388, ptr @test_count, align 4, !tbaa !5
  %7389 = load i32, ptr %3177, align 4, !tbaa !5
  %7390 = icmp eq i32 %7389, 469762053
  br i1 %7390, label %7391, label %7288

7391:                                             ; preds = %7387
  %7392 = add nsw i32 %7384, 3
  store i32 %7392, ptr @test_count, align 4, !tbaa !5
  %7393 = call ptr @s2n_strerror_debug(i32 noundef 469762053, ptr noundef nonnull @.str.4) #11
  %7394 = icmp eq ptr %7393, null
  br i1 %7394, label %7309, label %.preheader1312

.preheader1312:                                   ; preds = %7391
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %7395 = call i32 @s2n_stuffer_free(ptr noundef nonnull %107) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %107) #11
  %7396 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %106) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #11
  %7397 = getelementptr inbounds i8, ptr %109, i64 28
  %7398 = getelementptr inbounds i8, ptr %109, i64 24
  %7399 = getelementptr inbounds i8, ptr %110, i64 256
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %108) #11
  %7400 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %7400, ptr %108, align 8, !tbaa !9
  %7401 = load i32, ptr @test_count, align 4, !tbaa !5
  %7402 = add nsw i32 %7401, 1
  store i32 %7402, ptr @test_count, align 4, !tbaa !5
  %7403 = icmp eq ptr %7400, null
  br i1 %7403, label %7404, label %7426

7404:                                             ; preds = %._crit_edge1337.1, %._crit_edge1337, %.preheader1312
  %7405 = load i32, ptr %3231, align 4, !tbaa !5
  %7406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7407 = call i32 @s2n_print_stacktrace(ptr noundef %7406) #11
  %7408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7409 = trunc nuw i8 %7408 to i1
  br i1 %7409, label %7410, label %7414

7410:                                             ; preds = %7404
  %7411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7412 = call i32 @fileno(ptr noundef %7411) #11
  %7413 = call i32 @isatty(i32 noundef %7412) #11
  %.not1217 = icmp eq i32 %7413, 0
  br i1 %.not1217, label %7414, label %7415

7414:                                             ; preds = %7410, %7404
  br label %7415

7415:                                             ; preds = %7410, %7414
  %.str.5.sink3694 = phi ptr [ @.str.5, %7414 ], [ @.str.2, %7410 ]
  store i32 %7405, ptr %3231, align 4, !tbaa !5
  %7416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7417 = load i32, ptr @test_count, align 4, !tbaa !5
  %7418 = load i32, ptr %3177, align 4, !tbaa !5
  %7419 = call ptr @s2n_strerror(i32 noundef %7418, ptr noundef nonnull @.str.4) #11
  %7420 = load i32, ptr %3177, align 4, !tbaa !5
  %7421 = call ptr @s2n_strerror_debug(i32 noundef %7420, ptr noundef nonnull @.str.4) #11
  %7422 = load i32, ptr %3231, align 4, !tbaa !5
  %7423 = call ptr @strerror(i32 noundef %7422) #11
  %7424 = load i32, ptr %3231, align 4, !tbaa !5
  %7425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7416, ptr noundef nonnull %.str.5.sink3694, i32 noundef %7417, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 1087, ptr noundef %7419, ptr noundef %7421, ptr noundef %7423, i32 noundef %7424) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7426:                                             ; preds = %.preheader1312
  %7427 = getelementptr inbounds i8, ptr %7400, i64 220
  store i8 31, ptr %7427, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %109) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %109, i8 0, i64 40, i1 false)
  %7428 = add nsw i32 %7401, 2
  store i32 %7428, ptr @test_count, align 4, !tbaa !5
  %7429 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %109, i32 noundef 0) #11
  %7430 = icmp eq i32 %7429, -1
  br i1 %7430, label %7431, label %7453

7431:                                             ; preds = %7600, %7557, %7426
  %7432 = load i32, ptr %3231, align 4, !tbaa !5
  %7433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7434 = call i32 @s2n_print_stacktrace(ptr noundef %7433) #11
  %7435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7436 = trunc nuw i8 %7435 to i1
  br i1 %7436, label %7437, label %7441

7437:                                             ; preds = %7431
  %7438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7439 = call i32 @fileno(ptr noundef %7438) #11
  %7440 = call i32 @isatty(i32 noundef %7439) #11
  %.not1216 = icmp eq i32 %7440, 0
  br i1 %.not1216, label %7441, label %7442

7441:                                             ; preds = %7437, %7431
  br label %7442

7442:                                             ; preds = %7437, %7441
  %.str.5.sink3703 = phi ptr [ @.str.5, %7441 ], [ @.str.2, %7437 ]
  store i32 %7432, ptr %3231, align 4, !tbaa !5
  %7443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7444 = load i32, ptr @test_count, align 4, !tbaa !5
  %7445 = load i32, ptr %3177, align 4, !tbaa !5
  %7446 = call ptr @s2n_strerror(i32 noundef %7445, ptr noundef nonnull @.str.4) #11
  %7447 = load i32, ptr %3177, align 4, !tbaa !5
  %7448 = call ptr @s2n_strerror_debug(i32 noundef %7447, ptr noundef nonnull @.str.4) #11
  %7449 = load i32, ptr %3231, align 4, !tbaa !5
  %7450 = call ptr @strerror(i32 noundef %7449) #11
  %7451 = load i32, ptr %3231, align 4, !tbaa !5
  %7452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7443, ptr noundef nonnull %.str.5.sink3703, i32 noundef %7444, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 1091, ptr noundef %7446, ptr noundef %7448, ptr noundef %7450, i32 noundef %7451) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7453:                                             ; preds = %7426
  %7454 = load i32, ptr @test_count, align 4, !tbaa !5
  %7455 = add nsw i32 %7454, 1
  store i32 %7455, ptr @test_count, align 4, !tbaa !5
  %7456 = load ptr, ptr %108, align 8, !tbaa !9
  %7457 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %7456, ptr noundef nonnull %109) #11
  %7458 = call zeroext i1 @s2n_result_is_ok(i32 %7457)
  br i1 %7458, label %7481, label %7459

7459:                                             ; preds = %7605, %7562, %7453
  %7460 = load i32, ptr %3231, align 4, !tbaa !5
  %7461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7462 = call i32 @s2n_print_stacktrace(ptr noundef %7461) #11
  %7463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7464 = trunc nuw i8 %7463 to i1
  br i1 %7464, label %7465, label %7469

7465:                                             ; preds = %7459
  %7466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7467 = call i32 @fileno(ptr noundef %7466) #11
  %7468 = call i32 @isatty(i32 noundef %7467) #11
  %.not1212 = icmp eq i32 %7468, 0
  br i1 %.not1212, label %7469, label %7470

7469:                                             ; preds = %7465, %7459
  br label %7470

7470:                                             ; preds = %7465, %7469
  %.str.5.sink3712 = phi ptr [ @.str.5, %7469 ], [ @.str.2, %7465 ]
  store i32 %7460, ptr %3231, align 4, !tbaa !5
  %7471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7472 = load i32, ptr @test_count, align 4, !tbaa !5
  %7473 = load i32, ptr %3177, align 4, !tbaa !5
  %7474 = call ptr @s2n_strerror(i32 noundef %7473, ptr noundef nonnull @.str.4) #11
  %7475 = load i32, ptr %3177, align 4, !tbaa !5
  %7476 = call ptr @s2n_strerror_debug(i32 noundef %7475, ptr noundef nonnull @.str.4) #11
  %7477 = load i32, ptr %3231, align 4, !tbaa !5
  %7478 = call ptr @strerror(i32 noundef %7477) #11
  %7479 = load i32, ptr %3231, align 4, !tbaa !5
  %7480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7471, ptr noundef nonnull %.str.5.sink3712, i32 noundef %7472, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 1092, ptr noundef %7474, ptr noundef %7476, ptr noundef %7478, i32 noundef %7479) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7481:                                             ; preds = %7453
  call void @llvm.lifetime.start.p0(i64 258, ptr nonnull %110) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(258) %110, i8 0, i64 258, i1 false)
  %7482 = load i32, ptr @test_count, align 4, !tbaa !5
  %7483 = add nsw i32 %7482, 1
  store i32 %7483, ptr @test_count, align 4, !tbaa !5
  %7484 = call i32 @s2n_recv_supported_sig_scheme_list(ptr noundef nonnull %109, ptr noundef nonnull %110) #11
  %7485 = icmp eq i32 %7484, -1
  br i1 %7485, label %7486, label %7508

7486:                                             ; preds = %7611, %7568, %7481
  %7487 = load i32, ptr %3231, align 4, !tbaa !5
  %7488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7489 = call i32 @s2n_print_stacktrace(ptr noundef %7488) #11
  %7490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7491 = trunc nuw i8 %7490 to i1
  br i1 %7491, label %7492, label %7496

7492:                                             ; preds = %7486
  %7493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7494 = call i32 @fileno(ptr noundef %7493) #11
  %7495 = call i32 @isatty(i32 noundef %7494) #11
  %.not1215 = icmp eq i32 %7495, 0
  br i1 %.not1215, label %7496, label %7497

7496:                                             ; preds = %7492, %7486
  br label %7497

7497:                                             ; preds = %7492, %7496
  %.str.5.sink3721 = phi ptr [ @.str.5, %7496 ], [ @.str.2, %7492 ]
  store i32 %7487, ptr %3231, align 4, !tbaa !5
  %7498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7499 = load i32, ptr @test_count, align 4, !tbaa !5
  %7500 = load i32, ptr %3177, align 4, !tbaa !5
  %7501 = call ptr @s2n_strerror(i32 noundef %7500, ptr noundef nonnull @.str.4) #11
  %7502 = load i32, ptr %3177, align 4, !tbaa !5
  %7503 = call ptr @s2n_strerror_debug(i32 noundef %7502, ptr noundef nonnull @.str.4) #11
  %7504 = load i32, ptr %3231, align 4, !tbaa !5
  %7505 = call ptr @strerror(i32 noundef %7504) #11
  %7506 = load i32, ptr %3231, align 4, !tbaa !5
  %7507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7498, ptr noundef nonnull %.str.5.sink3721, i32 noundef %7499, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 1095, ptr noundef %7501, ptr noundef %7503, ptr noundef %7505, i32 noundef %7506) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7508:                                             ; preds = %7481
  %7509 = load i32, ptr @test_count, align 4, !tbaa !5
  %7510 = add nsw i32 %7509, 1
  store i32 %7510, ptr @test_count, align 4, !tbaa !5
  %7511 = load i32, ptr %7397, align 4, !tbaa !52
  %7512 = load i32, ptr %7398, align 8, !tbaa !53
  %7513 = icmp eq i32 %7511, %7512
  br i1 %7513, label %.preheader1311, label %7529

.preheader1311:                                   ; preds = %7508
  %7514 = load i8, ptr %7399, align 2, !tbaa !56
  %7515 = zext i8 %7514 to i64
  %.not1369 = icmp eq i8 %7514, 0
  br i1 %.not1369, label %._crit_edge1337, label %.lr.ph.us.preheader

.lr.ph.us.preheader:                              ; preds = %.preheader1311
  %wide.trip.count = zext i8 %7514 to i64
  br label %.lr.ph.us

.lr.ph.us:                                        ; preds = %.lr.ph.us.preheader, %._crit_edge.us
  %.09501335.us = phi i64 [ %7528, %._crit_edge.us ], [ 0, %.lr.ph.us.preheader ]
  %test_count.promoted132713331334.us = phi i32 [ %test_count.promoted13271331.us, %._crit_edge.us ], [ %7510, %.lr.ph.us.preheader ]
  %7516 = getelementptr inbounds [128 x i16], ptr %110, i64 0, i64 %.09501335.us
  %7517 = load i16, ptr %7516, align 2, !tbaa !51
  br label %7518

7518:                                             ; preds = %.lr.ph.us, %7526
  %indvars.iv = phi i64 [ 0, %.lr.ph.us ], [ %indvars.iv.next, %7526 ]
  %test_count.promoted13271332.us = phi i32 [ %test_count.promoted132713331334.us, %.lr.ph.us ], [ %test_count.promoted13271331.us, %7526 ]
  %7519 = phi i32 [ %test_count.promoted132713331334.us, %.lr.ph.us ], [ %7527, %7526 ]
  %7520 = icmp eq i64 %.09501335.us, %indvars.iv
  br i1 %7520, label %7526, label %7521

7521:                                             ; preds = %7518
  %7522 = getelementptr inbounds [128 x i16], ptr %110, i64 0, i64 %indvars.iv
  %7523 = load i16, ptr %7522, align 2, !tbaa !51
  %7524 = add nsw i32 %7519, 1
  store i32 %7524, ptr @test_count, align 4, !tbaa !5
  %7525 = icmp eq i16 %7517, %7523
  br i1 %7525, label %.split.us, label %7526

7526:                                             ; preds = %7521, %7518
  %test_count.promoted13271331.us = phi i32 [ %7524, %7521 ], [ %test_count.promoted13271332.us, %7518 ]
  %7527 = phi i32 [ %7524, %7521 ], [ %7519, %7518 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond1388.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond1388.not, label %._crit_edge.us, label %7518, !llvm.loop !75

._crit_edge.us:                                   ; preds = %7526
  %7528 = add nuw nsw i64 %.09501335.us, 1
  %exitcond1389.not = icmp eq i64 %7528, %7515
  br i1 %exitcond1389.not, label %._crit_edge1337, label %.lr.ph.us, !llvm.loop !76

7529:                                             ; preds = %7616, %7573, %7508
  %7530 = load i32, ptr %3231, align 4, !tbaa !5
  %7531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7532 = call i32 @s2n_print_stacktrace(ptr noundef %7531) #11
  %7533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7534 = trunc nuw i8 %7533 to i1
  br i1 %7534, label %7535, label %7539

7535:                                             ; preds = %7529
  %7536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7537 = call i32 @fileno(ptr noundef %7536) #11
  %7538 = call i32 @isatty(i32 noundef %7537) #11
  %.not1213 = icmp eq i32 %7538, 0
  br i1 %.not1213, label %7539, label %7540

7539:                                             ; preds = %7535, %7529
  br label %7540

7540:                                             ; preds = %7535, %7539
  %.str.5.sink3730 = phi ptr [ @.str.5, %7539 ], [ @.str.2, %7535 ]
  store i32 %7530, ptr %3231, align 4, !tbaa !5
  %7541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7542 = load i32, ptr @test_count, align 4, !tbaa !5
  %7543 = load i32, ptr %3177, align 4, !tbaa !5
  %7544 = call ptr @s2n_strerror(i32 noundef %7543, ptr noundef nonnull @.str.4) #11
  %7545 = load i32, ptr %3177, align 4, !tbaa !5
  %7546 = call ptr @s2n_strerror_debug(i32 noundef %7545, ptr noundef nonnull @.str.4) #11
  %7547 = load i32, ptr %3231, align 4, !tbaa !5
  %7548 = call ptr @strerror(i32 noundef %7547) #11
  %7549 = load i32, ptr %3231, align 4, !tbaa !5
  %7550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7541, ptr noundef nonnull %.str.5.sink3730, i32 noundef %7542, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1096, ptr noundef %7544, ptr noundef %7546, ptr noundef %7548, i32 noundef %7549) #13
  call void @exit(i32 noundef 1) #14
  unreachable

._crit_edge1337:                                  ; preds = %._crit_edge.us, %.preheader1311
  call void @llvm.lifetime.end.p0(i64 258, ptr nonnull %110) #11
  %7551 = call i32 @s2n_stuffer_free(ptr noundef nonnull %109) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %109) #11
  %7552 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %108) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %108) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %108) #11
  %7553 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %7553, ptr %108, align 8, !tbaa !9
  %7554 = load i32, ptr @test_count, align 4, !tbaa !5
  %7555 = add nsw i32 %7554, 1
  store i32 %7555, ptr @test_count, align 4, !tbaa !5
  %7556 = icmp eq ptr %7553, null
  br i1 %7556, label %7404, label %7557

7557:                                             ; preds = %._crit_edge1337
  %7558 = getelementptr inbounds i8, ptr %7553, i64 220
  store i8 32, ptr %7558, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %109) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %109, i8 0, i64 40, i1 false)
  %7559 = add nsw i32 %7554, 2
  store i32 %7559, ptr @test_count, align 4, !tbaa !5
  %7560 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %109, i32 noundef 0) #11
  %7561 = icmp eq i32 %7560, -1
  br i1 %7561, label %7431, label %7562

7562:                                             ; preds = %7557
  %7563 = load i32, ptr @test_count, align 4, !tbaa !5
  %7564 = add nsw i32 %7563, 1
  store i32 %7564, ptr @test_count, align 4, !tbaa !5
  %7565 = load ptr, ptr %108, align 8, !tbaa !9
  %7566 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %7565, ptr noundef nonnull %109) #11
  %7567 = call zeroext i1 @s2n_result_is_ok(i32 %7566)
  br i1 %7567, label %7568, label %7459

7568:                                             ; preds = %7562
  call void @llvm.lifetime.start.p0(i64 258, ptr nonnull %110) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(258) %110, i8 0, i64 258, i1 false)
  %7569 = load i32, ptr @test_count, align 4, !tbaa !5
  %7570 = add nsw i32 %7569, 1
  store i32 %7570, ptr @test_count, align 4, !tbaa !5
  %7571 = call i32 @s2n_recv_supported_sig_scheme_list(ptr noundef nonnull %109, ptr noundef nonnull %110) #11
  %7572 = icmp eq i32 %7571, -1
  br i1 %7572, label %7486, label %7573

7573:                                             ; preds = %7568
  %7574 = load i32, ptr @test_count, align 4, !tbaa !5
  %7575 = add nsw i32 %7574, 1
  store i32 %7575, ptr @test_count, align 4, !tbaa !5
  %7576 = load i32, ptr %7397, align 4, !tbaa !52
  %7577 = load i32, ptr %7398, align 8, !tbaa !53
  %7578 = icmp eq i32 %7576, %7577
  br i1 %7578, label %.preheader1311.1, label %7529

.preheader1311.1:                                 ; preds = %7573
  %7579 = load i8, ptr %7399, align 2, !tbaa !56
  %7580 = zext i8 %7579 to i64
  %.not1369.1 = icmp eq i8 %7579, 0
  br i1 %.not1369.1, label %._crit_edge1337.1, label %.lr.ph.us.preheader.1

.lr.ph.us.preheader.1:                            ; preds = %.preheader1311.1
  %wide.trip.count.1 = zext i8 %7579 to i64
  br label %.lr.ph.us.1

.lr.ph.us.1:                                      ; preds = %._crit_edge.us.1, %.lr.ph.us.preheader.1
  %.09501335.us.1 = phi i64 [ %7593, %._crit_edge.us.1 ], [ 0, %.lr.ph.us.preheader.1 ]
  %test_count.promoted132713331334.us.1 = phi i32 [ %test_count.promoted13271331.us.1, %._crit_edge.us.1 ], [ %7575, %.lr.ph.us.preheader.1 ]
  %7581 = getelementptr inbounds [128 x i16], ptr %110, i64 0, i64 %.09501335.us.1
  %7582 = load i16, ptr %7581, align 2, !tbaa !51
  br label %7583

7583:                                             ; preds = %7591, %.lr.ph.us.1
  %indvars.iv.1 = phi i64 [ 0, %.lr.ph.us.1 ], [ %indvars.iv.next.1, %7591 ]
  %test_count.promoted13271332.us.1 = phi i32 [ %test_count.promoted132713331334.us.1, %.lr.ph.us.1 ], [ %test_count.promoted13271331.us.1, %7591 ]
  %7584 = phi i32 [ %test_count.promoted132713331334.us.1, %.lr.ph.us.1 ], [ %7592, %7591 ]
  %7585 = icmp eq i64 %.09501335.us.1, %indvars.iv.1
  br i1 %7585, label %7591, label %7586

7586:                                             ; preds = %7583
  %7587 = getelementptr inbounds [128 x i16], ptr %110, i64 0, i64 %indvars.iv.1
  %7588 = load i16, ptr %7587, align 2, !tbaa !51
  %7589 = add nsw i32 %7584, 1
  store i32 %7589, ptr @test_count, align 4, !tbaa !5
  %7590 = icmp eq i16 %7582, %7588
  br i1 %7590, label %.split.us, label %7591

7591:                                             ; preds = %7586, %7583
  %test_count.promoted13271331.us.1 = phi i32 [ %7589, %7586 ], [ %test_count.promoted13271332.us.1, %7583 ]
  %7592 = phi i32 [ %7589, %7586 ], [ %7584, %7583 ]
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv.1, 1
  %exitcond1388.1.not = icmp eq i64 %indvars.iv.next.1, %wide.trip.count.1
  br i1 %exitcond1388.1.not, label %._crit_edge.us.1, label %7583, !llvm.loop !75

._crit_edge.us.1:                                 ; preds = %7591
  %7593 = add nuw nsw i64 %.09501335.us.1, 1
  %exitcond1389.1.not = icmp eq i64 %7593, %7580
  br i1 %exitcond1389.1.not, label %._crit_edge1337.1, label %.lr.ph.us.1, !llvm.loop !76

._crit_edge1337.1:                                ; preds = %._crit_edge.us.1, %.preheader1311.1
  call void @llvm.lifetime.end.p0(i64 258, ptr nonnull %110) #11
  %7594 = call i32 @s2n_stuffer_free(ptr noundef nonnull %109) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %109) #11
  %7595 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %108) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %108) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %108) #11
  %7596 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %7596, ptr %108, align 8, !tbaa !9
  %7597 = load i32, ptr @test_count, align 4, !tbaa !5
  %7598 = add nsw i32 %7597, 1
  store i32 %7598, ptr @test_count, align 4, !tbaa !5
  %7599 = icmp eq ptr %7596, null
  br i1 %7599, label %7404, label %7600

7600:                                             ; preds = %._crit_edge1337.1
  %7601 = getelementptr inbounds i8, ptr %7596, i64 220
  store i8 33, ptr %7601, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %109) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %109, i8 0, i64 40, i1 false)
  %7602 = add nsw i32 %7597, 2
  store i32 %7602, ptr @test_count, align 4, !tbaa !5
  %7603 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %109, i32 noundef 0) #11
  %7604 = icmp eq i32 %7603, -1
  br i1 %7604, label %7431, label %7605

7605:                                             ; preds = %7600
  %7606 = load i32, ptr @test_count, align 4, !tbaa !5
  %7607 = add nsw i32 %7606, 1
  store i32 %7607, ptr @test_count, align 4, !tbaa !5
  %7608 = load ptr, ptr %108, align 8, !tbaa !9
  %7609 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %7608, ptr noundef nonnull %109) #11
  %7610 = call zeroext i1 @s2n_result_is_ok(i32 %7609)
  br i1 %7610, label %7611, label %7459

7611:                                             ; preds = %7605
  call void @llvm.lifetime.start.p0(i64 258, ptr nonnull %110) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(258) %110, i8 0, i64 258, i1 false)
  %7612 = load i32, ptr @test_count, align 4, !tbaa !5
  %7613 = add nsw i32 %7612, 1
  store i32 %7613, ptr @test_count, align 4, !tbaa !5
  %7614 = call i32 @s2n_recv_supported_sig_scheme_list(ptr noundef nonnull %109, ptr noundef nonnull %110) #11
  %7615 = icmp eq i32 %7614, -1
  br i1 %7615, label %7486, label %7616

7616:                                             ; preds = %7611
  %7617 = load i32, ptr @test_count, align 4, !tbaa !5
  %7618 = add nsw i32 %7617, 1
  store i32 %7618, ptr @test_count, align 4, !tbaa !5
  %7619 = load i32, ptr %7397, align 4, !tbaa !52
  %7620 = load i32, ptr %7398, align 8, !tbaa !53
  %7621 = icmp eq i32 %7619, %7620
  br i1 %7621, label %.preheader1311.2, label %7529

.preheader1311.2:                                 ; preds = %7616
  %7622 = load i8, ptr %7399, align 2, !tbaa !56
  %7623 = zext i8 %7622 to i64
  %.not1369.2 = icmp eq i8 %7622, 0
  br i1 %.not1369.2, label %._crit_edge1337.2, label %.lr.ph.us.preheader.2

.lr.ph.us.preheader.2:                            ; preds = %.preheader1311.2
  %wide.trip.count.2 = zext i8 %7622 to i64
  br label %.lr.ph.us.2

.lr.ph.us.2:                                      ; preds = %._crit_edge.us.2, %.lr.ph.us.preheader.2
  %.09501335.us.2 = phi i64 [ %7636, %._crit_edge.us.2 ], [ 0, %.lr.ph.us.preheader.2 ]
  %test_count.promoted132713331334.us.2 = phi i32 [ %test_count.promoted13271331.us.2, %._crit_edge.us.2 ], [ %7618, %.lr.ph.us.preheader.2 ]
  %7624 = getelementptr inbounds [128 x i16], ptr %110, i64 0, i64 %.09501335.us.2
  %7625 = load i16, ptr %7624, align 2, !tbaa !51
  br label %7626

7626:                                             ; preds = %7634, %.lr.ph.us.2
  %indvars.iv.2 = phi i64 [ 0, %.lr.ph.us.2 ], [ %indvars.iv.next.2, %7634 ]
  %test_count.promoted13271332.us.2 = phi i32 [ %test_count.promoted132713331334.us.2, %.lr.ph.us.2 ], [ %test_count.promoted13271331.us.2, %7634 ]
  %7627 = phi i32 [ %test_count.promoted132713331334.us.2, %.lr.ph.us.2 ], [ %7635, %7634 ]
  %7628 = icmp eq i64 %.09501335.us.2, %indvars.iv.2
  br i1 %7628, label %7634, label %7629

7629:                                             ; preds = %7626
  %7630 = getelementptr inbounds [128 x i16], ptr %110, i64 0, i64 %indvars.iv.2
  %7631 = load i16, ptr %7630, align 2, !tbaa !51
  %7632 = add nsw i32 %7627, 1
  store i32 %7632, ptr @test_count, align 4, !tbaa !5
  %7633 = icmp eq i16 %7625, %7631
  br i1 %7633, label %.split.us, label %7634

7634:                                             ; preds = %7629, %7626
  %test_count.promoted13271331.us.2 = phi i32 [ %7632, %7629 ], [ %test_count.promoted13271332.us.2, %7626 ]
  %7635 = phi i32 [ %7632, %7629 ], [ %7627, %7626 ]
  %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv.2, 1
  %exitcond1388.2.not = icmp eq i64 %indvars.iv.next.2, %wide.trip.count.2
  br i1 %exitcond1388.2.not, label %._crit_edge.us.2, label %7626, !llvm.loop !75

._crit_edge.us.2:                                 ; preds = %7634
  %7636 = add nuw nsw i64 %.09501335.us.2, 1
  %exitcond1389.2.not = icmp eq i64 %7636, %7623
  br i1 %exitcond1389.2.not, label %._crit_edge1337.2, label %.lr.ph.us.2, !llvm.loop !76

._crit_edge1337.2:                                ; preds = %._crit_edge.us.2, %.preheader1311.2
  call void @llvm.lifetime.end.p0(i64 258, ptr nonnull %110) #11
  %7637 = call i32 @s2n_stuffer_free(ptr noundef nonnull %109) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %109) #11
  %7638 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %108) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %108) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %111) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %111, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.pss_test_signature_schemes, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %112) #11
  store i8 2, ptr %112, align 8, !tbaa !70
  %7639 = getelementptr inbounds i8, ptr %112, i64 8
  store ptr %111, ptr %7639, align 8, !tbaa !72
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %113) #11
  %7640 = call ptr @s2n_config_new() #11
  store ptr %7640, ptr %113, align 8, !tbaa !9
  %7641 = load i32, ptr @test_count, align 4, !tbaa !5
  %7642 = add nsw i32 %7641, 1
  store i32 %7642, ptr @test_count, align 4, !tbaa !5
  %7643 = load ptr, ptr %3, align 8, !tbaa !9
  %7644 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %7640, ptr noundef %7643) #11
  %7645 = icmp eq i32 %7644, -1
  br i1 %7645, label %7667, label %7689

.split.us:                                        ; preds = %7521, %7586, %7629
  %7646 = load i32, ptr %3231, align 4, !tbaa !5
  %7647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7648 = call i32 @s2n_print_stacktrace(ptr noundef %7647) #11
  %7649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7650 = trunc nuw i8 %7649 to i1
  br i1 %7650, label %7651, label %7655

7651:                                             ; preds = %.split.us
  %7652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7653 = call i32 @fileno(ptr noundef %7652) #11
  %7654 = call i32 @isatty(i32 noundef %7653) #11
  %.not1214 = icmp eq i32 %7654, 0
  br i1 %.not1214, label %7655, label %7656

7655:                                             ; preds = %7651, %.split.us
  br label %7656

7656:                                             ; preds = %7651, %7655
  %.str.5.sink3739 = phi ptr [ @.str.5, %7655 ], [ @.str.2, %7651 ]
  store i32 %7646, ptr %3231, align 4, !tbaa !5
  %7657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7658 = load i32, ptr @test_count, align 4, !tbaa !5
  %7659 = load i32, ptr %3177, align 4, !tbaa !5
  %7660 = call ptr @s2n_strerror(i32 noundef %7659, ptr noundef nonnull @.str.4) #11
  %7661 = load i32, ptr %3177, align 4, !tbaa !5
  %7662 = call ptr @s2n_strerror_debug(i32 noundef %7661, ptr noundef nonnull @.str.4) #11
  %7663 = load i32, ptr %3231, align 4, !tbaa !5
  %7664 = call ptr @strerror(i32 noundef %7663) #11
  %7665 = load i32, ptr %3231, align 4, !tbaa !5
  %7666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7657, ptr noundef nonnull %.str.5.sink3739, i32 noundef %7658, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 1108, ptr noundef %7660, ptr noundef %7662, ptr noundef %7664, i32 noundef %7665) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7667:                                             ; preds = %._crit_edge1337.2
  %7668 = load i32, ptr %3231, align 4, !tbaa !5
  %7669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7670 = call i32 @s2n_print_stacktrace(ptr noundef %7669) #11
  %7671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7672 = trunc nuw i8 %7671 to i1
  br i1 %7672, label %7673, label %7677

7673:                                             ; preds = %7667
  %7674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7675 = call i32 @fileno(ptr noundef %7674) #11
  %7676 = call i32 @isatty(i32 noundef %7675) #11
  %.not1211 = icmp eq i32 %7676, 0
  br i1 %.not1211, label %7677, label %7678

7677:                                             ; preds = %7673, %7667
  br label %7678

7678:                                             ; preds = %7673, %7677
  %.str.5.sink3748 = phi ptr [ @.str.5, %7677 ], [ @.str.2, %7673 ]
  store i32 %7668, ptr %3231, align 4, !tbaa !5
  %7679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7680 = load i32, ptr @test_count, align 4, !tbaa !5
  %7681 = load i32, ptr %3177, align 4, !tbaa !5
  %7682 = call ptr @s2n_strerror(i32 noundef %7681, ptr noundef nonnull @.str.4) #11
  %7683 = load i32, ptr %3177, align 4, !tbaa !5
  %7684 = call ptr @s2n_strerror_debug(i32 noundef %7683, ptr noundef nonnull @.str.4) #11
  %7685 = load i32, ptr %3231, align 4, !tbaa !5
  %7686 = call ptr @strerror(i32 noundef %7685) #11
  %7687 = load i32, ptr %3231, align 4, !tbaa !5
  %7688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7679, ptr noundef nonnull %.str.5.sink3748, i32 noundef %7680, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 1126, ptr noundef %7682, ptr noundef %7684, ptr noundef %7686, i32 noundef %7687) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7689:                                             ; preds = %._crit_edge1337.2
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %114) #11
  %7690 = call ptr @s2n_fetch_default_config() #11
  %7691 = getelementptr inbounds i8, ptr %7690, i64 96
  %7692 = load ptr, ptr %7691, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %114, ptr noundef nonnull align 8 dereferenceable(64) %7692, i64 64, i1 false), !tbaa.struct !22
  %7693 = getelementptr inbounds i8, ptr %114, i64 24
  store ptr %112, ptr %7693, align 8, !tbaa !24
  %7694 = load ptr, ptr %113, align 8, !tbaa !9
  %7695 = getelementptr inbounds i8, ptr %7694, i64 96
  store ptr %114, ptr %7695, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %115) #11
  %7696 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %7696, ptr %115, align 8, !tbaa !9
  %7697 = getelementptr inbounds i8, ptr %7696, i64 232
  %7698 = load ptr, ptr %7697, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %7698, align 8, !tbaa !61
  %7699 = load ptr, ptr %115, align 8, !tbaa !9
  %7700 = getelementptr inbounds i8, ptr %7699, i64 220
  store i8 34, ptr %7700, align 4, !tbaa !50
  %7701 = load i32, ptr @test_count, align 4, !tbaa !5
  %7702 = add nsw i32 %7701, 1
  store i32 %7702, ptr @test_count, align 4, !tbaa !5
  %7703 = load ptr, ptr %113, align 8, !tbaa !9
  %7704 = call i32 @s2n_connection_set_config(ptr noundef %7699, ptr noundef %7703) #11
  %7705 = icmp eq i32 %7704, -1
  br i1 %7705, label %7706, label %7728

7706:                                             ; preds = %7689
  %7707 = load i32, ptr %3231, align 4, !tbaa !5
  %7708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7709 = call i32 @s2n_print_stacktrace(ptr noundef %7708) #11
  %7710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7711 = trunc nuw i8 %7710 to i1
  br i1 %7711, label %7712, label %7716

7712:                                             ; preds = %7706
  %7713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7714 = call i32 @fileno(ptr noundef %7713) #11
  %7715 = call i32 @isatty(i32 noundef %7714) #11
  %.not1210 = icmp eq i32 %7715, 0
  br i1 %.not1210, label %7716, label %7717

7716:                                             ; preds = %7712, %7706
  br label %7717

7717:                                             ; preds = %7712, %7716
  %.str.5.sink3757 = phi ptr [ @.str.5, %7716 ], [ @.str.2, %7712 ]
  store i32 %7707, ptr %3231, align 4, !tbaa !5
  %7718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7719 = load i32, ptr @test_count, align 4, !tbaa !5
  %7720 = load i32, ptr %3177, align 4, !tbaa !5
  %7721 = call ptr @s2n_strerror(i32 noundef %7720, ptr noundef nonnull @.str.4) #11
  %7722 = load i32, ptr %3177, align 4, !tbaa !5
  %7723 = call ptr @s2n_strerror_debug(i32 noundef %7722, ptr noundef nonnull @.str.4) #11
  %7724 = load i32, ptr %3231, align 4, !tbaa !5
  %7725 = call ptr @strerror(i32 noundef %7724) #11
  %7726 = load i32, ptr %3231, align 4, !tbaa !5
  %7727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7718, ptr noundef nonnull %.str.5.sink3757, i32 noundef %7719, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 1139, ptr noundef %7721, ptr noundef %7723, ptr noundef %7725, i32 noundef %7726) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7728:                                             ; preds = %7689
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %116) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %116, i8 0, i64 40, i1 false)
  %7729 = load i32, ptr @test_count, align 4, !tbaa !5
  %7730 = add nsw i32 %7729, 1
  store i32 %7730, ptr @test_count, align 4, !tbaa !5
  %7731 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %116, i32 noundef 0) #11
  %7732 = icmp eq i32 %7731, -1
  br i1 %7732, label %7733, label %7755

7733:                                             ; preds = %7728
  %7734 = load i32, ptr %3231, align 4, !tbaa !5
  %7735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7736 = call i32 @s2n_print_stacktrace(ptr noundef %7735) #11
  %7737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7738 = trunc nuw i8 %7737 to i1
  br i1 %7738, label %7739, label %7743

7739:                                             ; preds = %7733
  %7740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7741 = call i32 @fileno(ptr noundef %7740) #11
  %7742 = call i32 @isatty(i32 noundef %7741) #11
  %.not1209 = icmp eq i32 %7742, 0
  br i1 %.not1209, label %7743, label %7744

7743:                                             ; preds = %7739, %7733
  br label %7744

7744:                                             ; preds = %7739, %7743
  %.str.5.sink3766 = phi ptr [ @.str.5, %7743 ], [ @.str.2, %7739 ]
  store i32 %7734, ptr %3231, align 4, !tbaa !5
  %7745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7746 = load i32, ptr @test_count, align 4, !tbaa !5
  %7747 = load i32, ptr %3177, align 4, !tbaa !5
  %7748 = call ptr @s2n_strerror(i32 noundef %7747, ptr noundef nonnull @.str.4) #11
  %7749 = load i32, ptr %3177, align 4, !tbaa !5
  %7750 = call ptr @s2n_strerror_debug(i32 noundef %7749, ptr noundef nonnull @.str.4) #11
  %7751 = load i32, ptr %3231, align 4, !tbaa !5
  %7752 = call ptr @strerror(i32 noundef %7751) #11
  %7753 = load i32, ptr %3231, align 4, !tbaa !5
  %7754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7745, ptr noundef nonnull %.str.5.sink3766, i32 noundef %7746, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 1142, ptr noundef %7748, ptr noundef %7750, ptr noundef %7752, i32 noundef %7753) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7755:                                             ; preds = %7728
  %7756 = load i32, ptr @test_count, align 4, !tbaa !5
  %7757 = add nsw i32 %7756, 1
  store i32 %7757, ptr @test_count, align 4, !tbaa !5
  %7758 = load ptr, ptr %115, align 8, !tbaa !9
  %7759 = call i32 @s2n_signature_algorithms_supported_list_send(ptr noundef %7758, ptr noundef nonnull %116) #11
  %7760 = call zeroext i1 @s2n_result_is_ok(i32 %7759)
  br i1 %7760, label %7783, label %7761

7761:                                             ; preds = %7755
  %7762 = load i32, ptr %3231, align 4, !tbaa !5
  %7763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7764 = call i32 @s2n_print_stacktrace(ptr noundef %7763) #11
  %7765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7766 = trunc nuw i8 %7765 to i1
  br i1 %7766, label %7767, label %7771

7767:                                             ; preds = %7761
  %7768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7769 = call i32 @fileno(ptr noundef %7768) #11
  %7770 = call i32 @isatty(i32 noundef %7769) #11
  %.not1113 = icmp eq i32 %7770, 0
  br i1 %.not1113, label %7771, label %7772

7771:                                             ; preds = %7767, %7761
  br label %7772

7772:                                             ; preds = %7767, %7771
  %.str.5.sink3775 = phi ptr [ @.str.5, %7771 ], [ @.str.2, %7767 ]
  store i32 %7762, ptr %3231, align 4, !tbaa !5
  %7773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7774 = load i32, ptr @test_count, align 4, !tbaa !5
  %7775 = load i32, ptr %3177, align 4, !tbaa !5
  %7776 = call ptr @s2n_strerror(i32 noundef %7775, ptr noundef nonnull @.str.4) #11
  %7777 = load i32, ptr %3177, align 4, !tbaa !5
  %7778 = call ptr @s2n_strerror_debug(i32 noundef %7777, ptr noundef nonnull @.str.4) #11
  %7779 = load i32, ptr %3231, align 4, !tbaa !5
  %7780 = call ptr @strerror(i32 noundef %7779) #11
  %7781 = load i32, ptr %3231, align 4, !tbaa !5
  %7782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7773, ptr noundef nonnull %.str.5.sink3775, i32 noundef %7774, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 1143, ptr noundef %7776, ptr noundef %7778, ptr noundef %7780, i32 noundef %7781) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7783:                                             ; preds = %7755
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %117) #11
  store i16 0, ptr %117, align 2, !tbaa !51
  %7784 = load i32, ptr @test_count, align 4, !tbaa !5
  %7785 = add nsw i32 %7784, 1
  store i32 %7785, ptr @test_count, align 4, !tbaa !5
  %7786 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %116, ptr noundef nonnull %117) #11
  %7787 = icmp eq i32 %7786, -1
  br i1 %7787, label %7788, label %7810

7788:                                             ; preds = %7783
  %7789 = load i32, ptr %3231, align 4, !tbaa !5
  %7790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7791 = call i32 @s2n_print_stacktrace(ptr noundef %7790) #11
  %7792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7793 = trunc nuw i8 %7792 to i1
  br i1 %7793, label %7794, label %7798

7794:                                             ; preds = %7788
  %7795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7796 = call i32 @fileno(ptr noundef %7795) #11
  %7797 = call i32 @isatty(i32 noundef %7796) #11
  %.not1208 = icmp eq i32 %7797, 0
  br i1 %.not1208, label %7798, label %7799

7798:                                             ; preds = %7794, %7788
  br label %7799

7799:                                             ; preds = %7794, %7798
  %.str.5.sink3784 = phi ptr [ @.str.5, %7798 ], [ @.str.2, %7794 ]
  store i32 %7789, ptr %3231, align 4, !tbaa !5
  %7800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7801 = load i32, ptr @test_count, align 4, !tbaa !5
  %7802 = load i32, ptr %3177, align 4, !tbaa !5
  %7803 = call ptr @s2n_strerror(i32 noundef %7802, ptr noundef nonnull @.str.4) #11
  %7804 = load i32, ptr %3177, align 4, !tbaa !5
  %7805 = call ptr @s2n_strerror_debug(i32 noundef %7804, ptr noundef nonnull @.str.4) #11
  %7806 = load i32, ptr %3231, align 4, !tbaa !5
  %7807 = call ptr @strerror(i32 noundef %7806) #11
  %7808 = load i32, ptr %3231, align 4, !tbaa !5
  %7809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7800, ptr noundef nonnull %.str.5.sink3784, i32 noundef %7801, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 1146, ptr noundef %7803, ptr noundef %7805, ptr noundef %7807, i32 noundef %7808) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7810:                                             ; preds = %7783
  %7811 = load i32, ptr @test_count, align 4, !tbaa !5
  %7812 = add nsw i32 %7811, 1
  store i32 %7812, ptr @test_count, align 4, !tbaa !5
  %7813 = load i16, ptr %117, align 2, !tbaa !51
  %7814 = zext i16 %7813 to i32
  %7815 = getelementptr inbounds i8, ptr %116, i64 28
  %7816 = load i32, ptr %7815, align 4, !tbaa !52
  %7817 = getelementptr inbounds i8, ptr %116, i64 24
  %7818 = load i32, ptr %7817, align 8, !tbaa !53
  %7819 = sub i32 %7816, %7818
  %7820 = icmp eq i32 %7819, %7814
  br i1 %7820, label %7843, label %7821

7821:                                             ; preds = %7810
  %7822 = load i32, ptr %3231, align 4, !tbaa !5
  %7823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7824 = call i32 @s2n_print_stacktrace(ptr noundef %7823) #11
  %7825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7826 = trunc nuw i8 %7825 to i1
  br i1 %7826, label %7827, label %7831

7827:                                             ; preds = %7821
  %7828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7829 = call i32 @fileno(ptr noundef %7828) #11
  %7830 = call i32 @isatty(i32 noundef %7829) #11
  %.not1114 = icmp eq i32 %7830, 0
  br i1 %.not1114, label %7831, label %7832

7831:                                             ; preds = %7827, %7821
  br label %7832

7832:                                             ; preds = %7827, %7831
  %.str.5.sink3793 = phi ptr [ @.str.5, %7831 ], [ @.str.2, %7827 ]
  store i32 %7822, ptr %3231, align 4, !tbaa !5
  %7833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7834 = load i32, ptr @test_count, align 4, !tbaa !5
  %7835 = load i32, ptr %3177, align 4, !tbaa !5
  %7836 = call ptr @s2n_strerror(i32 noundef %7835, ptr noundef nonnull @.str.4) #11
  %7837 = load i32, ptr %3177, align 4, !tbaa !5
  %7838 = call ptr @s2n_strerror_debug(i32 noundef %7837, ptr noundef nonnull @.str.4) #11
  %7839 = load i32, ptr %3231, align 4, !tbaa !5
  %7840 = call ptr @strerror(i32 noundef %7839) #11
  %7841 = load i32, ptr %3231, align 4, !tbaa !5
  %7842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7833, ptr noundef nonnull %.str.5.sink3793, i32 noundef %7834, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 1147, ptr noundef %7836, ptr noundef %7838, ptr noundef %7840, i32 noundef %7841) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7843:                                             ; preds = %7810
  %7844 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported() #11
  br i1 %7844, label %7845, label %7872

7845:                                             ; preds = %7843
  %7846 = load i32, ptr @test_count, align 4, !tbaa !5
  %7847 = add nsw i32 %7846, 1
  store i32 %7847, ptr @test_count, align 4, !tbaa !5
  %7848 = load i16, ptr %117, align 2, !tbaa !51
  %7849 = icmp eq i16 %7848, 4
  br i1 %7849, label %7925, label %7850

7850:                                             ; preds = %7845
  %7851 = load i32, ptr %3231, align 4, !tbaa !5
  %7852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7853 = call i32 @s2n_print_stacktrace(ptr noundef %7852) #11
  %7854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7855 = trunc nuw i8 %7854 to i1
  br i1 %7855, label %7856, label %7860

7856:                                             ; preds = %7850
  %7857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7858 = call i32 @fileno(ptr noundef %7857) #11
  %7859 = call i32 @isatty(i32 noundef %7858) #11
  %.not1117 = icmp eq i32 %7859, 0
  br i1 %.not1117, label %7860, label %7861

7860:                                             ; preds = %7856, %7850
  br label %7861

7861:                                             ; preds = %7856, %7860
  %.str.5.sink3802 = phi ptr [ @.str.5, %7860 ], [ @.str.2, %7856 ]
  store i32 %7851, ptr %3231, align 4, !tbaa !5
  %7862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7863 = load i32, ptr @test_count, align 4, !tbaa !5
  %7864 = load i32, ptr %3177, align 4, !tbaa !5
  %7865 = call ptr @s2n_strerror(i32 noundef %7864, ptr noundef nonnull @.str.4) #11
  %7866 = load i32, ptr %3177, align 4, !tbaa !5
  %7867 = call ptr @s2n_strerror_debug(i32 noundef %7866, ptr noundef nonnull @.str.4) #11
  %7868 = load i32, ptr %3231, align 4, !tbaa !5
  %7869 = call ptr @strerror(i32 noundef %7868) #11
  %7870 = load i32, ptr %3231, align 4, !tbaa !5
  %7871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7862, ptr noundef nonnull %.str.5.sink3802, i32 noundef %7863, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 1149, ptr noundef %7865, ptr noundef %7867, ptr noundef %7869, i32 noundef %7870) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7872:                                             ; preds = %7843
  %7873 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported() #11
  %7874 = load i32, ptr @test_count, align 4, !tbaa !5
  %7875 = add nsw i32 %7874, 1
  store i32 %7875, ptr @test_count, align 4, !tbaa !5
  %7876 = load i16, ptr %117, align 2, !tbaa !51
  br i1 %7873, label %7877, label %7901

7877:                                             ; preds = %7872
  %7878 = icmp eq i16 %7876, 2
  br i1 %7878, label %7925, label %7879

7879:                                             ; preds = %7877
  %7880 = load i32, ptr %3231, align 4, !tbaa !5
  %7881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7882 = call i32 @s2n_print_stacktrace(ptr noundef %7881) #11
  %7883 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7884 = trunc nuw i8 %7883 to i1
  br i1 %7884, label %7885, label %7889

7885:                                             ; preds = %7879
  %7886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7887 = call i32 @fileno(ptr noundef %7886) #11
  %7888 = call i32 @isatty(i32 noundef %7887) #11
  %.not1116 = icmp eq i32 %7888, 0
  br i1 %.not1116, label %7889, label %7890

7889:                                             ; preds = %7885, %7879
  br label %7890

7890:                                             ; preds = %7885, %7889
  %.str.5.sink3811 = phi ptr [ @.str.5, %7889 ], [ @.str.2, %7885 ]
  store i32 %7880, ptr %3231, align 4, !tbaa !5
  %7891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7892 = load i32, ptr @test_count, align 4, !tbaa !5
  %7893 = load i32, ptr %3177, align 4, !tbaa !5
  %7894 = call ptr @s2n_strerror(i32 noundef %7893, ptr noundef nonnull @.str.4) #11
  %7895 = load i32, ptr %3177, align 4, !tbaa !5
  %7896 = call ptr @s2n_strerror_debug(i32 noundef %7895, ptr noundef nonnull @.str.4) #11
  %7897 = load i32, ptr %3231, align 4, !tbaa !5
  %7898 = call ptr @strerror(i32 noundef %7897) #11
  %7899 = load i32, ptr %3231, align 4, !tbaa !5
  %7900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7891, ptr noundef nonnull %.str.5.sink3811, i32 noundef %7892, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 1151, ptr noundef %7894, ptr noundef %7896, ptr noundef %7898, i32 noundef %7899) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7901:                                             ; preds = %7872
  %7902 = icmp eq i16 %7876, 0
  br i1 %7902, label %7925, label %7903

7903:                                             ; preds = %7901
  %7904 = load i32, ptr %3231, align 4, !tbaa !5
  %7905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7906 = call i32 @s2n_print_stacktrace(ptr noundef %7905) #11
  %7907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7908 = trunc nuw i8 %7907 to i1
  br i1 %7908, label %7909, label %7913

7909:                                             ; preds = %7903
  %7910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7911 = call i32 @fileno(ptr noundef %7910) #11
  %7912 = call i32 @isatty(i32 noundef %7911) #11
  %.not1115 = icmp eq i32 %7912, 0
  br i1 %.not1115, label %7913, label %7914

7913:                                             ; preds = %7909, %7903
  br label %7914

7914:                                             ; preds = %7909, %7913
  %.str.5.sink3820 = phi ptr [ @.str.5, %7913 ], [ @.str.2, %7909 ]
  store i32 %7904, ptr %3231, align 4, !tbaa !5
  %7915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7916 = load i32, ptr @test_count, align 4, !tbaa !5
  %7917 = load i32, ptr %3177, align 4, !tbaa !5
  %7918 = call ptr @s2n_strerror(i32 noundef %7917, ptr noundef nonnull @.str.4) #11
  %7919 = load i32, ptr %3177, align 4, !tbaa !5
  %7920 = call ptr @s2n_strerror_debug(i32 noundef %7919, ptr noundef nonnull @.str.4) #11
  %7921 = load i32, ptr %3231, align 4, !tbaa !5
  %7922 = call ptr @strerror(i32 noundef %7921) #11
  %7923 = load i32, ptr %3231, align 4, !tbaa !5
  %7924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7915, ptr noundef nonnull %.str.5.sink3820, i32 noundef %7916, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 1153, ptr noundef %7918, ptr noundef %7920, ptr noundef %7922, i32 noundef %7923) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7925:                                             ; preds = %7877, %7901, %7845
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %117) #11
  %7926 = call i32 @s2n_stuffer_free(ptr noundef nonnull %116) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %116) #11
  %7927 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %115) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %118) #11
  %7928 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %7928, ptr %118, align 8, !tbaa !9
  %7929 = getelementptr inbounds i8, ptr %7928, i64 232
  %7930 = load ptr, ptr %7929, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %7930, align 8, !tbaa !61
  %7931 = load ptr, ptr %118, align 8, !tbaa !9
  %7932 = getelementptr inbounds i8, ptr %7931, i64 220
  store i8 34, ptr %7932, align 4, !tbaa !50
  %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 = load ptr, ptr %113, align 8, !tbaa !9
  %7936 = call i32 @s2n_connection_set_config(ptr noundef %7931, ptr noundef %7935) #11
  %7937 = icmp eq i32 %7936, -1
  br i1 %7937, label %7938, label %7960

7938:                                             ; preds = %7925
  %7939 = load i32, ptr %3231, align 4, !tbaa !5
  %7940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7941 = call i32 @s2n_print_stacktrace(ptr noundef %7940) #11
  %7942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7943 = trunc nuw i8 %7942 to i1
  br i1 %7943, label %7944, label %7948

7944:                                             ; preds = %7938
  %7945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7946 = call i32 @fileno(ptr noundef %7945) #11
  %7947 = call i32 @isatty(i32 noundef %7946) #11
  %.not1207 = icmp eq i32 %7947, 0
  br i1 %.not1207, label %7948, label %7949

7948:                                             ; preds = %7944, %7938
  br label %7949

7949:                                             ; preds = %7944, %7948
  %.str.5.sink3829 = phi ptr [ @.str.5, %7948 ], [ @.str.2, %7944 ]
  store i32 %7939, ptr %3231, align 4, !tbaa !5
  %7950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7951 = load i32, ptr @test_count, align 4, !tbaa !5
  %7952 = load i32, ptr %3177, align 4, !tbaa !5
  %7953 = call ptr @s2n_strerror(i32 noundef %7952, ptr noundef nonnull @.str.4) #11
  %7954 = load i32, ptr %3177, align 4, !tbaa !5
  %7955 = call ptr @s2n_strerror_debug(i32 noundef %7954, ptr noundef nonnull @.str.4) #11
  %7956 = load i32, ptr %3231, align 4, !tbaa !5
  %7957 = call ptr @strerror(i32 noundef %7956) #11
  %7958 = load i32, ptr %3231, align 4, !tbaa !5
  %7959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7950, ptr noundef nonnull %.str.5.sink3829, i32 noundef %7951, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 1164, ptr noundef %7953, ptr noundef %7955, ptr noundef %7957, i32 noundef %7958) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7960:                                             ; preds = %7925
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %119) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %119, i8 0, i64 40, i1 false)
  %7961 = load i32, ptr @test_count, align 4, !tbaa !5
  %7962 = add nsw i32 %7961, 1
  store i32 %7962, ptr @test_count, align 4, !tbaa !5
  %7963 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %119, i32 noundef 0) #11
  %7964 = icmp eq i32 %7963, -1
  br i1 %7964, label %7965, label %7987

7965:                                             ; preds = %7960
  %7966 = load i32, ptr %3231, align 4, !tbaa !5
  %7967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7968 = call i32 @s2n_print_stacktrace(ptr noundef %7967) #11
  %7969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7970 = trunc nuw i8 %7969 to i1
  br i1 %7970, label %7971, label %7975

7971:                                             ; preds = %7965
  %7972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7973 = call i32 @fileno(ptr noundef %7972) #11
  %7974 = call i32 @isatty(i32 noundef %7973) #11
  %.not1206 = icmp eq i32 %7974, 0
  br i1 %.not1206, label %7975, label %7976

7975:                                             ; preds = %7971, %7965
  br label %7976

7976:                                             ; preds = %7971, %7975
  %.str.5.sink3838 = phi ptr [ @.str.5, %7975 ], [ @.str.2, %7971 ]
  store i32 %7966, ptr %3231, align 4, !tbaa !5
  %7977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7978 = load i32, ptr @test_count, align 4, !tbaa !5
  %7979 = load i32, ptr %3177, align 4, !tbaa !5
  %7980 = call ptr @s2n_strerror(i32 noundef %7979, ptr noundef nonnull @.str.4) #11
  %7981 = load i32, ptr %3177, align 4, !tbaa !5
  %7982 = call ptr @s2n_strerror_debug(i32 noundef %7981, ptr noundef nonnull @.str.4) #11
  %7983 = load i32, ptr %3231, align 4, !tbaa !5
  %7984 = call ptr @strerror(i32 noundef %7983) #11
  %7985 = load i32, ptr %3231, align 4, !tbaa !5
  %7986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7977, ptr noundef nonnull %.str.5.sink3838, i32 noundef %7978, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 1167, ptr noundef %7980, ptr noundef %7982, ptr noundef %7984, i32 noundef %7985) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7987:                                             ; preds = %7960
  %7988 = load i32, ptr @test_count, align 4, !tbaa !5
  %7989 = add nsw i32 %7988, 1
  store i32 %7989, ptr @test_count, align 4, !tbaa !5
  %7990 = load i16, ptr @s2n_rsa_pss_rsae_sha256, align 8, !tbaa !54
  %7991 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %119, i16 noundef zeroext %7990) #11
  %7992 = icmp eq i32 %7991, -1
  br i1 %7992, label %7993, label %8015

7993:                                             ; preds = %7987
  %7994 = load i32, ptr %3231, align 4, !tbaa !5
  %7995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7996 = call i32 @s2n_print_stacktrace(ptr noundef %7995) #11
  %7997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7998 = trunc nuw i8 %7997 to i1
  br i1 %7998, label %7999, label %8003

7999:                                             ; preds = %7993
  %8000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8001 = call i32 @fileno(ptr noundef %8000) #11
  %8002 = call i32 @isatty(i32 noundef %8001) #11
  %.not1205 = icmp eq i32 %8002, 0
  br i1 %.not1205, label %8003, label %8004

8003:                                             ; preds = %7999, %7993
  br label %8004

8004:                                             ; preds = %7999, %8003
  %.str.5.sink3847 = phi ptr [ @.str.5, %8003 ], [ @.str.2, %7999 ]
  store i32 %7994, ptr %3231, align 4, !tbaa !5
  %8005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8006 = load i32, ptr @test_count, align 4, !tbaa !5
  %8007 = load i32, ptr %3177, align 4, !tbaa !5
  %8008 = call ptr @s2n_strerror(i32 noundef %8007, ptr noundef nonnull @.str.4) #11
  %8009 = load i32, ptr %3177, align 4, !tbaa !5
  %8010 = call ptr @s2n_strerror_debug(i32 noundef %8009, ptr noundef nonnull @.str.4) #11
  %8011 = load i32, ptr %3231, align 4, !tbaa !5
  %8012 = call ptr @strerror(i32 noundef %8011) #11
  %8013 = load i32, ptr %3231, align 4, !tbaa !5
  %8014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8005, ptr noundef nonnull %.str.5.sink3847, i32 noundef %8006, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 1168, ptr noundef %8008, ptr noundef %8010, ptr noundef %8012, i32 noundef %8013) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8015:                                             ; preds = %7987
  %8016 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported() #11
  %8017 = load i32, ptr @test_count, align 4, !tbaa !5
  %8018 = add nsw i32 %8017, 1
  store i32 %8018, ptr @test_count, align 4, !tbaa !5
  %8019 = load ptr, ptr %118, align 8, !tbaa !9
  %8020 = call i32 @s2n_signature_algorithm_recv(ptr noundef %8019, ptr noundef nonnull %119) #11
  br i1 %8016, label %8021, label %8074

8021:                                             ; preds = %8015
  %8022 = call zeroext i1 @s2n_result_is_ok(i32 %8020)
  br i1 %8022, label %8045, label %8023

8023:                                             ; preds = %8021
  %8024 = load i32, ptr %3231, align 4, !tbaa !5
  %8025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8026 = call i32 @s2n_print_stacktrace(ptr noundef %8025) #11
  %8027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8028 = trunc nuw i8 %8027 to i1
  br i1 %8028, label %8029, label %8033

8029:                                             ; preds = %8023
  %8030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8031 = call i32 @fileno(ptr noundef %8030) #11
  %8032 = call i32 @isatty(i32 noundef %8031) #11
  %.not1121 = icmp eq i32 %8032, 0
  br i1 %.not1121, label %8033, label %8034

8033:                                             ; preds = %8029, %8023
  br label %8034

8034:                                             ; preds = %8029, %8033
  %.str.5.sink3856 = phi ptr [ @.str.5, %8033 ], [ @.str.2, %8029 ]
  store i32 %8024, ptr %3231, align 4, !tbaa !5
  %8035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8036 = load i32, ptr @test_count, align 4, !tbaa !5
  %8037 = load i32, ptr %3177, align 4, !tbaa !5
  %8038 = call ptr @s2n_strerror(i32 noundef %8037, ptr noundef nonnull @.str.4) #11
  %8039 = load i32, ptr %3177, align 4, !tbaa !5
  %8040 = call ptr @s2n_strerror_debug(i32 noundef %8039, ptr noundef nonnull @.str.4) #11
  %8041 = load i32, ptr %3231, align 4, !tbaa !5
  %8042 = call ptr @strerror(i32 noundef %8041) #11
  %8043 = load i32, ptr %3231, align 4, !tbaa !5
  %8044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8035, ptr noundef nonnull %.str.5.sink3856, i32 noundef %8036, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 1171, ptr noundef %8038, ptr noundef %8040, ptr noundef %8042, i32 noundef %8043) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8045:                                             ; preds = %8021
  %8046 = load i32, ptr @test_count, align 4, !tbaa !5
  %8047 = add nsw i32 %8046, 1
  store i32 %8047, ptr @test_count, align 4, !tbaa !5
  %8048 = load ptr, ptr %118, align 8, !tbaa !9
  %8049 = getelementptr inbounds i8, ptr %8048, i64 1528
  %8050 = load ptr, ptr %8049, align 8, !tbaa !66
  %8051 = icmp eq ptr %8050, @s2n_rsa_pss_rsae_sha256
  br i1 %8051, label %8152, label %8052

8052:                                             ; preds = %8045
  %8053 = load i32, ptr %3231, align 4, !tbaa !5
  %8054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8055 = call i32 @s2n_print_stacktrace(ptr noundef %8054) #11
  %8056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8057 = trunc nuw i8 %8056 to i1
  br i1 %8057, label %8058, label %8062

8058:                                             ; preds = %8052
  %8059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8060 = call i32 @fileno(ptr noundef %8059) #11
  %8061 = call i32 @isatty(i32 noundef %8060) #11
  %.not1122 = icmp eq i32 %8061, 0
  br i1 %.not1122, label %8062, label %8063

8062:                                             ; preds = %8058, %8052
  br label %8063

8063:                                             ; preds = %8058, %8062
  %.str.5.sink3865 = phi ptr [ @.str.5, %8062 ], [ @.str.2, %8058 ]
  store i32 %8053, ptr %3231, align 4, !tbaa !5
  %8064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8065 = load i32, ptr @test_count, align 4, !tbaa !5
  %8066 = load i32, ptr %3177, align 4, !tbaa !5
  %8067 = call ptr @s2n_strerror(i32 noundef %8066, ptr noundef nonnull @.str.4) #11
  %8068 = load i32, ptr %3177, align 4, !tbaa !5
  %8069 = call ptr @s2n_strerror_debug(i32 noundef %8068, ptr noundef nonnull @.str.4) #11
  %8070 = load i32, ptr %3231, align 4, !tbaa !5
  %8071 = call ptr @strerror(i32 noundef %8070) #11
  %8072 = load i32, ptr %3231, align 4, !tbaa !5
  %8073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8064, ptr noundef nonnull %.str.5.sink3865, i32 noundef %8065, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 1172, ptr noundef %8067, ptr noundef %8069, ptr noundef %8071, i32 noundef %8072) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8074:                                             ; preds = %8015
  %8075 = call zeroext i1 @s2n_result_is_error(i32 %8020)
  br i1 %8075, label %8098, label %8076

8076:                                             ; preds = %8074
  %8077 = load i32, ptr %3231, align 4, !tbaa !5
  %8078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8079 = call i32 @s2n_print_stacktrace(ptr noundef %8078) #11
  %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) #11
  %8085 = call i32 @isatty(i32 noundef %8084) #11
  %.not1118 = icmp eq i32 %8085, 0
  br i1 %.not1118, label %8086, label %8087

8086:                                             ; preds = %8082, %8076
  br label %8087

8087:                                             ; preds = %8082, %8086
  %.str.5.sink3874 = phi ptr [ @.str.5, %8086 ], [ @.str.2, %8082 ]
  store i32 %8077, ptr %3231, 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 %3177, align 4, !tbaa !5
  %8091 = call ptr @s2n_strerror(i32 noundef %8090, ptr noundef nonnull @.str.4) #11
  %8092 = load i32, ptr %3177, align 4, !tbaa !5
  %8093 = call ptr @s2n_strerror_debug(i32 noundef %8092, ptr noundef nonnull @.str.4) #11
  %8094 = load i32, ptr %3231, align 4, !tbaa !5
  %8095 = call ptr @strerror(i32 noundef %8094) #11
  %8096 = load i32, ptr %3231, align 4, !tbaa !5
  %8097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8088, ptr noundef nonnull %.str.5.sink3874, i32 noundef %8089, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 1175, ptr noundef %8091, ptr noundef %8093, ptr noundef %8095, i32 noundef %8096) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8098:                                             ; preds = %8074
  %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 i32, ptr %3177, align 4, !tbaa !5
  %8102 = icmp eq i32 %8101, 335544348
  br i1 %8102, label %8125, label %8103

8103:                                             ; preds = %8098
  %8104 = load i32, ptr %3231, align 4, !tbaa !5
  %8105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8106 = call i32 @s2n_print_stacktrace(ptr noundef %8105) #11
  %8107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8108 = trunc nuw i8 %8107 to i1
  br i1 %8108, label %8109, label %8113

8109:                                             ; preds = %8103
  %8110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8111 = call i32 @fileno(ptr noundef %8110) #11
  %8112 = call i32 @isatty(i32 noundef %8111) #11
  %.not1119 = icmp eq i32 %8112, 0
  br i1 %.not1119, label %8113, label %8114

8113:                                             ; preds = %8109, %8103
  br label %8114

8114:                                             ; preds = %8109, %8113
  %.str.5.sink3883 = phi ptr [ @.str.5, %8113 ], [ @.str.2, %8109 ]
  store i32 %8104, ptr %3231, align 4, !tbaa !5
  %8115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8116 = load i32, ptr @test_count, align 4, !tbaa !5
  %8117 = load i32, ptr %3177, align 4, !tbaa !5
  %8118 = call ptr @s2n_strerror(i32 noundef %8117, ptr noundef nonnull @.str.4) #11
  %8119 = load i32, ptr %3177, align 4, !tbaa !5
  %8120 = call ptr @s2n_strerror_debug(i32 noundef %8119, ptr noundef nonnull @.str.4) #11
  %8121 = load i32, ptr %3231, align 4, !tbaa !5
  %8122 = call ptr @strerror(i32 noundef %8121) #11
  %8123 = load i32, ptr %3231, align 4, !tbaa !5
  %8124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8115, ptr noundef nonnull %.str.5.sink3883, i32 noundef %8116, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 1175, ptr noundef %8118, ptr noundef %8120, ptr noundef %8122, i32 noundef %8123) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8125:                                             ; preds = %8098
  %8126 = add nsw i32 %8099, 2
  store i32 %8126, ptr @test_count, align 4, !tbaa !5
  %8127 = call ptr @s2n_strerror_debug(i32 noundef 335544348, ptr noundef nonnull @.str.4) #11
  %8128 = icmp eq ptr %8127, null
  br i1 %8128, label %8129, label %8151

8129:                                             ; preds = %8125
  %8130 = load i32, ptr %3231, align 4, !tbaa !5
  %8131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8132 = call i32 @s2n_print_stacktrace(ptr noundef %8131) #11
  %8133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8134 = trunc nuw i8 %8133 to i1
  br i1 %8134, label %8135, label %8139

8135:                                             ; preds = %8129
  %8136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8137 = call i32 @fileno(ptr noundef %8136) #11
  %8138 = call i32 @isatty(i32 noundef %8137) #11
  %.not1120 = icmp eq i32 %8138, 0
  br i1 %.not1120, label %8139, label %8140

8139:                                             ; preds = %8135, %8129
  br label %8140

8140:                                             ; preds = %8135, %8139
  %.str.5.sink3892 = phi ptr [ @.str.5, %8139 ], [ @.str.2, %8135 ]
  store i32 %8130, ptr %3231, align 4, !tbaa !5
  %8141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8142 = load i32, ptr @test_count, align 4, !tbaa !5
  %8143 = load i32, ptr %3177, align 4, !tbaa !5
  %8144 = call ptr @s2n_strerror(i32 noundef %8143, ptr noundef nonnull @.str.4) #11
  %8145 = load i32, ptr %3177, align 4, !tbaa !5
  %8146 = call ptr @s2n_strerror_debug(i32 noundef %8145, ptr noundef nonnull @.str.4) #11
  %8147 = load i32, ptr %3231, align 4, !tbaa !5
  %8148 = call ptr @strerror(i32 noundef %8147) #11
  %8149 = load i32, ptr %3231, align 4, !tbaa !5
  %8150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8141, ptr noundef nonnull %.str.5.sink3892, i32 noundef %8142, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 1175, ptr noundef %8144, ptr noundef %8146, ptr noundef %8148, i32 noundef %8149) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8151:                                             ; preds = %8125
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  br label %8152

8152:                                             ; preds = %8045, %8151
  %8153 = call i32 @s2n_stuffer_free(ptr noundef nonnull %119) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %119) #11
  %8154 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %118) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %118) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %120) #11
  %8155 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %8155, ptr %120, align 8, !tbaa !9
  %8156 = getelementptr inbounds i8, ptr %8155, i64 232
  %8157 = load ptr, ptr %8156, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %8157, align 8, !tbaa !61
  %8158 = load ptr, ptr %120, align 8, !tbaa !9
  %8159 = getelementptr inbounds i8, ptr %8158, i64 220
  store i8 34, ptr %8159, align 4, !tbaa !50
  %8160 = load i32, ptr @test_count, align 4, !tbaa !5
  %8161 = add nsw i32 %8160, 1
  store i32 %8161, ptr @test_count, align 4, !tbaa !5
  %8162 = load ptr, ptr %113, align 8, !tbaa !9
  %8163 = call i32 @s2n_connection_set_config(ptr noundef %8158, ptr noundef %8162) #11
  %8164 = icmp eq i32 %8163, -1
  br i1 %8164, label %8165, label %8187

8165:                                             ; preds = %8152
  %8166 = load i32, ptr %3231, align 4, !tbaa !5
  %8167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8168 = call i32 @s2n_print_stacktrace(ptr noundef %8167) #11
  %8169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8170 = trunc nuw i8 %8169 to i1
  br i1 %8170, label %8171, label %8175

8171:                                             ; preds = %8165
  %8172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8173 = call i32 @fileno(ptr noundef %8172) #11
  %8174 = call i32 @isatty(i32 noundef %8173) #11
  %.not1204 = icmp eq i32 %8174, 0
  br i1 %.not1204, label %8175, label %8176

8175:                                             ; preds = %8171, %8165
  br label %8176

8176:                                             ; preds = %8171, %8175
  %.str.5.sink3901 = phi ptr [ @.str.5, %8175 ], [ @.str.2, %8171 ]
  store i32 %8166, ptr %3231, align 4, !tbaa !5
  %8177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8178 = load i32, ptr @test_count, align 4, !tbaa !5
  %8179 = load i32, ptr %3177, align 4, !tbaa !5
  %8180 = call ptr @s2n_strerror(i32 noundef %8179, ptr noundef nonnull @.str.4) #11
  %8181 = load i32, ptr %3177, align 4, !tbaa !5
  %8182 = call ptr @s2n_strerror_debug(i32 noundef %8181, ptr noundef nonnull @.str.4) #11
  %8183 = load i32, ptr %3231, align 4, !tbaa !5
  %8184 = call ptr @strerror(i32 noundef %8183) #11
  %8185 = load i32, ptr %3231, align 4, !tbaa !5
  %8186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8177, ptr noundef nonnull %.str.5.sink3901, i32 noundef %8178, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 1186, ptr noundef %8180, ptr noundef %8182, ptr noundef %8184, i32 noundef %8185) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8187:                                             ; preds = %8152
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %121) #11
  %8188 = load i64, ptr @__const.main.schemes, align 8
  store i64 %8188, ptr %121, align 8
  %8189 = load i32, ptr @test_count, align 4, !tbaa !5
  %8190 = add nsw i32 %8189, 1
  store i32 %8190, ptr @test_count, align 4, !tbaa !5
  %8191 = load ptr, ptr %120, align 8, !tbaa !9
  %8192 = getelementptr inbounds i8, ptr %8191, i64 1268
  %8193 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %8192, ptr noundef nonnull %121, i64 noundef 1)
  %8194 = call zeroext i1 @s2n_result_is_ok(i32 %8193)
  br i1 %8194, label %8217, label %8195

8195:                                             ; preds = %8187
  %8196 = load i32, ptr %3231, align 4, !tbaa !5
  %8197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8198 = call i32 @s2n_print_stacktrace(ptr noundef %8197) #11
  %8199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8200 = trunc nuw i8 %8199 to i1
  br i1 %8200, label %8201, label %8205

8201:                                             ; preds = %8195
  %8202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8203 = call i32 @fileno(ptr noundef %8202) #11
  %8204 = call i32 @isatty(i32 noundef %8203) #11
  %.not1123 = icmp eq i32 %8204, 0
  br i1 %.not1123, label %8205, label %8206

8205:                                             ; preds = %8201, %8195
  br label %8206

8206:                                             ; preds = %8201, %8205
  %.str.5.sink3910 = phi ptr [ @.str.5, %8205 ], [ @.str.2, %8201 ]
  store i32 %8196, ptr %3231, align 4, !tbaa !5
  %8207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8208 = load i32, ptr @test_count, align 4, !tbaa !5
  %8209 = load i32, ptr %3177, align 4, !tbaa !5
  %8210 = call ptr @s2n_strerror(i32 noundef %8209, ptr noundef nonnull @.str.4) #11
  %8211 = load i32, ptr %3177, align 4, !tbaa !5
  %8212 = call ptr @s2n_strerror_debug(i32 noundef %8211, ptr noundef nonnull @.str.4) #11
  %8213 = load i32, ptr %3231, align 4, !tbaa !5
  %8214 = call ptr @strerror(i32 noundef %8213) #11
  %8215 = load i32, ptr %3231, align 4, !tbaa !5
  %8216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8207, ptr noundef nonnull %.str.5.sink3910, i32 noundef %8208, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 1190, ptr noundef %8210, ptr noundef %8212, ptr noundef %8214, i32 noundef %8215) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8217:                                             ; preds = %8187
  %8218 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported() #11
  %8219 = load i32, ptr @test_count, align 4, !tbaa !5
  %8220 = add nsw i32 %8219, 1
  store i32 %8220, ptr @test_count, align 4, !tbaa !5
  %8221 = load ptr, ptr %120, align 8, !tbaa !9
  %8222 = call i32 @s2n_signature_algorithm_select(ptr noundef %8221) #11
  br i1 %8218, label %8223, label %8276

8223:                                             ; preds = %8217
  %8224 = call zeroext i1 @s2n_result_is_ok(i32 %8222)
  br i1 %8224, label %8247, label %8225

8225:                                             ; preds = %8223
  %8226 = load i32, ptr %3231, align 4, !tbaa !5
  %8227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8228 = call i32 @s2n_print_stacktrace(ptr noundef %8227) #11
  %8229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8230 = trunc nuw i8 %8229 to i1
  br i1 %8230, label %8231, label %8235

8231:                                             ; preds = %8225
  %8232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8233 = call i32 @fileno(ptr noundef %8232) #11
  %8234 = call i32 @isatty(i32 noundef %8233) #11
  %.not1127 = icmp eq i32 %8234, 0
  br i1 %.not1127, label %8235, label %8236

8235:                                             ; preds = %8231, %8225
  br label %8236

8236:                                             ; preds = %8231, %8235
  %.str.5.sink3919 = phi ptr [ @.str.5, %8235 ], [ @.str.2, %8231 ]
  store i32 %8226, ptr %3231, align 4, !tbaa !5
  %8237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8238 = load i32, ptr @test_count, align 4, !tbaa !5
  %8239 = load i32, ptr %3177, align 4, !tbaa !5
  %8240 = call ptr @s2n_strerror(i32 noundef %8239, ptr noundef nonnull @.str.4) #11
  %8241 = load i32, ptr %3177, align 4, !tbaa !5
  %8242 = call ptr @s2n_strerror_debug(i32 noundef %8241, ptr noundef nonnull @.str.4) #11
  %8243 = load i32, ptr %3231, align 4, !tbaa !5
  %8244 = call ptr @strerror(i32 noundef %8243) #11
  %8245 = load i32, ptr %3231, align 4, !tbaa !5
  %8246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8237, ptr noundef nonnull %.str.5.sink3919, i32 noundef %8238, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 1193, ptr noundef %8240, ptr noundef %8242, ptr noundef %8244, i32 noundef %8245) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8247:                                             ; preds = %8223
  %8248 = load i32, ptr @test_count, align 4, !tbaa !5
  %8249 = add nsw i32 %8248, 1
  store i32 %8249, ptr @test_count, align 4, !tbaa !5
  %8250 = load ptr, ptr %120, align 8, !tbaa !9
  %8251 = getelementptr inbounds i8, ptr %8250, i64 1536
  %8252 = load ptr, ptr %8251, align 8, !tbaa !59
  %8253 = icmp eq ptr %8252, @s2n_rsa_pss_rsae_sha256
  br i1 %8253, label %8354, label %8254

8254:                                             ; preds = %8247
  %8255 = load i32, ptr %3231, align 4, !tbaa !5
  %8256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8257 = call i32 @s2n_print_stacktrace(ptr noundef %8256) #11
  %8258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8259 = trunc nuw i8 %8258 to i1
  br i1 %8259, label %8260, label %8264

8260:                                             ; preds = %8254
  %8261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8262 = call i32 @fileno(ptr noundef %8261) #11
  %8263 = call i32 @isatty(i32 noundef %8262) #11
  %.not1128 = icmp eq i32 %8263, 0
  br i1 %.not1128, label %8264, label %8265

8264:                                             ; preds = %8260, %8254
  br label %8265

8265:                                             ; preds = %8260, %8264
  %.str.5.sink3928 = phi ptr [ @.str.5, %8264 ], [ @.str.2, %8260 ]
  store i32 %8255, ptr %3231, align 4, !tbaa !5
  %8266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8267 = load i32, ptr @test_count, align 4, !tbaa !5
  %8268 = load i32, ptr %3177, align 4, !tbaa !5
  %8269 = call ptr @s2n_strerror(i32 noundef %8268, ptr noundef nonnull @.str.4) #11
  %8270 = load i32, ptr %3177, align 4, !tbaa !5
  %8271 = call ptr @s2n_strerror_debug(i32 noundef %8270, ptr noundef nonnull @.str.4) #11
  %8272 = load i32, ptr %3231, align 4, !tbaa !5
  %8273 = call ptr @strerror(i32 noundef %8272) #11
  %8274 = load i32, ptr %3231, align 4, !tbaa !5
  %8275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8266, ptr noundef nonnull %.str.5.sink3928, i32 noundef %8267, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 1195, ptr noundef %8269, ptr noundef %8271, ptr noundef %8273, i32 noundef %8274) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8276:                                             ; preds = %8217
  %8277 = call zeroext i1 @s2n_result_is_error(i32 %8222)
  br i1 %8277, label %8300, label %8278

8278:                                             ; preds = %8276
  %8279 = load i32, ptr %3231, align 4, !tbaa !5
  %8280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8281 = call i32 @s2n_print_stacktrace(ptr noundef %8280) #11
  %8282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8283 = trunc nuw i8 %8282 to i1
  br i1 %8283, label %8284, label %8288

8284:                                             ; preds = %8278
  %8285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8286 = call i32 @fileno(ptr noundef %8285) #11
  %8287 = call i32 @isatty(i32 noundef %8286) #11
  %.not1124 = icmp eq i32 %8287, 0
  br i1 %.not1124, label %8288, label %8289

8288:                                             ; preds = %8284, %8278
  br label %8289

8289:                                             ; preds = %8284, %8288
  %.str.5.sink3937 = phi ptr [ @.str.5, %8288 ], [ @.str.2, %8284 ]
  store i32 %8279, ptr %3231, align 4, !tbaa !5
  %8290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8291 = load i32, ptr @test_count, align 4, !tbaa !5
  %8292 = load i32, ptr %3177, align 4, !tbaa !5
  %8293 = call ptr @s2n_strerror(i32 noundef %8292, ptr noundef nonnull @.str.4) #11
  %8294 = load i32, ptr %3177, align 4, !tbaa !5
  %8295 = call ptr @s2n_strerror_debug(i32 noundef %8294, ptr noundef nonnull @.str.4) #11
  %8296 = load i32, ptr %3231, align 4, !tbaa !5
  %8297 = call ptr @strerror(i32 noundef %8296) #11
  %8298 = load i32, ptr %3231, align 4, !tbaa !5
  %8299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8290, ptr noundef nonnull %.str.5.sink3937, i32 noundef %8291, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 1199, ptr noundef %8293, ptr noundef %8295, ptr noundef %8297, i32 noundef %8298) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8300:                                             ; preds = %8276
  %8301 = load i32, ptr @test_count, align 4, !tbaa !5
  %8302 = add nsw i32 %8301, 1
  store i32 %8302, ptr @test_count, align 4, !tbaa !5
  %8303 = load i32, ptr %3177, align 4, !tbaa !5
  %8304 = icmp eq i32 %8303, 335544349
  br i1 %8304, label %8327, label %8305

8305:                                             ; preds = %8300
  %8306 = load i32, ptr %3231, align 4, !tbaa !5
  %8307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8308 = call i32 @s2n_print_stacktrace(ptr noundef %8307) #11
  %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) #11
  %8314 = call i32 @isatty(i32 noundef %8313) #11
  %.not1125 = icmp eq i32 %8314, 0
  br i1 %.not1125, label %8315, label %8316

8315:                                             ; preds = %8311, %8305
  br label %8316

8316:                                             ; preds = %8311, %8315
  %.str.5.sink3946 = phi ptr [ @.str.5, %8315 ], [ @.str.2, %8311 ]
  store i32 %8306, ptr %3231, 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 %3177, align 4, !tbaa !5
  %8320 = call ptr @s2n_strerror(i32 noundef %8319, ptr noundef nonnull @.str.4) #11
  %8321 = load i32, ptr %3177, align 4, !tbaa !5
  %8322 = call ptr @s2n_strerror_debug(i32 noundef %8321, ptr noundef nonnull @.str.4) #11
  %8323 = load i32, ptr %3231, align 4, !tbaa !5
  %8324 = call ptr @strerror(i32 noundef %8323) #11
  %8325 = load i32, ptr %3231, align 4, !tbaa !5
  %8326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8317, ptr noundef nonnull %.str.5.sink3946, i32 noundef %8318, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 1199, ptr noundef %8320, ptr noundef %8322, ptr noundef %8324, i32 noundef %8325) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8327:                                             ; preds = %8300
  %8328 = add nsw i32 %8301, 2
  store i32 %8328, ptr @test_count, align 4, !tbaa !5
  %8329 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %8330 = icmp eq ptr %8329, null
  br i1 %8330, label %8331, label %8353

8331:                                             ; preds = %8327
  %8332 = load i32, ptr %3231, align 4, !tbaa !5
  %8333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8334 = call i32 @s2n_print_stacktrace(ptr noundef %8333) #11
  %8335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8336 = trunc nuw i8 %8335 to i1
  br i1 %8336, label %8337, label %8341

8337:                                             ; preds = %8331
  %8338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8339 = call i32 @fileno(ptr noundef %8338) #11
  %8340 = call i32 @isatty(i32 noundef %8339) #11
  %.not1126 = icmp eq i32 %8340, 0
  br i1 %.not1126, label %8341, label %8342

8341:                                             ; preds = %8337, %8331
  br label %8342

8342:                                             ; preds = %8337, %8341
  %.str.5.sink3955 = phi ptr [ @.str.5, %8341 ], [ @.str.2, %8337 ]
  store i32 %8332, ptr %3231, align 4, !tbaa !5
  %8343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8344 = load i32, ptr @test_count, align 4, !tbaa !5
  %8345 = load i32, ptr %3177, align 4, !tbaa !5
  %8346 = call ptr @s2n_strerror(i32 noundef %8345, ptr noundef nonnull @.str.4) #11
  %8347 = load i32, ptr %3177, align 4, !tbaa !5
  %8348 = call ptr @s2n_strerror_debug(i32 noundef %8347, ptr noundef nonnull @.str.4) #11
  %8349 = load i32, ptr %3231, align 4, !tbaa !5
  %8350 = call ptr @strerror(i32 noundef %8349) #11
  %8351 = load i32, ptr %3231, align 4, !tbaa !5
  %8352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8343, ptr noundef nonnull %.str.5.sink3955, i32 noundef %8344, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 1199, ptr noundef %8346, ptr noundef %8348, ptr noundef %8350, i32 noundef %8351) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8353:                                             ; preds = %8327
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  br label %8354

8354:                                             ; preds = %8247, %8353
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #11
  %8355 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %120) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %122) #11
  %8356 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %8356, ptr %122, align 8, !tbaa !9
  %8357 = getelementptr inbounds i8, ptr %8356, i64 232
  %8358 = load ptr, ptr %8357, align 8, !tbaa !60
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %8358, align 8, !tbaa !61
  %8359 = load ptr, ptr %122, align 8, !tbaa !9
  %8360 = getelementptr inbounds i8, ptr %8359, i64 220
  store i8 34, ptr %8360, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %123) #11
  %8361 = load i64, ptr @__const.main.peer_schemes, align 8
  store i64 %8361, ptr %123, align 8
  %8362 = load i32, ptr @test_count, align 4, !tbaa !5
  %8363 = add nsw i32 %8362, 1
  store i32 %8363, ptr @test_count, align 4, !tbaa !5
  %8364 = getelementptr inbounds i8, ptr %8359, i64 1268
  %8365 = call i32 @s2n_test_set_peer_sig_schemes(ptr noundef nonnull %8364, ptr noundef nonnull %123, i64 noundef 1)
  %8366 = call zeroext i1 @s2n_result_is_ok(i32 %8365)
  br i1 %8366, label %8389, label %8367

8367:                                             ; preds = %8354
  %8368 = load i32, ptr %3231, align 4, !tbaa !5
  %8369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8370 = call i32 @s2n_print_stacktrace(ptr noundef %8369) #11
  %8371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8372 = trunc nuw i8 %8371 to i1
  br i1 %8372, label %8373, label %8377

8373:                                             ; preds = %8367
  %8374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8375 = call i32 @fileno(ptr noundef %8374) #11
  %8376 = call i32 @isatty(i32 noundef %8375) #11
  %.not1129 = icmp eq i32 %8376, 0
  br i1 %.not1129, label %8377, label %8378

8377:                                             ; preds = %8373, %8367
  br label %8378

8378:                                             ; preds = %8373, %8377
  %.str.5.sink3964 = phi ptr [ @.str.5, %8377 ], [ @.str.2, %8373 ]
  store i32 %8368, ptr %3231, align 4, !tbaa !5
  %8379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8380 = load i32, ptr @test_count, align 4, !tbaa !5
  %8381 = load i32, ptr %3177, align 4, !tbaa !5
  %8382 = call ptr @s2n_strerror(i32 noundef %8381, ptr noundef nonnull @.str.4) #11
  %8383 = load i32, ptr %3177, align 4, !tbaa !5
  %8384 = call ptr @s2n_strerror_debug(i32 noundef %8383, ptr noundef nonnull @.str.4) #11
  %8385 = load i32, ptr %3231, align 4, !tbaa !5
  %8386 = call ptr @strerror(i32 noundef %8385) #11
  %8387 = load i32, ptr %3231, align 4, !tbaa !5
  %8388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8379, ptr noundef nonnull %.str.5.sink3964, i32 noundef %8380, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 1215, ptr noundef %8382, ptr noundef %8384, ptr noundef %8386, i32 noundef %8387) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8389:                                             ; preds = %8354
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %124) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %124, ptr noundef nonnull align 16 dereferenceable(24) @__const.main.local_schemes, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %125) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %125, i8 0, i64 80, i1 false)
  %8390 = load i32, ptr @test_count, align 4, !tbaa !5
  %8391 = add nsw i32 %8390, 1
  store i32 %8391, ptr @test_count, align 4, !tbaa !5
  %8392 = load ptr, ptr %122, align 8, !tbaa !9
  %8393 = call i32 @s2n_test_set_local_sig_schemes(ptr noundef %8392, ptr noundef nonnull %125, ptr noundef nonnull %124, i64 noundef 3)
  %8394 = call zeroext i1 @s2n_result_is_ok(i32 %8393)
  br i1 %8394, label %8417, label %8395

8395:                                             ; preds = %8389
  %8396 = load i32, ptr %3231, align 4, !tbaa !5
  %8397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8398 = call i32 @s2n_print_stacktrace(ptr noundef %8397) #11
  %8399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8400 = trunc nuw i8 %8399 to i1
  br i1 %8400, label %8401, label %8405

8401:                                             ; preds = %8395
  %8402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8403 = call i32 @fileno(ptr noundef %8402) #11
  %8404 = call i32 @isatty(i32 noundef %8403) #11
  %.not1130 = icmp eq i32 %8404, 0
  br i1 %.not1130, label %8405, label %8406

8405:                                             ; preds = %8401, %8395
  br label %8406

8406:                                             ; preds = %8401, %8405
  %.str.5.sink3973 = phi ptr [ @.str.5, %8405 ], [ @.str.2, %8401 ]
  store i32 %8396, ptr %3231, align 4, !tbaa !5
  %8407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8408 = load i32, ptr @test_count, align 4, !tbaa !5
  %8409 = load i32, ptr %3177, align 4, !tbaa !5
  %8410 = call ptr @s2n_strerror(i32 noundef %8409, ptr noundef nonnull @.str.4) #11
  %8411 = load i32, ptr %3177, align 4, !tbaa !5
  %8412 = call ptr @s2n_strerror_debug(i32 noundef %8411, ptr noundef nonnull @.str.4) #11
  %8413 = load i32, ptr %3231, align 4, !tbaa !5
  %8414 = call ptr @strerror(i32 noundef %8413) #11
  %8415 = load i32, ptr %3231, align 4, !tbaa !5
  %8416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8407, ptr noundef nonnull %.str.5.sink3973, i32 noundef %8408, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 1225, ptr noundef %8410, ptr noundef %8412, ptr noundef %8414, i32 noundef %8415) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8417:                                             ; preds = %8389
  %8418 = load i32, ptr @test_count, align 4, !tbaa !5
  %8419 = add nsw i32 %8418, 1
  store i32 %8419, ptr @test_count, align 4, !tbaa !5
  %8420 = load ptr, ptr %122, align 8, !tbaa !9
  %8421 = call i32 @s2n_signature_algorithm_select(ptr noundef %8420) #11
  %8422 = call zeroext i1 @s2n_result_is_error(i32 %8421)
  br i1 %8422, label %8445, label %8423

8423:                                             ; preds = %8417
  %8424 = load i32, ptr %3231, align 4, !tbaa !5
  %8425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8426 = call i32 @s2n_print_stacktrace(ptr noundef %8425) #11
  %8427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8428 = trunc nuw i8 %8427 to i1
  br i1 %8428, label %8429, label %8433

8429:                                             ; preds = %8423
  %8430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8431 = call i32 @fileno(ptr noundef %8430) #11
  %8432 = call i32 @isatty(i32 noundef %8431) #11
  %.not1131 = icmp eq i32 %8432, 0
  br i1 %.not1131, label %8433, label %8434

8433:                                             ; preds = %8429, %8423
  br label %8434

8434:                                             ; preds = %8429, %8433
  %.str.5.sink3982 = phi ptr [ @.str.5, %8433 ], [ @.str.2, %8429 ]
  store i32 %8424, ptr %3231, align 4, !tbaa !5
  %8435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8436 = load i32, ptr @test_count, align 4, !tbaa !5
  %8437 = load i32, ptr %3177, align 4, !tbaa !5
  %8438 = call ptr @s2n_strerror(i32 noundef %8437, ptr noundef nonnull @.str.4) #11
  %8439 = load i32, ptr %3177, align 4, !tbaa !5
  %8440 = call ptr @s2n_strerror_debug(i32 noundef %8439, ptr noundef nonnull @.str.4) #11
  %8441 = load i32, ptr %3231, align 4, !tbaa !5
  %8442 = call ptr @strerror(i32 noundef %8441) #11
  %8443 = load i32, ptr %3231, align 4, !tbaa !5
  %8444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8435, ptr noundef nonnull %.str.5.sink3982, i32 noundef %8436, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 1230, ptr noundef %8438, ptr noundef %8440, ptr noundef %8442, i32 noundef %8443) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8445:                                             ; preds = %8417
  %8446 = load i32, ptr @test_count, align 4, !tbaa !5
  %8447 = add nsw i32 %8446, 1
  store i32 %8447, ptr @test_count, align 4, !tbaa !5
  %8448 = load i32, ptr %3177, align 4, !tbaa !5
  %8449 = icmp eq i32 %8448, 335544349
  br i1 %8449, label %8472, label %8450

8450:                                             ; preds = %8445
  %8451 = load i32, ptr %3231, align 4, !tbaa !5
  %8452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8453 = call i32 @s2n_print_stacktrace(ptr noundef %8452) #11
  %8454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8455 = trunc nuw i8 %8454 to i1
  br i1 %8455, label %8456, label %8460

8456:                                             ; preds = %8450
  %8457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8458 = call i32 @fileno(ptr noundef %8457) #11
  %8459 = call i32 @isatty(i32 noundef %8458) #11
  %.not1132 = icmp eq i32 %8459, 0
  br i1 %.not1132, label %8460, label %8461

8460:                                             ; preds = %8456, %8450
  br label %8461

8461:                                             ; preds = %8456, %8460
  %.str.5.sink3991 = phi ptr [ @.str.5, %8460 ], [ @.str.2, %8456 ]
  store i32 %8451, ptr %3231, align 4, !tbaa !5
  %8462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8463 = load i32, ptr @test_count, align 4, !tbaa !5
  %8464 = load i32, ptr %3177, align 4, !tbaa !5
  %8465 = call ptr @s2n_strerror(i32 noundef %8464, ptr noundef nonnull @.str.4) #11
  %8466 = load i32, ptr %3177, align 4, !tbaa !5
  %8467 = call ptr @s2n_strerror_debug(i32 noundef %8466, ptr noundef nonnull @.str.4) #11
  %8468 = load i32, ptr %3231, align 4, !tbaa !5
  %8469 = call ptr @strerror(i32 noundef %8468) #11
  %8470 = load i32, ptr %3231, align 4, !tbaa !5
  %8471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8462, ptr noundef nonnull %.str.5.sink3991, i32 noundef %8463, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 1230, ptr noundef %8465, ptr noundef %8467, ptr noundef %8469, i32 noundef %8470) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8472:                                             ; preds = %8445
  %8473 = add nsw i32 %8446, 2
  store i32 %8473, ptr @test_count, align 4, !tbaa !5
  %8474 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %8475 = icmp eq ptr %8474, null
  br i1 %8475, label %8476, label %8498

8476:                                             ; preds = %8472
  %8477 = load i32, ptr %3231, align 4, !tbaa !5
  %8478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8479 = call i32 @s2n_print_stacktrace(ptr noundef %8478) #11
  %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) #11
  %8485 = call i32 @isatty(i32 noundef %8484) #11
  %.not1203 = icmp eq i32 %8485, 0
  br i1 %.not1203, label %8486, label %8487

8486:                                             ; preds = %8482, %8476
  br label %8487

8487:                                             ; preds = %8482, %8486
  %.str.5.sink4000 = phi ptr [ @.str.5, %8486 ], [ @.str.2, %8482 ]
  store i32 %8477, ptr %3231, 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 %3177, align 4, !tbaa !5
  %8491 = call ptr @s2n_strerror(i32 noundef %8490, ptr noundef nonnull @.str.4) #11
  %8492 = load i32, ptr %3177, align 4, !tbaa !5
  %8493 = call ptr @s2n_strerror_debug(i32 noundef %8492, ptr noundef nonnull @.str.4) #11
  %8494 = load i32, ptr %3231, align 4, !tbaa !5
  %8495 = call ptr @strerror(i32 noundef %8494) #11
  %8496 = load i32, ptr %3231, align 4, !tbaa !5
  %8497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8488, ptr noundef nonnull %.str.5.sink4000, i32 noundef %8489, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 1230, ptr noundef %8491, ptr noundef %8493, ptr noundef %8495, i32 noundef %8496) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8498:                                             ; preds = %8472
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %8499 = load i32, ptr @test_count, align 4, !tbaa !5
  %8500 = add nsw i32 %8499, 1
  store i32 %8500, ptr @test_count, align 4, !tbaa !5
  %8501 = load ptr, ptr %122, align 8, !tbaa !9
  %8502 = load ptr, ptr %113, align 8, !tbaa !9
  %8503 = call i32 @s2n_connection_set_config(ptr noundef %8501, ptr noundef %8502) #11
  %8504 = icmp eq i32 %8503, -1
  br i1 %8504, label %8505, label %8527

8505:                                             ; preds = %8498
  %8506 = load i32, ptr %3231, align 4, !tbaa !5
  %8507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8508 = call i32 @s2n_print_stacktrace(ptr noundef %8507) #11
  %8509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8510 = trunc nuw i8 %8509 to i1
  br i1 %8510, label %8511, label %8515

8511:                                             ; preds = %8505
  %8512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8513 = call i32 @fileno(ptr noundef %8512) #11
  %8514 = call i32 @isatty(i32 noundef %8513) #11
  %.not1202 = icmp eq i32 %8514, 0
  br i1 %.not1202, label %8515, label %8516

8515:                                             ; preds = %8511, %8505
  br label %8516

8516:                                             ; preds = %8511, %8515
  %.str.5.sink4009 = phi ptr [ @.str.5, %8515 ], [ @.str.2, %8511 ]
  store i32 %8506, ptr %3231, align 4, !tbaa !5
  %8517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8518 = load i32, ptr @test_count, align 4, !tbaa !5
  %8519 = load i32, ptr %3177, align 4, !tbaa !5
  %8520 = call ptr @s2n_strerror(i32 noundef %8519, ptr noundef nonnull @.str.4) #11
  %8521 = load i32, ptr %3177, align 4, !tbaa !5
  %8522 = call ptr @s2n_strerror_debug(i32 noundef %8521, ptr noundef nonnull @.str.4) #11
  %8523 = load i32, ptr %3231, align 4, !tbaa !5
  %8524 = call ptr @strerror(i32 noundef %8523) #11
  %8525 = load i32, ptr %3231, align 4, !tbaa !5
  %8526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8517, ptr noundef nonnull %.str.5.sink4009, i32 noundef %8518, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 1233, ptr noundef %8520, ptr noundef %8522, ptr noundef %8524, i32 noundef %8525) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8527:                                             ; preds = %8498
  %8528 = call zeroext i1 (...) @s2n_is_rsa_pss_signing_supported() #11
  %8529 = load i32, ptr @test_count, align 4, !tbaa !5
  %8530 = add nsw i32 %8529, 1
  store i32 %8530, ptr @test_count, align 4, !tbaa !5
  %8531 = load ptr, ptr %122, align 8, !tbaa !9
  %8532 = call i32 @s2n_signature_algorithm_select(ptr noundef %8531) #11
  br i1 %8528, label %8533, label %8586

8533:                                             ; preds = %8527
  %8534 = call zeroext i1 @s2n_result_is_ok(i32 %8532)
  br i1 %8534, label %8557, label %8535

8535:                                             ; preds = %8533
  %8536 = load i32, ptr %3231, align 4, !tbaa !5
  %8537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8538 = call i32 @s2n_print_stacktrace(ptr noundef %8537) #11
  %8539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8540 = trunc nuw i8 %8539 to i1
  br i1 %8540, label %8541, label %8545

8541:                                             ; preds = %8535
  %8542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8543 = call i32 @fileno(ptr noundef %8542) #11
  %8544 = call i32 @isatty(i32 noundef %8543) #11
  %.not1136 = icmp eq i32 %8544, 0
  br i1 %.not1136, label %8545, label %8546

8545:                                             ; preds = %8541, %8535
  br label %8546

8546:                                             ; preds = %8541, %8545
  %.str.5.sink4018 = phi ptr [ @.str.5, %8545 ], [ @.str.2, %8541 ]
  store i32 %8536, ptr %3231, align 4, !tbaa !5
  %8547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8548 = load i32, ptr @test_count, align 4, !tbaa !5
  %8549 = load i32, ptr %3177, align 4, !tbaa !5
  %8550 = call ptr @s2n_strerror(i32 noundef %8549, ptr noundef nonnull @.str.4) #11
  %8551 = load i32, ptr %3177, align 4, !tbaa !5
  %8552 = call ptr @s2n_strerror_debug(i32 noundef %8551, ptr noundef nonnull @.str.4) #11
  %8553 = load i32, ptr %3231, align 4, !tbaa !5
  %8554 = call ptr @strerror(i32 noundef %8553) #11
  %8555 = load i32, ptr %3231, align 4, !tbaa !5
  %8556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8547, ptr noundef nonnull %.str.5.sink4018, i32 noundef %8548, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 1237, ptr noundef %8550, ptr noundef %8552, ptr noundef %8554, i32 noundef %8555) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8557:                                             ; preds = %8533
  %8558 = load i32, ptr @test_count, align 4, !tbaa !5
  %8559 = add nsw i32 %8558, 1
  store i32 %8559, ptr @test_count, align 4, !tbaa !5
  %8560 = load ptr, ptr %122, align 8, !tbaa !9
  %8561 = getelementptr inbounds i8, ptr %8560, i64 1528
  %8562 = load ptr, ptr %8561, align 8, !tbaa !66
  %8563 = icmp eq ptr %8562, @s2n_rsa_pss_rsae_sha256
  br i1 %8563, label %.preheader1310.us.preheader, label %8564

8564:                                             ; preds = %8557
  %8565 = load i32, ptr %3231, align 4, !tbaa !5
  %8566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8567 = call i32 @s2n_print_stacktrace(ptr noundef %8566) #11
  %8568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8569 = trunc nuw i8 %8568 to i1
  br i1 %8569, label %8570, label %8574

8570:                                             ; preds = %8564
  %8571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8572 = call i32 @fileno(ptr noundef %8571) #11
  %8573 = call i32 @isatty(i32 noundef %8572) #11
  %.not1137 = icmp eq i32 %8573, 0
  br i1 %.not1137, label %8574, label %8575

8574:                                             ; preds = %8570, %8564
  br label %8575

8575:                                             ; preds = %8570, %8574
  %.str.5.sink4027 = phi ptr [ @.str.5, %8574 ], [ @.str.2, %8570 ]
  store i32 %8565, ptr %3231, align 4, !tbaa !5
  %8576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8577 = load i32, ptr @test_count, align 4, !tbaa !5
  %8578 = load i32, ptr %3177, align 4, !tbaa !5
  %8579 = call ptr @s2n_strerror(i32 noundef %8578, ptr noundef nonnull @.str.4) #11
  %8580 = load i32, ptr %3177, align 4, !tbaa !5
  %8581 = call ptr @s2n_strerror_debug(i32 noundef %8580, ptr noundef nonnull @.str.4) #11
  %8582 = load i32, ptr %3231, align 4, !tbaa !5
  %8583 = call ptr @strerror(i32 noundef %8582) #11
  %8584 = load i32, ptr %3231, align 4, !tbaa !5
  %8585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8576, ptr noundef nonnull %.str.5.sink4027, i32 noundef %8577, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 1239, ptr noundef %8579, ptr noundef %8581, ptr noundef %8583, i32 noundef %8584) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8586:                                             ; preds = %8527
  %8587 = call zeroext i1 @s2n_result_is_error(i32 %8532)
  br i1 %8587, label %8610, label %8588

8588:                                             ; preds = %8586
  %8589 = load i32, ptr %3231, align 4, !tbaa !5
  %8590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8591 = call i32 @s2n_print_stacktrace(ptr noundef %8590) #11
  %8592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8593 = trunc nuw i8 %8592 to i1
  br i1 %8593, label %8594, label %8598

8594:                                             ; preds = %8588
  %8595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8596 = call i32 @fileno(ptr noundef %8595) #11
  %8597 = call i32 @isatty(i32 noundef %8596) #11
  %.not1133 = icmp eq i32 %8597, 0
  br i1 %.not1133, label %8598, label %8599

8598:                                             ; preds = %8594, %8588
  br label %8599

8599:                                             ; preds = %8594, %8598
  %.str.5.sink4036 = phi ptr [ @.str.5, %8598 ], [ @.str.2, %8594 ]
  store i32 %8589, ptr %3231, align 4, !tbaa !5
  %8600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8601 = load i32, ptr @test_count, align 4, !tbaa !5
  %8602 = load i32, ptr %3177, align 4, !tbaa !5
  %8603 = call ptr @s2n_strerror(i32 noundef %8602, ptr noundef nonnull @.str.4) #11
  %8604 = load i32, ptr %3177, align 4, !tbaa !5
  %8605 = call ptr @s2n_strerror_debug(i32 noundef %8604, ptr noundef nonnull @.str.4) #11
  %8606 = load i32, ptr %3231, align 4, !tbaa !5
  %8607 = call ptr @strerror(i32 noundef %8606) #11
  %8608 = load i32, ptr %3231, align 4, !tbaa !5
  %8609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8600, ptr noundef nonnull %.str.5.sink4036, i32 noundef %8601, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 1243, ptr noundef %8603, ptr noundef %8605, ptr noundef %8607, i32 noundef %8608) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8610:                                             ; preds = %8586
  %8611 = load i32, ptr @test_count, align 4, !tbaa !5
  %8612 = add nsw i32 %8611, 1
  store i32 %8612, ptr @test_count, align 4, !tbaa !5
  %8613 = load i32, ptr %3177, align 4, !tbaa !5
  %8614 = icmp eq i32 %8613, 335544349
  br i1 %8614, label %8637, label %8615

8615:                                             ; preds = %8610
  %8616 = load i32, ptr %3231, align 4, !tbaa !5
  %8617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8618 = call i32 @s2n_print_stacktrace(ptr noundef %8617) #11
  %8619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8620 = trunc nuw i8 %8619 to i1
  br i1 %8620, label %8621, label %8625

8621:                                             ; preds = %8615
  %8622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8623 = call i32 @fileno(ptr noundef %8622) #11
  %8624 = call i32 @isatty(i32 noundef %8623) #11
  %.not1134 = icmp eq i32 %8624, 0
  br i1 %.not1134, label %8625, label %8626

8625:                                             ; preds = %8621, %8615
  br label %8626

8626:                                             ; preds = %8621, %8625
  %.str.5.sink4045 = phi ptr [ @.str.5, %8625 ], [ @.str.2, %8621 ]
  store i32 %8616, ptr %3231, align 4, !tbaa !5
  %8627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8628 = load i32, ptr @test_count, align 4, !tbaa !5
  %8629 = load i32, ptr %3177, align 4, !tbaa !5
  %8630 = call ptr @s2n_strerror(i32 noundef %8629, ptr noundef nonnull @.str.4) #11
  %8631 = load i32, ptr %3177, align 4, !tbaa !5
  %8632 = call ptr @s2n_strerror_debug(i32 noundef %8631, ptr noundef nonnull @.str.4) #11
  %8633 = load i32, ptr %3231, align 4, !tbaa !5
  %8634 = call ptr @strerror(i32 noundef %8633) #11
  %8635 = load i32, ptr %3231, align 4, !tbaa !5
  %8636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8627, ptr noundef nonnull %.str.5.sink4045, i32 noundef %8628, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 1243, ptr noundef %8630, ptr noundef %8632, ptr noundef %8634, i32 noundef %8635) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8637:                                             ; preds = %8610
  %8638 = add nsw i32 %8611, 2
  store i32 %8638, ptr @test_count, align 4, !tbaa !5
  %8639 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %8640 = icmp eq ptr %8639, null
  br i1 %8640, label %8641, label %8663

8641:                                             ; preds = %8637
  %8642 = load i32, ptr %3231, align 4, !tbaa !5
  %8643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8644 = call i32 @s2n_print_stacktrace(ptr noundef %8643) #11
  %8645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8646 = trunc nuw i8 %8645 to i1
  br i1 %8646, label %8647, label %8651

8647:                                             ; preds = %8641
  %8648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8649 = call i32 @fileno(ptr noundef %8648) #11
  %8650 = call i32 @isatty(i32 noundef %8649) #11
  %.not1135 = icmp eq i32 %8650, 0
  br i1 %.not1135, label %8651, label %8652

8651:                                             ; preds = %8647, %8641
  br label %8652

8652:                                             ; preds = %8647, %8651
  %.str.5.sink4054 = phi ptr [ @.str.5, %8651 ], [ @.str.2, %8647 ]
  store i32 %8642, ptr %3231, align 4, !tbaa !5
  %8653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8654 = load i32, ptr @test_count, align 4, !tbaa !5
  %8655 = load i32, ptr %3177, align 4, !tbaa !5
  %8656 = call ptr @s2n_strerror(i32 noundef %8655, ptr noundef nonnull @.str.4) #11
  %8657 = load i32, ptr %3177, align 4, !tbaa !5
  %8658 = call ptr @s2n_strerror_debug(i32 noundef %8657, ptr noundef nonnull @.str.4) #11
  %8659 = load i32, ptr %3231, align 4, !tbaa !5
  %8660 = call ptr @strerror(i32 noundef %8659) #11
  %8661 = load i32, ptr %3231, align 4, !tbaa !5
  %8662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8653, ptr noundef nonnull %.str.5.sink4054, i32 noundef %8654, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 1243, ptr noundef %8656, ptr noundef %8658, ptr noundef %8660, i32 noundef %8661) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8663:                                             ; preds = %8637
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  br label %.preheader1310.us.preheader

.preheader1310.us.preheader:                      ; preds = %8557, %8663
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %125) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %124) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #11
  %8664 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %122) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %114) #11
  %8665 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %113) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %112) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %111) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %126) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %126, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.default_schemes, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %127) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %127, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.sha256_schemes, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %128) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %128, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.sha384_schemes, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %129) #11
  store i8 2, ptr %129, align 8, !tbaa !70
  %8666 = getelementptr inbounds i8, ptr %129, i64 8
  store ptr %126, ptr %8666, align 8, !tbaa !72
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %130) #11
  store i8 2, ptr %130, align 8, !tbaa !70
  %8667 = getelementptr inbounds i8, ptr %130, i64 8
  store ptr %127, ptr %8667, align 8, !tbaa !72
  %test_count.promoted1343 = load i32, ptr @test_count, align 4, !tbaa !5
  %8668 = load ptr, ptr %127, align 16, !tbaa !9
  %8669 = load i16, ptr %8668, align 8, !tbaa !54
  %8670 = add i32 %test_count.promoted1343, 2
  %8671 = add nsw i32 %test_count.promoted1343, 1
  %8672 = load ptr, ptr %126, align 16, !tbaa !9
  %8673 = load i16, ptr %8672, align 8, !tbaa !54
  %8674 = icmp eq i16 %8669, %8673
  br i1 %8674, label %.split.us1351, label %8675

8675:                                             ; preds = %.preheader1310.us.preheader
  %8676 = add nsw i32 %test_count.promoted1343, 2
  %8677 = getelementptr inbounds i8, ptr %126, i64 8
  %8678 = load ptr, ptr %8677, align 8, !tbaa !9
  %8679 = load i16, ptr %8678, align 8, !tbaa !54
  %8680 = icmp eq i16 %8669, %8679
  br i1 %8680, label %.split.us1351, label %._crit_edge.us1350

._crit_edge.us1350:                               ; preds = %8675
  store i32 %8670, ptr @test_count, align 4, !tbaa !5
  %8681 = getelementptr inbounds i8, ptr %127, i64 8
  %8682 = load ptr, ptr %8681, align 8, !tbaa !9
  %8683 = load i16, ptr %8682, align 8, !tbaa !54
  %8684 = add i32 %test_count.promoted1343, 4
  %8685 = add i32 %test_count.promoted1343, 3
  %8686 = load ptr, ptr %126, align 16, !tbaa !9
  %8687 = load i16, ptr %8686, align 8, !tbaa !54
  %8688 = icmp eq i16 %8683, %8687
  br i1 %8688, label %.split.us1351, label %8689

8689:                                             ; preds = %._crit_edge.us1350
  %8690 = add i32 %test_count.promoted1343, 4
  %8691 = getelementptr inbounds i8, ptr %126, i64 8
  %8692 = load ptr, ptr %8691, align 8, !tbaa !9
  %8693 = load i16, ptr %8692, align 8, !tbaa !54
  %8694 = icmp eq i16 %8683, %8693
  br i1 %8694, label %.split.us1351, label %.preheader1309.us.preheader

.preheader1309.us.preheader:                      ; preds = %8689
  store i32 %8684, ptr @test_count, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %131) #11
  store i8 2, ptr %131, align 8, !tbaa !70
  %8695 = getelementptr inbounds i8, ptr %131, i64 8
  store ptr %128, ptr %8695, align 8, !tbaa !72
  %8696 = load ptr, ptr %128, align 16, !tbaa !9
  %8697 = load i16, ptr %8696, align 8, !tbaa !54
  %8698 = add i32 %test_count.promoted1343, 6
  %8699 = add i32 %test_count.promoted1343, 5
  %8700 = load ptr, ptr %126, align 16, !tbaa !9
  %8701 = load i16, ptr %8700, align 8, !tbaa !54
  %8702 = icmp eq i16 %8697, %8701
  br i1 %8702, label %.split.us1364, label %8703

8703:                                             ; preds = %.preheader1309.us.preheader
  %8704 = add i32 %test_count.promoted1343, 6
  %8705 = getelementptr inbounds i8, ptr %126, i64 8
  %8706 = load ptr, ptr %8705, align 8, !tbaa !9
  %8707 = load i16, ptr %8706, align 8, !tbaa !54
  %8708 = icmp eq i16 %8697, %8707
  br i1 %8708, label %.split.us1364, label %._crit_edge.us1363

._crit_edge.us1363:                               ; preds = %8703
  store i32 %8698, ptr @test_count, align 4, !tbaa !5
  %8709 = getelementptr inbounds i8, ptr %128, i64 8
  %8710 = load ptr, ptr %8709, align 8, !tbaa !9
  %8711 = load i16, ptr %8710, align 8, !tbaa !54
  %8712 = add i32 %test_count.promoted1343, 8
  %8713 = add i32 %test_count.promoted1343, 7
  %8714 = load ptr, ptr %126, align 16, !tbaa !9
  %8715 = load i16, ptr %8714, align 8, !tbaa !54
  %8716 = icmp eq i16 %8711, %8715
  br i1 %8716, label %.split.us1364, label %8717

8717:                                             ; preds = %._crit_edge.us1363
  %8718 = add i32 %test_count.promoted1343, 8
  %8719 = getelementptr inbounds i8, ptr %126, i64 8
  %8720 = load ptr, ptr %8719, align 8, !tbaa !9
  %8721 = load i16, ptr %8720, align 8, !tbaa !54
  %8722 = icmp eq i16 %8711, %8721
  br i1 %8722, label %.split.us1364, label %._crit_edge1361

._crit_edge1361:                                  ; preds = %8717
  store i32 %8712, ptr @test_count, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %132) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %132, ptr noundef nonnull align 8 dereferenceable(64) @security_policy_20190214, i64 64, i1 false), !tbaa.struct !22
  %8723 = getelementptr inbounds i8, ptr %132, i64 24
  store ptr %129, ptr %8723, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %133) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %133, ptr noundef nonnull align 8 dereferenceable(64) @security_policy_20190214, i64 64, i1 false), !tbaa.struct !22
  %8724 = getelementptr inbounds i8, ptr %133, i64 24
  store ptr %130, ptr %8724, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %134) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %134, ptr noundef nonnull align 8 dereferenceable(64) @security_policy_20190214, i64 64, i1 false), !tbaa.struct !22
  %8725 = getelementptr inbounds i8, ptr %134, i64 24
  store ptr %131, ptr %8725, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %135) #11
  %8726 = call ptr @s2n_config_new() #11
  store ptr %8726, ptr %135, align 8, !tbaa !9
  %8727 = load i32, ptr @test_count, align 4, !tbaa !5
  %8728 = add nsw i32 %8727, 1
  store i32 %8728, ptr @test_count, align 4, !tbaa !5
  %8729 = icmp eq ptr %8726, null
  br i1 %8729, label %8772, label %8794

.split.us1351:                                    ; preds = %.preheader1310.us.preheader, %8675, %._crit_edge.us1350, %8689
  %.lcssa1377 = phi i32 [ %8685, %._crit_edge.us1350 ], [ %8690, %8689 ], [ %8671, %.preheader1310.us.preheader ], [ %8676, %8675 ]
  store i32 %.lcssa1377, ptr @test_count, align 4, !tbaa !5
  %8730 = load i32, ptr %3231, align 4, !tbaa !5
  %8731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8732 = call i32 @s2n_print_stacktrace(ptr noundef %8731) #11
  %8733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8734 = trunc nuw i8 %8733 to i1
  br i1 %8734, label %8735, label %8739

8735:                                             ; preds = %.split.us1351
  %8736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8737 = call i32 @fileno(ptr noundef %8736) #11
  %8738 = call i32 @isatty(i32 noundef %8737) #11
  %.not1201 = icmp eq i32 %8738, 0
  br i1 %.not1201, label %8739, label %8740

8739:                                             ; preds = %8735, %.split.us1351
  br label %8740

8740:                                             ; preds = %8735, %8739
  %.str.5.sink4063 = phi ptr [ @.str.5, %8739 ], [ @.str.2, %8735 ]
  store i32 %8730, ptr %3231, align 4, !tbaa !5
  %8741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8742 = load i32, ptr @test_count, align 4, !tbaa !5
  %8743 = load i32, ptr %3177, align 4, !tbaa !5
  %8744 = call ptr @s2n_strerror(i32 noundef %8743, ptr noundef nonnull @.str.4) #11
  %8745 = load i32, ptr %3177, align 4, !tbaa !5
  %8746 = call ptr @s2n_strerror_debug(i32 noundef %8745, ptr noundef nonnull @.str.4) #11
  %8747 = load i32, ptr %3231, align 4, !tbaa !5
  %8748 = call ptr @strerror(i32 noundef %8747) #11
  %8749 = load i32, ptr %3231, align 4, !tbaa !5
  %8750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8741, ptr noundef nonnull %.str.5.sink4063, i32 noundef %8742, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 1277, ptr noundef %8744, ptr noundef %8746, ptr noundef %8748, i32 noundef %8749) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.split.us1364:                                    ; preds = %.preheader1309.us.preheader, %8703, %._crit_edge.us1363, %8717
  %.lcssa = phi i32 [ %8713, %._crit_edge.us1363 ], [ %8718, %8717 ], [ %8699, %.preheader1309.us.preheader ], [ %8704, %8703 ]
  store i32 %.lcssa, ptr @test_count, align 4, !tbaa !5
  %8751 = load i32, ptr %3231, align 4, !tbaa !5
  %8752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8753 = call i32 @s2n_print_stacktrace(ptr noundef %8752) #11
  %8754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8755 = trunc nuw i8 %8754 to i1
  br i1 %8755, label %8756, label %8760

8756:                                             ; preds = %.split.us1364
  %8757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8758 = call i32 @fileno(ptr noundef %8757) #11
  %8759 = call i32 @isatty(i32 noundef %8758) #11
  %.not1200 = icmp eq i32 %8759, 0
  br i1 %.not1200, label %8760, label %8761

8760:                                             ; preds = %8756, %.split.us1364
  br label %8761

8761:                                             ; preds = %8756, %8760
  %.str.5.sink4072 = phi ptr [ @.str.5, %8760 ], [ @.str.2, %8756 ]
  store i32 %8751, ptr %3231, align 4, !tbaa !5
  %8762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8763 = load i32, ptr @test_count, align 4, !tbaa !5
  %8764 = load i32, ptr %3177, align 4, !tbaa !5
  %8765 = call ptr @s2n_strerror(i32 noundef %8764, ptr noundef nonnull @.str.4) #11
  %8766 = load i32, ptr %3177, align 4, !tbaa !5
  %8767 = call ptr @s2n_strerror_debug(i32 noundef %8766, ptr noundef nonnull @.str.4) #11
  %8768 = load i32, ptr %3231, align 4, !tbaa !5
  %8769 = call ptr @strerror(i32 noundef %8768) #11
  %8770 = load i32, ptr %3231, align 4, !tbaa !5
  %8771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8762, ptr noundef nonnull %.str.5.sink4072, i32 noundef %8763, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 1288, ptr noundef %8765, ptr noundef %8767, ptr noundef %8769, i32 noundef %8770) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8772:                                             ; preds = %9052, %._crit_edge1361
  %8773 = load i32, ptr %3231, align 4, !tbaa !5
  %8774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8775 = call i32 @s2n_print_stacktrace(ptr noundef %8774) #11
  %8776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8777 = trunc nuw i8 %8776 to i1
  br i1 %8777, label %8778, label %8782

8778:                                             ; preds = %8772
  %8779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8780 = call i32 @fileno(ptr noundef %8779) #11
  %8781 = call i32 @isatty(i32 noundef %8780) #11
  %.not1199 = icmp eq i32 %8781, 0
  br i1 %.not1199, label %8782, label %8783

8782:                                             ; preds = %8778, %8772
  br label %8783

8783:                                             ; preds = %8778, %8782
  %.str.5.sink4081 = phi ptr [ @.str.5, %8782 ], [ @.str.2, %8778 ]
  store i32 %8773, ptr %3231, align 4, !tbaa !5
  %8784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8785 = load i32, ptr @test_count, align 4, !tbaa !5
  %8786 = load i32, ptr %3177, align 4, !tbaa !5
  %8787 = call ptr @s2n_strerror(i32 noundef %8786, ptr noundef nonnull @.str.4) #11
  %8788 = load i32, ptr %3177, align 4, !tbaa !5
  %8789 = call ptr @s2n_strerror_debug(i32 noundef %8788, ptr noundef nonnull @.str.4) #11
  %8790 = load i32, ptr %3231, align 4, !tbaa !5
  %8791 = call ptr @strerror(i32 noundef %8790) #11
  %8792 = load i32, ptr %3231, align 4, !tbaa !5
  %8793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8784, ptr noundef nonnull %.str.5.sink4081, i32 noundef %8785, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 1304, ptr noundef %8787, ptr noundef %8789, ptr noundef %8791, i32 noundef %8792) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8794:                                             ; preds = %._crit_edge1361
  %8795 = add nsw i32 %8727, 2
  store i32 %8795, ptr @test_count, align 4, !tbaa !5
  %8796 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %8726) #11
  %8797 = icmp eq i32 %8796, -1
  br i1 %8797, label %8798, label %8820

8798:                                             ; preds = %9061, %8794
  %8799 = load i32, ptr %3231, align 4, !tbaa !5
  %8800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8801 = call i32 @s2n_print_stacktrace(ptr noundef %8800) #11
  %8802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8803 = trunc nuw i8 %8802 to i1
  br i1 %8803, label %8804, label %8808

8804:                                             ; preds = %8798
  %8805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8806 = call i32 @fileno(ptr noundef %8805) #11
  %8807 = call i32 @isatty(i32 noundef %8806) #11
  %.not1198 = icmp eq i32 %8807, 0
  br i1 %.not1198, label %8808, label %8809

8808:                                             ; preds = %8804, %8798
  br label %8809

8809:                                             ; preds = %8804, %8808
  %.str.5.sink4090 = phi ptr [ @.str.5, %8808 ], [ @.str.2, %8804 ]
  store i32 %8799, ptr %3231, align 4, !tbaa !5
  %8810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8811 = load i32, ptr @test_count, align 4, !tbaa !5
  %8812 = load i32, ptr %3177, align 4, !tbaa !5
  %8813 = call ptr @s2n_strerror(i32 noundef %8812, ptr noundef nonnull @.str.4) #11
  %8814 = load i32, ptr %3177, align 4, !tbaa !5
  %8815 = call ptr @s2n_strerror_debug(i32 noundef %8814, ptr noundef nonnull @.str.4) #11
  %8816 = load i32, ptr %3231, align 4, !tbaa !5
  %8817 = call ptr @strerror(i32 noundef %8816) #11
  %8818 = load i32, ptr %3231, align 4, !tbaa !5
  %8819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8810, ptr noundef nonnull %.str.5.sink4090, i32 noundef %8811, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 1305, ptr noundef %8813, ptr noundef %8815, ptr noundef %8817, i32 noundef %8818) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8820:                                             ; preds = %8794
  %8821 = load i32, ptr @test_count, align 4, !tbaa !5
  %8822 = add nsw i32 %8821, 1
  store i32 %8822, ptr @test_count, align 4, !tbaa !5
  %8823 = load ptr, ptr %135, align 8, !tbaa !9
  %8824 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %8823, ptr noundef %334) #11
  %8825 = icmp eq i32 %8824, -1
  br i1 %8825, label %8826, label %8848

8826:                                             ; preds = %9065, %8820
  %8827 = load i32, ptr %3231, align 4, !tbaa !5
  %8828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8829 = call i32 @s2n_print_stacktrace(ptr noundef %8828) #11
  %8830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8831 = trunc nuw i8 %8830 to i1
  br i1 %8831, label %8832, label %8836

8832:                                             ; preds = %8826
  %8833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8834 = call i32 @fileno(ptr noundef %8833) #11
  %8835 = call i32 @isatty(i32 noundef %8834) #11
  %.not1197 = icmp eq i32 %8835, 0
  br i1 %.not1197, label %8836, label %8837

8836:                                             ; preds = %8832, %8826
  br label %8837

8837:                                             ; preds = %8832, %8836
  %.str.5.sink4099 = phi ptr [ @.str.5, %8836 ], [ @.str.2, %8832 ]
  store i32 %8827, ptr %3231, align 4, !tbaa !5
  %8838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8839 = load i32, ptr @test_count, align 4, !tbaa !5
  %8840 = load i32, ptr %3177, align 4, !tbaa !5
  %8841 = call ptr @s2n_strerror(i32 noundef %8840, ptr noundef nonnull @.str.4) #11
  %8842 = load i32, ptr %3177, align 4, !tbaa !5
  %8843 = call ptr @s2n_strerror_debug(i32 noundef %8842, ptr noundef nonnull @.str.4) #11
  %8844 = load i32, ptr %3231, align 4, !tbaa !5
  %8845 = call ptr @strerror(i32 noundef %8844) #11
  %8846 = load i32, ptr %3231, align 4, !tbaa !5
  %8847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8838, ptr noundef nonnull %.str.5.sink4099, i32 noundef %8839, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 1306, ptr noundef %8841, ptr noundef %8843, ptr noundef %8845, i32 noundef %8846) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8848:                                             ; preds = %8820
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %136) #11
  %8849 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %8849, ptr %136, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %137) #11
  %8850 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %8850, ptr %137, align 8, !tbaa !9
  %8851 = load i32, ptr @test_count, align 4, !tbaa !5
  %8852 = add nsw i32 %8851, 1
  store i32 %8852, ptr @test_count, align 4, !tbaa !5
  %8853 = load ptr, ptr %136, align 8, !tbaa !9
  %8854 = load ptr, ptr %135, align 8, !tbaa !9
  %8855 = call i32 @s2n_connection_set_config(ptr noundef %8853, ptr noundef %8854) #11
  %8856 = icmp eq i32 %8855, -1
  br i1 %8856, label %8857, label %8879

8857:                                             ; preds = %9071, %8848
  %8858 = load i32, ptr %3231, align 4, !tbaa !5
  %8859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8860 = call i32 @s2n_print_stacktrace(ptr noundef %8859) #11
  %8861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8862 = trunc nuw i8 %8861 to i1
  br i1 %8862, label %8863, label %8867

8863:                                             ; preds = %8857
  %8864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8865 = call i32 @fileno(ptr noundef %8864) #11
  %8866 = call i32 @isatty(i32 noundef %8865) #11
  %.not1196 = icmp eq i32 %8866, 0
  br i1 %.not1196, label %8867, label %8868

8867:                                             ; preds = %8863, %8857
  br label %8868

8868:                                             ; preds = %8863, %8867
  %.str.5.sink4108 = phi ptr [ @.str.5, %8867 ], [ @.str.2, %8863 ]
  store i32 %8858, ptr %3231, align 4, !tbaa !5
  %8869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8870 = load i32, ptr @test_count, align 4, !tbaa !5
  %8871 = load i32, ptr %3177, align 4, !tbaa !5
  %8872 = call ptr @s2n_strerror(i32 noundef %8871, ptr noundef nonnull @.str.4) #11
  %8873 = load i32, ptr %3177, align 4, !tbaa !5
  %8874 = call ptr @s2n_strerror_debug(i32 noundef %8873, ptr noundef nonnull @.str.4) #11
  %8875 = load i32, ptr %3231, align 4, !tbaa !5
  %8876 = call ptr @strerror(i32 noundef %8875) #11
  %8877 = load i32, ptr %3231, align 4, !tbaa !5
  %8878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8869, ptr noundef nonnull %.str.5.sink4108, i32 noundef %8870, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 1313, ptr noundef %8872, ptr noundef %8874, ptr noundef %8876, i32 noundef %8877) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8879:                                             ; preds = %8848
  %8880 = load i32, ptr @test_count, align 4, !tbaa !5
  %8881 = add nsw i32 %8880, 1
  store i32 %8881, ptr @test_count, align 4, !tbaa !5
  %8882 = load ptr, ptr %137, align 8, !tbaa !9
  %8883 = load ptr, ptr %135, align 8, !tbaa !9
  %8884 = call i32 @s2n_connection_set_config(ptr noundef %8882, ptr noundef %8883) #11
  %8885 = icmp eq i32 %8884, -1
  br i1 %8885, label %8886, label %8908

8886:                                             ; preds = %9080, %8879
  %8887 = load i32, ptr %3231, align 4, !tbaa !5
  %8888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8889 = call i32 @s2n_print_stacktrace(ptr noundef %8888) #11
  %8890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8891 = trunc nuw i8 %8890 to i1
  br i1 %8891, label %8892, label %8896

8892:                                             ; preds = %8886
  %8893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8894 = call i32 @fileno(ptr noundef %8893) #11
  %8895 = call i32 @isatty(i32 noundef %8894) #11
  %.not1195 = icmp eq i32 %8895, 0
  br i1 %.not1195, label %8896, label %8897

8896:                                             ; preds = %8892, %8886
  br label %8897

8897:                                             ; preds = %8892, %8896
  %.str.5.sink4117 = phi ptr [ @.str.5, %8896 ], [ @.str.2, %8892 ]
  store i32 %8887, ptr %3231, align 4, !tbaa !5
  %8898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8899 = load i32, ptr @test_count, align 4, !tbaa !5
  %8900 = load i32, ptr %3177, align 4, !tbaa !5
  %8901 = call ptr @s2n_strerror(i32 noundef %8900, ptr noundef nonnull @.str.4) #11
  %8902 = load i32, ptr %3177, align 4, !tbaa !5
  %8903 = call ptr @s2n_strerror_debug(i32 noundef %8902, ptr noundef nonnull @.str.4) #11
  %8904 = load i32, ptr %3231, align 4, !tbaa !5
  %8905 = call ptr @strerror(i32 noundef %8904) #11
  %8906 = load i32, ptr %3231, align 4, !tbaa !5
  %8907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8898, ptr noundef nonnull %.str.5.sink4117, i32 noundef %8899, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 1314, ptr noundef %8901, ptr noundef %8903, ptr noundef %8905, i32 noundef %8906) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8908:                                             ; preds = %8879
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %138) #11
  %8909 = load i32, ptr @test_count, align 4, !tbaa !5
  %8910 = add nsw i32 %8909, 1
  store i32 %8910, ptr @test_count, align 4, !tbaa !5
  %8911 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %138) #11
  %8912 = icmp eq i32 %8911, -1
  br i1 %8912, label %8913, label %8935

8913:                                             ; preds = %9087, %8908
  %8914 = load i32, ptr %3231, align 4, !tbaa !5
  %8915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8916 = call i32 @s2n_print_stacktrace(ptr noundef %8915) #11
  %8917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8918 = trunc nuw i8 %8917 to i1
  br i1 %8918, label %8919, label %8923

8919:                                             ; preds = %8913
  %8920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8921 = call i32 @fileno(ptr noundef %8920) #11
  %8922 = call i32 @isatty(i32 noundef %8921) #11
  %.not1194 = icmp eq i32 %8922, 0
  br i1 %.not1194, label %8923, label %8924

8923:                                             ; preds = %8919, %8913
  br label %8924

8924:                                             ; preds = %8919, %8923
  %.str.5.sink4126 = phi ptr [ @.str.5, %8923 ], [ @.str.2, %8919 ]
  store i32 %8914, ptr %3231, align 4, !tbaa !5
  %8925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8926 = load i32, ptr @test_count, align 4, !tbaa !5
  %8927 = load i32, ptr %3177, align 4, !tbaa !5
  %8928 = call ptr @s2n_strerror(i32 noundef %8927, ptr noundef nonnull @.str.4) #11
  %8929 = load i32, ptr %3177, align 4, !tbaa !5
  %8930 = call ptr @s2n_strerror_debug(i32 noundef %8929, ptr noundef nonnull @.str.4) #11
  %8931 = load i32, ptr %3231, align 4, !tbaa !5
  %8932 = call ptr @strerror(i32 noundef %8931) #11
  %8933 = load i32, ptr %3231, align 4, !tbaa !5
  %8934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8925, ptr noundef nonnull %.str.5.sink4126, i32 noundef %8926, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 1318, ptr noundef %8928, ptr noundef %8930, ptr noundef %8932, i32 noundef %8933) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8935:                                             ; preds = %8908
  %8936 = load i32, ptr @test_count, align 4, !tbaa !5
  %8937 = add nsw i32 %8936, 1
  store i32 %8937, ptr @test_count, align 4, !tbaa !5
  %8938 = load ptr, ptr %136, align 8, !tbaa !9
  %8939 = load ptr, ptr %137, align 8, !tbaa !9
  %8940 = call i32 @s2n_connections_set_io_pair(ptr noundef %8938, ptr noundef %8939, ptr noundef nonnull %138) #11
  %8941 = icmp eq i32 %8940, -1
  br i1 %8941, label %8942, label %8964

8942:                                             ; preds = %9092, %8935
  %8943 = load i32, ptr %3231, align 4, !tbaa !5
  %8944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8945 = call i32 @s2n_print_stacktrace(ptr noundef %8944) #11
  %8946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8947 = trunc nuw i8 %8946 to i1
  br i1 %8947, label %8948, label %8952

8948:                                             ; preds = %8942
  %8949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8950 = call i32 @fileno(ptr noundef %8949) #11
  %8951 = call i32 @isatty(i32 noundef %8950) #11
  %.not1193 = icmp eq i32 %8951, 0
  br i1 %.not1193, label %8952, label %8953

8952:                                             ; preds = %8948, %8942
  br label %8953

8953:                                             ; preds = %8948, %8952
  %.str.5.sink4135 = phi ptr [ @.str.5, %8952 ], [ @.str.2, %8948 ]
  store i32 %8943, ptr %3231, align 4, !tbaa !5
  %8954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8955 = load i32, ptr @test_count, align 4, !tbaa !5
  %8956 = load i32, ptr %3177, align 4, !tbaa !5
  %8957 = call ptr @s2n_strerror(i32 noundef %8956, ptr noundef nonnull @.str.4) #11
  %8958 = load i32, ptr %3177, align 4, !tbaa !5
  %8959 = call ptr @s2n_strerror_debug(i32 noundef %8958, ptr noundef nonnull @.str.4) #11
  %8960 = load i32, ptr %3231, align 4, !tbaa !5
  %8961 = call ptr @strerror(i32 noundef %8960) #11
  %8962 = load i32, ptr %3231, align 4, !tbaa !5
  %8963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8954, ptr noundef nonnull %.str.5.sink4135, i32 noundef %8955, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.1, i32 noundef 1319, ptr noundef %8957, ptr noundef %8959, ptr noundef %8961, i32 noundef %8962) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8964:                                             ; preds = %8935
  %8965 = load ptr, ptr %136, align 8, !tbaa !9
  %8966 = getelementptr inbounds i8, ptr %8965, i64 16
  store ptr %133, ptr %8966, align 8, !tbaa !26
  %8967 = load ptr, ptr %137, align 8, !tbaa !9
  %8968 = getelementptr inbounds i8, ptr %8967, i64 16
  store ptr %133, ptr %8968, align 8, !tbaa !26
  %8969 = load i32, ptr @test_count, align 4, !tbaa !5
  %8970 = add nsw i32 %8969, 1
  store i32 %8970, ptr @test_count, align 4, !tbaa !5
  %8971 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %8967, ptr noundef %8965) #11
  %8972 = icmp eq i32 %8971, -1
  br i1 %8972, label %8973, label %8995

8973:                                             ; preds = %9099, %8964
  %8974 = load i32, ptr %3231, align 4, !tbaa !5
  %8975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8976 = call i32 @s2n_print_stacktrace(ptr noundef %8975) #11
  %8977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8978 = trunc nuw i8 %8977 to i1
  br i1 %8978, label %8979, label %8983

8979:                                             ; preds = %8973
  %8980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8981 = call i32 @fileno(ptr noundef %8980) #11
  %8982 = call i32 @isatty(i32 noundef %8981) #11
  %.not1192 = icmp eq i32 %8982, 0
  br i1 %.not1192, label %8983, label %8984

8983:                                             ; preds = %8979, %8973
  br label %8984

8984:                                             ; preds = %8979, %8983
  %.str.5.sink4144 = phi ptr [ @.str.5, %8983 ], [ @.str.2, %8979 ]
  store i32 %8974, ptr %3231, align 4, !tbaa !5
  %8985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8986 = load i32, ptr @test_count, align 4, !tbaa !5
  %8987 = load i32, ptr %3177, align 4, !tbaa !5
  %8988 = call ptr @s2n_strerror(i32 noundef %8987, ptr noundef nonnull @.str.4) #11
  %8989 = load i32, ptr %3177, align 4, !tbaa !5
  %8990 = call ptr @s2n_strerror_debug(i32 noundef %8989, ptr noundef nonnull @.str.4) #11
  %8991 = load i32, ptr %3231, align 4, !tbaa !5
  %8992 = call ptr @strerror(i32 noundef %8991) #11
  %8993 = load i32, ptr %3231, align 4, !tbaa !5
  %8994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8985, ptr noundef nonnull %.str.5.sink4144, i32 noundef %8986, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.1, i32 noundef 1325, ptr noundef %8988, ptr noundef %8990, ptr noundef %8992, i32 noundef %8993) #13
  call void @exit(i32 noundef 1) #14
  unreachable

8995:                                             ; preds = %8964
  %8996 = load i32, ptr @test_count, align 4, !tbaa !5
  %8997 = add nsw i32 %8996, 1
  store i32 %8997, ptr @test_count, align 4, !tbaa !5
  %8998 = load ptr, ptr %136, align 8, !tbaa !9
  %8999 = getelementptr inbounds i8, ptr %8998, i64 220
  %9000 = load i8, ptr %8999, align 4, !tbaa !50
  %9001 = icmp eq i8 %9000, 33
  br i1 %9001, label %9024, label %9002

9002:                                             ; preds = %9108, %8995
  %9003 = load i32, ptr %3231, align 4, !tbaa !5
  %9004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9005 = call i32 @s2n_print_stacktrace(ptr noundef %9004) #11
  %9006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9007 = trunc nuw i8 %9006 to i1
  br i1 %9007, label %9008, label %9012

9008:                                             ; preds = %9002
  %9009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9010 = call i32 @fileno(ptr noundef %9009) #11
  %9011 = call i32 @isatty(i32 noundef %9010) #11
  %.not1190 = icmp eq i32 %9011, 0
  br i1 %.not1190, label %9012, label %9013

9012:                                             ; preds = %9008, %9002
  br label %9013

9013:                                             ; preds = %9008, %9012
  %.str.5.sink4153 = phi ptr [ @.str.5, %9012 ], [ @.str.2, %9008 ]
  store i32 %9003, ptr %3231, align 4, !tbaa !5
  %9014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9015 = load i32, ptr @test_count, align 4, !tbaa !5
  %9016 = load i32, ptr %3177, align 4, !tbaa !5
  %9017 = call ptr @s2n_strerror(i32 noundef %9016, ptr noundef nonnull @.str.4) #11
  %9018 = load i32, ptr %3177, align 4, !tbaa !5
  %9019 = call ptr @s2n_strerror_debug(i32 noundef %9018, ptr noundef nonnull @.str.4) #11
  %9020 = load i32, ptr %3231, align 4, !tbaa !5
  %9021 = call ptr @strerror(i32 noundef %9020) #11
  %9022 = load i32, ptr %3231, align 4, !tbaa !5
  %9023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9014, ptr noundef nonnull %.str.5.sink4153, i32 noundef %9015, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.1, i32 noundef 1326, ptr noundef %9017, ptr noundef %9019, ptr noundef %9021, i32 noundef %9022) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9024:                                             ; preds = %8995
  %9025 = add nsw i32 %8996, 2
  store i32 %9025, ptr @test_count, align 4, !tbaa !5
  %9026 = load ptr, ptr %137, align 8, !tbaa !9
  %9027 = getelementptr inbounds i8, ptr %9026, i64 220
  %9028 = load i8, ptr %9027, align 4, !tbaa !50
  %9029 = icmp eq i8 %9028, 33
  br i1 %9029, label %9052, label %9030

9030:                                             ; preds = %9115, %9024
  %9031 = load i32, ptr %3231, align 4, !tbaa !5
  %9032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9033 = call i32 @s2n_print_stacktrace(ptr noundef %9032) #11
  %9034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9035 = trunc nuw i8 %9034 to i1
  br i1 %9035, label %9036, label %9040

9036:                                             ; preds = %9030
  %9037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9038 = call i32 @fileno(ptr noundef %9037) #11
  %9039 = call i32 @isatty(i32 noundef %9038) #11
  %.not1191 = icmp eq i32 %9039, 0
  br i1 %.not1191, label %9040, label %9041

9040:                                             ; preds = %9036, %9030
  br label %9041

9041:                                             ; preds = %9036, %9040
  %.str.5.sink4162 = phi ptr [ @.str.5, %9040 ], [ @.str.2, %9036 ]
  store i32 %9031, ptr %3231, align 4, !tbaa !5
  %9042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9043 = load i32, ptr @test_count, align 4, !tbaa !5
  %9044 = load i32, ptr %3177, align 4, !tbaa !5
  %9045 = call ptr @s2n_strerror(i32 noundef %9044, ptr noundef nonnull @.str.4) #11
  %9046 = load i32, ptr %3177, align 4, !tbaa !5
  %9047 = call ptr @s2n_strerror_debug(i32 noundef %9046, ptr noundef nonnull @.str.4) #11
  %9048 = load i32, ptr %3231, align 4, !tbaa !5
  %9049 = call ptr @strerror(i32 noundef %9048) #11
  %9050 = load i32, ptr %3231, align 4, !tbaa !5
  %9051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9042, ptr noundef nonnull %.str.5.sink4162, i32 noundef %9043, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.1, i32 noundef 1327, ptr noundef %9045, ptr noundef %9047, ptr noundef %9049, i32 noundef %9050) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9052:                                             ; preds = %9024
  %9053 = call i32 @s2n_io_pair_close(ptr noundef nonnull %138) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %138) #11
  %9054 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %137) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %137) #11
  %9055 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %136) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %136) #11
  %9056 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %135) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %135) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %135) #11
  %9057 = call ptr @s2n_config_new() #11
  store ptr %9057, ptr %135, align 8, !tbaa !9
  %9058 = load i32, ptr @test_count, align 4, !tbaa !5
  %9059 = add nsw i32 %9058, 1
  store i32 %9059, ptr @test_count, align 4, !tbaa !5
  %9060 = icmp eq ptr %9057, null
  br i1 %9060, label %8772, label %9061

9061:                                             ; preds = %9052
  %9062 = add nsw i32 %9058, 2
  store i32 %9062, ptr @test_count, align 4, !tbaa !5
  %9063 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %9057) #11
  %9064 = icmp eq i32 %9063, -1
  br i1 %9064, label %8798, label %9065

9065:                                             ; preds = %9061
  %9066 = load i32, ptr @test_count, align 4, !tbaa !5
  %9067 = add nsw i32 %9066, 1
  store i32 %9067, ptr @test_count, align 4, !tbaa !5
  %9068 = load ptr, ptr %135, align 8, !tbaa !9
  %9069 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %9068, ptr noundef %335) #11
  %9070 = icmp eq i32 %9069, -1
  br i1 %9070, label %8826, label %9071

9071:                                             ; preds = %9065
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %136) #11
  %9072 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %9072, ptr %136, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %137) #11
  %9073 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %9073, ptr %137, align 8, !tbaa !9
  %9074 = load i32, ptr @test_count, align 4, !tbaa !5
  %9075 = add nsw i32 %9074, 1
  store i32 %9075, ptr @test_count, align 4, !tbaa !5
  %9076 = load ptr, ptr %136, align 8, !tbaa !9
  %9077 = load ptr, ptr %135, align 8, !tbaa !9
  %9078 = call i32 @s2n_connection_set_config(ptr noundef %9076, ptr noundef %9077) #11
  %9079 = icmp eq i32 %9078, -1
  br i1 %9079, label %8857, label %9080

9080:                                             ; preds = %9071
  %9081 = load i32, ptr @test_count, align 4, !tbaa !5
  %9082 = add nsw i32 %9081, 1
  store i32 %9082, ptr @test_count, align 4, !tbaa !5
  %9083 = load ptr, ptr %137, align 8, !tbaa !9
  %9084 = load ptr, ptr %135, align 8, !tbaa !9
  %9085 = call i32 @s2n_connection_set_config(ptr noundef %9083, ptr noundef %9084) #11
  %9086 = icmp eq i32 %9085, -1
  br i1 %9086, label %8886, label %9087

9087:                                             ; preds = %9080
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %138) #11
  %9088 = load i32, ptr @test_count, align 4, !tbaa !5
  %9089 = add nsw i32 %9088, 1
  store i32 %9089, ptr @test_count, align 4, !tbaa !5
  %9090 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %138) #11
  %9091 = icmp eq i32 %9090, -1
  br i1 %9091, label %8913, label %9092

9092:                                             ; preds = %9087
  %9093 = load i32, ptr @test_count, align 4, !tbaa !5
  %9094 = add nsw i32 %9093, 1
  store i32 %9094, ptr @test_count, align 4, !tbaa !5
  %9095 = load ptr, ptr %136, align 8, !tbaa !9
  %9096 = load ptr, ptr %137, align 8, !tbaa !9
  %9097 = call i32 @s2n_connections_set_io_pair(ptr noundef %9095, ptr noundef %9096, ptr noundef nonnull %138) #11
  %9098 = icmp eq i32 %9097, -1
  br i1 %9098, label %8942, label %9099

9099:                                             ; preds = %9092
  %9100 = load ptr, ptr %136, align 8, !tbaa !9
  %9101 = getelementptr inbounds i8, ptr %9100, i64 16
  store ptr %133, ptr %9101, align 8, !tbaa !26
  %9102 = load ptr, ptr %137, align 8, !tbaa !9
  %9103 = getelementptr inbounds i8, ptr %9102, i64 16
  store ptr %133, ptr %9103, align 8, !tbaa !26
  %9104 = load i32, ptr @test_count, align 4, !tbaa !5
  %9105 = add nsw i32 %9104, 1
  store i32 %9105, ptr @test_count, align 4, !tbaa !5
  %9106 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %9102, ptr noundef %9100) #11
  %9107 = icmp eq i32 %9106, -1
  br i1 %9107, label %8973, label %9108

9108:                                             ; preds = %9099
  %9109 = load i32, ptr @test_count, align 4, !tbaa !5
  %9110 = add nsw i32 %9109, 1
  store i32 %9110, ptr @test_count, align 4, !tbaa !5
  %9111 = load ptr, ptr %136, align 8, !tbaa !9
  %9112 = getelementptr inbounds i8, ptr %9111, i64 220
  %9113 = load i8, ptr %9112, align 4, !tbaa !50
  %9114 = icmp eq i8 %9113, 33
  br i1 %9114, label %9115, label %9002

9115:                                             ; preds = %9108
  %9116 = add nsw i32 %9109, 2
  store i32 %9116, ptr @test_count, align 4, !tbaa !5
  %9117 = load ptr, ptr %137, align 8, !tbaa !9
  %9118 = getelementptr inbounds i8, ptr %9117, i64 220
  %9119 = load i8, ptr %9118, align 4, !tbaa !50
  %9120 = icmp eq i8 %9119, 33
  br i1 %9120, label %.preheader1308.preheader, label %9030

.preheader1308.preheader:                         ; preds = %9115
  %9121 = call i32 @s2n_io_pair_close(ptr noundef nonnull %138) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %138) #11
  %9122 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %137) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %137) #11
  %9123 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %136) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %136) #11
  %9124 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %135) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %135) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %139) #11
  %9125 = call ptr @s2n_config_new() #11
  store ptr %9125, ptr %139, align 8, !tbaa !9
  %9126 = load i32, ptr @test_count, align 4, !tbaa !5
  %9127 = add nsw i32 %9126, 1
  store i32 %9127, ptr @test_count, align 4, !tbaa !5
  %9128 = icmp eq ptr %9125, null
  br i1 %9128, label %9129, label %9151

9129:                                             ; preds = %.preheader1308.1, %.preheader1308.preheader
  %9130 = load i32, ptr %3231, align 4, !tbaa !5
  %9131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9132 = call i32 @s2n_print_stacktrace(ptr noundef %9131) #11
  %9133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9134 = trunc nuw i8 %9133 to i1
  br i1 %9134, label %9135, label %9139

9135:                                             ; preds = %9129
  %9136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9137 = call i32 @fileno(ptr noundef %9136) #11
  %9138 = call i32 @isatty(i32 noundef %9137) #11
  %.not1189 = icmp eq i32 %9138, 0
  br i1 %.not1189, label %9139, label %9140

9139:                                             ; preds = %9135, %9129
  br label %9140

9140:                                             ; preds = %9135, %9139
  %.str.5.sink4171 = phi ptr [ @.str.5, %9139 ], [ @.str.2, %9135 ]
  store i32 %9130, ptr %3231, align 4, !tbaa !5
  %9141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9142 = load i32, ptr @test_count, align 4, !tbaa !5
  %9143 = load i32, ptr %3177, align 4, !tbaa !5
  %9144 = call ptr @s2n_strerror(i32 noundef %9143, ptr noundef nonnull @.str.4) #11
  %9145 = load i32, ptr %3177, align 4, !tbaa !5
  %9146 = call ptr @s2n_strerror_debug(i32 noundef %9145, ptr noundef nonnull @.str.4) #11
  %9147 = load i32, ptr %3231, align 4, !tbaa !5
  %9148 = call ptr @strerror(i32 noundef %9147) #11
  %9149 = load i32, ptr %3231, align 4, !tbaa !5
  %9150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9141, ptr noundef nonnull %.str.5.sink4171, i32 noundef %9142, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 1334, ptr noundef %9144, ptr noundef %9146, ptr noundef %9148, i32 noundef %9149) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9151:                                             ; preds = %.preheader1308.preheader
  %9152 = add nsw i32 %9126, 2
  store i32 %9152, ptr @test_count, align 4, !tbaa !5
  %9153 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %9125) #11
  %9154 = icmp eq i32 %9153, -1
  br i1 %9154, label %9155, label %9177

9155:                                             ; preds = %9526, %9151
  %9156 = load i32, ptr %3231, align 4, !tbaa !5
  %9157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9158 = call i32 @s2n_print_stacktrace(ptr noundef %9157) #11
  %9159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9160 = trunc nuw i8 %9159 to i1
  br i1 %9160, label %9161, label %9165

9161:                                             ; preds = %9155
  %9162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9163 = call i32 @fileno(ptr noundef %9162) #11
  %9164 = call i32 @isatty(i32 noundef %9163) #11
  %.not1188 = icmp eq i32 %9164, 0
  br i1 %.not1188, label %9165, label %9166

9165:                                             ; preds = %9161, %9155
  br label %9166

9166:                                             ; preds = %9161, %9165
  %.str.5.sink4180 = phi ptr [ @.str.5, %9165 ], [ @.str.2, %9161 ]
  store i32 %9156, ptr %3231, align 4, !tbaa !5
  %9167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9168 = load i32, ptr @test_count, align 4, !tbaa !5
  %9169 = load i32, ptr %3177, align 4, !tbaa !5
  %9170 = call ptr @s2n_strerror(i32 noundef %9169, ptr noundef nonnull @.str.4) #11
  %9171 = load i32, ptr %3177, align 4, !tbaa !5
  %9172 = call ptr @s2n_strerror_debug(i32 noundef %9171, ptr noundef nonnull @.str.4) #11
  %9173 = load i32, ptr %3231, align 4, !tbaa !5
  %9174 = call ptr @strerror(i32 noundef %9173) #11
  %9175 = load i32, ptr %3231, align 4, !tbaa !5
  %9176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9167, ptr noundef nonnull %.str.5.sink4180, i32 noundef %9168, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 1335, ptr noundef %9170, ptr noundef %9172, ptr noundef %9174, i32 noundef %9175) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9177:                                             ; preds = %9151
  %9178 = load i32, ptr @test_count, align 4, !tbaa !5
  %9179 = add nsw i32 %9178, 1
  store i32 %9179, ptr @test_count, align 4, !tbaa !5
  %9180 = load ptr, ptr %139, align 8, !tbaa !9
  %9181 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %9180, ptr noundef %334) #11
  %9182 = icmp eq i32 %9181, -1
  br i1 %9182, label %9183, label %9205

9183:                                             ; preds = %9530, %9177
  %9184 = load i32, ptr %3231, align 4, !tbaa !5
  %9185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9186 = call i32 @s2n_print_stacktrace(ptr noundef %9185) #11
  %9187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9188 = trunc nuw i8 %9187 to i1
  br i1 %9188, label %9189, label %9193

9189:                                             ; preds = %9183
  %9190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9191 = call i32 @fileno(ptr noundef %9190) #11
  %9192 = call i32 @isatty(i32 noundef %9191) #11
  %.not1187 = icmp eq i32 %9192, 0
  br i1 %.not1187, label %9193, label %9194

9193:                                             ; preds = %9189, %9183
  br label %9194

9194:                                             ; preds = %9189, %9193
  %.str.5.sink4189 = phi ptr [ @.str.5, %9193 ], [ @.str.2, %9189 ]
  store i32 %9184, ptr %3231, align 4, !tbaa !5
  %9195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9196 = load i32, ptr @test_count, align 4, !tbaa !5
  %9197 = load i32, ptr %3177, align 4, !tbaa !5
  %9198 = call ptr @s2n_strerror(i32 noundef %9197, ptr noundef nonnull @.str.4) #11
  %9199 = load i32, ptr %3177, align 4, !tbaa !5
  %9200 = call ptr @s2n_strerror_debug(i32 noundef %9199, ptr noundef nonnull @.str.4) #11
  %9201 = load i32, ptr %3231, align 4, !tbaa !5
  %9202 = call ptr @strerror(i32 noundef %9201) #11
  %9203 = load i32, ptr %3231, align 4, !tbaa !5
  %9204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9195, ptr noundef nonnull %.str.5.sink4189, i32 noundef %9196, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 1336, ptr noundef %9198, ptr noundef %9200, ptr noundef %9202, i32 noundef %9203) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9205:                                             ; preds = %9177
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %140) #11
  %9206 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %9206, ptr %140, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %141) #11
  %9207 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %9207, ptr %141, align 8, !tbaa !9
  %9208 = load i32, ptr @test_count, align 4, !tbaa !5
  %9209 = add nsw i32 %9208, 1
  store i32 %9209, ptr @test_count, align 4, !tbaa !5
  %9210 = load ptr, ptr %140, align 8, !tbaa !9
  %9211 = load ptr, ptr %139, align 8, !tbaa !9
  %9212 = call i32 @s2n_connection_set_config(ptr noundef %9210, ptr noundef %9211) #11
  %9213 = icmp eq i32 %9212, -1
  br i1 %9213, label %9214, label %9236

9214:                                             ; preds = %9536, %9205
  %9215 = load i32, ptr %3231, align 4, !tbaa !5
  %9216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9217 = call i32 @s2n_print_stacktrace(ptr noundef %9216) #11
  %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) #11
  %9223 = call i32 @isatty(i32 noundef %9222) #11
  %.not1186 = icmp eq i32 %9223, 0
  br i1 %.not1186, label %9224, label %9225

9224:                                             ; preds = %9220, %9214
  br label %9225

9225:                                             ; preds = %9220, %9224
  %.str.5.sink4198 = phi ptr [ @.str.5, %9224 ], [ @.str.2, %9220 ]
  store i32 %9215, ptr %3231, 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 %3177, align 4, !tbaa !5
  %9229 = call ptr @s2n_strerror(i32 noundef %9228, ptr noundef nonnull @.str.4) #11
  %9230 = load i32, ptr %3177, align 4, !tbaa !5
  %9231 = call ptr @s2n_strerror_debug(i32 noundef %9230, ptr noundef nonnull @.str.4) #11
  %9232 = load i32, ptr %3231, align 4, !tbaa !5
  %9233 = call ptr @strerror(i32 noundef %9232) #11
  %9234 = load i32, ptr %3231, align 4, !tbaa !5
  %9235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9226, ptr noundef nonnull %.str.5.sink4198, i32 noundef %9227, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 1343, ptr noundef %9229, ptr noundef %9231, ptr noundef %9233, i32 noundef %9234) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9236:                                             ; preds = %9205
  %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 %141, align 8, !tbaa !9
  %9240 = load ptr, ptr %139, align 8, !tbaa !9
  %9241 = call i32 @s2n_connection_set_config(ptr noundef %9239, ptr noundef %9240) #11
  %9242 = icmp eq i32 %9241, -1
  br i1 %9242, label %9243, label %9265

9243:                                             ; preds = %9545, %9236
  %9244 = load i32, ptr %3231, align 4, !tbaa !5
  %9245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9246 = call i32 @s2n_print_stacktrace(ptr noundef %9245) #11
  %9247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9248 = trunc nuw i8 %9247 to i1
  br i1 %9248, label %9249, label %9253

9249:                                             ; preds = %9243
  %9250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9251 = call i32 @fileno(ptr noundef %9250) #11
  %9252 = call i32 @isatty(i32 noundef %9251) #11
  %.not1185 = icmp eq i32 %9252, 0
  br i1 %.not1185, label %9253, label %9254

9253:                                             ; preds = %9249, %9243
  br label %9254

9254:                                             ; preds = %9249, %9253
  %.str.5.sink4207 = phi ptr [ @.str.5, %9253 ], [ @.str.2, %9249 ]
  store i32 %9244, ptr %3231, align 4, !tbaa !5
  %9255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9256 = load i32, ptr @test_count, align 4, !tbaa !5
  %9257 = load i32, ptr %3177, align 4, !tbaa !5
  %9258 = call ptr @s2n_strerror(i32 noundef %9257, ptr noundef nonnull @.str.4) #11
  %9259 = load i32, ptr %3177, align 4, !tbaa !5
  %9260 = call ptr @s2n_strerror_debug(i32 noundef %9259, ptr noundef nonnull @.str.4) #11
  %9261 = load i32, ptr %3231, align 4, !tbaa !5
  %9262 = call ptr @strerror(i32 noundef %9261) #11
  %9263 = load i32, ptr %3231, align 4, !tbaa !5
  %9264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9255, ptr noundef nonnull %.str.5.sink4207, i32 noundef %9256, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 1344, ptr noundef %9258, ptr noundef %9260, ptr noundef %9262, i32 noundef %9263) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9265:                                             ; preds = %9236
  %9266 = load i32, ptr @test_count, align 4, !tbaa !5
  %9267 = add nsw i32 %9266, 1
  store i32 %9267, ptr @test_count, align 4, !tbaa !5
  %9268 = load ptr, ptr %140, align 8, !tbaa !9
  %9269 = call i32 @s2n_connection_set_blinding(ptr noundef %9268, i32 noundef 1) #11
  %9270 = icmp eq i32 %9269, -1
  br i1 %9270, label %9271, label %9293

9271:                                             ; preds = %9552, %9265
  %9272 = load i32, ptr %3231, align 4, !tbaa !5
  %9273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9274 = call i32 @s2n_print_stacktrace(ptr noundef %9273) #11
  %9275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9276 = trunc nuw i8 %9275 to i1
  br i1 %9276, label %9277, label %9281

9277:                                             ; preds = %9271
  %9278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9279 = call i32 @fileno(ptr noundef %9278) #11
  %9280 = call i32 @isatty(i32 noundef %9279) #11
  %.not1184 = icmp eq i32 %9280, 0
  br i1 %.not1184, label %9281, label %9282

9281:                                             ; preds = %9277, %9271
  br label %9282

9282:                                             ; preds = %9277, %9281
  %.str.5.sink4216 = phi ptr [ @.str.5, %9281 ], [ @.str.2, %9277 ]
  store i32 %9272, ptr %3231, align 4, !tbaa !5
  %9283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9284 = load i32, ptr @test_count, align 4, !tbaa !5
  %9285 = load i32, ptr %3177, align 4, !tbaa !5
  %9286 = call ptr @s2n_strerror(i32 noundef %9285, ptr noundef nonnull @.str.4) #11
  %9287 = load i32, ptr %3177, align 4, !tbaa !5
  %9288 = call ptr @s2n_strerror_debug(i32 noundef %9287, ptr noundef nonnull @.str.4) #11
  %9289 = load i32, ptr %3231, align 4, !tbaa !5
  %9290 = call ptr @strerror(i32 noundef %9289) #11
  %9291 = load i32, ptr %3231, align 4, !tbaa !5
  %9292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9283, ptr noundef nonnull %.str.5.sink4216, i32 noundef %9284, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.1, i32 noundef 1345, ptr noundef %9286, ptr noundef %9288, ptr noundef %9290, i32 noundef %9291) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9293:                                             ; preds = %9265
  %9294 = load i32, ptr @test_count, align 4, !tbaa !5
  %9295 = add nsw i32 %9294, 1
  store i32 %9295, ptr @test_count, align 4, !tbaa !5
  %9296 = load ptr, ptr %141, align 8, !tbaa !9
  %9297 = call i32 @s2n_connection_set_blinding(ptr noundef %9296, i32 noundef 1) #11
  %9298 = icmp eq i32 %9297, -1
  br i1 %9298, label %9299, label %9321

9299:                                             ; preds = %9558, %9293
  %9300 = load i32, ptr %3231, align 4, !tbaa !5
  %9301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9302 = call i32 @s2n_print_stacktrace(ptr noundef %9301) #11
  %9303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9304 = trunc nuw i8 %9303 to i1
  br i1 %9304, label %9305, label %9309

9305:                                             ; preds = %9299
  %9306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9307 = call i32 @fileno(ptr noundef %9306) #11
  %9308 = call i32 @isatty(i32 noundef %9307) #11
  %.not1183 = icmp eq i32 %9308, 0
  br i1 %.not1183, label %9309, label %9310

9309:                                             ; preds = %9305, %9299
  br label %9310

9310:                                             ; preds = %9305, %9309
  %.str.5.sink4225 = phi ptr [ @.str.5, %9309 ], [ @.str.2, %9305 ]
  store i32 %9300, ptr %3231, align 4, !tbaa !5
  %9311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9312 = load i32, ptr @test_count, align 4, !tbaa !5
  %9313 = load i32, ptr %3177, align 4, !tbaa !5
  %9314 = call ptr @s2n_strerror(i32 noundef %9313, ptr noundef nonnull @.str.4) #11
  %9315 = load i32, ptr %3177, align 4, !tbaa !5
  %9316 = call ptr @s2n_strerror_debug(i32 noundef %9315, ptr noundef nonnull @.str.4) #11
  %9317 = load i32, ptr %3231, align 4, !tbaa !5
  %9318 = call ptr @strerror(i32 noundef %9317) #11
  %9319 = load i32, ptr %3231, align 4, !tbaa !5
  %9320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9311, ptr noundef nonnull %.str.5.sink4225, i32 noundef %9312, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.1, i32 noundef 1346, ptr noundef %9314, ptr noundef %9316, ptr noundef %9318, i32 noundef %9319) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9321:                                             ; preds = %9293
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %142) #11
  %9322 = load i32, ptr @test_count, align 4, !tbaa !5
  %9323 = add nsw i32 %9322, 1
  store i32 %9323, ptr @test_count, align 4, !tbaa !5
  %9324 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %142) #11
  %9325 = icmp eq i32 %9324, -1
  br i1 %9325, label %9326, label %9348

9326:                                             ; preds = %9564, %9321
  %9327 = load i32, ptr %3231, align 4, !tbaa !5
  %9328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9329 = call i32 @s2n_print_stacktrace(ptr noundef %9328) #11
  %9330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9331 = trunc nuw i8 %9330 to i1
  br i1 %9331, label %9332, label %9336

9332:                                             ; preds = %9326
  %9333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9334 = call i32 @fileno(ptr noundef %9333) #11
  %9335 = call i32 @isatty(i32 noundef %9334) #11
  %.not1182 = icmp eq i32 %9335, 0
  br i1 %.not1182, label %9336, label %9337

9336:                                             ; preds = %9332, %9326
  br label %9337

9337:                                             ; preds = %9332, %9336
  %.str.5.sink4234 = phi ptr [ @.str.5, %9336 ], [ @.str.2, %9332 ]
  store i32 %9327, ptr %3231, align 4, !tbaa !5
  %9338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9339 = load i32, ptr @test_count, align 4, !tbaa !5
  %9340 = load i32, ptr %3177, align 4, !tbaa !5
  %9341 = call ptr @s2n_strerror(i32 noundef %9340, ptr noundef nonnull @.str.4) #11
  %9342 = load i32, ptr %3177, align 4, !tbaa !5
  %9343 = call ptr @s2n_strerror_debug(i32 noundef %9342, ptr noundef nonnull @.str.4) #11
  %9344 = load i32, ptr %3231, align 4, !tbaa !5
  %9345 = call ptr @strerror(i32 noundef %9344) #11
  %9346 = load i32, ptr %3231, align 4, !tbaa !5
  %9347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9338, ptr noundef nonnull %.str.5.sink4234, i32 noundef %9339, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 1350, ptr noundef %9341, ptr noundef %9343, ptr noundef %9345, i32 noundef %9346) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9348:                                             ; preds = %9321
  %9349 = load i32, ptr @test_count, align 4, !tbaa !5
  %9350 = add nsw i32 %9349, 1
  store i32 %9350, ptr @test_count, align 4, !tbaa !5
  %9351 = load ptr, ptr %140, align 8, !tbaa !9
  %9352 = load ptr, ptr %141, align 8, !tbaa !9
  %9353 = call i32 @s2n_connections_set_io_pair(ptr noundef %9351, ptr noundef %9352, ptr noundef nonnull %142) #11
  %9354 = icmp eq i32 %9353, -1
  br i1 %9354, label %9355, label %9377

9355:                                             ; preds = %9569, %9348
  %9356 = load i32, ptr %3231, align 4, !tbaa !5
  %9357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9358 = call i32 @s2n_print_stacktrace(ptr noundef %9357) #11
  %9359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9360 = trunc nuw i8 %9359 to i1
  br i1 %9360, label %9361, label %9365

9361:                                             ; preds = %9355
  %9362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9363 = call i32 @fileno(ptr noundef %9362) #11
  %9364 = call i32 @isatty(i32 noundef %9363) #11
  %.not1181 = icmp eq i32 %9364, 0
  br i1 %.not1181, label %9365, label %9366

9365:                                             ; preds = %9361, %9355
  br label %9366

9366:                                             ; preds = %9361, %9365
  %.str.5.sink4243 = phi ptr [ @.str.5, %9365 ], [ @.str.2, %9361 ]
  store i32 %9356, ptr %3231, align 4, !tbaa !5
  %9367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9368 = load i32, ptr @test_count, align 4, !tbaa !5
  %9369 = load i32, ptr %3177, align 4, !tbaa !5
  %9370 = call ptr @s2n_strerror(i32 noundef %9369, ptr noundef nonnull @.str.4) #11
  %9371 = load i32, ptr %3177, align 4, !tbaa !5
  %9372 = call ptr @s2n_strerror_debug(i32 noundef %9371, ptr noundef nonnull @.str.4) #11
  %9373 = load i32, ptr %3231, align 4, !tbaa !5
  %9374 = call ptr @strerror(i32 noundef %9373) #11
  %9375 = load i32, ptr %3231, align 4, !tbaa !5
  %9376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9367, ptr noundef nonnull %.str.5.sink4243, i32 noundef %9368, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.1, i32 noundef 1351, ptr noundef %9370, ptr noundef %9372, ptr noundef %9374, i32 noundef %9375) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9377:                                             ; preds = %9348
  %9378 = load ptr, ptr %140, align 8, !tbaa !9
  %9379 = getelementptr inbounds i8, ptr %9378, i64 16
  store ptr %133, ptr %9379, align 8, !tbaa !26
  %9380 = load ptr, ptr %141, align 8, !tbaa !9
  %9381 = getelementptr inbounds i8, ptr %9380, i64 16
  store ptr %134, ptr %9381, align 8, !tbaa !26
  %9382 = load i32, ptr @test_count, align 4, !tbaa !5
  %9383 = add nsw i32 %9382, 1
  store i32 %9383, ptr @test_count, align 4, !tbaa !5
  %9384 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %9380, ptr noundef %9378) #11
  %9385 = icmp eq i32 %9384, -1
  br i1 %9385, label %9408, label %9386

9386:                                             ; preds = %9576, %9377
  %9387 = load i32, ptr %3231, align 4, !tbaa !5
  %9388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9389 = call i32 @s2n_print_stacktrace(ptr noundef %9388) #11
  %9390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9391 = trunc nuw i8 %9390 to i1
  br i1 %9391, label %9392, label %9396

9392:                                             ; preds = %9386
  %9393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9394 = call i32 @fileno(ptr noundef %9393) #11
  %9395 = call i32 @isatty(i32 noundef %9394) #11
  %.not1176 = icmp eq i32 %9395, 0
  br i1 %.not1176, label %9396, label %9397

9396:                                             ; preds = %9392, %9386
  br label %9397

9397:                                             ; preds = %9392, %9396
  %.str.5.sink4252 = phi ptr [ @.str.5, %9396 ], [ @.str.2, %9392 ]
  store i32 %9387, ptr %3231, align 4, !tbaa !5
  %9398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9399 = load i32, ptr @test_count, align 4, !tbaa !5
  %9400 = load i32, ptr %3177, align 4, !tbaa !5
  %9401 = call ptr @s2n_strerror(i32 noundef %9400, ptr noundef nonnull @.str.4) #11
  %9402 = load i32, ptr %3177, align 4, !tbaa !5
  %9403 = call ptr @s2n_strerror_debug(i32 noundef %9402, ptr noundef nonnull @.str.4) #11
  %9404 = load i32, ptr %3231, align 4, !tbaa !5
  %9405 = call ptr @strerror(i32 noundef %9404) #11
  %9406 = load i32, ptr %3231, align 4, !tbaa !5
  %9407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9398, ptr noundef nonnull %.str.5.sink4252, i32 noundef %9399, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.1, i32 noundef 1360, ptr noundef %9401, ptr noundef %9403, ptr noundef %9405, i32 noundef %9406) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9408:                                             ; preds = %9377
  %9409 = load i32, ptr @test_count, align 4, !tbaa !5
  %9410 = add nsw i32 %9409, 1
  store i32 %9410, ptr @test_count, align 4, !tbaa !5
  %9411 = load i32, ptr %3177, align 4, !tbaa !5
  %9412 = icmp eq i32 %9411, 335544348
  br i1 %9412, label %9435, label %9413

9413:                                             ; preds = %9585, %9408
  %9414 = load i32, ptr %3231, align 4, !tbaa !5
  %9415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9416 = call i32 @s2n_print_stacktrace(ptr noundef %9415) #11
  %9417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9418 = trunc nuw i8 %9417 to i1
  br i1 %9418, label %9419, label %9423

9419:                                             ; preds = %9413
  %9420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9421 = call i32 @fileno(ptr noundef %9420) #11
  %9422 = call i32 @isatty(i32 noundef %9421) #11
  %.not1177 = icmp eq i32 %9422, 0
  br i1 %.not1177, label %9423, label %9424

9423:                                             ; preds = %9419, %9413
  br label %9424

9424:                                             ; preds = %9419, %9423
  %.str.5.sink4261 = phi ptr [ @.str.5, %9423 ], [ @.str.2, %9419 ]
  store i32 %9414, ptr %3231, align 4, !tbaa !5
  %9425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9426 = load i32, ptr @test_count, align 4, !tbaa !5
  %9427 = load i32, ptr %3177, align 4, !tbaa !5
  %9428 = call ptr @s2n_strerror(i32 noundef %9427, ptr noundef nonnull @.str.4) #11
  %9429 = load i32, ptr %3177, align 4, !tbaa !5
  %9430 = call ptr @s2n_strerror_debug(i32 noundef %9429, ptr noundef nonnull @.str.4) #11
  %9431 = load i32, ptr %3231, align 4, !tbaa !5
  %9432 = call ptr @strerror(i32 noundef %9431) #11
  %9433 = load i32, ptr %3231, align 4, !tbaa !5
  %9434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9425, ptr noundef nonnull %.str.5.sink4261, i32 noundef %9426, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 1360, ptr noundef %9428, ptr noundef %9430, ptr noundef %9432, i32 noundef %9433) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9435:                                             ; preds = %9408
  %9436 = add nsw i32 %9409, 2
  store i32 %9436, ptr @test_count, align 4, !tbaa !5
  %9437 = call ptr @s2n_strerror_debug(i32 noundef 335544348, ptr noundef nonnull @.str.4) #11
  %9438 = icmp eq ptr %9437, null
  br i1 %9438, label %9439, label %9461

9439:                                             ; preds = %9590, %9435
  %9440 = load i32, ptr %3231, align 4, !tbaa !5
  %9441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9442 = call i32 @s2n_print_stacktrace(ptr noundef %9441) #11
  %9443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9444 = trunc nuw i8 %9443 to i1
  br i1 %9444, label %9445, label %9449

9445:                                             ; preds = %9439
  %9446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9447 = call i32 @fileno(ptr noundef %9446) #11
  %9448 = call i32 @isatty(i32 noundef %9447) #11
  %.not1180 = icmp eq i32 %9448, 0
  br i1 %.not1180, label %9449, label %9450

9449:                                             ; preds = %9445, %9439
  br label %9450

9450:                                             ; preds = %9445, %9449
  %.str.5.sink4270 = phi ptr [ @.str.5, %9449 ], [ @.str.2, %9445 ]
  store i32 %9440, ptr %3231, align 4, !tbaa !5
  %9451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9452 = load i32, ptr @test_count, align 4, !tbaa !5
  %9453 = load i32, ptr %3177, align 4, !tbaa !5
  %9454 = call ptr @s2n_strerror(i32 noundef %9453, ptr noundef nonnull @.str.4) #11
  %9455 = load i32, ptr %3177, align 4, !tbaa !5
  %9456 = call ptr @s2n_strerror_debug(i32 noundef %9455, ptr noundef nonnull @.str.4) #11
  %9457 = load i32, ptr %3231, align 4, !tbaa !5
  %9458 = call ptr @strerror(i32 noundef %9457) #11
  %9459 = load i32, ptr %3231, align 4, !tbaa !5
  %9460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9451, ptr noundef nonnull %.str.5.sink4270, i32 noundef %9452, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 1360, ptr noundef %9454, ptr noundef %9456, ptr noundef %9458, i32 noundef %9459) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9461:                                             ; preds = %9435
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %9462 = load i32, ptr @test_count, align 4, !tbaa !5
  %9463 = add nsw i32 %9462, 1
  store i32 %9463, ptr @test_count, align 4, !tbaa !5
  %9464 = load ptr, ptr %140, align 8, !tbaa !9
  %9465 = getelementptr inbounds i8, ptr %9464, i64 220
  %9466 = load i8, ptr %9465, align 4, !tbaa !50
  %9467 = icmp eq i8 %9466, 33
  br i1 %9467, label %9490, label %9468

9468:                                             ; preds = %9594, %9461
  %9469 = load i32, ptr %3231, align 4, !tbaa !5
  %9470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9471 = call i32 @s2n_print_stacktrace(ptr noundef %9470) #11
  %9472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9473 = trunc nuw i8 %9472 to i1
  br i1 %9473, label %9474, label %9478

9474:                                             ; preds = %9468
  %9475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9476 = call i32 @fileno(ptr noundef %9475) #11
  %9477 = call i32 @isatty(i32 noundef %9476) #11
  %.not1178 = icmp eq i32 %9477, 0
  br i1 %.not1178, label %9478, label %9479

9478:                                             ; preds = %9474, %9468
  br label %9479

9479:                                             ; preds = %9474, %9478
  %.str.5.sink4279 = phi ptr [ @.str.5, %9478 ], [ @.str.2, %9474 ]
  store i32 %9469, ptr %3231, align 4, !tbaa !5
  %9480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9481 = load i32, ptr @test_count, align 4, !tbaa !5
  %9482 = load i32, ptr %3177, align 4, !tbaa !5
  %9483 = call ptr @s2n_strerror(i32 noundef %9482, ptr noundef nonnull @.str.4) #11
  %9484 = load i32, ptr %3177, align 4, !tbaa !5
  %9485 = call ptr @s2n_strerror_debug(i32 noundef %9484, ptr noundef nonnull @.str.4) #11
  %9486 = load i32, ptr %3231, align 4, !tbaa !5
  %9487 = call ptr @strerror(i32 noundef %9486) #11
  %9488 = load i32, ptr %3231, align 4, !tbaa !5
  %9489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9480, ptr noundef nonnull %.str.5.sink4279, i32 noundef %9481, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.1, i32 noundef 1361, ptr noundef %9483, ptr noundef %9485, ptr noundef %9487, i32 noundef %9488) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9490:                                             ; preds = %9461
  %9491 = add nsw i32 %9462, 2
  store i32 %9491, ptr @test_count, align 4, !tbaa !5
  %9492 = load ptr, ptr %141, align 8, !tbaa !9
  %9493 = getelementptr inbounds i8, ptr %9492, i64 220
  %9494 = load i8, ptr %9493, align 4, !tbaa !50
  %9495 = icmp eq i8 %9494, 33
  br i1 %9495, label %.preheader1308.1, label %9496

9496:                                             ; preds = %9601, %9490
  %9497 = load i32, ptr %3231, align 4, !tbaa !5
  %9498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9499 = call i32 @s2n_print_stacktrace(ptr noundef %9498) #11
  %9500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9501 = trunc nuw i8 %9500 to i1
  br i1 %9501, label %9502, label %9506

9502:                                             ; preds = %9496
  %9503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9504 = call i32 @fileno(ptr noundef %9503) #11
  %9505 = call i32 @isatty(i32 noundef %9504) #11
  %.not1179 = icmp eq i32 %9505, 0
  br i1 %.not1179, label %9506, label %9507

9506:                                             ; preds = %9502, %9496
  br label %9507

9507:                                             ; preds = %9502, %9506
  %.str.5.sink4288 = phi ptr [ @.str.5, %9506 ], [ @.str.2, %9502 ]
  store i32 %9497, ptr %3231, align 4, !tbaa !5
  %9508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9509 = load i32, ptr @test_count, align 4, !tbaa !5
  %9510 = load i32, ptr %3177, align 4, !tbaa !5
  %9511 = call ptr @s2n_strerror(i32 noundef %9510, ptr noundef nonnull @.str.4) #11
  %9512 = load i32, ptr %3177, align 4, !tbaa !5
  %9513 = call ptr @s2n_strerror_debug(i32 noundef %9512, ptr noundef nonnull @.str.4) #11
  %9514 = load i32, ptr %3231, align 4, !tbaa !5
  %9515 = call ptr @strerror(i32 noundef %9514) #11
  %9516 = load i32, ptr %3231, align 4, !tbaa !5
  %9517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9508, ptr noundef nonnull %.str.5.sink4288, i32 noundef %9509, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.1, i32 noundef 1362, ptr noundef %9511, ptr noundef %9513, ptr noundef %9515, i32 noundef %9516) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.preheader1308.1:                                 ; preds = %9490
  %9518 = call i32 @s2n_io_pair_close(ptr noundef nonnull %142) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #11
  %9519 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %141) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %141) #11
  %9520 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %140) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #11
  %9521 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %139) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %139) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %139) #11
  %9522 = call ptr @s2n_config_new() #11
  store ptr %9522, ptr %139, align 8, !tbaa !9
  %9523 = load i32, ptr @test_count, align 4, !tbaa !5
  %9524 = add nsw i32 %9523, 1
  store i32 %9524, ptr @test_count, align 4, !tbaa !5
  %9525 = icmp eq ptr %9522, null
  br i1 %9525, label %9129, label %9526

9526:                                             ; preds = %.preheader1308.1
  %9527 = add nsw i32 %9523, 2
  store i32 %9527, ptr @test_count, align 4, !tbaa !5
  %9528 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %9522) #11
  %9529 = icmp eq i32 %9528, -1
  br i1 %9529, label %9155, label %9530

9530:                                             ; preds = %9526
  %9531 = load i32, ptr @test_count, align 4, !tbaa !5
  %9532 = add nsw i32 %9531, 1
  store i32 %9532, ptr @test_count, align 4, !tbaa !5
  %9533 = load ptr, ptr %139, align 8, !tbaa !9
  %9534 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %9533, ptr noundef %335) #11
  %9535 = icmp eq i32 %9534, -1
  br i1 %9535, label %9183, label %9536

9536:                                             ; preds = %9530
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %140) #11
  %9537 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %9537, ptr %140, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %141) #11
  %9538 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %9538, ptr %141, align 8, !tbaa !9
  %9539 = load i32, ptr @test_count, align 4, !tbaa !5
  %9540 = add nsw i32 %9539, 1
  store i32 %9540, ptr @test_count, align 4, !tbaa !5
  %9541 = load ptr, ptr %140, align 8, !tbaa !9
  %9542 = load ptr, ptr %139, align 8, !tbaa !9
  %9543 = call i32 @s2n_connection_set_config(ptr noundef %9541, ptr noundef %9542) #11
  %9544 = icmp eq i32 %9543, -1
  br i1 %9544, label %9214, label %9545

9545:                                             ; preds = %9536
  %9546 = load i32, ptr @test_count, align 4, !tbaa !5
  %9547 = add nsw i32 %9546, 1
  store i32 %9547, ptr @test_count, align 4, !tbaa !5
  %9548 = load ptr, ptr %141, align 8, !tbaa !9
  %9549 = load ptr, ptr %139, align 8, !tbaa !9
  %9550 = call i32 @s2n_connection_set_config(ptr noundef %9548, ptr noundef %9549) #11
  %9551 = icmp eq i32 %9550, -1
  br i1 %9551, label %9243, label %9552

9552:                                             ; preds = %9545
  %9553 = load i32, ptr @test_count, align 4, !tbaa !5
  %9554 = add nsw i32 %9553, 1
  store i32 %9554, ptr @test_count, align 4, !tbaa !5
  %9555 = load ptr, ptr %140, align 8, !tbaa !9
  %9556 = call i32 @s2n_connection_set_blinding(ptr noundef %9555, i32 noundef 1) #11
  %9557 = icmp eq i32 %9556, -1
  br i1 %9557, label %9271, label %9558

9558:                                             ; preds = %9552
  %9559 = load i32, ptr @test_count, align 4, !tbaa !5
  %9560 = add nsw i32 %9559, 1
  store i32 %9560, ptr @test_count, align 4, !tbaa !5
  %9561 = load ptr, ptr %141, align 8, !tbaa !9
  %9562 = call i32 @s2n_connection_set_blinding(ptr noundef %9561, i32 noundef 1) #11
  %9563 = icmp eq i32 %9562, -1
  br i1 %9563, label %9299, label %9564

9564:                                             ; preds = %9558
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %142) #11
  %9565 = load i32, ptr @test_count, align 4, !tbaa !5
  %9566 = add nsw i32 %9565, 1
  store i32 %9566, ptr @test_count, align 4, !tbaa !5
  %9567 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %142) #11
  %9568 = icmp eq i32 %9567, -1
  br i1 %9568, label %9326, label %9569

9569:                                             ; preds = %9564
  %9570 = load i32, ptr @test_count, align 4, !tbaa !5
  %9571 = add nsw i32 %9570, 1
  store i32 %9571, ptr @test_count, align 4, !tbaa !5
  %9572 = load ptr, ptr %140, align 8, !tbaa !9
  %9573 = load ptr, ptr %141, align 8, !tbaa !9
  %9574 = call i32 @s2n_connections_set_io_pair(ptr noundef %9572, ptr noundef %9573, ptr noundef nonnull %142) #11
  %9575 = icmp eq i32 %9574, -1
  br i1 %9575, label %9355, label %9576

9576:                                             ; preds = %9569
  %9577 = load ptr, ptr %140, align 8, !tbaa !9
  %9578 = getelementptr inbounds i8, ptr %9577, i64 16
  store ptr %133, ptr %9578, align 8, !tbaa !26
  %9579 = load ptr, ptr %141, align 8, !tbaa !9
  %9580 = getelementptr inbounds i8, ptr %9579, i64 16
  store ptr %134, ptr %9580, align 8, !tbaa !26
  %9581 = load i32, ptr @test_count, align 4, !tbaa !5
  %9582 = add nsw i32 %9581, 1
  store i32 %9582, ptr @test_count, align 4, !tbaa !5
  %9583 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %9579, ptr noundef %9577) #11
  %9584 = icmp eq i32 %9583, -1
  br i1 %9584, label %9585, label %9386

9585:                                             ; preds = %9576
  %9586 = load i32, ptr @test_count, align 4, !tbaa !5
  %9587 = add nsw i32 %9586, 1
  store i32 %9587, ptr @test_count, align 4, !tbaa !5
  %9588 = load i32, ptr %3177, align 4, !tbaa !5
  %9589 = icmp eq i32 %9588, 335544348
  br i1 %9589, label %9590, label %9413

9590:                                             ; preds = %9585
  %9591 = add nsw i32 %9586, 2
  store i32 %9591, ptr @test_count, align 4, !tbaa !5
  %9592 = call ptr @s2n_strerror_debug(i32 noundef 335544348, ptr noundef nonnull @.str.4) #11
  %9593 = icmp eq ptr %9592, null
  br i1 %9593, label %9439, label %9594

9594:                                             ; preds = %9590
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %9595 = load i32, ptr @test_count, align 4, !tbaa !5
  %9596 = add nsw i32 %9595, 1
  store i32 %9596, ptr @test_count, align 4, !tbaa !5
  %9597 = load ptr, ptr %140, align 8, !tbaa !9
  %9598 = getelementptr inbounds i8, ptr %9597, i64 220
  %9599 = load i8, ptr %9598, align 4, !tbaa !50
  %9600 = icmp eq i8 %9599, 33
  br i1 %9600, label %9601, label %9468

9601:                                             ; preds = %9594
  %9602 = add nsw i32 %9595, 2
  store i32 %9602, ptr @test_count, align 4, !tbaa !5
  %9603 = load ptr, ptr %141, align 8, !tbaa !9
  %9604 = getelementptr inbounds i8, ptr %9603, i64 220
  %9605 = load i8, ptr %9604, align 4, !tbaa !50
  %9606 = icmp eq i8 %9605, 33
  br i1 %9606, label %.preheader.preheader, label %9496

.preheader.preheader:                             ; preds = %9601
  %9607 = call i32 @s2n_io_pair_close(ptr noundef nonnull %142) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #11
  %9608 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %141) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %141) #11
  %9609 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %140) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #11
  %9610 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %139) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %139) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %143) #11
  %9611 = call ptr @s2n_config_new() #11
  store ptr %9611, ptr %143, align 8, !tbaa !9
  %9612 = load i32, ptr @test_count, align 4, !tbaa !5
  %9613 = add nsw i32 %9612, 1
  store i32 %9613, ptr @test_count, align 4, !tbaa !5
  %9614 = icmp eq ptr %9611, null
  br i1 %9614, label %9615, label %9637

9615:                                             ; preds = %.preheader.1, %.preheader.preheader
  %9616 = load i32, ptr %3231, align 4, !tbaa !5
  %9617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9618 = call i32 @s2n_print_stacktrace(ptr noundef %9617) #11
  %9619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9620 = trunc nuw i8 %9619 to i1
  br i1 %9620, label %9621, label %9625

9621:                                             ; preds = %9615
  %9622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9623 = call i32 @fileno(ptr noundef %9622) #11
  %9624 = call i32 @isatty(i32 noundef %9623) #11
  %.not1175 = icmp eq i32 %9624, 0
  br i1 %.not1175, label %9625, label %9626

9625:                                             ; preds = %9621, %9615
  br label %9626

9626:                                             ; preds = %9621, %9625
  %.str.5.sink4297 = phi ptr [ @.str.5, %9625 ], [ @.str.2, %9621 ]
  store i32 %9616, ptr %3231, align 4, !tbaa !5
  %9627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9628 = load i32, ptr @test_count, align 4, !tbaa !5
  %9629 = load i32, ptr %3177, align 4, !tbaa !5
  %9630 = call ptr @s2n_strerror(i32 noundef %9629, ptr noundef nonnull @.str.4) #11
  %9631 = load i32, ptr %3177, align 4, !tbaa !5
  %9632 = call ptr @s2n_strerror_debug(i32 noundef %9631, ptr noundef nonnull @.str.4) #11
  %9633 = load i32, ptr %3231, align 4, !tbaa !5
  %9634 = call ptr @strerror(i32 noundef %9633) #11
  %9635 = load i32, ptr %3231, align 4, !tbaa !5
  %9636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9627, ptr noundef nonnull %.str.5.sink4297, i32 noundef %9628, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 1368, ptr noundef %9630, ptr noundef %9632, ptr noundef %9634, i32 noundef %9635) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9637:                                             ; preds = %.preheader.preheader
  %9638 = add nsw i32 %9612, 2
  store i32 %9638, ptr @test_count, align 4, !tbaa !5
  %9639 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %9611) #11
  %9640 = icmp eq i32 %9639, -1
  br i1 %9640, label %9641, label %9663

9641:                                             ; preds = %10012, %9637
  %9642 = load i32, ptr %3231, align 4, !tbaa !5
  %9643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9644 = call i32 @s2n_print_stacktrace(ptr noundef %9643) #11
  %9645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9646 = trunc nuw i8 %9645 to i1
  br i1 %9646, label %9647, label %9651

9647:                                             ; preds = %9641
  %9648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9649 = call i32 @fileno(ptr noundef %9648) #11
  %9650 = call i32 @isatty(i32 noundef %9649) #11
  %.not1174 = icmp eq i32 %9650, 0
  br i1 %.not1174, label %9651, label %9652

9651:                                             ; preds = %9647, %9641
  br label %9652

9652:                                             ; preds = %9647, %9651
  %.str.5.sink4306 = phi ptr [ @.str.5, %9651 ], [ @.str.2, %9647 ]
  store i32 %9642, ptr %3231, align 4, !tbaa !5
  %9653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9654 = load i32, ptr @test_count, align 4, !tbaa !5
  %9655 = load i32, ptr %3177, align 4, !tbaa !5
  %9656 = call ptr @s2n_strerror(i32 noundef %9655, ptr noundef nonnull @.str.4) #11
  %9657 = load i32, ptr %3177, align 4, !tbaa !5
  %9658 = call ptr @s2n_strerror_debug(i32 noundef %9657, ptr noundef nonnull @.str.4) #11
  %9659 = load i32, ptr %3231, align 4, !tbaa !5
  %9660 = call ptr @strerror(i32 noundef %9659) #11
  %9661 = load i32, ptr %3231, align 4, !tbaa !5
  %9662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9653, ptr noundef nonnull %.str.5.sink4306, i32 noundef %9654, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 1369, ptr noundef %9656, ptr noundef %9658, ptr noundef %9660, i32 noundef %9661) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9663:                                             ; preds = %9637
  %9664 = load i32, ptr @test_count, align 4, !tbaa !5
  %9665 = add nsw i32 %9664, 1
  store i32 %9665, ptr @test_count, align 4, !tbaa !5
  %9666 = load ptr, ptr %143, align 8, !tbaa !9
  %9667 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %9666, ptr noundef %334) #11
  %9668 = icmp eq i32 %9667, -1
  br i1 %9668, label %9669, label %9691

9669:                                             ; preds = %10016, %9663
  %9670 = load i32, ptr %3231, align 4, !tbaa !5
  %9671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9672 = call i32 @s2n_print_stacktrace(ptr noundef %9671) #11
  %9673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9674 = trunc nuw i8 %9673 to i1
  br i1 %9674, label %9675, label %9679

9675:                                             ; preds = %9669
  %9676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9677 = call i32 @fileno(ptr noundef %9676) #11
  %9678 = call i32 @isatty(i32 noundef %9677) #11
  %.not1173 = icmp eq i32 %9678, 0
  br i1 %.not1173, label %9679, label %9680

9679:                                             ; preds = %9675, %9669
  br label %9680

9680:                                             ; preds = %9675, %9679
  %.str.5.sink4315 = phi ptr [ @.str.5, %9679 ], [ @.str.2, %9675 ]
  store i32 %9670, ptr %3231, align 4, !tbaa !5
  %9681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9682 = load i32, ptr @test_count, align 4, !tbaa !5
  %9683 = load i32, ptr %3177, align 4, !tbaa !5
  %9684 = call ptr @s2n_strerror(i32 noundef %9683, ptr noundef nonnull @.str.4) #11
  %9685 = load i32, ptr %3177, align 4, !tbaa !5
  %9686 = call ptr @s2n_strerror_debug(i32 noundef %9685, ptr noundef nonnull @.str.4) #11
  %9687 = load i32, ptr %3231, align 4, !tbaa !5
  %9688 = call ptr @strerror(i32 noundef %9687) #11
  %9689 = load i32, ptr %3231, align 4, !tbaa !5
  %9690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9681, ptr noundef nonnull %.str.5.sink4315, i32 noundef %9682, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 1370, ptr noundef %9684, ptr noundef %9686, ptr noundef %9688, i32 noundef %9689) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9691:                                             ; preds = %9663
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %144) #11
  %9692 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %9692, ptr %144, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %145) #11
  %9693 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %9693, ptr %145, align 8, !tbaa !9
  %9694 = load i32, ptr @test_count, align 4, !tbaa !5
  %9695 = add nsw i32 %9694, 1
  store i32 %9695, ptr @test_count, align 4, !tbaa !5
  %9696 = load ptr, ptr %144, align 8, !tbaa !9
  %9697 = load ptr, ptr %143, align 8, !tbaa !9
  %9698 = call i32 @s2n_connection_set_config(ptr noundef %9696, ptr noundef %9697) #11
  %9699 = icmp eq i32 %9698, -1
  br i1 %9699, label %9700, label %9722

9700:                                             ; preds = %10022, %9691
  %9701 = load i32, ptr %3231, align 4, !tbaa !5
  %9702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9703 = call i32 @s2n_print_stacktrace(ptr noundef %9702) #11
  %9704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9705 = trunc nuw i8 %9704 to i1
  br i1 %9705, label %9706, label %9710

9706:                                             ; preds = %9700
  %9707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9708 = call i32 @fileno(ptr noundef %9707) #11
  %9709 = call i32 @isatty(i32 noundef %9708) #11
  %.not1172 = icmp eq i32 %9709, 0
  br i1 %.not1172, label %9710, label %9711

9710:                                             ; preds = %9706, %9700
  br label %9711

9711:                                             ; preds = %9706, %9710
  %.str.5.sink4324 = phi ptr [ @.str.5, %9710 ], [ @.str.2, %9706 ]
  store i32 %9701, ptr %3231, align 4, !tbaa !5
  %9712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9713 = load i32, ptr @test_count, align 4, !tbaa !5
  %9714 = load i32, ptr %3177, align 4, !tbaa !5
  %9715 = call ptr @s2n_strerror(i32 noundef %9714, ptr noundef nonnull @.str.4) #11
  %9716 = load i32, ptr %3177, align 4, !tbaa !5
  %9717 = call ptr @s2n_strerror_debug(i32 noundef %9716, ptr noundef nonnull @.str.4) #11
  %9718 = load i32, ptr %3231, align 4, !tbaa !5
  %9719 = call ptr @strerror(i32 noundef %9718) #11
  %9720 = load i32, ptr %3231, align 4, !tbaa !5
  %9721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9712, ptr noundef nonnull %.str.5.sink4324, i32 noundef %9713, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 1377, ptr noundef %9715, ptr noundef %9717, ptr noundef %9719, i32 noundef %9720) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9722:                                             ; preds = %9691
  %9723 = load i32, ptr @test_count, align 4, !tbaa !5
  %9724 = add nsw i32 %9723, 1
  store i32 %9724, ptr @test_count, align 4, !tbaa !5
  %9725 = load ptr, ptr %145, align 8, !tbaa !9
  %9726 = load ptr, ptr %143, align 8, !tbaa !9
  %9727 = call i32 @s2n_connection_set_config(ptr noundef %9725, ptr noundef %9726) #11
  %9728 = icmp eq i32 %9727, -1
  br i1 %9728, label %9729, label %9751

9729:                                             ; preds = %10031, %9722
  %9730 = load i32, ptr %3231, align 4, !tbaa !5
  %9731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9732 = call i32 @s2n_print_stacktrace(ptr noundef %9731) #11
  %9733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9734 = trunc nuw i8 %9733 to i1
  br i1 %9734, label %9735, label %9739

9735:                                             ; preds = %9729
  %9736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9737 = call i32 @fileno(ptr noundef %9736) #11
  %9738 = call i32 @isatty(i32 noundef %9737) #11
  %.not1171 = icmp eq i32 %9738, 0
  br i1 %.not1171, label %9739, label %9740

9739:                                             ; preds = %9735, %9729
  br label %9740

9740:                                             ; preds = %9735, %9739
  %.str.5.sink4333 = phi ptr [ @.str.5, %9739 ], [ @.str.2, %9735 ]
  store i32 %9730, ptr %3231, align 4, !tbaa !5
  %9741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9742 = load i32, ptr @test_count, align 4, !tbaa !5
  %9743 = load i32, ptr %3177, align 4, !tbaa !5
  %9744 = call ptr @s2n_strerror(i32 noundef %9743, ptr noundef nonnull @.str.4) #11
  %9745 = load i32, ptr %3177, align 4, !tbaa !5
  %9746 = call ptr @s2n_strerror_debug(i32 noundef %9745, ptr noundef nonnull @.str.4) #11
  %9747 = load i32, ptr %3231, align 4, !tbaa !5
  %9748 = call ptr @strerror(i32 noundef %9747) #11
  %9749 = load i32, ptr %3231, align 4, !tbaa !5
  %9750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9741, ptr noundef nonnull %.str.5.sink4333, i32 noundef %9742, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 1378, ptr noundef %9744, ptr noundef %9746, ptr noundef %9748, i32 noundef %9749) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9751:                                             ; preds = %9722
  %9752 = load i32, ptr @test_count, align 4, !tbaa !5
  %9753 = add nsw i32 %9752, 1
  store i32 %9753, ptr @test_count, align 4, !tbaa !5
  %9754 = load ptr, ptr %144, align 8, !tbaa !9
  %9755 = call i32 @s2n_connection_set_blinding(ptr noundef %9754, i32 noundef 1) #11
  %9756 = icmp eq i32 %9755, -1
  br i1 %9756, label %9757, label %9779

9757:                                             ; preds = %10038, %9751
  %9758 = load i32, ptr %3231, align 4, !tbaa !5
  %9759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9760 = call i32 @s2n_print_stacktrace(ptr noundef %9759) #11
  %9761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9762 = trunc nuw i8 %9761 to i1
  br i1 %9762, label %9763, label %9767

9763:                                             ; preds = %9757
  %9764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9765 = call i32 @fileno(ptr noundef %9764) #11
  %9766 = call i32 @isatty(i32 noundef %9765) #11
  %.not1170 = icmp eq i32 %9766, 0
  br i1 %.not1170, label %9767, label %9768

9767:                                             ; preds = %9763, %9757
  br label %9768

9768:                                             ; preds = %9763, %9767
  %.str.5.sink4342 = phi ptr [ @.str.5, %9767 ], [ @.str.2, %9763 ]
  store i32 %9758, ptr %3231, align 4, !tbaa !5
  %9769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9770 = load i32, ptr @test_count, align 4, !tbaa !5
  %9771 = load i32, ptr %3177, align 4, !tbaa !5
  %9772 = call ptr @s2n_strerror(i32 noundef %9771, ptr noundef nonnull @.str.4) #11
  %9773 = load i32, ptr %3177, align 4, !tbaa !5
  %9774 = call ptr @s2n_strerror_debug(i32 noundef %9773, ptr noundef nonnull @.str.4) #11
  %9775 = load i32, ptr %3231, align 4, !tbaa !5
  %9776 = call ptr @strerror(i32 noundef %9775) #11
  %9777 = load i32, ptr %3231, align 4, !tbaa !5
  %9778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9769, ptr noundef nonnull %.str.5.sink4342, i32 noundef %9770, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.1, i32 noundef 1379, ptr noundef %9772, ptr noundef %9774, ptr noundef %9776, i32 noundef %9777) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9779:                                             ; preds = %9751
  %9780 = load i32, ptr @test_count, align 4, !tbaa !5
  %9781 = add nsw i32 %9780, 1
  store i32 %9781, ptr @test_count, align 4, !tbaa !5
  %9782 = load ptr, ptr %145, align 8, !tbaa !9
  %9783 = call i32 @s2n_connection_set_blinding(ptr noundef %9782, i32 noundef 1) #11
  %9784 = icmp eq i32 %9783, -1
  br i1 %9784, label %9785, label %9807

9785:                                             ; preds = %10044, %9779
  %9786 = load i32, ptr %3231, align 4, !tbaa !5
  %9787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9788 = call i32 @s2n_print_stacktrace(ptr noundef %9787) #11
  %9789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9790 = trunc nuw i8 %9789 to i1
  br i1 %9790, label %9791, label %9795

9791:                                             ; preds = %9785
  %9792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9793 = call i32 @fileno(ptr noundef %9792) #11
  %9794 = call i32 @isatty(i32 noundef %9793) #11
  %.not1169 = icmp eq i32 %9794, 0
  br i1 %.not1169, label %9795, label %9796

9795:                                             ; preds = %9791, %9785
  br label %9796

9796:                                             ; preds = %9791, %9795
  %.str.5.sink4351 = phi ptr [ @.str.5, %9795 ], [ @.str.2, %9791 ]
  store i32 %9786, ptr %3231, align 4, !tbaa !5
  %9797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9798 = load i32, ptr @test_count, align 4, !tbaa !5
  %9799 = load i32, ptr %3177, align 4, !tbaa !5
  %9800 = call ptr @s2n_strerror(i32 noundef %9799, ptr noundef nonnull @.str.4) #11
  %9801 = load i32, ptr %3177, align 4, !tbaa !5
  %9802 = call ptr @s2n_strerror_debug(i32 noundef %9801, ptr noundef nonnull @.str.4) #11
  %9803 = load i32, ptr %3231, align 4, !tbaa !5
  %9804 = call ptr @strerror(i32 noundef %9803) #11
  %9805 = load i32, ptr %3231, align 4, !tbaa !5
  %9806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9797, ptr noundef nonnull %.str.5.sink4351, i32 noundef %9798, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.1, i32 noundef 1380, ptr noundef %9800, ptr noundef %9802, ptr noundef %9804, i32 noundef %9805) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9807:                                             ; preds = %9779
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %146) #11
  %9808 = load i32, ptr @test_count, align 4, !tbaa !5
  %9809 = add nsw i32 %9808, 1
  store i32 %9809, ptr @test_count, align 4, !tbaa !5
  %9810 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %146) #11
  %9811 = icmp eq i32 %9810, -1
  br i1 %9811, label %9812, label %9834

9812:                                             ; preds = %10050, %9807
  %9813 = load i32, ptr %3231, align 4, !tbaa !5
  %9814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9815 = call i32 @s2n_print_stacktrace(ptr noundef %9814) #11
  %9816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9817 = trunc nuw i8 %9816 to i1
  br i1 %9817, label %9818, label %9822

9818:                                             ; preds = %9812
  %9819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9820 = call i32 @fileno(ptr noundef %9819) #11
  %9821 = call i32 @isatty(i32 noundef %9820) #11
  %.not1168 = icmp eq i32 %9821, 0
  br i1 %.not1168, label %9822, label %9823

9822:                                             ; preds = %9818, %9812
  br label %9823

9823:                                             ; preds = %9818, %9822
  %.str.5.sink4360 = phi ptr [ @.str.5, %9822 ], [ @.str.2, %9818 ]
  store i32 %9813, ptr %3231, align 4, !tbaa !5
  %9824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9825 = load i32, ptr @test_count, align 4, !tbaa !5
  %9826 = load i32, ptr %3177, align 4, !tbaa !5
  %9827 = call ptr @s2n_strerror(i32 noundef %9826, ptr noundef nonnull @.str.4) #11
  %9828 = load i32, ptr %3177, align 4, !tbaa !5
  %9829 = call ptr @s2n_strerror_debug(i32 noundef %9828, ptr noundef nonnull @.str.4) #11
  %9830 = load i32, ptr %3231, align 4, !tbaa !5
  %9831 = call ptr @strerror(i32 noundef %9830) #11
  %9832 = load i32, ptr %3231, align 4, !tbaa !5
  %9833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9824, ptr noundef nonnull %.str.5.sink4360, i32 noundef %9825, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 1384, ptr noundef %9827, ptr noundef %9829, ptr noundef %9831, i32 noundef %9832) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9834:                                             ; preds = %9807
  %9835 = load i32, ptr @test_count, align 4, !tbaa !5
  %9836 = add nsw i32 %9835, 1
  store i32 %9836, ptr @test_count, align 4, !tbaa !5
  %9837 = load ptr, ptr %144, align 8, !tbaa !9
  %9838 = load ptr, ptr %145, align 8, !tbaa !9
  %9839 = call i32 @s2n_connections_set_io_pair(ptr noundef %9837, ptr noundef %9838, ptr noundef nonnull %146) #11
  %9840 = icmp eq i32 %9839, -1
  br i1 %9840, label %9841, label %9863

9841:                                             ; preds = %10055, %9834
  %9842 = load i32, ptr %3231, align 4, !tbaa !5
  %9843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9844 = call i32 @s2n_print_stacktrace(ptr noundef %9843) #11
  %9845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9846 = trunc nuw i8 %9845 to i1
  br i1 %9846, label %9847, label %9851

9847:                                             ; preds = %9841
  %9848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9849 = call i32 @fileno(ptr noundef %9848) #11
  %9850 = call i32 @isatty(i32 noundef %9849) #11
  %.not1167 = icmp eq i32 %9850, 0
  br i1 %.not1167, label %9851, label %9852

9851:                                             ; preds = %9847, %9841
  br label %9852

9852:                                             ; preds = %9847, %9851
  %.str.5.sink4369 = phi ptr [ @.str.5, %9851 ], [ @.str.2, %9847 ]
  store i32 %9842, ptr %3231, align 4, !tbaa !5
  %9853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9854 = load i32, ptr @test_count, align 4, !tbaa !5
  %9855 = load i32, ptr %3177, align 4, !tbaa !5
  %9856 = call ptr @s2n_strerror(i32 noundef %9855, ptr noundef nonnull @.str.4) #11
  %9857 = load i32, ptr %3177, align 4, !tbaa !5
  %9858 = call ptr @s2n_strerror_debug(i32 noundef %9857, ptr noundef nonnull @.str.4) #11
  %9859 = load i32, ptr %3231, align 4, !tbaa !5
  %9860 = call ptr @strerror(i32 noundef %9859) #11
  %9861 = load i32, ptr %3231, align 4, !tbaa !5
  %9862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9853, ptr noundef nonnull %.str.5.sink4369, i32 noundef %9854, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.1, i32 noundef 1385, ptr noundef %9856, ptr noundef %9858, ptr noundef %9860, i32 noundef %9861) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9863:                                             ; preds = %9834
  %9864 = load ptr, ptr %144, align 8, !tbaa !9
  %9865 = getelementptr inbounds i8, ptr %9864, i64 16
  store ptr %133, ptr %9865, align 8, !tbaa !26
  %9866 = load ptr, ptr %145, align 8, !tbaa !9
  %9867 = getelementptr inbounds i8, ptr %9866, i64 16
  store ptr %132, ptr %9867, align 8, !tbaa !26
  %9868 = load i32, ptr @test_count, align 4, !tbaa !5
  %9869 = add nsw i32 %9868, 1
  store i32 %9869, ptr @test_count, align 4, !tbaa !5
  %9870 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %9866, ptr noundef %9864) #11
  %9871 = icmp eq i32 %9870, -1
  br i1 %9871, label %9894, label %9872

9872:                                             ; preds = %10062, %9863
  %9873 = load i32, ptr %3231, align 4, !tbaa !5
  %9874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9875 = call i32 @s2n_print_stacktrace(ptr noundef %9874) #11
  %9876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9877 = trunc nuw i8 %9876 to i1
  br i1 %9877, label %9878, label %9882

9878:                                             ; preds = %9872
  %9879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9880 = call i32 @fileno(ptr noundef %9879) #11
  %9881 = call i32 @isatty(i32 noundef %9880) #11
  %.not1162 = icmp eq i32 %9881, 0
  br i1 %.not1162, label %9882, label %9883

9882:                                             ; preds = %9878, %9872
  br label %9883

9883:                                             ; preds = %9878, %9882
  %.str.5.sink4378 = phi ptr [ @.str.5, %9882 ], [ @.str.2, %9878 ]
  store i32 %9873, ptr %3231, align 4, !tbaa !5
  %9884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9885 = load i32, ptr @test_count, align 4, !tbaa !5
  %9886 = load i32, ptr %3177, align 4, !tbaa !5
  %9887 = call ptr @s2n_strerror(i32 noundef %9886, ptr noundef nonnull @.str.4) #11
  %9888 = load i32, ptr %3177, align 4, !tbaa !5
  %9889 = call ptr @s2n_strerror_debug(i32 noundef %9888, ptr noundef nonnull @.str.4) #11
  %9890 = load i32, ptr %3231, align 4, !tbaa !5
  %9891 = call ptr @strerror(i32 noundef %9890) #11
  %9892 = load i32, ptr %3231, align 4, !tbaa !5
  %9893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9884, ptr noundef nonnull %.str.5.sink4378, i32 noundef %9885, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.1, i32 noundef 1394, ptr noundef %9887, ptr noundef %9889, ptr noundef %9891, i32 noundef %9892) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9894:                                             ; preds = %9863
  %9895 = load i32, ptr @test_count, align 4, !tbaa !5
  %9896 = add nsw i32 %9895, 1
  store i32 %9896, ptr @test_count, align 4, !tbaa !5
  %9897 = load i32, ptr %3177, align 4, !tbaa !5
  %9898 = icmp eq i32 %9897, 335544348
  br i1 %9898, label %9921, label %9899

9899:                                             ; preds = %10071, %9894
  %9900 = load i32, ptr %3231, align 4, !tbaa !5
  %9901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9902 = call i32 @s2n_print_stacktrace(ptr noundef %9901) #11
  %9903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9904 = trunc nuw i8 %9903 to i1
  br i1 %9904, label %9905, label %9909

9905:                                             ; preds = %9899
  %9906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9907 = call i32 @fileno(ptr noundef %9906) #11
  %9908 = call i32 @isatty(i32 noundef %9907) #11
  %.not1163 = icmp eq i32 %9908, 0
  br i1 %.not1163, label %9909, label %9910

9909:                                             ; preds = %9905, %9899
  br label %9910

9910:                                             ; preds = %9905, %9909
  %.str.5.sink4387 = phi ptr [ @.str.5, %9909 ], [ @.str.2, %9905 ]
  store i32 %9900, ptr %3231, align 4, !tbaa !5
  %9911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9912 = load i32, ptr @test_count, align 4, !tbaa !5
  %9913 = load i32, ptr %3177, align 4, !tbaa !5
  %9914 = call ptr @s2n_strerror(i32 noundef %9913, ptr noundef nonnull @.str.4) #11
  %9915 = load i32, ptr %3177, align 4, !tbaa !5
  %9916 = call ptr @s2n_strerror_debug(i32 noundef %9915, ptr noundef nonnull @.str.4) #11
  %9917 = load i32, ptr %3231, align 4, !tbaa !5
  %9918 = call ptr @strerror(i32 noundef %9917) #11
  %9919 = load i32, ptr %3231, align 4, !tbaa !5
  %9920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9911, ptr noundef nonnull %.str.5.sink4387, i32 noundef %9912, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 1394, ptr noundef %9914, ptr noundef %9916, ptr noundef %9918, i32 noundef %9919) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9921:                                             ; preds = %9894
  %9922 = add nsw i32 %9895, 2
  store i32 %9922, ptr @test_count, align 4, !tbaa !5
  %9923 = call ptr @s2n_strerror_debug(i32 noundef 335544348, ptr noundef nonnull @.str.4) #11
  %9924 = icmp eq ptr %9923, null
  br i1 %9924, label %9925, label %9947

9925:                                             ; preds = %10076, %9921
  %9926 = load i32, ptr %3231, align 4, !tbaa !5
  %9927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9928 = call i32 @s2n_print_stacktrace(ptr noundef %9927) #11
  %9929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9930 = trunc nuw i8 %9929 to i1
  br i1 %9930, label %9931, label %9935

9931:                                             ; preds = %9925
  %9932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9933 = call i32 @fileno(ptr noundef %9932) #11
  %9934 = call i32 @isatty(i32 noundef %9933) #11
  %.not1166 = icmp eq i32 %9934, 0
  br i1 %.not1166, label %9935, label %9936

9935:                                             ; preds = %9931, %9925
  br label %9936

9936:                                             ; preds = %9931, %9935
  %.str.5.sink4396 = phi ptr [ @.str.5, %9935 ], [ @.str.2, %9931 ]
  store i32 %9926, ptr %3231, align 4, !tbaa !5
  %9937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9938 = load i32, ptr @test_count, align 4, !tbaa !5
  %9939 = load i32, ptr %3177, align 4, !tbaa !5
  %9940 = call ptr @s2n_strerror(i32 noundef %9939, ptr noundef nonnull @.str.4) #11
  %9941 = load i32, ptr %3177, align 4, !tbaa !5
  %9942 = call ptr @s2n_strerror_debug(i32 noundef %9941, ptr noundef nonnull @.str.4) #11
  %9943 = load i32, ptr %3231, align 4, !tbaa !5
  %9944 = call ptr @strerror(i32 noundef %9943) #11
  %9945 = load i32, ptr %3231, align 4, !tbaa !5
  %9946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9937, ptr noundef nonnull %.str.5.sink4396, i32 noundef %9938, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 1394, ptr noundef %9940, ptr noundef %9942, ptr noundef %9944, i32 noundef %9945) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9947:                                             ; preds = %9921
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %9948 = load i32, ptr @test_count, align 4, !tbaa !5
  %9949 = add nsw i32 %9948, 1
  store i32 %9949, ptr @test_count, align 4, !tbaa !5
  %9950 = load ptr, ptr %144, align 8, !tbaa !9
  %9951 = getelementptr inbounds i8, ptr %9950, i64 220
  %9952 = load i8, ptr %9951, align 4, !tbaa !50
  %9953 = icmp eq i8 %9952, 33
  br i1 %9953, label %9976, label %9954

9954:                                             ; preds = %10080, %9947
  %9955 = load i32, ptr %3231, align 4, !tbaa !5
  %9956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9957 = call i32 @s2n_print_stacktrace(ptr noundef %9956) #11
  %9958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9959 = trunc nuw i8 %9958 to i1
  br i1 %9959, label %9960, label %9964

9960:                                             ; preds = %9954
  %9961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9962 = call i32 @fileno(ptr noundef %9961) #11
  %9963 = call i32 @isatty(i32 noundef %9962) #11
  %.not1164 = icmp eq i32 %9963, 0
  br i1 %.not1164, label %9964, label %9965

9964:                                             ; preds = %9960, %9954
  br label %9965

9965:                                             ; preds = %9960, %9964
  %.str.5.sink4405 = phi ptr [ @.str.5, %9964 ], [ @.str.2, %9960 ]
  store i32 %9955, ptr %3231, align 4, !tbaa !5
  %9966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9967 = load i32, ptr @test_count, align 4, !tbaa !5
  %9968 = load i32, ptr %3177, align 4, !tbaa !5
  %9969 = call ptr @s2n_strerror(i32 noundef %9968, ptr noundef nonnull @.str.4) #11
  %9970 = load i32, ptr %3177, align 4, !tbaa !5
  %9971 = call ptr @s2n_strerror_debug(i32 noundef %9970, ptr noundef nonnull @.str.4) #11
  %9972 = load i32, ptr %3231, align 4, !tbaa !5
  %9973 = call ptr @strerror(i32 noundef %9972) #11
  %9974 = load i32, ptr %3231, align 4, !tbaa !5
  %9975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9966, ptr noundef nonnull %.str.5.sink4405, i32 noundef %9967, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.1, i32 noundef 1395, ptr noundef %9969, ptr noundef %9971, ptr noundef %9973, i32 noundef %9974) #13
  call void @exit(i32 noundef 1) #14
  unreachable

9976:                                             ; preds = %9947
  %9977 = add nsw i32 %9948, 2
  store i32 %9977, ptr @test_count, align 4, !tbaa !5
  %9978 = load ptr, ptr %145, align 8, !tbaa !9
  %9979 = getelementptr inbounds i8, ptr %9978, i64 220
  %9980 = load i8, ptr %9979, align 4, !tbaa !50
  %9981 = icmp eq i8 %9980, 33
  br i1 %9981, label %.preheader.1, label %9982

9982:                                             ; preds = %10087, %9976
  %9983 = load i32, ptr %3231, align 4, !tbaa !5
  %9984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9985 = call i32 @s2n_print_stacktrace(ptr noundef %9984) #11
  %9986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9987 = trunc nuw i8 %9986 to i1
  br i1 %9987, label %9988, label %9992

9988:                                             ; preds = %9982
  %9989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9990 = call i32 @fileno(ptr noundef %9989) #11
  %9991 = call i32 @isatty(i32 noundef %9990) #11
  %.not1165 = icmp eq i32 %9991, 0
  br i1 %.not1165, label %9992, label %9993

9992:                                             ; preds = %9988, %9982
  br label %9993

9993:                                             ; preds = %9988, %9992
  %.str.5.sink4414 = phi ptr [ @.str.5, %9992 ], [ @.str.2, %9988 ]
  store i32 %9983, ptr %3231, align 4, !tbaa !5
  %9994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9995 = load i32, ptr @test_count, align 4, !tbaa !5
  %9996 = load i32, ptr %3177, align 4, !tbaa !5
  %9997 = call ptr @s2n_strerror(i32 noundef %9996, ptr noundef nonnull @.str.4) #11
  %9998 = load i32, ptr %3177, align 4, !tbaa !5
  %9999 = call ptr @s2n_strerror_debug(i32 noundef %9998, ptr noundef nonnull @.str.4) #11
  %10000 = load i32, ptr %3231, align 4, !tbaa !5
  %10001 = call ptr @strerror(i32 noundef %10000) #11
  %10002 = load i32, ptr %3231, align 4, !tbaa !5
  %10003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9994, ptr noundef nonnull %.str.5.sink4414, i32 noundef %9995, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.1, i32 noundef 1396, ptr noundef %9997, ptr noundef %9999, ptr noundef %10001, i32 noundef %10002) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.preheader.1:                                     ; preds = %9976
  %10004 = call i32 @s2n_io_pair_close(ptr noundef nonnull %146) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %146) #11
  %10005 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %145) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %145) #11
  %10006 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %144) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %144) #11
  %10007 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %143) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %143) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %143) #11
  %10008 = call ptr @s2n_config_new() #11
  store ptr %10008, ptr %143, align 8, !tbaa !9
  %10009 = load i32, ptr @test_count, align 4, !tbaa !5
  %10010 = add nsw i32 %10009, 1
  store i32 %10010, ptr @test_count, align 4, !tbaa !5
  %10011 = icmp eq ptr %10008, null
  br i1 %10011, label %9615, label %10012

10012:                                            ; preds = %.preheader.1
  %10013 = add nsw i32 %10009, 2
  store i32 %10013, ptr @test_count, align 4, !tbaa !5
  %10014 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %10008) #11
  %10015 = icmp eq i32 %10014, -1
  br i1 %10015, label %9641, label %10016

10016:                                            ; preds = %10012
  %10017 = load i32, ptr @test_count, align 4, !tbaa !5
  %10018 = add nsw i32 %10017, 1
  store i32 %10018, ptr @test_count, align 4, !tbaa !5
  %10019 = load ptr, ptr %143, align 8, !tbaa !9
  %10020 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %10019, ptr noundef %335) #11
  %10021 = icmp eq i32 %10020, -1
  br i1 %10021, label %9669, label %10022

10022:                                            ; preds = %10016
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %144) #11
  %10023 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %10023, ptr %144, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %145) #11
  %10024 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %10024, ptr %145, align 8, !tbaa !9
  %10025 = load i32, ptr @test_count, align 4, !tbaa !5
  %10026 = add nsw i32 %10025, 1
  store i32 %10026, ptr @test_count, align 4, !tbaa !5
  %10027 = load ptr, ptr %144, align 8, !tbaa !9
  %10028 = load ptr, ptr %143, align 8, !tbaa !9
  %10029 = call i32 @s2n_connection_set_config(ptr noundef %10027, ptr noundef %10028) #11
  %10030 = icmp eq i32 %10029, -1
  br i1 %10030, label %9700, label %10031

10031:                                            ; preds = %10022
  %10032 = load i32, ptr @test_count, align 4, !tbaa !5
  %10033 = add nsw i32 %10032, 1
  store i32 %10033, ptr @test_count, align 4, !tbaa !5
  %10034 = load ptr, ptr %145, align 8, !tbaa !9
  %10035 = load ptr, ptr %143, align 8, !tbaa !9
  %10036 = call i32 @s2n_connection_set_config(ptr noundef %10034, ptr noundef %10035) #11
  %10037 = icmp eq i32 %10036, -1
  br i1 %10037, label %9729, label %10038

10038:                                            ; preds = %10031
  %10039 = load i32, ptr @test_count, align 4, !tbaa !5
  %10040 = add nsw i32 %10039, 1
  store i32 %10040, ptr @test_count, align 4, !tbaa !5
  %10041 = load ptr, ptr %144, align 8, !tbaa !9
  %10042 = call i32 @s2n_connection_set_blinding(ptr noundef %10041, i32 noundef 1) #11
  %10043 = icmp eq i32 %10042, -1
  br i1 %10043, label %9757, label %10044

10044:                                            ; preds = %10038
  %10045 = load i32, ptr @test_count, align 4, !tbaa !5
  %10046 = add nsw i32 %10045, 1
  store i32 %10046, ptr @test_count, align 4, !tbaa !5
  %10047 = load ptr, ptr %145, align 8, !tbaa !9
  %10048 = call i32 @s2n_connection_set_blinding(ptr noundef %10047, i32 noundef 1) #11
  %10049 = icmp eq i32 %10048, -1
  br i1 %10049, label %9785, label %10050

10050:                                            ; preds = %10044
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %146) #11
  %10051 = load i32, ptr @test_count, align 4, !tbaa !5
  %10052 = add nsw i32 %10051, 1
  store i32 %10052, ptr @test_count, align 4, !tbaa !5
  %10053 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %146) #11
  %10054 = icmp eq i32 %10053, -1
  br i1 %10054, label %9812, label %10055

10055:                                            ; preds = %10050
  %10056 = load i32, ptr @test_count, align 4, !tbaa !5
  %10057 = add nsw i32 %10056, 1
  store i32 %10057, ptr @test_count, align 4, !tbaa !5
  %10058 = load ptr, ptr %144, align 8, !tbaa !9
  %10059 = load ptr, ptr %145, align 8, !tbaa !9
  %10060 = call i32 @s2n_connections_set_io_pair(ptr noundef %10058, ptr noundef %10059, ptr noundef nonnull %146) #11
  %10061 = icmp eq i32 %10060, -1
  br i1 %10061, label %9841, label %10062

10062:                                            ; preds = %10055
  %10063 = load ptr, ptr %144, align 8, !tbaa !9
  %10064 = getelementptr inbounds i8, ptr %10063, i64 16
  store ptr %133, ptr %10064, align 8, !tbaa !26
  %10065 = load ptr, ptr %145, align 8, !tbaa !9
  %10066 = getelementptr inbounds i8, ptr %10065, i64 16
  store ptr %132, ptr %10066, align 8, !tbaa !26
  %10067 = load i32, ptr @test_count, align 4, !tbaa !5
  %10068 = add nsw i32 %10067, 1
  store i32 %10068, ptr @test_count, align 4, !tbaa !5
  %10069 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %10065, ptr noundef %10063) #11
  %10070 = icmp eq i32 %10069, -1
  br i1 %10070, label %10071, label %9872

10071:                                            ; preds = %10062
  %10072 = load i32, ptr @test_count, align 4, !tbaa !5
  %10073 = add nsw i32 %10072, 1
  store i32 %10073, ptr @test_count, align 4, !tbaa !5
  %10074 = load i32, ptr %3177, align 4, !tbaa !5
  %10075 = icmp eq i32 %10074, 335544348
  br i1 %10075, label %10076, label %9899

10076:                                            ; preds = %10071
  %10077 = add nsw i32 %10072, 2
  store i32 %10077, ptr @test_count, align 4, !tbaa !5
  %10078 = call ptr @s2n_strerror_debug(i32 noundef 335544348, ptr noundef nonnull @.str.4) #11
  %10079 = icmp eq ptr %10078, null
  br i1 %10079, label %9925, label %10080

10080:                                            ; preds = %10076
  store i32 0, ptr %3177, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %3231, align 4, !tbaa !5
  %10081 = load i32, ptr @test_count, align 4, !tbaa !5
  %10082 = add nsw i32 %10081, 1
  store i32 %10082, ptr @test_count, align 4, !tbaa !5
  %10083 = load ptr, ptr %144, align 8, !tbaa !9
  %10084 = getelementptr inbounds i8, ptr %10083, i64 220
  %10085 = load i8, ptr %10084, align 4, !tbaa !50
  %10086 = icmp eq i8 %10085, 33
  br i1 %10086, label %10087, label %9954

10087:                                            ; preds = %10080
  %10088 = add nsw i32 %10081, 2
  store i32 %10088, ptr @test_count, align 4, !tbaa !5
  %10089 = load ptr, ptr %145, align 8, !tbaa !9
  %10090 = getelementptr inbounds i8, ptr %10089, i64 220
  %10091 = load i8, ptr %10090, align 4, !tbaa !50
  %10092 = icmp eq i8 %10091, 33
  br i1 %10092, label %10093, label %9982

10093:                                            ; preds = %10087
  %10094 = call i32 @s2n_io_pair_close(ptr noundef nonnull %146) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %146) #11
  %10095 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %145) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %145) #11
  %10096 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %144) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %144) #11
  %10097 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %143) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %143) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %134) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %133) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %132) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %131) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %130) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %129) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %128) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %127) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %126) #11
  %10098 = load i32, ptr @test_count, align 4, !tbaa !5
  %10099 = add nsw i32 %10098, 1
  store i32 %10099, ptr @test_count, align 4, !tbaa !5
  %10100 = call i32 (...) @s2n_reset_tls13_in_test() #11
  %10101 = icmp eq i32 %10100, -1
  br i1 %10101, label %10102, label %10124

10102:                                            ; preds = %10093
  %10103 = load i32, ptr %3231, align 4, !tbaa !5
  %10104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10105 = call i32 @s2n_print_stacktrace(ptr noundef %10104) #11
  %10106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10107 = trunc nuw i8 %10106 to i1
  br i1 %10107, label %10108, label %10112

10108:                                            ; preds = %10102
  %10109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10110 = call i32 @fileno(ptr noundef %10109) #11
  %10111 = call i32 @isatty(i32 noundef %10110) #11
  %.not1161 = icmp eq i32 %10111, 0
  br i1 %.not1161, label %10112, label %10113

10112:                                            ; preds = %10108, %10102
  br label %10113

10113:                                            ; preds = %10108, %10112
  %.str.5.sink4423 = phi ptr [ @.str.5, %10112 ], [ @.str.2, %10108 ]
  store i32 %10103, ptr %3231, align 4, !tbaa !5
  %10114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10115 = load i32, ptr @test_count, align 4, !tbaa !5
  %10116 = load i32, ptr %3177, align 4, !tbaa !5
  %10117 = call ptr @s2n_strerror(i32 noundef %10116, ptr noundef nonnull @.str.4) #11
  %10118 = load i32, ptr %3177, align 4, !tbaa !5
  %10119 = call ptr @s2n_strerror_debug(i32 noundef %10118, ptr noundef nonnull @.str.4) #11
  %10120 = load i32, ptr %3231, align 4, !tbaa !5
  %10121 = call ptr @strerror(i32 noundef %10120) #11
  %10122 = load i32, ptr %3231, align 4, !tbaa !5
  %10123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10114, ptr noundef nonnull %.str.5.sink4423, i32 noundef %10115, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.1, i32 noundef 1400, ptr noundef %10117, ptr noundef %10119, ptr noundef %10121, i32 noundef %10122) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10124:                                            ; preds = %10093
  %10125 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  br i1 %10125, label %10126, label %10692

10126:                                            ; preds = %10124
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %147) #11
  %10127 = call ptr @s2n_config_new() #11
  store ptr %10127, ptr %147, align 8, !tbaa !9
  %10128 = load i32, ptr @test_count, align 4, !tbaa !5
  %10129 = add nsw i32 %10128, 1
  store i32 %10129, ptr @test_count, align 4, !tbaa !5
  %10130 = icmp eq ptr %10127, null
  br i1 %10130, label %10131, label %10153

10131:                                            ; preds = %10126
  %10132 = load i32, ptr %3231, align 4, !tbaa !5
  %10133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10134 = call i32 @s2n_print_stacktrace(ptr noundef %10133) #11
  %10135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10136 = trunc nuw i8 %10135 to i1
  br i1 %10136, label %10137, label %10141

10137:                                            ; preds = %10131
  %10138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10139 = call i32 @fileno(ptr noundef %10138) #11
  %10140 = call i32 @isatty(i32 noundef %10139) #11
  %.not1160 = icmp eq i32 %10140, 0
  br i1 %.not1160, label %10141, label %10142

10141:                                            ; preds = %10137, %10131
  br label %10142

10142:                                            ; preds = %10137, %10141
  %.str.5.sink4432 = phi ptr [ @.str.5, %10141 ], [ @.str.2, %10137 ]
  store i32 %10132, ptr %3231, align 4, !tbaa !5
  %10143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10144 = load i32, ptr @test_count, align 4, !tbaa !5
  %10145 = load i32, ptr %3177, align 4, !tbaa !5
  %10146 = call ptr @s2n_strerror(i32 noundef %10145, ptr noundef nonnull @.str.4) #11
  %10147 = load i32, ptr %3177, align 4, !tbaa !5
  %10148 = call ptr @s2n_strerror_debug(i32 noundef %10147, ptr noundef nonnull @.str.4) #11
  %10149 = load i32, ptr %3231, align 4, !tbaa !5
  %10150 = call ptr @strerror(i32 noundef %10149) #11
  %10151 = load i32, ptr %3231, align 4, !tbaa !5
  %10152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10143, ptr noundef nonnull %.str.5.sink4432, i32 noundef %10144, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 1412, ptr noundef %10146, ptr noundef %10148, ptr noundef %10150, i32 noundef %10151) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10153:                                            ; preds = %10126
  %10154 = add nsw i32 %10128, 2
  store i32 %10154, ptr @test_count, align 4, !tbaa !5
  %10155 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %10127) #11
  %10156 = icmp eq i32 %10155, -1
  br i1 %10156, label %10157, label %10179

10157:                                            ; preds = %10153
  %10158 = load i32, ptr %3231, align 4, !tbaa !5
  %10159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10160 = call i32 @s2n_print_stacktrace(ptr noundef %10159) #11
  %10161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10162 = trunc nuw i8 %10161 to i1
  br i1 %10162, label %10163, label %10167

10163:                                            ; preds = %10157
  %10164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10165 = call i32 @fileno(ptr noundef %10164) #11
  %10166 = call i32 @isatty(i32 noundef %10165) #11
  %.not1159 = icmp eq i32 %10166, 0
  br i1 %.not1159, label %10167, label %10168

10167:                                            ; preds = %10163, %10157
  br label %10168

10168:                                            ; preds = %10163, %10167
  %.str.5.sink4441 = phi ptr [ @.str.5, %10167 ], [ @.str.2, %10163 ]
  store i32 %10158, ptr %3231, align 4, !tbaa !5
  %10169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10170 = load i32, ptr @test_count, align 4, !tbaa !5
  %10171 = load i32, ptr %3177, align 4, !tbaa !5
  %10172 = call ptr @s2n_strerror(i32 noundef %10171, ptr noundef nonnull @.str.4) #11
  %10173 = load i32, ptr %3177, align 4, !tbaa !5
  %10174 = call ptr @s2n_strerror_debug(i32 noundef %10173, ptr noundef nonnull @.str.4) #11
  %10175 = load i32, ptr %3231, align 4, !tbaa !5
  %10176 = call ptr @strerror(i32 noundef %10175) #11
  %10177 = load i32, ptr %3231, align 4, !tbaa !5
  %10178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10169, ptr noundef nonnull %.str.5.sink4441, i32 noundef %10170, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 1413, ptr noundef %10172, ptr noundef %10174, ptr noundef %10176, i32 noundef %10177) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10179:                                            ; preds = %10153
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %148) #11
  store ptr null, ptr %148, align 8, !tbaa !9
  %10180 = load i32, ptr @test_count, align 4, !tbaa !5
  %10181 = add nsw i32 %10180, 1
  store i32 %10181, ptr @test_count, align 4, !tbaa !5
  %10182 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %148, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.117) #11
  %10183 = icmp eq i32 %10182, -1
  br i1 %10183, label %10184, label %10206

10184:                                            ; preds = %10179
  %10185 = load i32, ptr %3231, align 4, !tbaa !5
  %10186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10187 = call i32 @s2n_print_stacktrace(ptr noundef %10186) #11
  %10188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10189 = trunc nuw i8 %10188 to i1
  br i1 %10189, label %10190, label %10194

10190:                                            ; preds = %10184
  %10191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10192 = call i32 @fileno(ptr noundef %10191) #11
  %10193 = call i32 @isatty(i32 noundef %10192) #11
  %.not1158 = icmp eq i32 %10193, 0
  br i1 %.not1158, label %10194, label %10195

10194:                                            ; preds = %10190, %10184
  br label %10195

10195:                                            ; preds = %10190, %10194
  %.str.5.sink4450 = phi ptr [ @.str.5, %10194 ], [ @.str.2, %10190 ]
  store i32 %10185, ptr %3231, align 4, !tbaa !5
  %10196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10197 = load i32, ptr @test_count, align 4, !tbaa !5
  %10198 = load i32, ptr %3177, align 4, !tbaa !5
  %10199 = call ptr @s2n_strerror(i32 noundef %10198, ptr noundef nonnull @.str.4) #11
  %10200 = load i32, ptr %3177, align 4, !tbaa !5
  %10201 = call ptr @s2n_strerror_debug(i32 noundef %10200, ptr noundef nonnull @.str.4) #11
  %10202 = load i32, ptr %3231, align 4, !tbaa !5
  %10203 = call ptr @strerror(i32 noundef %10202) #11
  %10204 = load i32, ptr %3231, align 4, !tbaa !5
  %10205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10196, ptr noundef nonnull %.str.5.sink4450, i32 noundef %10197, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 1419, ptr noundef %10199, ptr noundef %10201, ptr noundef %10203, i32 noundef %10204) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10206:                                            ; preds = %10179
  %10207 = load i32, ptr @test_count, align 4, !tbaa !5
  %10208 = add nsw i32 %10207, 1
  store i32 %10208, ptr @test_count, align 4, !tbaa !5
  %10209 = load ptr, ptr %148, align 8, !tbaa !9
  %10210 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %10127, ptr noundef %10209) #11
  %10211 = icmp eq i32 %10210, -1
  br i1 %10211, label %10212, label %10234

10212:                                            ; preds = %10206
  %10213 = load i32, ptr %3231, align 4, !tbaa !5
  %10214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10215 = call i32 @s2n_print_stacktrace(ptr noundef %10214) #11
  %10216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10217 = trunc nuw i8 %10216 to i1
  br i1 %10217, label %10218, label %10222

10218:                                            ; preds = %10212
  %10219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10220 = call i32 @fileno(ptr noundef %10219) #11
  %10221 = call i32 @isatty(i32 noundef %10220) #11
  %.not1157 = icmp eq i32 %10221, 0
  br i1 %.not1157, label %10222, label %10223

10222:                                            ; preds = %10218, %10212
  br label %10223

10223:                                            ; preds = %10218, %10222
  %.str.5.sink4459 = phi ptr [ @.str.5, %10222 ], [ @.str.2, %10218 ]
  store i32 %10213, ptr %3231, align 4, !tbaa !5
  %10224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10225 = load i32, ptr @test_count, align 4, !tbaa !5
  %10226 = load i32, ptr %3177, align 4, !tbaa !5
  %10227 = call ptr @s2n_strerror(i32 noundef %10226, ptr noundef nonnull @.str.4) #11
  %10228 = load i32, ptr %3177, align 4, !tbaa !5
  %10229 = call ptr @s2n_strerror_debug(i32 noundef %10228, ptr noundef nonnull @.str.4) #11
  %10230 = load i32, ptr %3231, align 4, !tbaa !5
  %10231 = call ptr @strerror(i32 noundef %10230) #11
  %10232 = load i32, ptr %3231, align 4, !tbaa !5
  %10233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10224, ptr noundef nonnull %.str.5.sink4459, i32 noundef %10225, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.1, i32 noundef 1420, ptr noundef %10227, ptr noundef %10229, ptr noundef %10231, i32 noundef %10232) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10234:                                            ; preds = %10206
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %149) #11
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %149, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %150) #11
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256, ptr %150, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %151) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %151, ptr noundef nonnull align 8 dereferenceable(24) @__const.main.cipher_prefs, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %152) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %152, ptr noundef nonnull align 16 dereferenceable(24) @__const.main.sig_schemes, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %153) #11
  store i8 3, ptr %153, align 8, !tbaa !70
  %10235 = getelementptr inbounds i8, ptr %153, i64 8
  store ptr %152, ptr %10235, align 8, !tbaa !72
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %154) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %154, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.curves, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %155) #11
  store i8 2, ptr %155, align 8, !tbaa !77
  %10236 = getelementptr inbounds i8, ptr %155, i64 8
  store ptr %154, ptr %10236, align 8, !tbaa !79
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %156) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %156, ptr noundef nonnull align 8 dereferenceable(64) @security_policy_20230317, i64 64, i1 false), !tbaa.struct !22
  %10237 = getelementptr inbounds i8, ptr %156, i64 8
  store ptr %151, ptr %10237, align 8, !tbaa !80
  %10238 = getelementptr inbounds i8, ptr %156, i64 24
  store ptr %153, ptr %10238, align 8, !tbaa !24
  %10239 = getelementptr inbounds i8, ptr %156, i64 40
  store ptr %155, ptr %10239, align 8, !tbaa !81
  %10240 = getelementptr inbounds i8, ptr %10127, i64 96
  store ptr %156, ptr %10240, align 8, !tbaa !15
  %10241 = getelementptr inbounds i8, ptr %151, i64 8
  store ptr %150, ptr %10241, align 8, !tbaa !82
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %157) #11
  %10242 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %10242, ptr %157, align 8, !tbaa !9
  %10243 = load i32, ptr @test_count, align 4, !tbaa !5
  %10244 = add nsw i32 %10243, 1
  store i32 %10244, ptr @test_count, align 4, !tbaa !5
  %10245 = call i32 @s2n_connection_set_config(ptr noundef %10242, ptr noundef nonnull %10127) #11
  %10246 = icmp eq i32 %10245, -1
  br i1 %10246, label %10247, label %10269

10247:                                            ; preds = %10616, %10234
  %10248 = load i32, ptr %3231, align 4, !tbaa !5
  %10249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10250 = call i32 @s2n_print_stacktrace(ptr noundef %10249) #11
  %10251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10252 = trunc nuw i8 %10251 to i1
  br i1 %10252, label %10253, label %10257

10253:                                            ; preds = %10247
  %10254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10255 = call i32 @fileno(ptr noundef %10254) #11
  %10256 = call i32 @isatty(i32 noundef %10255) #11
  %.not1156 = icmp eq i32 %10256, 0
  br i1 %.not1156, label %10257, label %10258

10257:                                            ; preds = %10253, %10247
  br label %10258

10258:                                            ; preds = %10253, %10257
  %.str.5.sink4468 = phi ptr [ @.str.5, %10257 ], [ @.str.2, %10253 ]
  store i32 %10248, ptr %3231, align 4, !tbaa !5
  %10259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10260 = load i32, ptr @test_count, align 4, !tbaa !5
  %10261 = load i32, ptr %3177, align 4, !tbaa !5
  %10262 = call ptr @s2n_strerror(i32 noundef %10261, ptr noundef nonnull @.str.4) #11
  %10263 = load i32, ptr %3177, align 4, !tbaa !5
  %10264 = call ptr @s2n_strerror_debug(i32 noundef %10263, ptr noundef nonnull @.str.4) #11
  %10265 = load i32, ptr %3231, align 4, !tbaa !5
  %10266 = call ptr @strerror(i32 noundef %10265) #11
  %10267 = load i32, ptr %3231, align 4, !tbaa !5
  %10268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10259, ptr noundef nonnull %.str.5.sink4468, i32 noundef %10260, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.1, i32 noundef 1466, ptr noundef %10262, ptr noundef %10264, ptr noundef %10266, i32 noundef %10267) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10269:                                            ; preds = %10234
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %158) #11
  %10270 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %10270, ptr %158, align 8, !tbaa !9
  %10271 = load i32, ptr @test_count, align 4, !tbaa !5
  %10272 = add nsw i32 %10271, 1
  store i32 %10272, ptr @test_count, align 4, !tbaa !5
  %10273 = call i32 @s2n_connection_set_config(ptr noundef %10270, ptr noundef nonnull %10127) #11
  %10274 = icmp eq i32 %10273, -1
  br i1 %10274, label %10275, label %10297

10275:                                            ; preds = %10625, %10269
  %10276 = load i32, ptr %3231, align 4, !tbaa !5
  %10277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10278 = call i32 @s2n_print_stacktrace(ptr noundef %10277) #11
  %10279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10280 = trunc nuw i8 %10279 to i1
  br i1 %10280, label %10281, label %10285

10281:                                            ; preds = %10275
  %10282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10283 = call i32 @fileno(ptr noundef %10282) #11
  %10284 = call i32 @isatty(i32 noundef %10283) #11
  %.not1155 = icmp eq i32 %10284, 0
  br i1 %.not1155, label %10285, label %10286

10285:                                            ; preds = %10281, %10275
  br label %10286

10286:                                            ; preds = %10281, %10285
  %.str.5.sink4477 = phi ptr [ @.str.5, %10285 ], [ @.str.2, %10281 ]
  store i32 %10276, ptr %3231, align 4, !tbaa !5
  %10287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10288 = load i32, ptr @test_count, align 4, !tbaa !5
  %10289 = load i32, ptr %3177, align 4, !tbaa !5
  %10290 = call ptr @s2n_strerror(i32 noundef %10289, ptr noundef nonnull @.str.4) #11
  %10291 = load i32, ptr %3177, align 4, !tbaa !5
  %10292 = call ptr @s2n_strerror_debug(i32 noundef %10291, ptr noundef nonnull @.str.4) #11
  %10293 = load i32, ptr %3231, align 4, !tbaa !5
  %10294 = call ptr @strerror(i32 noundef %10293) #11
  %10295 = load i32, ptr %3231, align 4, !tbaa !5
  %10296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10287, ptr noundef nonnull %.str.5.sink4477, i32 noundef %10288, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.1, i32 noundef 1470, ptr noundef %10290, ptr noundef %10292, ptr noundef %10294, i32 noundef %10295) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10297:                                            ; preds = %10269
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %159) #11
  %10298 = load i32, ptr @test_count, align 4, !tbaa !5
  %10299 = add nsw i32 %10298, 1
  store i32 %10299, ptr @test_count, align 4, !tbaa !5
  %10300 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %159) #11
  %10301 = icmp eq i32 %10300, -1
  br i1 %10301, label %10302, label %10324

10302:                                            ; preds = %10631, %10297
  %10303 = load i32, ptr %3231, align 4, !tbaa !5
  %10304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10305 = call i32 @s2n_print_stacktrace(ptr noundef %10304) #11
  %10306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10307 = trunc nuw i8 %10306 to i1
  br i1 %10307, label %10308, label %10312

10308:                                            ; preds = %10302
  %10309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10310 = call i32 @fileno(ptr noundef %10309) #11
  %10311 = call i32 @isatty(i32 noundef %10310) #11
  %.not1154 = icmp eq i32 %10311, 0
  br i1 %.not1154, label %10312, label %10313

10312:                                            ; preds = %10308, %10302
  br label %10313

10313:                                            ; preds = %10308, %10312
  %.str.5.sink4486 = phi ptr [ @.str.5, %10312 ], [ @.str.2, %10308 ]
  store i32 %10303, ptr %3231, align 4, !tbaa !5
  %10314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10315 = load i32, ptr @test_count, align 4, !tbaa !5
  %10316 = load i32, ptr %3177, align 4, !tbaa !5
  %10317 = call ptr @s2n_strerror(i32 noundef %10316, ptr noundef nonnull @.str.4) #11
  %10318 = load i32, ptr %3177, align 4, !tbaa !5
  %10319 = call ptr @s2n_strerror_debug(i32 noundef %10318, ptr noundef nonnull @.str.4) #11
  %10320 = load i32, ptr %3231, align 4, !tbaa !5
  %10321 = call ptr @strerror(i32 noundef %10320) #11
  %10322 = load i32, ptr %3231, align 4, !tbaa !5
  %10323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10314, ptr noundef nonnull %.str.5.sink4486, i32 noundef %10315, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 1473, ptr noundef %10317, ptr noundef %10319, ptr noundef %10321, i32 noundef %10322) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10324:                                            ; preds = %10297
  %10325 = load i32, ptr @test_count, align 4, !tbaa !5
  %10326 = add nsw i32 %10325, 1
  store i32 %10326, ptr @test_count, align 4, !tbaa !5
  %10327 = load ptr, ptr %157, align 8, !tbaa !9
  %10328 = load ptr, ptr %158, align 8, !tbaa !9
  %10329 = call i32 @s2n_connections_set_io_pair(ptr noundef %10327, ptr noundef %10328, ptr noundef nonnull %159) #11
  %10330 = icmp eq i32 %10329, -1
  br i1 %10330, label %10331, label %10353

10331:                                            ; preds = %10636, %10324
  %10332 = load i32, ptr %3231, align 4, !tbaa !5
  %10333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10334 = call i32 @s2n_print_stacktrace(ptr noundef %10333) #11
  %10335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10336 = trunc nuw i8 %10335 to i1
  br i1 %10336, label %10337, label %10341

10337:                                            ; preds = %10331
  %10338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10339 = call i32 @fileno(ptr noundef %10338) #11
  %10340 = call i32 @isatty(i32 noundef %10339) #11
  %.not1153 = icmp eq i32 %10340, 0
  br i1 %.not1153, label %10341, label %10342

10341:                                            ; preds = %10337, %10331
  br label %10342

10342:                                            ; preds = %10337, %10341
  %.str.5.sink4495 = phi ptr [ @.str.5, %10341 ], [ @.str.2, %10337 ]
  store i32 %10332, ptr %3231, align 4, !tbaa !5
  %10343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10344 = load i32, ptr @test_count, align 4, !tbaa !5
  %10345 = load i32, ptr %3177, align 4, !tbaa !5
  %10346 = call ptr @s2n_strerror(i32 noundef %10345, ptr noundef nonnull @.str.4) #11
  %10347 = load i32, ptr %3177, align 4, !tbaa !5
  %10348 = call ptr @s2n_strerror_debug(i32 noundef %10347, ptr noundef nonnull @.str.4) #11
  %10349 = load i32, ptr %3231, align 4, !tbaa !5
  %10350 = call ptr @strerror(i32 noundef %10349) #11
  %10351 = load i32, ptr %3231, align 4, !tbaa !5
  %10352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10343, ptr noundef nonnull %.str.5.sink4495, i32 noundef %10344, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.1, i32 noundef 1474, ptr noundef %10346, ptr noundef %10348, ptr noundef %10350, i32 noundef %10351) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10353:                                            ; preds = %10324
  %10354 = load i32, ptr @test_count, align 4, !tbaa !5
  %10355 = add nsw i32 %10354, 1
  store i32 %10355, ptr @test_count, align 4, !tbaa !5
  %10356 = load ptr, ptr %158, align 8, !tbaa !9
  %10357 = load ptr, ptr %157, align 8, !tbaa !9
  %10358 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %10356, ptr noundef %10357) #11
  %10359 = icmp eq i32 %10358, -1
  br i1 %10359, label %10360, label %10382

10360:                                            ; preds = %10643, %10353
  %10361 = load i32, ptr %3231, align 4, !tbaa !5
  %10362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10363 = call i32 @s2n_print_stacktrace(ptr noundef %10362) #11
  %10364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10365 = trunc nuw i8 %10364 to i1
  br i1 %10365, label %10366, label %10370

10366:                                            ; preds = %10360
  %10367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10368 = call i32 @fileno(ptr noundef %10367) #11
  %10369 = call i32 @isatty(i32 noundef %10368) #11
  %.not1152 = icmp eq i32 %10369, 0
  br i1 %.not1152, label %10370, label %10371

10370:                                            ; preds = %10366, %10360
  br label %10371

10371:                                            ; preds = %10366, %10370
  %.str.5.sink4504 = phi ptr [ @.str.5, %10370 ], [ @.str.2, %10366 ]
  store i32 %10361, ptr %3231, align 4, !tbaa !5
  %10372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10373 = load i32, ptr @test_count, align 4, !tbaa !5
  %10374 = load i32, ptr %3177, align 4, !tbaa !5
  %10375 = call ptr @s2n_strerror(i32 noundef %10374, ptr noundef nonnull @.str.4) #11
  %10376 = load i32, ptr %3177, align 4, !tbaa !5
  %10377 = call ptr @s2n_strerror_debug(i32 noundef %10376, ptr noundef nonnull @.str.4) #11
  %10378 = load i32, ptr %3231, align 4, !tbaa !5
  %10379 = call ptr @strerror(i32 noundef %10378) #11
  %10380 = load i32, ptr %3231, align 4, !tbaa !5
  %10381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10372, ptr noundef nonnull %.str.5.sink4504, i32 noundef %10373, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.1, i32 noundef 1476, ptr noundef %10375, ptr noundef %10377, ptr noundef %10379, i32 noundef %10380) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10382:                                            ; preds = %10353
  %10383 = load i32, ptr @test_count, align 4, !tbaa !5
  %10384 = add nsw i32 %10383, 1
  store i32 %10384, ptr @test_count, align 4, !tbaa !5
  %10385 = load ptr, ptr %157, align 8, !tbaa !9
  %10386 = getelementptr inbounds i8, ptr %10385, i64 220
  %10387 = load i8, ptr %10386, align 4, !tbaa !50
  %10388 = icmp eq i8 %10387, 33
  br i1 %10388, label %10411, label %10389

10389:                                            ; preds = %10650, %10382
  %10390 = load i32, ptr %3231, align 4, !tbaa !5
  %10391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10392 = call i32 @s2n_print_stacktrace(ptr noundef %10391) #11
  %10393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10394 = trunc nuw i8 %10393 to i1
  br i1 %10394, label %10395, label %10399

10395:                                            ; preds = %10389
  %10396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10397 = call i32 @fileno(ptr noundef %10396) #11
  %10398 = call i32 @isatty(i32 noundef %10397) #11
  %.not1143 = icmp eq i32 %10398, 0
  br i1 %.not1143, label %10399, label %10400

10399:                                            ; preds = %10395, %10389
  br label %10400

10400:                                            ; preds = %10395, %10399
  %.str.5.sink4513 = phi ptr [ @.str.5, %10399 ], [ @.str.2, %10395 ]
  store i32 %10390, ptr %3231, align 4, !tbaa !5
  %10401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10402 = load i32, ptr @test_count, align 4, !tbaa !5
  %10403 = load i32, ptr %3177, align 4, !tbaa !5
  %10404 = call ptr @s2n_strerror(i32 noundef %10403, ptr noundef nonnull @.str.4) #11
  %10405 = load i32, ptr %3177, align 4, !tbaa !5
  %10406 = call ptr @s2n_strerror_debug(i32 noundef %10405, ptr noundef nonnull @.str.4) #11
  %10407 = load i32, ptr %3231, align 4, !tbaa !5
  %10408 = call ptr @strerror(i32 noundef %10407) #11
  %10409 = load i32, ptr %3231, align 4, !tbaa !5
  %10410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10401, ptr noundef nonnull %.str.5.sink4513, i32 noundef %10402, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.1, i32 noundef 1477, ptr noundef %10404, ptr noundef %10406, ptr noundef %10408, i32 noundef %10409) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10411:                                            ; preds = %10382
  %10412 = add nsw i32 %10383, 2
  store i32 %10412, ptr @test_count, align 4, !tbaa !5
  %10413 = load ptr, ptr %158, align 8, !tbaa !9
  %10414 = getelementptr inbounds i8, ptr %10413, i64 220
  %10415 = load i8, ptr %10414, align 4, !tbaa !50
  %10416 = icmp eq i8 %10415, 33
  br i1 %10416, label %10460, label %10417

10417:                                            ; preds = %10657, %10411
  %10418 = load i32, ptr %3231, align 4, !tbaa !5
  %10419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10420 = call i32 @s2n_print_stacktrace(ptr noundef %10419) #11
  %10421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10422 = trunc nuw i8 %10421 to i1
  br i1 %10422, label %10423, label %10427

10423:                                            ; preds = %10417
  %10424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10425 = call i32 @fileno(ptr noundef %10424) #11
  %10426 = call i32 @isatty(i32 noundef %10425) #11
  %.not1144 = icmp eq i32 %10426, 0
  br i1 %.not1144, label %10427, label %10428

10427:                                            ; preds = %10423, %10417
  br label %10428

10428:                                            ; preds = %10423, %10427
  %.str.5.sink4522 = phi ptr [ @.str.5, %10427 ], [ @.str.2, %10423 ]
  store i32 %10418, ptr %3231, align 4, !tbaa !5
  %10429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10430 = load i32, ptr @test_count, align 4, !tbaa !5
  %10431 = load i32, ptr %3177, align 4, !tbaa !5
  %10432 = call ptr @s2n_strerror(i32 noundef %10431, ptr noundef nonnull @.str.4) #11
  %10433 = load i32, ptr %3177, align 4, !tbaa !5
  %10434 = call ptr @s2n_strerror_debug(i32 noundef %10433, ptr noundef nonnull @.str.4) #11
  %10435 = load i32, ptr %3231, align 4, !tbaa !5
  %10436 = call ptr @strerror(i32 noundef %10435) #11
  %10437 = load i32, ptr %3231, align 4, !tbaa !5
  %10438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10429, ptr noundef nonnull %.str.5.sink4522, i32 noundef %10430, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.1, i32 noundef 1478, ptr noundef %10432, ptr noundef %10434, ptr noundef %10436, i32 noundef %10437) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10439:                                            ; preds = %10663
  %.pre1424 = load i32, ptr %3231, align 4, !tbaa !5
  %10440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10441 = call i32 @s2n_print_stacktrace(ptr noundef %10440) #11
  %10442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10443 = trunc nuw i8 %10442 to i1
  br i1 %10443, label %10444, label %10448

10444:                                            ; preds = %10439
  %10445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10446 = call i32 @fileno(ptr noundef %10445) #11
  %10447 = call i32 @isatty(i32 noundef %10446) #11
  %.not1147 = icmp eq i32 %10447, 0
  br i1 %.not1147, label %10448, label %10449

10448:                                            ; preds = %10444, %10439
  br label %10449

10449:                                            ; preds = %10444, %10448
  %.str.5.sink4531 = phi ptr [ @.str.5, %10448 ], [ @.str.2, %10444 ]
  store i32 %.pre1424, ptr %3231, align 4, !tbaa !5
  %10450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10451 = load i32, ptr @test_count, align 4, !tbaa !5
  %10452 = load i32, ptr %3177, align 4, !tbaa !5
  %10453 = call ptr @s2n_strerror(i32 noundef %10452, ptr noundef nonnull @.str.4) #11
  %10454 = load i32, ptr %3177, align 4, !tbaa !5
  %10455 = call ptr @s2n_strerror_debug(i32 noundef %10454, ptr noundef nonnull @.str.4) #11
  %10456 = load i32, ptr %3231, align 4, !tbaa !5
  %10457 = call ptr @strerror(i32 noundef %10456) #11
  %10458 = load i32, ptr %3231, align 4, !tbaa !5
  %10459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10450, ptr noundef nonnull %.str.5.sink4531, i32 noundef %10451, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.1, i32 noundef 1482, ptr noundef %10453, ptr noundef %10455, ptr noundef %10457, i32 noundef %10458) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10460:                                            ; preds = %10411
  %10461 = add nsw i32 %10383, 3
  store i32 %10461, ptr @test_count, align 4, !tbaa !5
  %10462 = getelementptr inbounds i8, ptr %10413, i64 1528
  %10463 = load ptr, ptr %10462, align 8, !tbaa !66
  %10464 = icmp eq ptr %10463, @s2n_ecdsa_sha512
  br i1 %10464, label %10465, label %10486

10465:                                            ; preds = %10460
  %.pre1422 = load i32, ptr %3231, align 4, !tbaa !5
  %10466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10467 = call i32 @s2n_print_stacktrace(ptr noundef %10466) #11
  %10468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10469 = trunc nuw i8 %10468 to i1
  br i1 %10469, label %10470, label %10474

10470:                                            ; preds = %10465
  %10471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10472 = call i32 @fileno(ptr noundef %10471) #11
  %10473 = call i32 @isatty(i32 noundef %10472) #11
  %.not1146 = icmp eq i32 %10473, 0
  br i1 %.not1146, label %10474, label %10475

10474:                                            ; preds = %10470, %10465
  br label %10475

10475:                                            ; preds = %10470, %10474
  %.str.5.sink4540 = phi ptr [ @.str.5, %10474 ], [ @.str.2, %10470 ]
  store i32 %.pre1422, ptr %3231, align 4, !tbaa !5
  %10476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10477 = load i32, ptr @test_count, align 4, !tbaa !5
  %10478 = load i32, ptr %3177, align 4, !tbaa !5
  %10479 = call ptr @s2n_strerror(i32 noundef %10478, ptr noundef nonnull @.str.4) #11
  %10480 = load i32, ptr %3177, align 4, !tbaa !5
  %10481 = call ptr @s2n_strerror_debug(i32 noundef %10480, ptr noundef nonnull @.str.4) #11
  %10482 = load i32, ptr %3231, align 4, !tbaa !5
  %10483 = call ptr @strerror(i32 noundef %10482) #11
  %10484 = load i32, ptr %3231, align 4, !tbaa !5
  %10485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10476, ptr noundef nonnull %.str.5.sink4540, i32 noundef %10477, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.1, i32 noundef 1485, ptr noundef %10479, ptr noundef %10481, ptr noundef %10483, i32 noundef %10484) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10486:                                            ; preds = %10460
  %10487 = add nsw i32 %10383, 4
  store i32 %10487, ptr @test_count, align 4, !tbaa !5
  %10488 = icmp eq ptr %10463, @s2n_ecdsa_sha224
  br i1 %10488, label %._crit_edge1415, label %10489

10489:                                            ; preds = %10486
  %.pre1420 = load i32, ptr %3231, align 4, !tbaa !5
  %10490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10491 = call i32 @s2n_print_stacktrace(ptr noundef %10490) #11
  %10492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10493 = trunc nuw i8 %10492 to i1
  br i1 %10493, label %10494, label %10498

10494:                                            ; preds = %10489
  %10495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10496 = call i32 @fileno(ptr noundef %10495) #11
  %10497 = call i32 @isatty(i32 noundef %10496) #11
  %.not1145 = icmp eq i32 %10497, 0
  br i1 %.not1145, label %10498, label %10499

10498:                                            ; preds = %10494, %10489
  br label %10499

10499:                                            ; preds = %10494, %10498
  %.str.5.sink4549 = phi ptr [ @.str.5, %10498 ], [ @.str.2, %10494 ]
  store i32 %.pre1420, ptr %3231, align 4, !tbaa !5
  %10500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10501 = load i32, ptr @test_count, align 4, !tbaa !5
  %10502 = load i32, ptr %3177, align 4, !tbaa !5
  %10503 = call ptr @s2n_strerror(i32 noundef %10502, ptr noundef nonnull @.str.4) #11
  %10504 = load i32, ptr %3177, align 4, !tbaa !5
  %10505 = call ptr @s2n_strerror_debug(i32 noundef %10504, ptr noundef nonnull @.str.4) #11
  %10506 = load i32, ptr %3231, align 4, !tbaa !5
  %10507 = call ptr @strerror(i32 noundef %10506) #11
  %10508 = load i32, ptr %3231, align 4, !tbaa !5
  %10509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10500, ptr noundef nonnull %.str.5.sink4549, i32 noundef %10501, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.1, i32 noundef 1486, ptr noundef %10503, ptr noundef %10505, ptr noundef %10507, i32 noundef %10508) #13
  call void @exit(i32 noundef 1) #14
  unreachable

._crit_edge1415:                                  ; preds = %10486
  %10510 = add nsw i32 %10383, 5
  store i32 %10510, ptr @test_count, align 4, !tbaa !5
  %10511 = getelementptr inbounds i8, ptr %10413, i64 232
  %10512 = load ptr, ptr %10511, align 8, !tbaa !60
  %10513 = load ptr, ptr %10512, align 8, !tbaa !61
  %10514 = getelementptr inbounds i8, ptr %10513, i64 96
  %10515 = load i32, ptr %10514, align 8, !tbaa !84
  %10516 = icmp eq i32 %10515, 6
  br i1 %10516, label %10517, label %10539

10517:                                            ; preds = %._crit_edge1425, %._crit_edge1415
  %10518 = load i32, ptr %3231, align 4, !tbaa !5
  %10519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10520 = call i32 @s2n_print_stacktrace(ptr noundef %10519) #11
  %10521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10522 = trunc nuw i8 %10521 to i1
  br i1 %10522, label %10523, label %10527

10523:                                            ; preds = %10517
  %10524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10525 = call i32 @fileno(ptr noundef %10524) #11
  %10526 = call i32 @isatty(i32 noundef %10525) #11
  %.not1151 = icmp eq i32 %10526, 0
  br i1 %.not1151, label %10527, label %10528

10527:                                            ; preds = %10523, %10517
  br label %10528

10528:                                            ; preds = %10523, %10527
  %.str.5.sink4558 = phi ptr [ @.str.5, %10527 ], [ @.str.2, %10523 ]
  store i32 %10518, ptr %3231, align 4, !tbaa !5
  %10529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10530 = load i32, ptr @test_count, align 4, !tbaa !5
  %10531 = load i32, ptr %3177, align 4, !tbaa !5
  %10532 = call ptr @s2n_strerror(i32 noundef %10531, ptr noundef nonnull @.str.4) #11
  %10533 = load i32, ptr %3177, align 4, !tbaa !5
  %10534 = call ptr @s2n_strerror_debug(i32 noundef %10533, ptr noundef nonnull @.str.4) #11
  %10535 = load i32, ptr %3231, align 4, !tbaa !5
  %10536 = call ptr @strerror(i32 noundef %10535) #11
  %10537 = load i32, ptr %3231, align 4, !tbaa !5
  %10538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10529, ptr noundef nonnull %.str.5.sink4558, i32 noundef %10530, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.1, i32 noundef 1490, ptr noundef %10532, ptr noundef %10534, ptr noundef %10536, i32 noundef %10537) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10539:                                            ; preds = %._crit_edge1415
  %10540 = add nsw i32 %10383, 6
  store i32 %10540, ptr @test_count, align 4, !tbaa !5
  %10541 = icmp eq i32 %10515, 4
  br i1 %10541, label %10564, label %10542

10542:                                            ; preds = %10675, %10539
  %10543 = load i32, ptr %3231, align 4, !tbaa !5
  %10544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10545 = call i32 @s2n_print_stacktrace(ptr noundef %10544) #11
  %10546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10547 = trunc nuw i8 %10546 to i1
  br i1 %10547, label %10548, label %10552

10548:                                            ; preds = %10542
  %10549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10550 = call i32 @fileno(ptr noundef %10549) #11
  %10551 = call i32 @isatty(i32 noundef %10550) #11
  %.not1148 = icmp eq i32 %10551, 0
  br i1 %.not1148, label %10552, label %10553

10552:                                            ; preds = %10548, %10542
  br label %10553

10553:                                            ; preds = %10548, %10552
  %.str.5.sink4567 = phi ptr [ @.str.5, %10552 ], [ @.str.2, %10548 ]
  store i32 %10543, ptr %3231, align 4, !tbaa !5
  %10554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10555 = load i32, ptr @test_count, align 4, !tbaa !5
  %10556 = load i32, ptr %3177, align 4, !tbaa !5
  %10557 = call ptr @s2n_strerror(i32 noundef %10556, ptr noundef nonnull @.str.4) #11
  %10558 = load i32, ptr %3177, align 4, !tbaa !5
  %10559 = call ptr @s2n_strerror_debug(i32 noundef %10558, ptr noundef nonnull @.str.4) #11
  %10560 = load i32, ptr %3231, align 4, !tbaa !5
  %10561 = call ptr @strerror(i32 noundef %10560) #11
  %10562 = load i32, ptr %3231, align 4, !tbaa !5
  %10563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10554, ptr noundef nonnull %.str.5.sink4567, i32 noundef %10555, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.1, i32 noundef 1491, ptr noundef %10557, ptr noundef %10559, ptr noundef %10561, i32 noundef %10562) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10564:                                            ; preds = %10539
  %10565 = add nsw i32 %10383, 7
  store i32 %10565, ptr @test_count, align 4, !tbaa !5
  %10566 = getelementptr inbounds i8, ptr %10413, i64 656
  %10567 = load ptr, ptr %10566, align 8, !tbaa !86
  %10568 = icmp eq ptr %10567, @s2n_ecc_curve_secp521r1
  br i1 %10568, label %10569, label %10591

10569:                                            ; preds = %10678, %10564
  %10570 = load i32, ptr %3231, align 4, !tbaa !5
  %10571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10572 = call i32 @s2n_print_stacktrace(ptr noundef %10571) #11
  %10573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10574 = trunc nuw i8 %10573 to i1
  br i1 %10574, label %10575, label %10579

10575:                                            ; preds = %10569
  %10576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10577 = call i32 @fileno(ptr noundef %10576) #11
  %10578 = call i32 @isatty(i32 noundef %10577) #11
  %.not1150 = icmp eq i32 %10578, 0
  br i1 %.not1150, label %10579, label %10580

10579:                                            ; preds = %10575, %10569
  br label %10580

10580:                                            ; preds = %10575, %10579
  %.str.5.sink4576 = phi ptr [ @.str.5, %10579 ], [ @.str.2, %10575 ]
  store i32 %10570, ptr %3231, align 4, !tbaa !5
  %10581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10582 = load i32, ptr @test_count, align 4, !tbaa !5
  %10583 = load i32, ptr %3177, align 4, !tbaa !5
  %10584 = call ptr @s2n_strerror(i32 noundef %10583, ptr noundef nonnull @.str.4) #11
  %10585 = load i32, ptr %3177, align 4, !tbaa !5
  %10586 = call ptr @s2n_strerror_debug(i32 noundef %10585, ptr noundef nonnull @.str.4) #11
  %10587 = load i32, ptr %3231, align 4, !tbaa !5
  %10588 = call ptr @strerror(i32 noundef %10587) #11
  %10589 = load i32, ptr %3231, align 4, !tbaa !5
  %10590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10581, ptr noundef nonnull %.str.5.sink4576, i32 noundef %10582, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.1, i32 noundef 1495, ptr noundef %10584, ptr noundef %10586, ptr noundef %10588, i32 noundef %10589) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10591:                                            ; preds = %10564
  %10592 = add nsw i32 %10383, 8
  store i32 %10592, ptr @test_count, align 4, !tbaa !5
  %10593 = icmp eq ptr %10567, @s2n_ecc_curve_secp384r1
  br i1 %10593, label %10616, label %10594

10594:                                            ; preds = %10683, %10591
  %10595 = load i32, ptr %3231, align 4, !tbaa !5
  %10596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10597 = call i32 @s2n_print_stacktrace(ptr noundef %10596) #11
  %10598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10599 = trunc nuw i8 %10598 to i1
  br i1 %10599, label %10600, label %10604

10600:                                            ; preds = %10594
  %10601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10602 = call i32 @fileno(ptr noundef %10601) #11
  %10603 = call i32 @isatty(i32 noundef %10602) #11
  %.not1149 = icmp eq i32 %10603, 0
  br i1 %.not1149, label %10604, label %10605

10604:                                            ; preds = %10600, %10594
  br label %10605

10605:                                            ; preds = %10600, %10604
  %.str.5.sink4585 = phi ptr [ @.str.5, %10604 ], [ @.str.2, %10600 ]
  store i32 %10595, ptr %3231, align 4, !tbaa !5
  %10606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10607 = load i32, ptr @test_count, align 4, !tbaa !5
  %10608 = load i32, ptr %3177, align 4, !tbaa !5
  %10609 = call ptr @s2n_strerror(i32 noundef %10608, ptr noundef nonnull @.str.4) #11
  %10610 = load i32, ptr %3177, align 4, !tbaa !5
  %10611 = call ptr @s2n_strerror_debug(i32 noundef %10610, ptr noundef nonnull @.str.4) #11
  %10612 = load i32, ptr %3231, align 4, !tbaa !5
  %10613 = call ptr @strerror(i32 noundef %10612) #11
  %10614 = load i32, ptr %3231, align 4, !tbaa !5
  %10615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10606, ptr noundef nonnull %.str.5.sink4585, i32 noundef %10607, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.1, i32 noundef 1497, ptr noundef %10609, ptr noundef %10611, ptr noundef %10613, i32 noundef %10614) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10616:                                            ; preds = %10591
  %10617 = call i32 @s2n_io_pair_close(ptr noundef nonnull %159) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %159) #11
  %10618 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %158) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %158) #11
  %10619 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %157) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %157) #11
  store ptr %149, ptr %10241, align 8, !tbaa !82
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %157) #11
  %10620 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %10620, ptr %157, align 8, !tbaa !9
  %10621 = load i32, ptr @test_count, align 4, !tbaa !5
  %10622 = add nsw i32 %10621, 1
  store i32 %10622, ptr @test_count, align 4, !tbaa !5
  %10623 = call i32 @s2n_connection_set_config(ptr noundef %10620, ptr noundef nonnull %10127) #11
  %10624 = icmp eq i32 %10623, -1
  br i1 %10624, label %10247, label %10625

10625:                                            ; preds = %10616
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %158) #11
  %10626 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %10626, ptr %158, align 8, !tbaa !9
  %10627 = load i32, ptr @test_count, align 4, !tbaa !5
  %10628 = add nsw i32 %10627, 1
  store i32 %10628, ptr @test_count, align 4, !tbaa !5
  %10629 = call i32 @s2n_connection_set_config(ptr noundef %10626, ptr noundef nonnull %10127) #11
  %10630 = icmp eq i32 %10629, -1
  br i1 %10630, label %10275, label %10631

10631:                                            ; preds = %10625
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %159) #11
  %10632 = load i32, ptr @test_count, align 4, !tbaa !5
  %10633 = add nsw i32 %10632, 1
  store i32 %10633, ptr @test_count, align 4, !tbaa !5
  %10634 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %159) #11
  %10635 = icmp eq i32 %10634, -1
  br i1 %10635, label %10302, label %10636

10636:                                            ; preds = %10631
  %10637 = load i32, ptr @test_count, align 4, !tbaa !5
  %10638 = add nsw i32 %10637, 1
  store i32 %10638, ptr @test_count, align 4, !tbaa !5
  %10639 = load ptr, ptr %157, align 8, !tbaa !9
  %10640 = load ptr, ptr %158, align 8, !tbaa !9
  %10641 = call i32 @s2n_connections_set_io_pair(ptr noundef %10639, ptr noundef %10640, ptr noundef nonnull %159) #11
  %10642 = icmp eq i32 %10641, -1
  br i1 %10642, label %10331, label %10643

10643:                                            ; preds = %10636
  %10644 = load i32, ptr @test_count, align 4, !tbaa !5
  %10645 = add nsw i32 %10644, 1
  store i32 %10645, ptr @test_count, align 4, !tbaa !5
  %10646 = load ptr, ptr %158, align 8, !tbaa !9
  %10647 = load ptr, ptr %157, align 8, !tbaa !9
  %10648 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %10646, ptr noundef %10647) #11
  %10649 = icmp eq i32 %10648, -1
  br i1 %10649, label %10360, label %10650

10650:                                            ; preds = %10643
  %10651 = load i32, ptr @test_count, align 4, !tbaa !5
  %10652 = add nsw i32 %10651, 1
  store i32 %10652, ptr @test_count, align 4, !tbaa !5
  %10653 = load ptr, ptr %157, align 8, !tbaa !9
  %10654 = getelementptr inbounds i8, ptr %10653, i64 220
  %10655 = load i8, ptr %10654, align 4, !tbaa !50
  %10656 = icmp eq i8 %10655, 34
  br i1 %10656, label %10657, label %10389

10657:                                            ; preds = %10650
  %10658 = add nsw i32 %10651, 2
  store i32 %10658, ptr @test_count, align 4, !tbaa !5
  %10659 = load ptr, ptr %158, align 8, !tbaa !9
  %10660 = getelementptr inbounds i8, ptr %10659, i64 220
  %10661 = load i8, ptr %10660, align 4, !tbaa !50
  %10662 = icmp eq i8 %10661, 34
  br i1 %10662, label %10663, label %10417

10663:                                            ; preds = %10657
  %10664 = add nsw i32 %10651, 3
  store i32 %10664, ptr @test_count, align 4, !tbaa !5
  %10665 = getelementptr inbounds i8, ptr %10659, i64 1528
  %10666 = load ptr, ptr %10665, align 8, !tbaa !66
  %10667 = icmp eq ptr %10666, @s2n_ecdsa_sha512
  br i1 %10667, label %._crit_edge1425, label %10439

._crit_edge1425:                                  ; preds = %10663
  %10668 = add nsw i32 %10651, 4
  store i32 %10668, ptr @test_count, align 4, !tbaa !5
  %10669 = getelementptr inbounds i8, ptr %10659, i64 232
  %10670 = load ptr, ptr %10669, align 8, !tbaa !60
  %10671 = load ptr, ptr %10670, align 8, !tbaa !61
  %10672 = getelementptr inbounds i8, ptr %10671, i64 96
  %10673 = load i32, ptr %10672, align 8, !tbaa !84
  %10674 = icmp eq i32 %10673, 6
  br i1 %10674, label %10517, label %10675

10675:                                            ; preds = %._crit_edge1425
  %10676 = add nsw i32 %10651, 5
  store i32 %10676, ptr @test_count, align 4, !tbaa !5
  %10677 = icmp eq i32 %10673, 4
  br i1 %10677, label %10678, label %10542

10678:                                            ; preds = %10675
  %10679 = add nsw i32 %10651, 6
  store i32 %10679, ptr @test_count, align 4, !tbaa !5
  %10680 = getelementptr inbounds i8, ptr %10659, i64 656
  %10681 = load ptr, ptr %10680, align 8, !tbaa !86
  %10682 = icmp eq ptr %10681, @s2n_ecc_curve_secp521r1
  br i1 %10682, label %10569, label %10683

10683:                                            ; preds = %10678
  %10684 = add nsw i32 %10651, 7
  store i32 %10684, ptr @test_count, align 4, !tbaa !5
  %10685 = icmp eq ptr %10681, @s2n_ecc_curve_secp384r1
  br i1 %10685, label %10686, label %10594

10686:                                            ; preds = %10683
  %10687 = call i32 @s2n_io_pair_close(ptr noundef nonnull %159) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %159) #11
  %10688 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %158) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %158) #11
  %10689 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %157) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %157) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %156) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %155) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %154) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %153) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %152) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %151) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %150) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %149) #11
  %10690 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %148) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %148) #11
  %10691 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %147) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %147) #11
  br label %10692

10692:                                            ; preds = %10686, %10124
  %10693 = call i32 @s2n_cleanup() #11
  %10694 = icmp eq i32 %10693, -1
  br i1 %10694, label %10695, label %10717

10695:                                            ; preds = %10692
  %10696 = load i32, ptr %3231, align 4, !tbaa !5
  %10697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10698 = call i32 @s2n_print_stacktrace(ptr noundef %10697) #11
  %10699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10700 = trunc nuw i8 %10699 to i1
  br i1 %10700, label %10701, label %10705

10701:                                            ; preds = %10695
  %10702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10703 = call i32 @fileno(ptr noundef %10702) #11
  %10704 = call i32 @isatty(i32 noundef %10703) #11
  %.not1142 = icmp eq i32 %10704, 0
  br i1 %.not1142, label %10705, label %10706

10705:                                            ; preds = %10701, %10695
  br label %10706

10706:                                            ; preds = %10701, %10705
  %.str.5.sink4594 = phi ptr [ @.str.5, %10705 ], [ @.str.2, %10701 ]
  store i32 %10696, ptr %3231, align 4, !tbaa !5
  %10707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10708 = load i32, ptr @test_count, align 4, !tbaa !5
  %10709 = load i32, ptr %3177, align 4, !tbaa !5
  %10710 = call ptr @s2n_strerror(i32 noundef %10709, ptr noundef nonnull @.str.4) #11
  %10711 = load i32, ptr %3177, align 4, !tbaa !5
  %10712 = call ptr @s2n_strerror_debug(i32 noundef %10711, ptr noundef nonnull @.str.4) #11
  %10713 = load i32, ptr %3231, align 4, !tbaa !5
  %10714 = call ptr @strerror(i32 noundef %10713) #11
  %10715 = load i32, ptr %3231, align 4, !tbaa !5
  %10716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10707, ptr noundef nonnull %.str.5.sink4594, i32 noundef %10708, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.1, i32 noundef 1501, ptr noundef %10710, ptr noundef %10712, ptr noundef %10714, i32 noundef %10715) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10717:                                            ; preds = %10692
  %10718 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %10719 = icmp eq i32 %10718, -1
  br i1 %10719, label %10720, label %10742

10720:                                            ; preds = %10717
  %10721 = load i32, ptr %3231, align 4, !tbaa !5
  %10722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10723 = call i32 @s2n_print_stacktrace(ptr noundef %10722) #11
  %10724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10725 = trunc nuw i8 %10724 to i1
  br i1 %10725, label %10726, label %10730

10726:                                            ; preds = %10720
  %10727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10728 = call i32 @fileno(ptr noundef %10727) #11
  %10729 = call i32 @isatty(i32 noundef %10728) #11
  %.not1141 = icmp eq i32 %10729, 0
  br i1 %.not1141, label %10730, label %10731

10730:                                            ; preds = %10726, %10720
  br label %10731

10731:                                            ; preds = %10726, %10730
  %.str.5.sink4603 = phi ptr [ @.str.5, %10730 ], [ @.str.2, %10726 ]
  store i32 %10721, ptr %3231, align 4, !tbaa !5
  %10732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10733 = load i32, ptr @test_count, align 4, !tbaa !5
  %10734 = load i32, ptr %3177, align 4, !tbaa !5
  %10735 = call ptr @s2n_strerror(i32 noundef %10734, ptr noundef nonnull @.str.4) #11
  %10736 = load i32, ptr %3177, align 4, !tbaa !5
  %10737 = call ptr @s2n_strerror_debug(i32 noundef %10736, ptr noundef nonnull @.str.4) #11
  %10738 = load i32, ptr %3231, align 4, !tbaa !5
  %10739 = call ptr @strerror(i32 noundef %10738) #11
  %10740 = load i32, ptr %3231, align 4, !tbaa !5
  %10741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10732, ptr noundef nonnull %.str.5.sink4603, i32 noundef %10733, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 1501, ptr noundef %10735, ptr noundef %10737, ptr noundef %10739, i32 noundef %10740) #13
  call void @exit(i32 noundef 1) #14
  unreachable

10742:                                            ; preds = %10717
  %10743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10744 = trunc nuw i8 %10743 to i1
  br i1 %10744, label %10745, label %10756

10745:                                            ; preds = %10742
  %10746 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10747 = call i32 @fileno(ptr noundef %10746) #11
  %10748 = call i32 @isatty(i32 noundef %10747) #11
  %.not1138 = icmp eq i32 %10748, 0
  br i1 %.not1138, label %10756, label %10749

10749:                                            ; preds = %10745
  %10750 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not1140 = icmp eq i32 %10750, 0
  %10751 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not1140, label %10754, label %10752

10752:                                            ; preds = %10749
  %10753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10751, ptr noundef nonnull @.str.135, i32 noundef %10750) #11
  br label %10763

10754:                                            ; preds = %10749
  %10755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10751, ptr noundef nonnull @.str.136) #11
  br label %10763

10756:                                            ; preds = %10745, %10742
  %10757 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not1139 = icmp eq i32 %10757, 0
  %10758 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not1139, label %10761, label %10759

10759:                                            ; preds = %10756
  %10760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10758, ptr noundef nonnull @.str.137, i32 noundef %10757) #11
  br label %10763

10761:                                            ; preds = %10756
  %10762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10758, ptr noundef nonnull @.str.138) #11
  br label %10763

10763:                                            ; preds = %10759, %10761, %10752, %10754
  %10764 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #11
  %10765 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #11
  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

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_fetch_default_config() 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) #8

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) 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) #9

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_signature_algorithms_supported_list_send(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_recv_supported_sig_scheme_list(ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_set_local_sig_schemes(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_set_peer_sig_schemes(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #0

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_signature_algorithm_select(ptr noundef) local_unnamed_addr #2

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare zeroext i1 @s2n_is_rsa_pss_signing_supported(...) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_signature_algorithm_recv(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_rsa_pss_certs_supported(...) local_unnamed_addr #2

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_negotiate_test_server_and_client(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_reset_tls13_in_test(...) local_unnamed_addr #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) 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: readwrite) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
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 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 96}
!16 = !{!"s2n_config", !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, !10, i64 8, !10, i64 16, !17, i64 24, !18, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !19, i64 144, !10, i64 152, !19, i64 160, !19, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !20, i64 304, !21, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !18, i64 448}
!17 = !{!"certs_by_type", !7, i64 0}
!18 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!19 = !{!"long", !7, i64 0}
!20 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!21 = !{!"short", !7, i64 0}
!22 = !{i64 0, i64 1, !23, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9, i64 48, i64 8, !9, i64 56, i64 1, !11, i64 57, i64 2, !23}
!23 = !{!7, !7, i64 0}
!24 = !{!25, !10, i64 24}
!25 = !{!"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}
!26 = !{!27, !10, i64 16}
!27 = !{!"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, !28, i64 160, !19, i64 168, !19, 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, !29, i64 240, !10, i64 632, !10, i64 640, !30, i64 648, !35, i64 1144, !38, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !40, i64 1776, !40, i64 1816, !40, i64 1856, !40, i64 1896, !6, i64 1936, !19, i64 1944, !7, i64 1952, !40, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !41, i64 2004, !41, i64 2008, !42, i64 2016, !21, i64 2208, !6, i64 2212, !21, i64 2216, !19, i64 2224, !7, i64 2232, !19, i64 2240, !19, i64 2248, !19, i64 2256, !41, i64 2264, !41, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !18, i64 2792, !6, i64 2816, !18, i64 2824, !18, i64 2848, !18, i64 2872, !44, i64 2896, !46, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !18, i64 3784, !6, i64 3808, !48, i64 3816, !7, i64 3848, !40, i64 3992, !18, i64 4032, !18, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !21, i64 4084, !21, i64 4086, !6, i64 4088, !6, i64 4092, !18, i64 4096, !6, i64 4120, !49, i64 4128, !41, i64 4176, !7, i64 4180, !7, i64 4181}
!28 = !{!"s2n_timer", !19, i64 0}
!29 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!30 = !{!"s2n_kex_parameters", !31, i64 0, !32, i64 8, !7, i64 24, !32, i64 56, !33, i64 72, !33, i64 184, !7, i64 296, !34, i64 360, !18, i64 448, !18, i64 472}
!31 = !{!"s2n_dh_params", !10, i64 0}
!32 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!33 = !{!"s2n_kem_group_params", !10, i64 0, !34, i64 8, !32, i64 96}
!34 = !{!"s2n_kem_params", !10, i64 0, !18, i64 8, !18, i64 32, !18, i64 56, !12, i64 80}
!35 = !{!"s2n_handshake_parameters", !36, i64 0, !36, i64 48, !18, i64 96, !6, i64 120, !37, 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}
!36 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!37 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!38 = !{!"s2n_psk_parameters", !6, i64 0, !39, i64 8, !21, i64 40, !21, i64 42, !10, i64 48, !6, i64 56}
!39 = !{!"s2n_array", !18, i64 0, !6, i64 24, !6, i64 28}
!40 = !{!"s2n_stuffer", !18, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!41 = !{!"", !6, i64 0}
!42 = !{!"s2n_handshake", !40, 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, !43, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!43 = !{!"s2n_offered_early_data", !10, i64 0}
!44 = !{!"s2n_client_hello", !18, i64 0, !45, i64 24, !18, i64 728, !18, i64 752, !18, 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}
!45 = !{!"", !7, i64 0, !18, i64 672, !21, i64 696}
!46 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !21, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !47, i64 48, !12, i64 52}
!47 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!48 = !{!"s2n_ticket_fields", !18, i64 0, !6, i64 24}
!49 = !{!"s2n_post_handshake", !40, i64 0, !7, i64 40}
!50 = !{!27, !7, i64 220}
!51 = !{!21, !21, i64 0}
!52 = !{!40, !6, i64 28}
!53 = !{!40, !6, i64 24}
!54 = !{!55, !21, i64 0}
!55 = !{!"s2n_signature_scheme", !21, i64 0, !10, i64 8, !6, i64 16, !6, i64 20, !7, i64 24, !7, i64 25, !21, i64 26, !10, i64 32}
!56 = !{!37, !7, i64 256}
!57 = !{!55, !7, i64 25}
!58 = !{!27, !6, i64 1264}
!59 = !{!27, !10, i64 1536}
!60 = !{!27, !10, i64 232}
!61 = !{!62, !10, i64 0}
!62 = !{!"s2n_crypto_parameters", !10, i64 0, !63, i64 8, !63, i64 16, !64, i64 24, !64, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!63 = !{!"s2n_session_key", !10, i64 0}
!64 = !{!"s2n_hmac_state", !6, i64 0, !21, i64 4, !6, i64 8, !21, i64 12, !7, i64 14, !65, i64 16, !65, i64 72, !65, i64 128, !65, i64 184, !7, i64 240, !7, i64 368}
!65 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !19, i64 16, !7, i64 24}
!66 = !{!27, !10, i64 1528}
!67 = !{i64 0, i64 2, !51, i64 8, i64 8, !9, i64 16, i64 4, !5, i64 20, i64 4, !5, i64 24, i64 1, !23, i64 25, i64 1, !23, i64 26, i64 2, !51, i64 32, i64 8, !9}
!68 = !{!55, !6, i64 16}
!69 = !{!55, !6, i64 20}
!70 = !{!71, !7, i64 0}
!71 = !{!"s2n_signature_preferences", !7, i64 0, !10, i64 8}
!72 = !{!71, !10, i64 8}
!73 = distinct !{!73, !74}
!74 = !{!"llvm.loop.mustprogress"}
!75 = distinct !{!75, !74}
!76 = distinct !{!76, !74}
!77 = !{!78, !7, i64 0}
!78 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!79 = !{!78, !10, i64 8}
!80 = !{!25, !10, i64 8}
!81 = !{!25, !10, i64 40}
!82 = !{!83, !10, i64 8}
!83 = !{!"s2n_cipher_preferences", !21, i64 0, !10, i64 8, !12, i64 16}
!84 = !{!85, !6, i64 96}
!85 = !{!"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}
!86 = !{!27, !10, i64 656}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass