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

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

%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_kem_group = type { ptr, i16, ptr, ptr, i8 }
%struct.s2n_ecc_preferences = type { i8, ptr }
%struct.s2n_kem_preferences = type { i8, ptr, i8, ptr, i8 }
%struct.s2n_kem = type { ptr, i32, i16, i16, i16, i16, i16, ptr, ptr, ptr }
%struct.s2n_result = type { i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [94 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 [55 x i8], align 1
@cipher_preferences_test_all_tls13 = external constant %struct.s2n_cipher_preferences, align 8
@s2n_signature_preferences_20200207 = external constant %struct.s2n_signature_preferences, align 8
@__const.main.test_security_policy_no_x25519 = external hidden unnamed_addr constant %struct.s2n_security_policy, align 8
@.str.9 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_ecc_curve_x25519 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.13 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [71 x i8], align 1
@s2n_all_supported_curves_list = external constant [0 x ptr], align 8
@.str.25 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [71 x i8], align 1
@s2n_server_key_share_extension = external constant %struct.s2n_extension_type, align 8
@.str.28 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [174 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [139 x i8], align 1
@__const.main.key_share_payloads = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.59 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [87 x i8], align 1
@s2n_client_key_share_extension = external constant %struct.s2n_extension_type, align 8
@.str.82 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [194 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [194 x i8], align 1
@s2n_ecc_curve_secp256r1 = external constant %struct.s2n_ecc_named_curve, align 8
@s2n_ecc_curve_secp384r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.90 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [78 x i8], align 1
@security_policy_test_tls13_retry = external constant %struct.s2n_security_policy, align 8
@.str.107 = external hidden unnamed_addr constant [78 x i8], align 1
@hello_retry_req_random = external global [32 x i8], align 16
@.str.108 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [56 x i8], align 1
@s2n_secp256r1_kyber_512_r3 = external constant %struct.s2n_kem_group, align 8
@__const.main.test_kem_groups = external hidden unnamed_addr constant [2 x ptr], align 16
@s2n_ecc_preferences_20200310 = external constant %struct.s2n_ecc_preferences, align 8
@kem_preferences_all = external constant %struct.s2n_kem_preferences, align 8
@.str.123 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [186 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [189 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_kyber_512_r3 = external constant %struct.s2n_kem, align 8
@.str.177 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [154 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.189 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.190 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.191 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.193 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.194 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.196 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.197 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.208 = 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 %struct.s2n_security_policy, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca %struct.s2n_result, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca ptr, align 8
  %50 = alloca i32, align 4
  %51 = alloca ptr, align 8
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca %struct.s2n_stuffer, align 8
  %56 = alloca i32, align 4
  %57 = alloca i64, align 8
  %58 = alloca ptr, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i16, align 2
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i16, align 2
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca %struct.s2n_result, align 4
  %77 = alloca i32, align 4
  %78 = alloca ptr, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca %struct.s2n_stuffer, align 8
  %83 = alloca i32, align 4
  %84 = alloca i64, align 8
  %85 = alloca ptr, align 8
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i16, align 2
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca ptr, align 8
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca %struct.s2n_stuffer, align 8
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca ptr, align 8
  %110 = alloca i32, align 4
  %111 = alloca ptr, align 8
  %112 = alloca ptr, align 8
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca ptr, align 8
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca [3 x ptr], align 16
  %128 = alloca i32, align 4
  %129 = alloca %struct.s2n_stuffer, align 8
  %130 = alloca ptr, align 8
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca ptr, align 8
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca ptr, align 8
  %137 = alloca i32, align 4
  %138 = alloca %struct.s2n_result, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca %struct.s2n_stuffer, align 8
  %147 = alloca ptr, align 8
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca ptr, align 8
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca ptr, align 8
  %154 = alloca i32, align 4
  %155 = alloca %struct.s2n_result, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca %struct.s2n_stuffer, align 8
  %167 = alloca ptr, align 8
  %168 = alloca i32, align 4
  %169 = alloca ptr, align 8
  %170 = alloca i32, align 4
  %171 = alloca %struct.s2n_result, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca %struct.s2n_stuffer, align 8
  %179 = alloca ptr, align 8
  %180 = alloca i32, align 4
  %181 = alloca ptr, align 8
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca ptr, align 8
  %185 = alloca i32, align 4
  %186 = alloca %struct.s2n_result, align 4
  %187 = alloca i32, align 4
  %188 = alloca i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca i32, align 4
  %192 = alloca i32, align 4
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca ptr, align 8
  %196 = alloca ptr, align 8
  %197 = alloca %struct.s2n_stuffer, align 8
  %198 = alloca i32, align 4
  %199 = alloca i32, align 4
  %200 = alloca %struct.s2n_result, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca ptr, align 8
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca %struct.s2n_blob, align 8
  %214 = alloca i32, align 4
  %215 = alloca %struct.s2n_blob, align 8
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  %221 = alloca i32, align 4
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca i32, align 4
  %225 = alloca i32, align 4
  %226 = alloca ptr, align 8
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca ptr, align 8
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca i32, align 4
  %234 = alloca i32, align 4
  %235 = alloca ptr, align 8
  %236 = alloca i32, align 4
  %237 = alloca ptr, align 8
  %238 = alloca ptr, align 8
  %239 = alloca i32, align 4
  %240 = alloca i32, align 4
  %241 = alloca i32, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca i32, align 4
  %246 = alloca ptr, align 8
  %247 = alloca ptr, align 8
  %248 = alloca i32, align 4
  %249 = alloca i32, align 4
  %250 = alloca ptr, align 8
  %251 = alloca i32, align 4
  %252 = alloca %struct.s2n_result, align 4
  %253 = alloca i32, align 4
  %254 = alloca i32, align 4
  %255 = alloca i32, align 4
  %256 = alloca i32, align 4
  %257 = alloca i32, align 4
  %258 = alloca ptr, align 8
  %259 = alloca i32, align 4
  %260 = alloca i32, align 4
  %261 = alloca ptr, align 8
  %262 = alloca i32, align 4
  %263 = alloca i32, align 4
  %264 = alloca i32, align 4
  %265 = alloca i32, align 4
  %266 = alloca i32, align 4
  %267 = alloca i32, align 4
  %268 = alloca i32, align 4
  %269 = alloca i32, align 4
  %270 = alloca i32, align 4
  %271 = alloca i32, align 4
  %272 = alloca i32, align 4
  %273 = alloca i32, align 4
  %274 = alloca i32, align 4
  %275 = alloca i32, align 4
  %276 = alloca i32, align 4
  %277 = alloca [2 x ptr], align 16
  %278 = alloca %struct.s2n_kem_preferences, align 8
  %279 = alloca %struct.s2n_security_policy, align 8
  %280 = alloca %struct.s2n_kem_preferences, align 8
  %281 = alloca %struct.s2n_security_policy, align 8
  %282 = alloca i32, align 4
  %283 = alloca ptr, align 8
  %284 = alloca i32, align 4
  %285 = alloca i32, align 4
  %286 = alloca i32, align 4
  %287 = alloca [2 x i8], align 1
  %288 = alloca %struct.s2n_blob, align 8
  %289 = alloca %struct.s2n_stuffer, align 8
  %290 = alloca i32, align 4
  %291 = alloca i32, align 4
  %292 = alloca i32, align 4
  %293 = alloca i32, align 4
  %294 = alloca i32, align 4
  %295 = alloca i32, align 4
  %296 = alloca i32, align 4
  %297 = alloca i32, align 4
  %298 = alloca %struct.s2n_result, align 4
  %299 = alloca i64, align 8
  %300 = alloca i32, align 4
  %301 = alloca ptr, align 8
  %302 = alloca ptr, align 8
  %303 = alloca i32, align 4
  %304 = alloca ptr, align 8
  %305 = alloca %struct.s2n_stuffer, align 8
  %306 = alloca %struct.s2n_stuffer, align 8
  %307 = alloca i32, align 4
  %308 = alloca i32, align 4
  %309 = alloca i32, align 4
  %310 = alloca ptr, align 8
  %311 = alloca i32, align 4
  %312 = alloca i32, align 4
  %313 = alloca i32, align 4
  %314 = alloca i32, align 4
  %315 = alloca i32, align 4
  %316 = alloca i32, align 4
  %317 = alloca i32, align 4
  %318 = alloca i32, align 4
  %319 = alloca i32, align 4
  %320 = alloca i32, align 4
  %321 = alloca i32, align 4
  %322 = alloca i32, align 4
  %323 = alloca i32, align 4
  %324 = alloca i32, align 4
  %325 = alloca i32, align 4
  %326 = alloca i32, align 4
  %327 = alloca i32, align 4
  %328 = alloca i32, align 4
  %329 = alloca i32, align 4
  %330 = alloca ptr, align 8
  %331 = alloca i32, align 4
  %332 = alloca %struct.s2n_result, align 4
  %333 = alloca i32, align 4
  %334 = alloca ptr, align 8
  %335 = alloca %struct.s2n_stuffer, align 8
  %336 = alloca %struct.s2n_result, align 4
  %337 = alloca i32, align 4
  %338 = alloca i32, align 4
  %339 = alloca i32, align 4
  %340 = alloca i32, align 4
  %341 = alloca i32, align 4
  %342 = alloca i32, align 4
  %343 = alloca i32, align 4
  %344 = alloca i32, align 4
  %345 = alloca i32, align 4
  %346 = alloca i32, align 4
  %347 = alloca i32, align 4
  %348 = alloca i32, align 4
  %349 = alloca i32, align 4
  %350 = alloca i32, align 4
  %351 = alloca i32, align 4
  %352 = alloca i32, align 4
  %353 = alloca i32, align 4
  %354 = alloca i32, align 4
  %355 = alloca i64, align 8
  %356 = alloca ptr, align 8
  %357 = alloca ptr, align 8
  %358 = alloca i32, align 4
  %359 = alloca ptr, align 8
  %360 = alloca %struct.s2n_stuffer, align 8
  %361 = alloca %struct.s2n_result, align 4
  %362 = alloca i32, align 4
  %363 = alloca i32, align 4
  %364 = alloca i32, align 4
  %365 = alloca i32, align 4
  %366 = alloca ptr, align 8
  %367 = alloca %struct.s2n_stuffer, align 8
  %368 = alloca %struct.s2n_result, align 4
  %369 = alloca i32, align 4
  %370 = alloca i32, align 4
  %371 = alloca i32, align 4
  %372 = alloca i32, align 4
  %373 = alloca ptr, align 8
  %374 = alloca %struct.s2n_stuffer, align 8
  %375 = alloca %struct.s2n_stuffer, align 8
  %376 = alloca i32, align 4
  %377 = alloca i32, align 4
  %378 = alloca i32, align 4
  %379 = alloca i32, align 4
  %380 = alloca i32, align 4
  %381 = alloca i32, align 4
  %382 = alloca [10 x i8], align 1
  %383 = alloca i32, align 4
  %384 = alloca i32, align 4
  %385 = alloca %struct.s2n_blob, align 8
  %386 = alloca i32, align 4
  %387 = alloca %struct.s2n_stuffer, align 8
  %388 = alloca i32, align 4
  %389 = alloca i32, align 4
  %390 = alloca i32, align 4
  %391 = alloca i32, align 4
  %392 = alloca i32, align 4
  %393 = alloca i32, align 4
  %394 = alloca i32, align 4
  %395 = alloca i32, align 4
  %396 = alloca i64, align 8
  %397 = alloca i32, align 4
  %398 = alloca i32, align 4
  %399 = alloca i32, align 4
  %400 = alloca i32, align 4
  %401 = alloca i64, align 8
  %402 = alloca i32, align 4
  %403 = alloca i32, align 4
  %404 = alloca i32, align 4
  %405 = alloca i32, align 4
  %406 = alloca ptr, align 8
  %407 = alloca i32, align 4
  %408 = alloca i32, align 4
  %409 = alloca i32, align 4
  %410 = alloca i32, align 4
  %411 = alloca i32, align 4
  %412 = alloca i32, align 4
  %413 = alloca i32, align 4
  %414 = alloca i32, align 4
  %415 = alloca i32, align 4
  %416 = alloca i32, align 4
  %417 = alloca i32, align 4
  %418 = alloca i32, align 4
  %419 = alloca i32, align 4
  %420 = alloca i32, align 4
  %421 = alloca i32, align 4
  %422 = alloca i32, align 4
  %423 = alloca i32, align 4
  %424 = alloca i32, align 4
  %425 = alloca i32, align 4
  %426 = alloca i32, align 4
  %427 = alloca i32, align 4
  %428 = alloca i32, align 4
  %429 = alloca i32, align 4
  %430 = alloca i32, align 4
  %431 = alloca i32, align 4
  %432 = alloca i32, align 4
  %433 = alloca i32, align 4
  %434 = alloca i32, align 4
  %435 = alloca i32, align 4
  %436 = alloca i32, align 4
  %437 = alloca i32, align 4
  %438 = alloca i32, align 4
  %439 = alloca i32, align 4
  %440 = alloca %struct.s2n_result, align 4
  %441 = alloca i32, align 4
  %442 = alloca i32, align 4
  %443 = alloca i32, align 4
  %444 = alloca i32, align 4
  %445 = alloca i64, align 8
  %446 = alloca ptr, align 8
  %447 = alloca i32, align 4
  %448 = alloca ptr, align 8
  %449 = alloca i32, align 4
  %450 = alloca i32, align 4
  %451 = alloca %struct.s2n_stuffer, align 8
  %452 = alloca i32, align 4
  %453 = alloca ptr, align 8
  %454 = alloca ptr, align 8
  %455 = alloca i32, align 4
  %456 = alloca ptr, align 8
  %457 = alloca i32, align 4
  %458 = alloca i32, align 4
  %459 = alloca %struct.s2n_result, align 4
  %460 = alloca i32, align 4
  %461 = alloca i32, align 4
  %462 = alloca i16, align 2
  %463 = alloca i32, align 4
  %464 = alloca i16, align 2
  %465 = alloca i32, align 4
  %466 = alloca i32, align 4
  %467 = alloca i16, align 2
  %468 = alloca i32, align 4
  %469 = alloca i32, align 4
  %470 = alloca i16, align 2
  %471 = alloca i16, align 2
  %472 = alloca i16, align 2
  %473 = alloca i32, align 4
  %474 = alloca i32, align 4
  %475 = alloca i32, align 4
  %476 = alloca i16, align 2
  %477 = alloca i32, align 4
  %478 = alloca i32, align 4
  %479 = alloca i32, align 4
  %480 = alloca i32, align 4
  %481 = alloca i32, align 4
  %482 = alloca i32, align 4
  %483 = alloca i32, align 4
  %484 = alloca i32, align 4
  %485 = alloca i32, align 4
  %486 = alloca i32, align 4
  %487 = alloca i32, align 4
  %488 = alloca ptr, align 8
  %489 = alloca i32, align 4
  %490 = alloca %struct.s2n_result, align 4
  %491 = alloca i32, align 4
  %492 = alloca ptr, align 8
  %493 = alloca i32, align 4
  %494 = alloca i32, align 4
  %495 = alloca i32, align 4
  %496 = alloca %struct.s2n_stuffer, align 8
  %497 = alloca i32, align 4
  %498 = alloca i64, align 8
  %499 = alloca ptr, align 8
  %500 = alloca ptr, align 8
  %501 = alloca i32, align 4
  %502 = alloca i32, align 4
  %503 = alloca i32, align 4
  %504 = alloca i16, align 2
  %505 = alloca i32, align 4
  %506 = alloca i32, align 4
  %507 = alloca i32, align 4
  %508 = alloca i32, align 4
  %509 = alloca i32, align 4
  %510 = alloca i32, align 4
  %511 = alloca i32, align 4
  %512 = alloca i32, align 4
  %513 = alloca i32, align 4
  %514 = alloca i32, align 4
  %515 = alloca i32, align 4
  %516 = alloca i32, align 4
  %517 = alloca ptr, align 8
  %518 = alloca i32, align 4
  %519 = alloca ptr, align 8
  %520 = alloca i32, align 4
  %521 = alloca i32, align 4
  %522 = alloca ptr, align 8
  %523 = alloca i32, align 4
  %524 = alloca i32, align 4
  %525 = alloca %struct.s2n_stuffer, align 8
  %526 = alloca i32, align 4
  %527 = alloca i32, align 4
  %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
  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 %533

533:                                              ; preds = %2
  br label %534

534:                                              ; preds = %533
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %535 = load ptr, ptr @stdout, align 8, !tbaa !9
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %535, ptr noundef @.str, ptr noundef @.str.1) #11
  %537 = load ptr, ptr @stdout, align 8, !tbaa !9
  %538 = call i32 @fflush(ptr noundef %537)
  br label %539

539:                                              ; preds = %534
  %540 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %541 = icmp eq i32 %540, -1
  br i1 %541, label %542, label %593

542:                                              ; preds = %539
  br label %543

543:                                              ; preds = %542
  br label %544

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

551:                                              ; preds = %544
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = call i32 @fileno(ptr noundef %552) #11
  %554 = call i32 @isatty(i32 noundef %553) #11
  %555 = icmp ne i32 %554, 0
  br i1 %555, label %556, label %573

556:                                              ; preds = %551
  %557 = load i32, ptr %6, align 4, !tbaa !5
  %558 = call ptr @__errno_location() #12
  store i32 %557, ptr %558, align 4, !tbaa !5
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = load i32, ptr @test_count, align 4, !tbaa !5
  %561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call ptr @s2n_strerror(i32 noundef %562, ptr noundef @.str.4)
  %564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call ptr @s2n_strerror_debug(i32 noundef %565, ptr noundef @.str.4)
  %567 = call ptr @__errno_location() #12
  %568 = load i32, ptr %567, align 4, !tbaa !5
  %569 = call ptr @strerror(i32 noundef %568) #11
  %570 = call ptr @__errno_location() #12
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %559, ptr noundef @.str.2, i32 noundef %560, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 40, ptr noundef %563, ptr noundef %566, ptr noundef %569, i32 noundef %571) #11
  br label %590

573:                                              ; preds = %551, %544
  %574 = load i32, ptr %6, align 4, !tbaa !5
  %575 = call ptr @__errno_location() #12
  store i32 %574, ptr %575, align 4, !tbaa !5
  %576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %577 = load i32, ptr @test_count, align 4, !tbaa !5
  %578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %579 = load i32, ptr %578, align 4, !tbaa !5
  %580 = call ptr @s2n_strerror(i32 noundef %579, ptr noundef @.str.4)
  %581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror_debug(i32 noundef %582, ptr noundef @.str.4)
  %584 = call ptr @__errno_location() #12
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @strerror(i32 noundef %585) #11
  %587 = call ptr @__errno_location() #12
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %576, ptr noundef @.str.5, i32 noundef %577, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 40, ptr noundef %580, ptr noundef %583, ptr noundef %586, i32 noundef %588) #11
  br label %590

590:                                              ; preds = %573, %556
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %591

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

592:                                              ; No predecessors!
  br label %593

593:                                              ; preds = %592, %539
  br label %594

594:                                              ; preds = %593
  br label %595

595:                                              ; preds = %594
  %596 = load i32, ptr @test_count, align 4, !tbaa !5
  %597 = add nsw i32 %596, 1
  store i32 %597, ptr @test_count, align 4, !tbaa !5
  %598 = call i32 @s2n_enable_atexit()
  %599 = icmp eq i32 %598, -1
  br i1 %599, label %600, label %651

600:                                              ; preds = %595
  br label %601

601:                                              ; preds = %600
  br label %602

602:                                              ; preds = %601
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %603 = call ptr @__errno_location() #12
  %604 = load i32, ptr %603, align 4, !tbaa !5
  store i32 %604, ptr %7, align 4, !tbaa !5
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = call i32 @s2n_print_stacktrace(ptr noundef %605)
  %607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %608 = trunc i8 %607 to i1
  br i1 %608, label %609, label %631

609:                                              ; preds = %602
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = call i32 @fileno(ptr noundef %610) #11
  %612 = call i32 @isatty(i32 noundef %611) #11
  %613 = icmp ne i32 %612, 0
  br i1 %613, label %614, label %631

614:                                              ; preds = %609
  %615 = load i32, ptr %7, align 4, !tbaa !5
  %616 = call ptr @__errno_location() #12
  store i32 %615, ptr %616, align 4, !tbaa !5
  %617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %618 = load i32, ptr @test_count, align 4, !tbaa !5
  %619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %620 = load i32, ptr %619, align 4, !tbaa !5
  %621 = call ptr @s2n_strerror(i32 noundef %620, ptr noundef @.str.4)
  %622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %623 = load i32, ptr %622, align 4, !tbaa !5
  %624 = call ptr @s2n_strerror_debug(i32 noundef %623, ptr noundef @.str.4)
  %625 = call ptr @__errno_location() #12
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = call ptr @strerror(i32 noundef %626) #11
  %628 = call ptr @__errno_location() #12
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %617, ptr noundef @.str.2, i32 noundef %618, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 40, ptr noundef %621, ptr noundef %624, ptr noundef %627, i32 noundef %629) #11
  br label %648

631:                                              ; preds = %609, %602
  %632 = load i32, ptr %7, align 4, !tbaa !5
  %633 = call ptr @__errno_location() #12
  store i32 %632, ptr %633, align 4, !tbaa !5
  %634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %635 = load i32, ptr @test_count, align 4, !tbaa !5
  %636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %637 = load i32, ptr %636, align 4, !tbaa !5
  %638 = call ptr @s2n_strerror(i32 noundef %637, ptr noundef @.str.4)
  %639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = call ptr @s2n_strerror_debug(i32 noundef %640, ptr noundef @.str.4)
  %642 = call ptr @__errno_location() #12
  %643 = load i32, ptr %642, align 4, !tbaa !5
  %644 = call ptr @strerror(i32 noundef %643) #11
  %645 = call ptr @__errno_location() #12
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %634, ptr noundef @.str.5, i32 noundef %635, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 40, ptr noundef %638, ptr noundef %641, ptr noundef %644, i32 noundef %646) #11
  br label %648

648:                                              ; preds = %631, %614
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %649

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

650:                                              ; No predecessors!
  br label %651

651:                                              ; preds = %650, %595
  br label %652

652:                                              ; preds = %651
  br label %653

653:                                              ; preds = %652
  br label %654

654:                                              ; preds = %653
  %655 = call i32 @s2n_init()
  %656 = icmp eq i32 %655, -1
  br i1 %656, label %657, label %708

657:                                              ; preds = %654
  br label %658

658:                                              ; preds = %657
  br label %659

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

666:                                              ; preds = %659
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = call i32 @fileno(ptr noundef %667) #11
  %669 = call i32 @isatty(i32 noundef %668) #11
  %670 = icmp ne i32 %669, 0
  br i1 %670, label %671, label %688

671:                                              ; preds = %666
  %672 = load i32, ptr %8, align 4, !tbaa !5
  %673 = call ptr @__errno_location() #12
  store i32 %672, ptr %673, align 4, !tbaa !5
  %674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call ptr @s2n_strerror(i32 noundef %677, ptr noundef @.str.4)
  %679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror_debug(i32 noundef %680, ptr noundef @.str.4)
  %682 = call ptr @__errno_location() #12
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call ptr @strerror(i32 noundef %683) #11
  %685 = call ptr @__errno_location() #12
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %674, ptr noundef @.str.2, i32 noundef %675, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 40, ptr noundef %678, ptr noundef %681, ptr noundef %684, i32 noundef %686) #11
  br label %705

688:                                              ; preds = %666, %659
  %689 = load i32, ptr %8, align 4, !tbaa !5
  %690 = call ptr @__errno_location() #12
  store i32 %689, ptr %690, align 4, !tbaa !5
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = load i32, ptr @test_count, align 4, !tbaa !5
  %693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call ptr @s2n_strerror(i32 noundef %694, ptr noundef @.str.4)
  %696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror_debug(i32 noundef %697, ptr noundef @.str.4)
  %699 = call ptr @__errno_location() #12
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call ptr @strerror(i32 noundef %700) #11
  %702 = call ptr @__errno_location() #12
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %691, ptr noundef @.str.5, i32 noundef %692, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 40, ptr noundef %695, ptr noundef %698, ptr noundef %701, i32 noundef %703) #11
  br label %705

705:                                              ; preds = %688, %671
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %706

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

707:                                              ; No predecessors!
  br label %708

708:                                              ; preds = %707, %654
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  br label %711

711:                                              ; preds = %710
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = add nsw i32 %712, 1
  store i32 %713, ptr @test_count, align 4, !tbaa !5
  %714 = call i32 (...) @s2n_enable_tls13_in_test()
  %715 = icmp eq i32 %714, -1
  br i1 %715, label %716, label %767

716:                                              ; preds = %711
  br label %717

717:                                              ; preds = %716
  br label %718

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

725:                                              ; preds = %718
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = call i32 @fileno(ptr noundef %726) #11
  %728 = call i32 @isatty(i32 noundef %727) #11
  %729 = icmp ne i32 %728, 0
  br i1 %729, label %730, label %747

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

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

764:                                              ; preds = %747, %730
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %765

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

766:                                              ; No predecessors!
  br label %767

767:                                              ; preds = %766, %711
  br label %768

768:                                              ; preds = %767
  call void @llvm.lifetime.start.p0(i64 64, ptr %10) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %10, ptr align 8 @__const.main.test_security_policy_no_x25519, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %769

769:                                              ; preds = %768
  br label %770

770:                                              ; preds = %769
  %771 = load i32, ptr @test_count, align 4, !tbaa !5
  %772 = add nsw i32 %771, 1
  store i32 %772, ptr @test_count, align 4, !tbaa !5
  %773 = load ptr, ptr %11, align 8, !tbaa !9
  %774 = call i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef %773)
  %775 = icmp eq i32 %774, -1
  br i1 %775, label %829, label %776

776:                                              ; preds = %770
  br label %777

777:                                              ; preds = %776
  br label %778

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

785:                                              ; preds = %778
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = call i32 @fileno(ptr noundef %786) #11
  %788 = call i32 @isatty(i32 noundef %787) #11
  %789 = icmp ne i32 %788, 0
  br i1 %789, label %790, label %807

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

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

824:                                              ; preds = %807, %790
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  br label %825

825:                                              ; preds = %824
  br label %826

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

827:                                              ; No predecessors!
  br label %828

828:                                              ; preds = %827
  br label %829

829:                                              ; preds = %828, %770
  br label %830

830:                                              ; preds = %829
  br label %831

831:                                              ; preds = %830
  br label %832

832:                                              ; preds = %831
  %833 = load i32, ptr @test_count, align 4, !tbaa !5
  %834 = add nsw i32 %833, 1
  store i32 %834, ptr @test_count, align 4, !tbaa !5
  %835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %836 = load i32, ptr %835, align 4, !tbaa !5
  %837 = icmp eq i32 %836, 0
  br i1 %837, label %838, label %891

838:                                              ; preds = %832
  br label %839

839:                                              ; preds = %838
  br label %840

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

847:                                              ; preds = %840
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = call i32 @fileno(ptr noundef %848) #11
  %850 = call i32 @isatty(i32 noundef %849) #11
  %851 = icmp ne i32 %850, 0
  br i1 %851, label %852, label %869

852:                                              ; preds = %847
  %853 = load i32, ptr %13, align 4, !tbaa !5
  %854 = call ptr @__errno_location() #12
  store i32 %853, ptr %854, align 4, !tbaa !5
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = call ptr @s2n_strerror(i32 noundef %858, ptr noundef @.str.4)
  %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_debug(i32 noundef %861, ptr noundef @.str.4)
  %863 = call ptr @__errno_location() #12
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call ptr @strerror(i32 noundef %864) #11
  %866 = call ptr @__errno_location() #12
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %855, ptr noundef @.str.2, i32 noundef %856, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 54, ptr noundef %859, ptr noundef %862, ptr noundef %865, i32 noundef %867) #11
  br label %886

869:                                              ; preds = %847, %840
  %870 = load i32, ptr %13, align 4, !tbaa !5
  %871 = call ptr @__errno_location() #12
  store i32 %870, ptr %871, align 4, !tbaa !5
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %875 = load i32, ptr %874, align 4, !tbaa !5
  %876 = call ptr @s2n_strerror(i32 noundef %875, ptr noundef @.str.4)
  %877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %878 = load i32, ptr %877, align 4, !tbaa !5
  %879 = call ptr @s2n_strerror_debug(i32 noundef %878, ptr noundef @.str.4)
  %880 = call ptr @__errno_location() #12
  %881 = load i32, ptr %880, align 4, !tbaa !5
  %882 = call ptr @strerror(i32 noundef %881) #11
  %883 = call ptr @__errno_location() #12
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %872, ptr noundef @.str.5, i32 noundef %873, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 54, ptr noundef %876, ptr noundef %879, ptr noundef %882, i32 noundef %884) #11
  br label %886

886:                                              ; preds = %869, %852
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %887

887:                                              ; preds = %886
  br label %888

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

889:                                              ; No predecessors!
  br label %890

890:                                              ; preds = %889
  br label %891

891:                                              ; preds = %890, %832
  br label %892

892:                                              ; preds = %891
  br label %893

893:                                              ; preds = %892
  br label %894

894:                                              ; preds = %893
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = add nsw i32 %895, 1
  store i32 %896, ptr @test_count, align 4, !tbaa !5
  %897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %898 = load i32, ptr %897, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %898, ptr noundef @.str.4)
  %900 = icmp eq ptr %899, null
  br i1 %900, label %901, label %954

901:                                              ; preds = %894
  br label %902

902:                                              ; preds = %901
  br label %903

903:                                              ; preds = %902
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %904 = call ptr @__errno_location() #12
  %905 = load i32, ptr %904, align 4, !tbaa !5
  store i32 %905, ptr %14, align 4, !tbaa !5
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @s2n_print_stacktrace(ptr noundef %906)
  %908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %909 = trunc i8 %908 to i1
  br i1 %909, label %910, label %932

910:                                              ; preds = %903
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = call i32 @fileno(ptr noundef %911) #11
  %913 = call i32 @isatty(i32 noundef %912) #11
  %914 = icmp ne i32 %913, 0
  br i1 %914, label %915, label %932

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

932:                                              ; preds = %910, %903
  %933 = load i32, ptr %14, align 4, !tbaa !5
  %934 = call ptr @__errno_location() #12
  store i32 %933, ptr %934, align 4, !tbaa !5
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = load i32, ptr @test_count, align 4, !tbaa !5
  %937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %938 = load i32, ptr %937, align 4, !tbaa !5
  %939 = call ptr @s2n_strerror(i32 noundef %938, ptr noundef @.str.4)
  %940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = call ptr @s2n_strerror_debug(i32 noundef %941, ptr noundef @.str.4)
  %943 = call ptr @__errno_location() #12
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @strerror(i32 noundef %944) #11
  %946 = call ptr @__errno_location() #12
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %935, ptr noundef @.str.5, i32 noundef %936, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 54, ptr noundef %939, ptr noundef %942, ptr noundef %945, i32 noundef %947) #11
  br label %949

949:                                              ; preds = %932, %915
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %950

950:                                              ; preds = %949
  br label %951

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

952:                                              ; No predecessors!
  br label %953

953:                                              ; preds = %952
  br label %954

954:                                              ; preds = %953, %894
  br label %955

955:                                              ; preds = %954
  br label %956

956:                                              ; preds = %955
  br label %957

957:                                              ; preds = %956
  %958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %958, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %959 = call ptr @__errno_location() #12
  store i32 0, ptr %959, align 4, !tbaa !5
  br label %960

960:                                              ; preds = %957
  br label %961

961:                                              ; preds = %960
  br label %962

962:                                              ; preds = %961
  br label %963

963:                                              ; preds = %962
  br label %964

964:                                              ; preds = %963
  %965 = load i32, ptr @test_count, align 4, !tbaa !5
  %966 = add nsw i32 %965, 1
  store i32 %966, ptr @test_count, align 4, !tbaa !5
  %967 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %967, ptr %11, align 8, !tbaa !9
  %968 = icmp eq ptr %967, null
  br i1 %968, label %969, label %1022

969:                                              ; preds = %964
  br label %970

970:                                              ; preds = %969
  br label %971

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

978:                                              ; preds = %971
  %979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %980 = call i32 @fileno(ptr noundef %979) #11
  %981 = call i32 @isatty(i32 noundef %980) #11
  %982 = icmp ne i32 %981, 0
  br i1 %982, label %983, label %1000

983:                                              ; preds = %978
  %984 = load i32, ptr %15, align 4, !tbaa !5
  %985 = call ptr @__errno_location() #12
  store i32 %984, ptr %985, align 4, !tbaa !5
  %986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %987 = load i32, ptr @test_count, align 4, !tbaa !5
  %988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call ptr @s2n_strerror(i32 noundef %989, ptr noundef @.str.4)
  %991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = call ptr @s2n_strerror_debug(i32 noundef %992, ptr noundef @.str.4)
  %994 = call ptr @__errno_location() #12
  %995 = load i32, ptr %994, align 4, !tbaa !5
  %996 = call ptr @strerror(i32 noundef %995) #11
  %997 = call ptr @__errno_location() #12
  %998 = load i32, ptr %997, align 4, !tbaa !5
  %999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %986, ptr noundef @.str.2, i32 noundef %987, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 56, ptr noundef %990, ptr noundef %993, ptr noundef %996, i32 noundef %998) #11
  br label %1017

1000:                                             ; preds = %978, %971
  %1001 = load i32, ptr %15, align 4, !tbaa !5
  %1002 = call ptr @__errno_location() #12
  store i32 %1001, ptr %1002, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call ptr @s2n_strerror(i32 noundef %1006, ptr noundef @.str.4)
  %1008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  %1010 = call ptr @s2n_strerror_debug(i32 noundef %1009, ptr noundef @.str.4)
  %1011 = call ptr @__errno_location() #12
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = call ptr @strerror(i32 noundef %1012) #11
  %1014 = call ptr @__errno_location() #12
  %1015 = load i32, ptr %1014, align 4, !tbaa !5
  %1016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1003, ptr noundef @.str.5, i32 noundef %1004, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 56, ptr noundef %1007, ptr noundef %1010, ptr noundef %1013, i32 noundef %1015) #11
  br label %1017

1017:                                             ; preds = %1000, %983
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %1018

1018:                                             ; preds = %1017
  br label %1019

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

1020:                                             ; No predecessors!
  br label %1021

1021:                                             ; preds = %1020
  br label %1022

1022:                                             ; preds = %1021, %964
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023
  %1025 = load ptr, ptr %11, align 8, !tbaa !9
  %1026 = getelementptr inbounds %struct.s2n_connection, ptr %1025, i32 0, i32 2
  store ptr %10, ptr %1026, align 8, !tbaa !15
  br label %1027

1027:                                             ; preds = %1024
  br label %1028

1028:                                             ; preds = %1027
  %1029 = load i32, ptr @test_count, align 4, !tbaa !5
  %1030 = add nsw i32 %1029, 1
  store i32 %1030, ptr @test_count, align 4, !tbaa !5
  %1031 = load ptr, ptr %11, align 8, !tbaa !9
  %1032 = call i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef %1031)
  %1033 = icmp eq i32 %1032, -1
  br i1 %1033, label %1087, label %1034

1034:                                             ; preds = %1028
  br label %1035

1035:                                             ; preds = %1034
  br label %1036

1036:                                             ; preds = %1035
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  %1037 = call ptr @__errno_location() #12
  %1038 = load i32, ptr %1037, align 4, !tbaa !5
  store i32 %1038, ptr %16, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = call i32 @s2n_print_stacktrace(ptr noundef %1039)
  %1041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1042 = trunc i8 %1041 to i1
  br i1 %1042, label %1043, label %1065

1043:                                             ; preds = %1036
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = call i32 @fileno(ptr noundef %1044) #11
  %1046 = call i32 @isatty(i32 noundef %1045) #11
  %1047 = icmp ne i32 %1046, 0
  br i1 %1047, label %1048, label %1065

1048:                                             ; preds = %1043
  %1049 = load i32, ptr %16, align 4, !tbaa !5
  %1050 = call ptr @__errno_location() #12
  store i32 %1049, ptr %1050, align 4, !tbaa !5
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1052 = load i32, ptr @test_count, align 4, !tbaa !5
  %1053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1054 = load i32, ptr %1053, align 4, !tbaa !5
  %1055 = call ptr @s2n_strerror(i32 noundef %1054, ptr noundef @.str.4)
  %1056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1057 = load i32, ptr %1056, align 4, !tbaa !5
  %1058 = call ptr @s2n_strerror_debug(i32 noundef %1057, ptr noundef @.str.4)
  %1059 = call ptr @__errno_location() #12
  %1060 = load i32, ptr %1059, align 4, !tbaa !5
  %1061 = call ptr @strerror(i32 noundef %1060) #11
  %1062 = call ptr @__errno_location() #12
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1051, ptr noundef @.str.2, i32 noundef %1052, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1055, ptr noundef %1058, ptr noundef %1061, i32 noundef %1063) #11
  br label %1082

1065:                                             ; preds = %1043, %1036
  %1066 = load i32, ptr %16, align 4, !tbaa !5
  %1067 = call ptr @__errno_location() #12
  store i32 %1066, ptr %1067, align 4, !tbaa !5
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = load i32, ptr @test_count, align 4, !tbaa !5
  %1070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  %1072 = call ptr @s2n_strerror(i32 noundef %1071, ptr noundef @.str.4)
  %1073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call ptr @s2n_strerror_debug(i32 noundef %1074, ptr noundef @.str.4)
  %1076 = call ptr @__errno_location() #12
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  %1078 = call ptr @strerror(i32 noundef %1077) #11
  %1079 = call ptr @__errno_location() #12
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  %1081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1068, ptr noundef @.str.5, i32 noundef %1069, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1072, ptr noundef %1075, ptr noundef %1078, i32 noundef %1080) #11
  br label %1082

1082:                                             ; preds = %1065, %1048
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %1083

1083:                                             ; preds = %1082
  br label %1084

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

1085:                                             ; No predecessors!
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

1087:                                             ; preds = %1086, %1028
  br label %1088

1088:                                             ; preds = %1087
  br label %1089

1089:                                             ; preds = %1088
  br label %1090

1090:                                             ; preds = %1089
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = add nsw i32 %1091, 1
  store i32 %1092, ptr @test_count, align 4, !tbaa !5
  %1093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = icmp eq i32 %1094, 0
  br i1 %1095, label %1096, label %1149

1096:                                             ; preds = %1090
  br label %1097

1097:                                             ; preds = %1096
  br label %1098

1098:                                             ; preds = %1097
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  %1099 = call ptr @__errno_location() #12
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  store i32 %1100, ptr %17, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @s2n_print_stacktrace(ptr noundef %1101)
  %1103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1104 = trunc i8 %1103 to i1
  br i1 %1104, label %1105, label %1127

1105:                                             ; preds = %1098
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = call i32 @fileno(ptr noundef %1106) #11
  %1108 = call i32 @isatty(i32 noundef %1107) #11
  %1109 = icmp ne i32 %1108, 0
  br i1 %1109, label %1110, label %1127

1110:                                             ; preds = %1105
  %1111 = load i32, ptr %17, align 4, !tbaa !5
  %1112 = call ptr @__errno_location() #12
  store i32 %1111, ptr %1112, align 4, !tbaa !5
  %1113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1114 = load i32, ptr @test_count, align 4, !tbaa !5
  %1115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @s2n_strerror(i32 noundef %1116, ptr noundef @.str.4)
  %1118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror_debug(i32 noundef %1119, ptr noundef @.str.4)
  %1121 = call ptr @__errno_location() #12
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @strerror(i32 noundef %1122) #11
  %1124 = call ptr @__errno_location() #12
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1113, ptr noundef @.str.2, i32 noundef %1114, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1117, ptr noundef %1120, ptr noundef %1123, i32 noundef %1125) #11
  br label %1144

1127:                                             ; preds = %1105, %1098
  %1128 = load i32, ptr %17, align 4, !tbaa !5
  %1129 = call ptr @__errno_location() #12
  store i32 %1128, ptr %1129, align 4, !tbaa !5
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = load i32, ptr @test_count, align 4, !tbaa !5
  %1132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror(i32 noundef %1133, ptr noundef @.str.4)
  %1135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror_debug(i32 noundef %1136, ptr noundef @.str.4)
  %1138 = call ptr @__errno_location() #12
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = call ptr @strerror(i32 noundef %1139) #11
  %1141 = call ptr @__errno_location() #12
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1130, ptr noundef @.str.5, i32 noundef %1131, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1134, ptr noundef %1137, ptr noundef %1140, i32 noundef %1142) #11
  br label %1144

1144:                                             ; preds = %1127, %1110
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %1145

1145:                                             ; preds = %1144
  br label %1146

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

1147:                                             ; No predecessors!
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

1149:                                             ; preds = %1148, %1090
  br label %1150

1150:                                             ; preds = %1149
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151
  %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 = 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_debug(i32 noundef %1156, ptr noundef @.str.4)
  %1158 = icmp eq ptr %1157, null
  br i1 %1158, label %1159, label %1212

1159:                                             ; preds = %1152
  br label %1160

1160:                                             ; preds = %1159
  br label %1161

1161:                                             ; preds = %1160
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  %1162 = call ptr @__errno_location() #12
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  store i32 %1163, ptr %18, align 4, !tbaa !5
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = call i32 @s2n_print_stacktrace(ptr noundef %1164)
  %1166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1167 = trunc i8 %1166 to i1
  br i1 %1167, label %1168, label %1190

1168:                                             ; preds = %1161
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = call i32 @fileno(ptr noundef %1169) #11
  %1171 = call i32 @isatty(i32 noundef %1170) #11
  %1172 = icmp ne i32 %1171, 0
  br i1 %1172, label %1173, label %1190

1173:                                             ; preds = %1168
  %1174 = load i32, ptr %18, align 4, !tbaa !5
  %1175 = call ptr @__errno_location() #12
  store i32 %1174, ptr %1175, align 4, !tbaa !5
  %1176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1177 = load i32, ptr @test_count, align 4, !tbaa !5
  %1178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = call ptr @s2n_strerror(i32 noundef %1179, ptr noundef @.str.4)
  %1181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call ptr @s2n_strerror_debug(i32 noundef %1182, ptr noundef @.str.4)
  %1184 = call ptr @__errno_location() #12
  %1185 = load i32, ptr %1184, align 4, !tbaa !5
  %1186 = call ptr @strerror(i32 noundef %1185) #11
  %1187 = call ptr @__errno_location() #12
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1176, ptr noundef @.str.2, i32 noundef %1177, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1180, ptr noundef %1183, ptr noundef %1186, i32 noundef %1188) #11
  br label %1207

1190:                                             ; preds = %1168, %1161
  %1191 = load i32, ptr %18, align 4, !tbaa !5
  %1192 = call ptr @__errno_location() #12
  store i32 %1191, ptr %1192, 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 @.str.4)
  %1198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror_debug(i32 noundef %1199, ptr noundef @.str.4)
  %1201 = call ptr @__errno_location() #12
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = call ptr @strerror(i32 noundef %1202) #11
  %1204 = call ptr @__errno_location() #12
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1193, ptr noundef @.str.5, i32 noundef %1194, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1197, ptr noundef %1200, ptr noundef %1203, i32 noundef %1205) #11
  br label %1207

1207:                                             ; preds = %1190, %1173
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

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

1210:                                             ; No predecessors!
  br label %1211

1211:                                             ; preds = %1210
  br label %1212

1212:                                             ; preds = %1211, %1152
  br label %1213

1213:                                             ; preds = %1212
  br label %1214

1214:                                             ; preds = %1213
  br label %1215

1215:                                             ; preds = %1214
  %1216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1216, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1217 = call ptr @__errno_location() #12
  store i32 0, ptr %1217, align 4, !tbaa !5
  br label %1218

1218:                                             ; preds = %1215
  br label %1219

1219:                                             ; preds = %1218
  br label %1220

1220:                                             ; preds = %1219
  br label %1221

1221:                                             ; preds = %1220
  %1222 = call i32 (...) @s2n_is_evp_apis_supported()
  %1223 = icmp ne i32 %1222, 0
  br i1 %1223, label %1224, label %1424

1224:                                             ; preds = %1221
  %1225 = load ptr, ptr %11, align 8, !tbaa !9
  %1226 = getelementptr inbounds %struct.s2n_connection, ptr %1225, i32 0, i32 31
  %1227 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1226, i32 0, i32 1
  %1228 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1227, i32 0, i32 0
  store ptr @s2n_ecc_curve_x25519, ptr %1228, align 8, !tbaa !42
  br label %1229

1229:                                             ; preds = %1224
  br label %1230

1230:                                             ; preds = %1229
  %1231 = load i32, ptr @test_count, align 4, !tbaa !5
  %1232 = add nsw i32 %1231, 1
  store i32 %1232, ptr @test_count, align 4, !tbaa !5
  %1233 = load ptr, ptr %11, align 8, !tbaa !9
  %1234 = call i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef %1233)
  %1235 = icmp eq i32 %1234, -1
  br i1 %1235, label %1289, label %1236

1236:                                             ; preds = %1230
  br label %1237

1237:                                             ; preds = %1236
  br label %1238

1238:                                             ; preds = %1237
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  %1239 = call ptr @__errno_location() #12
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  store i32 %1240, ptr %19, align 4, !tbaa !5
  %1241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1242 = call i32 @s2n_print_stacktrace(ptr noundef %1241)
  %1243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1244 = trunc i8 %1243 to i1
  br i1 %1244, label %1245, label %1267

1245:                                             ; preds = %1238
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = call i32 @fileno(ptr noundef %1246) #11
  %1248 = call i32 @isatty(i32 noundef %1247) #11
  %1249 = icmp ne i32 %1248, 0
  br i1 %1249, label %1250, label %1267

1250:                                             ; preds = %1245
  %1251 = load i32, ptr %19, align 4, !tbaa !5
  %1252 = call ptr @__errno_location() #12
  store i32 %1251, ptr %1252, align 4, !tbaa !5
  %1253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1254 = load i32, ptr @test_count, align 4, !tbaa !5
  %1255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = call ptr @s2n_strerror(i32 noundef %1256, ptr noundef @.str.4)
  %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_debug(i32 noundef %1259, ptr noundef @.str.4)
  %1261 = call ptr @__errno_location() #12
  %1262 = load i32, ptr %1261, align 4, !tbaa !5
  %1263 = call ptr @strerror(i32 noundef %1262) #11
  %1264 = call ptr @__errno_location() #12
  %1265 = load i32, ptr %1264, align 4, !tbaa !5
  %1266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1253, ptr noundef @.str.2, i32 noundef %1254, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1257, ptr noundef %1260, ptr noundef %1263, i32 noundef %1265) #11
  br label %1284

1267:                                             ; preds = %1245, %1238
  %1268 = load i32, ptr %19, align 4, !tbaa !5
  %1269 = call ptr @__errno_location() #12
  store i32 %1268, ptr %1269, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = load i32, ptr @test_count, align 4, !tbaa !5
  %1272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @s2n_strerror(i32 noundef %1273, ptr noundef @.str.4)
  %1275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror_debug(i32 noundef %1276, ptr noundef @.str.4)
  %1278 = call ptr @__errno_location() #12
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call ptr @strerror(i32 noundef %1279) #11
  %1281 = call ptr @__errno_location() #12
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1270, ptr noundef @.str.5, i32 noundef %1271, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1274, ptr noundef %1277, ptr noundef %1280, i32 noundef %1282) #11
  br label %1284

1284:                                             ; preds = %1267, %1250
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %1285

1285:                                             ; preds = %1284
  br label %1286

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

1287:                                             ; No predecessors!
  br label %1288

1288:                                             ; preds = %1287
  br label %1289

1289:                                             ; preds = %1288, %1230
  br label %1290

1290:                                             ; preds = %1289
  br label %1291

1291:                                             ; preds = %1290
  br label %1292

1292:                                             ; preds = %1291
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = add nsw i32 %1293, 1
  store i32 %1294, ptr @test_count, align 4, !tbaa !5
  %1295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = icmp eq i32 %1296, 0
  br i1 %1297, label %1298, label %1351

1298:                                             ; preds = %1292
  br label %1299

1299:                                             ; preds = %1298
  br label %1300

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

1307:                                             ; preds = %1300
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @fileno(ptr noundef %1308) #11
  %1310 = call i32 @isatty(i32 noundef %1309) #11
  %1311 = icmp ne i32 %1310, 0
  br i1 %1311, label %1312, label %1329

1312:                                             ; preds = %1307
  %1313 = load i32, ptr %20, align 4, !tbaa !5
  %1314 = call ptr @__errno_location() #12
  store i32 %1313, ptr %1314, align 4, !tbaa !5
  %1315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1316 = load i32, ptr @test_count, align 4, !tbaa !5
  %1317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1318 = load i32, ptr %1317, align 4, !tbaa !5
  %1319 = call ptr @s2n_strerror(i32 noundef %1318, ptr noundef @.str.4)
  %1320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1321 = load i32, ptr %1320, align 4, !tbaa !5
  %1322 = call ptr @s2n_strerror_debug(i32 noundef %1321, ptr noundef @.str.4)
  %1323 = call ptr @__errno_location() #12
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = call ptr @strerror(i32 noundef %1324) #11
  %1326 = call ptr @__errno_location() #12
  %1327 = load i32, ptr %1326, align 4, !tbaa !5
  %1328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1315, ptr noundef @.str.2, i32 noundef %1316, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1319, ptr noundef %1322, ptr noundef %1325, i32 noundef %1327) #11
  br label %1346

1329:                                             ; preds = %1307, %1300
  %1330 = load i32, ptr %20, align 4, !tbaa !5
  %1331 = call ptr @__errno_location() #12
  store i32 %1330, ptr %1331, align 4, !tbaa !5
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = load i32, ptr @test_count, align 4, !tbaa !5
  %1334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = call ptr @s2n_strerror(i32 noundef %1335, ptr noundef @.str.4)
  %1337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call ptr @s2n_strerror_debug(i32 noundef %1338, ptr noundef @.str.4)
  %1340 = call ptr @__errno_location() #12
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = call ptr @strerror(i32 noundef %1341) #11
  %1343 = call ptr @__errno_location() #12
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  %1345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1332, ptr noundef @.str.5, i32 noundef %1333, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1336, ptr noundef %1339, ptr noundef %1342, i32 noundef %1344) #11
  br label %1346

1346:                                             ; preds = %1329, %1312
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %1347

1347:                                             ; preds = %1346
  br label %1348

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

1349:                                             ; No predecessors!
  br label %1350

1350:                                             ; preds = %1349
  br label %1351

1351:                                             ; preds = %1350, %1292
  br label %1352

1352:                                             ; preds = %1351
  br label %1353

1353:                                             ; preds = %1352
  br label %1354

1354:                                             ; preds = %1353
  %1355 = load i32, ptr @test_count, align 4, !tbaa !5
  %1356 = add nsw i32 %1355, 1
  store i32 %1356, ptr @test_count, align 4, !tbaa !5
  %1357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1358 = load i32, ptr %1357, align 4, !tbaa !5
  %1359 = call ptr @s2n_strerror_debug(i32 noundef %1358, ptr noundef @.str.4)
  %1360 = icmp eq ptr %1359, null
  br i1 %1360, label %1361, label %1414

1361:                                             ; preds = %1354
  br label %1362

1362:                                             ; preds = %1361
  br label %1363

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

1370:                                             ; preds = %1363
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = call i32 @fileno(ptr noundef %1371) #11
  %1373 = call i32 @isatty(i32 noundef %1372) #11
  %1374 = icmp ne i32 %1373, 0
  br i1 %1374, label %1375, label %1392

1375:                                             ; preds = %1370
  %1376 = load i32, ptr %21, align 4, !tbaa !5
  %1377 = call ptr @__errno_location() #12
  store i32 %1376, ptr %1377, align 4, !tbaa !5
  %1378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1379 = load i32, ptr @test_count, align 4, !tbaa !5
  %1380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1381 = load i32, ptr %1380, align 4, !tbaa !5
  %1382 = call ptr @s2n_strerror(i32 noundef %1381, ptr noundef @.str.4)
  %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_debug(i32 noundef %1384, ptr noundef @.str.4)
  %1386 = call ptr @__errno_location() #12
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = call ptr @strerror(i32 noundef %1387) #11
  %1389 = call ptr @__errno_location() #12
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1378, ptr noundef @.str.2, i32 noundef %1379, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1382, ptr noundef %1385, ptr noundef %1388, i32 noundef %1390) #11
  br label %1409

1392:                                             ; preds = %1370, %1363
  %1393 = load i32, ptr %21, align 4, !tbaa !5
  %1394 = call ptr @__errno_location() #12
  store i32 %1393, ptr %1394, align 4, !tbaa !5
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = load i32, ptr @test_count, align 4, !tbaa !5
  %1397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1398 = load i32, ptr %1397, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror(i32 noundef %1398, ptr noundef @.str.4)
  %1400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror_debug(i32 noundef %1401, ptr noundef @.str.4)
  %1403 = call ptr @__errno_location() #12
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @strerror(i32 noundef %1404) #11
  %1406 = call ptr @__errno_location() #12
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1395, ptr noundef @.str.5, i32 noundef %1396, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1399, ptr noundef %1402, ptr noundef %1405, i32 noundef %1407) #11
  br label %1409

1409:                                             ; preds = %1392, %1375
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %1410

1410:                                             ; preds = %1409
  br label %1411

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

1412:                                             ; No predecessors!
  br label %1413

1413:                                             ; preds = %1412
  br label %1414

1414:                                             ; preds = %1413, %1354
  br label %1415

1415:                                             ; preds = %1414
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

1417:                                             ; preds = %1416
  %1418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1418, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1419 = call ptr @__errno_location() #12
  store i32 0, ptr %1419, align 4, !tbaa !5
  br label %1420

1420:                                             ; preds = %1417
  br label %1421

1421:                                             ; preds = %1420
  br label %1422

1422:                                             ; preds = %1421
  br label %1423

1423:                                             ; preds = %1422
  br label %1424

1424:                                             ; preds = %1423, %1221
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #11
  store ptr null, ptr %22, align 8, !tbaa !9
  br label %1425

1425:                                             ; preds = %1424
  %1426 = load i32, ptr @test_count, align 4, !tbaa !5
  %1427 = add nsw i32 %1426, 1
  store i32 %1427, ptr @test_count, align 4, !tbaa !5
  %1428 = load ptr, ptr %11, align 8, !tbaa !9
  %1429 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %1428, ptr noundef %22)
  %1430 = icmp eq i32 %1429, -1
  br i1 %1430, label %1431, label %1484

1431:                                             ; preds = %1425
  br label %1432

1432:                                             ; preds = %1431
  br label %1433

1433:                                             ; preds = %1432
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %1434 = call ptr @__errno_location() #12
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  store i32 %1435, ptr %23, align 4, !tbaa !5
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = call i32 @s2n_print_stacktrace(ptr noundef %1436)
  %1438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1439 = trunc i8 %1438 to i1
  br i1 %1439, label %1440, label %1462

1440:                                             ; preds = %1433
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = call i32 @fileno(ptr noundef %1441) #11
  %1443 = call i32 @isatty(i32 noundef %1442) #11
  %1444 = icmp ne i32 %1443, 0
  br i1 %1444, label %1445, label %1462

1445:                                             ; preds = %1440
  %1446 = load i32, ptr %23, align 4, !tbaa !5
  %1447 = call ptr @__errno_location() #12
  store i32 %1446, ptr %1447, align 4, !tbaa !5
  %1448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1449 = load i32, ptr @test_count, align 4, !tbaa !5
  %1450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = call ptr @s2n_strerror(i32 noundef %1451, ptr noundef @.str.4)
  %1453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror_debug(i32 noundef %1454, ptr noundef @.str.4)
  %1456 = call ptr @__errno_location() #12
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call ptr @strerror(i32 noundef %1457) #11
  %1459 = call ptr @__errno_location() #12
  %1460 = load i32, ptr %1459, align 4, !tbaa !5
  %1461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1448, ptr noundef @.str.2, i32 noundef %1449, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1452, ptr noundef %1455, ptr noundef %1458, i32 noundef %1460) #11
  br label %1479

1462:                                             ; preds = %1440, %1433
  %1463 = load i32, ptr %23, align 4, !tbaa !5
  %1464 = call ptr @__errno_location() #12
  store i32 %1463, ptr %1464, align 4, !tbaa !5
  %1465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1466 = load i32, ptr @test_count, align 4, !tbaa !5
  %1467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call ptr @s2n_strerror(i32 noundef %1468, ptr noundef @.str.4)
  %1470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = call ptr @s2n_strerror_debug(i32 noundef %1471, ptr noundef @.str.4)
  %1473 = call ptr @__errno_location() #12
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call ptr @strerror(i32 noundef %1474) #11
  %1476 = call ptr @__errno_location() #12
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1465, ptr noundef @.str.5, i32 noundef %1466, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1469, ptr noundef %1472, ptr noundef %1475, i32 noundef %1477) #11
  br label %1479

1479:                                             ; preds = %1462, %1445
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %1480

1480:                                             ; preds = %1479
  br label %1481

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

1482:                                             ; No predecessors!
  br label %1483

1483:                                             ; preds = %1482
  br label %1484

1484:                                             ; preds = %1483, %1425
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

1486:                                             ; preds = %1485
  br label %1487

1487:                                             ; preds = %1486
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = add nsw i32 %1488, 1
  store i32 %1489, ptr @test_count, align 4, !tbaa !5
  %1490 = load ptr, ptr %22, align 8, !tbaa !9
  %1491 = icmp eq ptr %1490, null
  br i1 %1491, label %1492, label %1545

1492:                                             ; preds = %1487
  br label %1493

1493:                                             ; preds = %1492
  br label %1494

1494:                                             ; preds = %1493
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %1495 = call ptr @__errno_location() #12
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  store i32 %1496, ptr %24, align 4, !tbaa !5
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = call i32 @s2n_print_stacktrace(ptr noundef %1497)
  %1499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1500 = trunc i8 %1499 to i1
  br i1 %1500, label %1501, label %1523

1501:                                             ; preds = %1494
  %1502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1503 = call i32 @fileno(ptr noundef %1502) #11
  %1504 = call i32 @isatty(i32 noundef %1503) #11
  %1505 = icmp ne i32 %1504, 0
  br i1 %1505, label %1506, label %1523

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

1523:                                             ; preds = %1501, %1494
  %1524 = load i32, ptr %24, align 4, !tbaa !5
  %1525 = call ptr @__errno_location() #12
  store i32 %1524, ptr %1525, align 4, !tbaa !5
  %1526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1527 = load i32, ptr @test_count, align 4, !tbaa !5
  %1528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1529 = load i32, ptr %1528, align 4, !tbaa !5
  %1530 = call ptr @s2n_strerror(i32 noundef %1529, ptr noundef @.str.4)
  %1531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  %1533 = call ptr @s2n_strerror_debug(i32 noundef %1532, ptr noundef @.str.4)
  %1534 = call ptr @__errno_location() #12
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  %1536 = call ptr @strerror(i32 noundef %1535) #11
  %1537 = call ptr @__errno_location() #12
  %1538 = load i32, ptr %1537, align 4, !tbaa !5
  %1539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1526, ptr noundef @.str.5, i32 noundef %1527, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1530, ptr noundef %1533, ptr noundef %1536, i32 noundef %1538) #11
  br label %1540

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

1541:                                             ; preds = %1540
  br label %1542

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

1543:                                             ; No predecessors!
  br label %1544

1544:                                             ; preds = %1543
  br label %1545

1545:                                             ; preds = %1544, %1487
  br label %1546

1546:                                             ; preds = %1545
  br label %1547

1547:                                             ; preds = %1546
  %1548 = load ptr, ptr %22, align 8, !tbaa !9
  %1549 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %1548, i32 0, i32 1
  %1550 = load ptr, ptr %1549, align 8, !tbaa !43
  %1551 = getelementptr inbounds ptr, ptr %1550, i64 0
  %1552 = load ptr, ptr %1551, align 8, !tbaa !9
  %1553 = load ptr, ptr %11, align 8, !tbaa !9
  %1554 = getelementptr inbounds %struct.s2n_connection, ptr %1553, i32 0, i32 31
  %1555 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1554, i32 0, i32 1
  %1556 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1555, i32 0, i32 0
  store ptr %1552, ptr %1556, align 8, !tbaa !42
  br label %1557

1557:                                             ; preds = %1547
  br label %1558

1558:                                             ; preds = %1557
  br label %1559

1559:                                             ; preds = %1558
  %1560 = load i32, ptr @test_count, align 4, !tbaa !5
  %1561 = add nsw i32 %1560, 1
  store i32 %1561, ptr @test_count, align 4, !tbaa !5
  %1562 = load ptr, ptr %11, align 8, !tbaa !9
  %1563 = call i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef %1562)
  %1564 = icmp eq i32 %1563, -1
  br i1 %1564, label %1618, label %1565

1565:                                             ; preds = %1559
  br label %1566

1566:                                             ; preds = %1565
  br label %1567

1567:                                             ; preds = %1566
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %1568 = call ptr @__errno_location() #12
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  store i32 %1569, ptr %25, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = call i32 @s2n_print_stacktrace(ptr noundef %1570)
  %1572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1573 = trunc i8 %1572 to i1
  br i1 %1573, label %1574, label %1596

1574:                                             ; preds = %1567
  %1575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1576 = call i32 @fileno(ptr noundef %1575) #11
  %1577 = call i32 @isatty(i32 noundef %1576) #11
  %1578 = icmp ne i32 %1577, 0
  br i1 %1578, label %1579, label %1596

1579:                                             ; preds = %1574
  %1580 = load i32, ptr %25, align 4, !tbaa !5
  %1581 = call ptr @__errno_location() #12
  store i32 %1580, ptr %1581, 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 @.str.4)
  %1587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1588 = load i32, ptr %1587, align 4, !tbaa !5
  %1589 = call ptr @s2n_strerror_debug(i32 noundef %1588, ptr noundef @.str.4)
  %1590 = call ptr @__errno_location() #12
  %1591 = load i32, ptr %1590, align 4, !tbaa !5
  %1592 = call ptr @strerror(i32 noundef %1591) #11
  %1593 = call ptr @__errno_location() #12
  %1594 = load i32, ptr %1593, align 4, !tbaa !5
  %1595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1582, ptr noundef @.str.2, i32 noundef %1583, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1586, ptr noundef %1589, ptr noundef %1592, i32 noundef %1594) #11
  br label %1613

1596:                                             ; preds = %1574, %1567
  %1597 = load i32, ptr %25, align 4, !tbaa !5
  %1598 = call ptr @__errno_location() #12
  store i32 %1597, ptr %1598, align 4, !tbaa !5
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = load i32, ptr @test_count, align 4, !tbaa !5
  %1601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1602 = load i32, ptr %1601, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror(i32 noundef %1602, ptr noundef @.str.4)
  %1604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = call ptr @s2n_strerror_debug(i32 noundef %1605, ptr noundef @.str.4)
  %1607 = call ptr @__errno_location() #12
  %1608 = load i32, ptr %1607, align 4, !tbaa !5
  %1609 = call ptr @strerror(i32 noundef %1608) #11
  %1610 = call ptr @__errno_location() #12
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  %1612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1599, ptr noundef @.str.5, i32 noundef %1600, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1603, ptr noundef %1606, ptr noundef %1609, i32 noundef %1611) #11
  br label %1613

1613:                                             ; preds = %1596, %1579
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %1614

1614:                                             ; preds = %1613
  br label %1615

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

1616:                                             ; No predecessors!
  br label %1617

1617:                                             ; preds = %1616
  br label %1618

1618:                                             ; preds = %1617, %1559
  br label %1619

1619:                                             ; preds = %1618
  br label %1620

1620:                                             ; preds = %1619
  br label %1621

1621:                                             ; preds = %1620
  %1622 = load i32, ptr @test_count, align 4, !tbaa !5
  %1623 = add nsw i32 %1622, 1
  store i32 %1623, ptr @test_count, align 4, !tbaa !5
  %1624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = icmp eq i32 %1625, 335544385
  br i1 %1626, label %1680, label %1627

1627:                                             ; preds = %1621
  br label %1628

1628:                                             ; preds = %1627
  br label %1629

1629:                                             ; preds = %1628
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %1630 = call ptr @__errno_location() #12
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  store i32 %1631, ptr %26, align 4, !tbaa !5
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = call i32 @s2n_print_stacktrace(ptr noundef %1632)
  %1634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1635 = trunc i8 %1634 to i1
  br i1 %1635, label %1636, label %1658

1636:                                             ; preds = %1629
  %1637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1638 = call i32 @fileno(ptr noundef %1637) #11
  %1639 = call i32 @isatty(i32 noundef %1638) #11
  %1640 = icmp ne i32 %1639, 0
  br i1 %1640, label %1641, label %1658

1641:                                             ; preds = %1636
  %1642 = load i32, ptr %26, align 4, !tbaa !5
  %1643 = call ptr @__errno_location() #12
  store i32 %1642, ptr %1643, align 4, !tbaa !5
  %1644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1645 = load i32, ptr @test_count, align 4, !tbaa !5
  %1646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1647 = load i32, ptr %1646, align 4, !tbaa !5
  %1648 = call ptr @s2n_strerror(i32 noundef %1647, ptr noundef @.str.4)
  %1649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = call ptr @s2n_strerror_debug(i32 noundef %1650, ptr noundef @.str.4)
  %1652 = call ptr @__errno_location() #12
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call ptr @strerror(i32 noundef %1653) #11
  %1655 = call ptr @__errno_location() #12
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1644, ptr noundef @.str.2, i32 noundef %1645, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1648, ptr noundef %1651, ptr noundef %1654, i32 noundef %1656) #11
  br label %1675

1658:                                             ; preds = %1636, %1629
  %1659 = load i32, ptr %26, align 4, !tbaa !5
  %1660 = call ptr @__errno_location() #12
  store i32 %1659, ptr %1660, align 4, !tbaa !5
  %1661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror(i32 noundef %1664, ptr noundef @.str.4)
  %1666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call ptr @s2n_strerror_debug(i32 noundef %1667, ptr noundef @.str.4)
  %1669 = call ptr @__errno_location() #12
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call ptr @strerror(i32 noundef %1670) #11
  %1672 = call ptr @__errno_location() #12
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1661, ptr noundef @.str.5, i32 noundef %1662, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1665, ptr noundef %1668, ptr noundef %1671, i32 noundef %1673) #11
  br label %1675

1675:                                             ; preds = %1658, %1641
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %1676

1676:                                             ; preds = %1675
  br label %1677

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

1678:                                             ; No predecessors!
  br label %1679

1679:                                             ; preds = %1678
  br label %1680

1680:                                             ; preds = %1679, %1621
  br label %1681

1681:                                             ; preds = %1680
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  %1684 = load i32, ptr @test_count, align 4, !tbaa !5
  %1685 = add nsw i32 %1684, 1
  store i32 %1685, ptr @test_count, align 4, !tbaa !5
  %1686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror_debug(i32 noundef %1687, ptr noundef @.str.4)
  %1689 = icmp eq ptr %1688, null
  br i1 %1689, label %1690, label %1743

1690:                                             ; preds = %1683
  br label %1691

1691:                                             ; preds = %1690
  br label %1692

1692:                                             ; preds = %1691
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %1693 = call ptr @__errno_location() #12
  %1694 = load i32, ptr %1693, align 4, !tbaa !5
  store i32 %1694, ptr %27, align 4, !tbaa !5
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = call i32 @s2n_print_stacktrace(ptr noundef %1695)
  %1697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1698 = trunc i8 %1697 to i1
  br i1 %1698, label %1699, label %1721

1699:                                             ; preds = %1692
  %1700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1701 = call i32 @fileno(ptr noundef %1700) #11
  %1702 = call i32 @isatty(i32 noundef %1701) #11
  %1703 = icmp ne i32 %1702, 0
  br i1 %1703, label %1704, label %1721

1704:                                             ; preds = %1699
  %1705 = load i32, ptr %27, align 4, !tbaa !5
  %1706 = call ptr @__errno_location() #12
  store i32 %1705, ptr %1706, align 4, !tbaa !5
  %1707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1708 = load i32, ptr @test_count, align 4, !tbaa !5
  %1709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror(i32 noundef %1710, ptr noundef @.str.4)
  %1712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  %1714 = call ptr @s2n_strerror_debug(i32 noundef %1713, ptr noundef @.str.4)
  %1715 = call ptr @__errno_location() #12
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = call ptr @strerror(i32 noundef %1716) #11
  %1718 = call ptr @__errno_location() #12
  %1719 = load i32, ptr %1718, align 4, !tbaa !5
  %1720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1707, ptr noundef @.str.2, i32 noundef %1708, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1711, ptr noundef %1714, ptr noundef %1717, i32 noundef %1719) #11
  br label %1738

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

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

1739:                                             ; preds = %1738
  br label %1740

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

1741:                                             ; No predecessors!
  br label %1742

1742:                                             ; preds = %1741
  br label %1743

1743:                                             ; preds = %1742, %1683
  br label %1744

1744:                                             ; preds = %1743
  br label %1745

1745:                                             ; preds = %1744
  br label %1746

1746:                                             ; preds = %1745
  br label %1747

1747:                                             ; preds = %1746
  br label %1748

1748:                                             ; preds = %1747
  %1749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1749, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1750 = call ptr @__errno_location() #12
  store i32 0, ptr %1750, align 4, !tbaa !5
  br label %1751

1751:                                             ; preds = %1748
  br label %1752

1752:                                             ; preds = %1751
  br label %1753

1753:                                             ; preds = %1752
  br label %1754

1754:                                             ; preds = %1753
  %1755 = load ptr, ptr %22, align 8, !tbaa !9
  %1756 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %1755, i32 0, i32 1
  %1757 = load ptr, ptr %1756, align 8, !tbaa !43
  %1758 = getelementptr inbounds ptr, ptr %1757, i64 0
  %1759 = load ptr, ptr %1758, align 8, !tbaa !9
  %1760 = load ptr, ptr %11, align 8, !tbaa !9
  %1761 = getelementptr inbounds %struct.s2n_connection, ptr %1760, i32 0, i32 31
  %1762 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1761, i32 0, i32 3
  %1763 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1762, i32 0, i32 0
  store ptr %1759, ptr %1763, align 8, !tbaa !45
  br label %1764

1764:                                             ; preds = %1754
  br label %1765

1765:                                             ; preds = %1764
  br label %1766

1766:                                             ; preds = %1765
  %1767 = load i32, ptr @test_count, align 4, !tbaa !5
  %1768 = add nsw i32 %1767, 1
  store i32 %1768, ptr @test_count, align 4, !tbaa !5
  %1769 = load ptr, ptr %11, align 8, !tbaa !9
  %1770 = call i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef %1769)
  %1771 = icmp eq i32 %1770, -1
  br i1 %1771, label %1825, label %1772

1772:                                             ; preds = %1766
  br label %1773

1773:                                             ; preds = %1772
  br label %1774

1774:                                             ; preds = %1773
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %1775 = call ptr @__errno_location() #12
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  store i32 %1776, ptr %28, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @s2n_print_stacktrace(ptr noundef %1777)
  %1779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1780 = trunc i8 %1779 to i1
  br i1 %1780, label %1781, label %1803

1781:                                             ; preds = %1774
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = call i32 @fileno(ptr noundef %1782) #11
  %1784 = call i32 @isatty(i32 noundef %1783) #11
  %1785 = icmp ne i32 %1784, 0
  br i1 %1785, label %1786, label %1803

1786:                                             ; preds = %1781
  %1787 = load i32, ptr %28, align 4, !tbaa !5
  %1788 = call ptr @__errno_location() #12
  store i32 %1787, ptr %1788, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = load i32, ptr @test_count, align 4, !tbaa !5
  %1791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror(i32 noundef %1792, ptr noundef @.str.4)
  %1794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @s2n_strerror_debug(i32 noundef %1795, ptr noundef @.str.4)
  %1797 = call ptr @__errno_location() #12
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call ptr @strerror(i32 noundef %1798) #11
  %1800 = call ptr @__errno_location() #12
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1789, ptr noundef @.str.2, i32 noundef %1790, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1793, ptr noundef %1796, ptr noundef %1799, i32 noundef %1801) #11
  br label %1820

1803:                                             ; preds = %1781, %1774
  %1804 = load i32, ptr %28, align 4, !tbaa !5
  %1805 = call ptr @__errno_location() #12
  store i32 %1804, ptr %1805, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = load i32, ptr @test_count, align 4, !tbaa !5
  %1808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror(i32 noundef %1809, ptr noundef @.str.4)
  %1811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call ptr @s2n_strerror_debug(i32 noundef %1812, ptr noundef @.str.4)
  %1814 = call ptr @__errno_location() #12
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  %1816 = call ptr @strerror(i32 noundef %1815) #11
  %1817 = call ptr @__errno_location() #12
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1806, ptr noundef @.str.5, i32 noundef %1807, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1810, ptr noundef %1813, ptr noundef %1816, i32 noundef %1818) #11
  br label %1820

1820:                                             ; preds = %1803, %1786
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

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

1823:                                             ; No predecessors!
  br label %1824

1824:                                             ; preds = %1823
  br label %1825

1825:                                             ; preds = %1824, %1766
  br label %1826

1826:                                             ; preds = %1825
  br label %1827

1827:                                             ; preds = %1826
  br label %1828

1828:                                             ; preds = %1827
  %1829 = load i32, ptr @test_count, align 4, !tbaa !5
  %1830 = add nsw i32 %1829, 1
  store i32 %1830, ptr @test_count, align 4, !tbaa !5
  %1831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = icmp eq i32 %1832, 335544385
  br i1 %1833, label %1887, label %1834

1834:                                             ; preds = %1828
  br label %1835

1835:                                             ; preds = %1834
  br label %1836

1836:                                             ; preds = %1835
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  %1837 = call ptr @__errno_location() #12
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  store i32 %1838, ptr %29, align 4, !tbaa !5
  %1839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1840 = call i32 @s2n_print_stacktrace(ptr noundef %1839)
  %1841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1842 = trunc i8 %1841 to i1
  br i1 %1842, label %1843, label %1865

1843:                                             ; preds = %1836
  %1844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1845 = call i32 @fileno(ptr noundef %1844) #11
  %1846 = call i32 @isatty(i32 noundef %1845) #11
  %1847 = icmp ne i32 %1846, 0
  br i1 %1847, label %1848, label %1865

1848:                                             ; preds = %1843
  %1849 = load i32, ptr %29, align 4, !tbaa !5
  %1850 = call ptr @__errno_location() #12
  store i32 %1849, ptr %1850, align 4, !tbaa !5
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = load i32, ptr @test_count, align 4, !tbaa !5
  %1853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1854 = load i32, ptr %1853, align 4, !tbaa !5
  %1855 = call ptr @s2n_strerror(i32 noundef %1854, ptr noundef @.str.4)
  %1856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = call ptr @s2n_strerror_debug(i32 noundef %1857, ptr noundef @.str.4)
  %1859 = call ptr @__errno_location() #12
  %1860 = load i32, ptr %1859, align 4, !tbaa !5
  %1861 = call ptr @strerror(i32 noundef %1860) #11
  %1862 = call ptr @__errno_location() #12
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  %1864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1851, ptr noundef @.str.2, i32 noundef %1852, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1855, ptr noundef %1858, ptr noundef %1861, i32 noundef %1863) #11
  br label %1882

1865:                                             ; preds = %1843, %1836
  %1866 = load i32, ptr %29, align 4, !tbaa !5
  %1867 = call ptr @__errno_location() #12
  store i32 %1866, ptr %1867, align 4, !tbaa !5
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = load i32, ptr @test_count, align 4, !tbaa !5
  %1870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1871 = load i32, ptr %1870, align 4, !tbaa !5
  %1872 = call ptr @s2n_strerror(i32 noundef %1871, ptr noundef @.str.4)
  %1873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror_debug(i32 noundef %1874, ptr noundef @.str.4)
  %1876 = call ptr @__errno_location() #12
  %1877 = load i32, ptr %1876, align 4, !tbaa !5
  %1878 = call ptr @strerror(i32 noundef %1877) #11
  %1879 = call ptr @__errno_location() #12
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  %1881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1868, ptr noundef @.str.5, i32 noundef %1869, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1872, ptr noundef %1875, ptr noundef %1878, i32 noundef %1880) #11
  br label %1882

1882:                                             ; preds = %1865, %1848
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %1883

1883:                                             ; preds = %1882
  br label %1884

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

1885:                                             ; No predecessors!
  br label %1886

1886:                                             ; preds = %1885
  br label %1887

1887:                                             ; preds = %1886, %1828
  br label %1888

1888:                                             ; preds = %1887
  br label %1889

1889:                                             ; preds = %1888
  br label %1890

1890:                                             ; preds = %1889
  %1891 = load i32, ptr @test_count, align 4, !tbaa !5
  %1892 = add nsw i32 %1891, 1
  store i32 %1892, ptr @test_count, align 4, !tbaa !5
  %1893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  %1895 = call ptr @s2n_strerror_debug(i32 noundef %1894, ptr noundef @.str.4)
  %1896 = icmp eq ptr %1895, null
  br i1 %1896, label %1897, label %1950

1897:                                             ; preds = %1890
  br label %1898

1898:                                             ; preds = %1897
  br label %1899

1899:                                             ; preds = %1898
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #11
  %1900 = call ptr @__errno_location() #12
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  store i32 %1901, ptr %30, align 4, !tbaa !5
  %1902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1903 = call i32 @s2n_print_stacktrace(ptr noundef %1902)
  %1904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1905 = trunc i8 %1904 to i1
  br i1 %1905, label %1906, label %1928

1906:                                             ; preds = %1899
  %1907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1908 = call i32 @fileno(ptr noundef %1907) #11
  %1909 = call i32 @isatty(i32 noundef %1908) #11
  %1910 = icmp ne i32 %1909, 0
  br i1 %1910, label %1911, label %1928

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

1928:                                             ; preds = %1906, %1899
  %1929 = load i32, ptr %30, align 4, !tbaa !5
  %1930 = call ptr @__errno_location() #12
  store i32 %1929, ptr %1930, align 4, !tbaa !5
  %1931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1932 = load i32, ptr @test_count, align 4, !tbaa !5
  %1933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1934 = load i32, ptr %1933, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror(i32 noundef %1934, ptr noundef @.str.4)
  %1936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1937 = load i32, ptr %1936, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror_debug(i32 noundef %1937, ptr noundef @.str.4)
  %1939 = call ptr @__errno_location() #12
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  %1941 = call ptr @strerror(i32 noundef %1940) #11
  %1942 = call ptr @__errno_location() #12
  %1943 = load i32, ptr %1942, align 4, !tbaa !5
  %1944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1931, ptr noundef @.str.5, i32 noundef %1932, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1935, ptr noundef %1938, ptr noundef %1941, i32 noundef %1943) #11
  br label %1945

1945:                                             ; preds = %1928, %1911
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1946

1946:                                             ; preds = %1945
  br label %1947

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

1948:                                             ; No predecessors!
  br label %1949

1949:                                             ; preds = %1948
  br label %1950

1950:                                             ; preds = %1949, %1890
  br label %1951

1951:                                             ; preds = %1950
  br label %1952

1952:                                             ; preds = %1951
  br label %1953

1953:                                             ; preds = %1952
  br label %1954

1954:                                             ; preds = %1953
  br label %1955

1955:                                             ; preds = %1954
  %1956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1956, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1957 = call ptr @__errno_location() #12
  store i32 0, ptr %1957, align 4, !tbaa !5
  br label %1958

1958:                                             ; preds = %1955
  br label %1959

1959:                                             ; preds = %1958
  br label %1960

1960:                                             ; preds = %1959
  br label %1961

1961:                                             ; preds = %1960
  br label %1962

1962:                                             ; preds = %1961
  %1963 = load i32, ptr @test_count, align 4, !tbaa !5
  %1964 = add nsw i32 %1963, 1
  store i32 %1964, ptr @test_count, align 4, !tbaa !5
  %1965 = load ptr, ptr %11, align 8, !tbaa !9
  %1966 = getelementptr inbounds %struct.s2n_connection, ptr %1965, i32 0, i32 31
  %1967 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1966, i32 0, i32 3
  %1968 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %1967)
  %1969 = icmp eq i32 %1968, -1
  br i1 %1969, label %1970, label %2023

1970:                                             ; preds = %1962
  br label %1971

1971:                                             ; preds = %1970
  br label %1972

1972:                                             ; preds = %1971
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  %1973 = call ptr @__errno_location() #12
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  store i32 %1974, ptr %31, align 4, !tbaa !5
  %1975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1976 = call i32 @s2n_print_stacktrace(ptr noundef %1975)
  %1977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1978 = trunc i8 %1977 to i1
  br i1 %1978, label %1979, label %2001

1979:                                             ; preds = %1972
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = call i32 @fileno(ptr noundef %1980) #11
  %1982 = call i32 @isatty(i32 noundef %1981) #11
  %1983 = icmp ne i32 %1982, 0
  br i1 %1983, label %1984, label %2001

1984:                                             ; preds = %1979
  %1985 = load i32, ptr %31, align 4, !tbaa !5
  %1986 = call ptr @__errno_location() #12
  store i32 %1985, ptr %1986, align 4, !tbaa !5
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = load i32, ptr @test_count, align 4, !tbaa !5
  %1989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1990 = load i32, ptr %1989, align 4, !tbaa !5
  %1991 = call ptr @s2n_strerror(i32 noundef %1990, ptr noundef @.str.4)
  %1992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1993 = load i32, ptr %1992, align 4, !tbaa !5
  %1994 = call ptr @s2n_strerror_debug(i32 noundef %1993, ptr noundef @.str.4)
  %1995 = call ptr @__errno_location() #12
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  %1997 = call ptr @strerror(i32 noundef %1996) #11
  %1998 = call ptr @__errno_location() #12
  %1999 = load i32, ptr %1998, align 4, !tbaa !5
  %2000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1987, ptr noundef @.str.2, i32 noundef %1988, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1991, ptr noundef %1994, ptr noundef %1997, i32 noundef %1999) #11
  br label %2018

2001:                                             ; preds = %1979, %1972
  %2002 = load i32, ptr %31, align 4, !tbaa !5
  %2003 = call ptr @__errno_location() #12
  store i32 %2002, ptr %2003, align 4, !tbaa !5
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = load i32, ptr @test_count, align 4, !tbaa !5
  %2006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2007 = load i32, ptr %2006, align 4, !tbaa !5
  %2008 = call ptr @s2n_strerror(i32 noundef %2007, ptr noundef @.str.4)
  %2009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2010 = load i32, ptr %2009, align 4, !tbaa !5
  %2011 = call ptr @s2n_strerror_debug(i32 noundef %2010, ptr noundef @.str.4)
  %2012 = call ptr @__errno_location() #12
  %2013 = load i32, ptr %2012, align 4, !tbaa !5
  %2014 = call ptr @strerror(i32 noundef %2013) #11
  %2015 = call ptr @__errno_location() #12
  %2016 = load i32, ptr %2015, align 4, !tbaa !5
  %2017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2004, ptr noundef @.str.5, i32 noundef %2005, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 76, ptr noundef %2008, ptr noundef %2011, ptr noundef %2014, i32 noundef %2016) #11
  br label %2018

2018:                                             ; preds = %2001, %1984
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %2019

2019:                                             ; preds = %2018
  br label %2020

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

2021:                                             ; No predecessors!
  br label %2022

2022:                                             ; preds = %2021
  br label %2023

2023:                                             ; preds = %2022, %1962
  br label %2024

2024:                                             ; preds = %2023
  br label %2025

2025:                                             ; preds = %2024
  br label %2026

2026:                                             ; preds = %2025
  %2027 = load i32, ptr @test_count, align 4, !tbaa !5
  %2028 = add nsw i32 %2027, 1
  store i32 %2028, ptr @test_count, align 4, !tbaa !5
  %2029 = load ptr, ptr %11, align 8, !tbaa !9
  %2030 = call i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef %2029)
  %2031 = icmp eq i32 %2030, -1
  br i1 %2031, label %2032, label %2085

2032:                                             ; preds = %2026
  br label %2033

2033:                                             ; preds = %2032
  br label %2034

2034:                                             ; preds = %2033
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %2035 = call ptr @__errno_location() #12
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  store i32 %2036, ptr %32, align 4, !tbaa !5
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = call i32 @s2n_print_stacktrace(ptr noundef %2037)
  %2039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2040 = trunc i8 %2039 to i1
  br i1 %2040, label %2041, label %2063

2041:                                             ; preds = %2034
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = call i32 @fileno(ptr noundef %2042) #11
  %2044 = call i32 @isatty(i32 noundef %2043) #11
  %2045 = icmp ne i32 %2044, 0
  br i1 %2045, label %2046, label %2063

2046:                                             ; preds = %2041
  %2047 = load i32, ptr %32, align 4, !tbaa !5
  %2048 = call ptr @__errno_location() #12
  store i32 %2047, ptr %2048, align 4, !tbaa !5
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2050 = load i32, ptr @test_count, align 4, !tbaa !5
  %2051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2052 = load i32, ptr %2051, align 4, !tbaa !5
  %2053 = call ptr @s2n_strerror(i32 noundef %2052, ptr noundef @.str.4)
  %2054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror_debug(i32 noundef %2055, ptr noundef @.str.4)
  %2057 = call ptr @__errno_location() #12
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  %2059 = call ptr @strerror(i32 noundef %2058) #11
  %2060 = call ptr @__errno_location() #12
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2049, ptr noundef @.str.2, i32 noundef %2050, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 77, ptr noundef %2053, ptr noundef %2056, ptr noundef %2059, i32 noundef %2061) #11
  br label %2080

2063:                                             ; preds = %2041, %2034
  %2064 = load i32, ptr %32, align 4, !tbaa !5
  %2065 = call ptr @__errno_location() #12
  store i32 %2064, ptr %2065, align 4, !tbaa !5
  %2066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2067 = load i32, ptr @test_count, align 4, !tbaa !5
  %2068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2069 = load i32, ptr %2068, align 4, !tbaa !5
  %2070 = call ptr @s2n_strerror(i32 noundef %2069, ptr noundef @.str.4)
  %2071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2072 = load i32, ptr %2071, align 4, !tbaa !5
  %2073 = call ptr @s2n_strerror_debug(i32 noundef %2072, ptr noundef @.str.4)
  %2074 = call ptr @__errno_location() #12
  %2075 = load i32, ptr %2074, align 4, !tbaa !5
  %2076 = call ptr @strerror(i32 noundef %2075) #11
  %2077 = call ptr @__errno_location() #12
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2066, ptr noundef @.str.5, i32 noundef %2067, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 77, ptr noundef %2070, ptr noundef %2073, ptr noundef %2076, i32 noundef %2078) #11
  br label %2080

2080:                                             ; preds = %2063, %2046
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %2081

2081:                                             ; preds = %2080
  br label %2082

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

2083:                                             ; No predecessors!
  br label %2084

2084:                                             ; preds = %2083
  br label %2085

2085:                                             ; preds = %2084, %2026
  br label %2086

2086:                                             ; preds = %2085
  br label %2087

2087:                                             ; preds = %2086
  br label %2088

2088:                                             ; preds = %2087
  %2089 = load i32, ptr @test_count, align 4, !tbaa !5
  %2090 = add nsw i32 %2089, 1
  store i32 %2090, ptr @test_count, align 4, !tbaa !5
  %2091 = load ptr, ptr %11, align 8, !tbaa !9
  %2092 = call i32 @s2n_connection_free(ptr noundef %2091)
  %2093 = icmp eq i32 %2092, -1
  br i1 %2093, label %2094, label %2147

2094:                                             ; preds = %2088
  br label %2095

2095:                                             ; preds = %2094
  br label %2096

2096:                                             ; preds = %2095
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %2097 = call ptr @__errno_location() #12
  %2098 = load i32, ptr %2097, align 4, !tbaa !5
  store i32 %2098, ptr %33, align 4, !tbaa !5
  %2099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2100 = call i32 @s2n_print_stacktrace(ptr noundef %2099)
  %2101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2102 = trunc i8 %2101 to i1
  br i1 %2102, label %2103, label %2125

2103:                                             ; preds = %2096
  %2104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2105 = call i32 @fileno(ptr noundef %2104) #11
  %2106 = call i32 @isatty(i32 noundef %2105) #11
  %2107 = icmp ne i32 %2106, 0
  br i1 %2107, label %2108, label %2125

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

2125:                                             ; preds = %2103, %2096
  %2126 = load i32, ptr %33, align 4, !tbaa !5
  %2127 = call ptr @__errno_location() #12
  store i32 %2126, ptr %2127, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = load i32, ptr @test_count, align 4, !tbaa !5
  %2130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror(i32 noundef %2131, ptr noundef @.str.4)
  %2133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call ptr @s2n_strerror_debug(i32 noundef %2134, ptr noundef @.str.4)
  %2136 = call ptr @__errno_location() #12
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @strerror(i32 noundef %2137) #11
  %2139 = call ptr @__errno_location() #12
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2128, ptr noundef @.str.5, i32 noundef %2129, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 79, ptr noundef %2132, ptr noundef %2135, ptr noundef %2138, i32 noundef %2140) #11
  br label %2142

2142:                                             ; preds = %2125, %2108
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %2143

2143:                                             ; preds = %2142
  br label %2144

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

2145:                                             ; No predecessors!
  br label %2146

2146:                                             ; preds = %2145
  br label %2147

2147:                                             ; preds = %2146, %2088
  br label %2148

2148:                                             ; preds = %2147
  br label %2149

2149:                                             ; preds = %2148
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %10) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #11
  store ptr null, ptr %34, align 8, !tbaa !9
  br label %2150

2150:                                             ; preds = %2149
  %2151 = load i32, ptr @test_count, align 4, !tbaa !5
  %2152 = add nsw i32 %2151, 1
  store i32 %2152, ptr @test_count, align 4, !tbaa !5
  %2153 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2153, ptr %34, align 8, !tbaa !9
  %2154 = icmp eq ptr %2153, null
  br i1 %2154, label %2155, label %2208

2155:                                             ; preds = %2150
  br label %2156

2156:                                             ; preds = %2155
  br label %2157

2157:                                             ; preds = %2156
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %2158 = call ptr @__errno_location() #12
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  store i32 %2159, ptr %35, align 4, !tbaa !5
  %2160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2161 = call i32 @s2n_print_stacktrace(ptr noundef %2160)
  %2162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2163 = trunc i8 %2162 to i1
  br i1 %2163, label %2164, label %2186

2164:                                             ; preds = %2157
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = call i32 @fileno(ptr noundef %2165) #11
  %2167 = call i32 @isatty(i32 noundef %2166) #11
  %2168 = icmp ne i32 %2167, 0
  br i1 %2168, label %2169, label %2186

2169:                                             ; preds = %2164
  %2170 = load i32, ptr %35, align 4, !tbaa !5
  %2171 = call ptr @__errno_location() #12
  store i32 %2170, ptr %2171, align 4, !tbaa !5
  %2172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2173 = load i32, ptr @test_count, align 4, !tbaa !5
  %2174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2175 = load i32, ptr %2174, align 4, !tbaa !5
  %2176 = call ptr @s2n_strerror(i32 noundef %2175, ptr noundef @.str.4)
  %2177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2178 = load i32, ptr %2177, align 4, !tbaa !5
  %2179 = call ptr @s2n_strerror_debug(i32 noundef %2178, ptr noundef @.str.4)
  %2180 = call ptr @__errno_location() #12
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call ptr @strerror(i32 noundef %2181) #11
  %2183 = call ptr @__errno_location() #12
  %2184 = load i32, ptr %2183, align 4, !tbaa !5
  %2185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2172, ptr noundef @.str.2, i32 noundef %2173, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 85, ptr noundef %2176, ptr noundef %2179, ptr noundef %2182, i32 noundef %2184) #11
  br label %2203

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

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

2204:                                             ; preds = %2203
  br label %2205

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

2206:                                             ; No predecessors!
  br label %2207

2207:                                             ; preds = %2206
  br label %2208

2208:                                             ; preds = %2207, %2150
  br label %2209

2209:                                             ; preds = %2208
  br label %2210

2210:                                             ; preds = %2209
  br label %2211

2211:                                             ; preds = %2210
  %2212 = load i32, ptr @test_count, align 4, !tbaa !5
  %2213 = add nsw i32 %2212, 1
  store i32 %2213, ptr @test_count, align 4, !tbaa !5
  %2214 = load ptr, ptr %34, align 8, !tbaa !9
  %2215 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef %2214)
  %2216 = icmp eq i32 0, %2215
  br i1 %2216, label %2270, label %2217

2217:                                             ; preds = %2211
  br label %2218

2218:                                             ; preds = %2217
  br label %2219

2219:                                             ; preds = %2218
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %2220 = call ptr @__errno_location() #12
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  store i32 %2221, ptr %36, align 4, !tbaa !5
  %2222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2223 = call i32 @s2n_print_stacktrace(ptr noundef %2222)
  %2224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2225 = trunc i8 %2224 to i1
  br i1 %2225, label %2226, label %2248

2226:                                             ; preds = %2219
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = call i32 @fileno(ptr noundef %2227) #11
  %2229 = call i32 @isatty(i32 noundef %2228) #11
  %2230 = icmp ne i32 %2229, 0
  br i1 %2230, label %2231, label %2248

2231:                                             ; preds = %2226
  %2232 = load i32, ptr %36, align 4, !tbaa !5
  %2233 = call ptr @__errno_location() #12
  store i32 %2232, ptr %2233, align 4, !tbaa !5
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = load i32, ptr @test_count, align 4, !tbaa !5
  %2236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = call ptr @s2n_strerror(i32 noundef %2237, ptr noundef @.str.4)
  %2239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call ptr @s2n_strerror_debug(i32 noundef %2240, ptr noundef @.str.4)
  %2242 = call ptr @__errno_location() #12
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = call ptr @strerror(i32 noundef %2243) #11
  %2245 = call ptr @__errno_location() #12
  %2246 = load i32, ptr %2245, align 4, !tbaa !5
  %2247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2234, ptr noundef @.str.2, i32 noundef %2235, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 87, ptr noundef %2238, ptr noundef %2241, ptr noundef %2244, i32 noundef %2246) #11
  br label %2265

2248:                                             ; preds = %2226, %2219
  %2249 = load i32, ptr %36, align 4, !tbaa !5
  %2250 = call ptr @__errno_location() #12
  store i32 %2249, ptr %2250, align 4, !tbaa !5
  %2251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2252 = load i32, ptr @test_count, align 4, !tbaa !5
  %2253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2254 = load i32, ptr %2253, align 4, !tbaa !5
  %2255 = call ptr @s2n_strerror(i32 noundef %2254, ptr noundef @.str.4)
  %2256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2257 = load i32, ptr %2256, align 4, !tbaa !5
  %2258 = call ptr @s2n_strerror_debug(i32 noundef %2257, ptr noundef @.str.4)
  %2259 = call ptr @__errno_location() #12
  %2260 = load i32, ptr %2259, align 4, !tbaa !5
  %2261 = call ptr @strerror(i32 noundef %2260) #11
  %2262 = call ptr @__errno_location() #12
  %2263 = load i32, ptr %2262, align 4, !tbaa !5
  %2264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2251, ptr noundef @.str.5, i32 noundef %2252, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 87, ptr noundef %2255, ptr noundef %2258, ptr noundef %2261, i32 noundef %2263) #11
  br label %2265

2265:                                             ; preds = %2248, %2231
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %2266

2266:                                             ; preds = %2265
  br label %2267

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

2268:                                             ; No predecessors!
  br label %2269

2269:                                             ; preds = %2268
  br label %2270

2270:                                             ; preds = %2269, %2211
  br label %2271

2271:                                             ; preds = %2270
  br label %2272

2272:                                             ; preds = %2271
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #11
  store ptr null, ptr %37, align 8, !tbaa !9
  br label %2273

2273:                                             ; preds = %2272
  %2274 = load i32, ptr @test_count, align 4, !tbaa !5
  %2275 = add nsw i32 %2274, 1
  store i32 %2275, ptr @test_count, align 4, !tbaa !5
  %2276 = load ptr, ptr %34, align 8, !tbaa !9
  %2277 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %2276, ptr noundef %37)
  %2278 = icmp eq i32 %2277, -1
  br i1 %2278, label %2279, label %2332

2279:                                             ; preds = %2273
  br label %2280

2280:                                             ; preds = %2279
  br label %2281

2281:                                             ; preds = %2280
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %2282 = call ptr @__errno_location() #12
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  store i32 %2283, ptr %38, align 4, !tbaa !5
  %2284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2285 = call i32 @s2n_print_stacktrace(ptr noundef %2284)
  %2286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2287 = trunc i8 %2286 to i1
  br i1 %2287, label %2288, label %2310

2288:                                             ; preds = %2281
  %2289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2290 = call i32 @fileno(ptr noundef %2289) #11
  %2291 = call i32 @isatty(i32 noundef %2290) #11
  %2292 = icmp ne i32 %2291, 0
  br i1 %2292, label %2293, label %2310

2293:                                             ; preds = %2288
  %2294 = load i32, ptr %38, align 4, !tbaa !5
  %2295 = call ptr @__errno_location() #12
  store i32 %2294, ptr %2295, align 4, !tbaa !5
  %2296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2297 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2299, ptr noundef @.str.4)
  %2301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call ptr @s2n_strerror_debug(i32 noundef %2302, ptr noundef @.str.4)
  %2304 = call ptr @__errno_location() #12
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call ptr @strerror(i32 noundef %2305) #11
  %2307 = call ptr @__errno_location() #12
  %2308 = load i32, ptr %2307, align 4, !tbaa !5
  %2309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2296, ptr noundef @.str.2, i32 noundef %2297, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 90, ptr noundef %2300, ptr noundef %2303, ptr noundef %2306, i32 noundef %2308) #11
  br label %2327

2310:                                             ; preds = %2288, %2281
  %2311 = load i32, ptr %38, align 4, !tbaa !5
  %2312 = call ptr @__errno_location() #12
  store i32 %2311, ptr %2312, align 4, !tbaa !5
  %2313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2314 = load i32, ptr @test_count, align 4, !tbaa !5
  %2315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  %2317 = call ptr @s2n_strerror(i32 noundef %2316, ptr noundef @.str.4)
  %2318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror_debug(i32 noundef %2319, ptr noundef @.str.4)
  %2321 = call ptr @__errno_location() #12
  %2322 = load i32, ptr %2321, align 4, !tbaa !5
  %2323 = call ptr @strerror(i32 noundef %2322) #11
  %2324 = call ptr @__errno_location() #12
  %2325 = load i32, ptr %2324, align 4, !tbaa !5
  %2326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2313, ptr noundef @.str.5, i32 noundef %2314, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 90, ptr noundef %2317, ptr noundef %2320, ptr noundef %2323, i32 noundef %2325) #11
  br label %2327

2327:                                             ; preds = %2310, %2293
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %2328

2328:                                             ; preds = %2327
  br label %2329

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

2330:                                             ; No predecessors!
  br label %2331

2331:                                             ; preds = %2330
  br label %2332

2332:                                             ; preds = %2331, %2273
  br label %2333

2333:                                             ; preds = %2332
  br label %2334

2334:                                             ; preds = %2333
  br label %2335

2335:                                             ; preds = %2334
  %2336 = load i32, ptr @test_count, align 4, !tbaa !5
  %2337 = add nsw i32 %2336, 1
  store i32 %2337, ptr @test_count, align 4, !tbaa !5
  %2338 = load ptr, ptr %37, align 8, !tbaa !9
  %2339 = icmp eq ptr %2338, null
  br i1 %2339, label %2340, label %2393

2340:                                             ; preds = %2335
  br label %2341

2341:                                             ; preds = %2340
  br label %2342

2342:                                             ; preds = %2341
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %2343 = call ptr @__errno_location() #12
  %2344 = load i32, ptr %2343, align 4, !tbaa !5
  store i32 %2344, ptr %39, align 4, !tbaa !5
  %2345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2346 = call i32 @s2n_print_stacktrace(ptr noundef %2345)
  %2347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2348 = trunc i8 %2347 to i1
  br i1 %2348, label %2349, label %2371

2349:                                             ; preds = %2342
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = call i32 @fileno(ptr noundef %2350) #11
  %2352 = call i32 @isatty(i32 noundef %2351) #11
  %2353 = icmp ne i32 %2352, 0
  br i1 %2353, label %2354, label %2371

2354:                                             ; preds = %2349
  %2355 = load i32, ptr %39, align 4, !tbaa !5
  %2356 = call ptr @__errno_location() #12
  store i32 %2355, ptr %2356, align 4, !tbaa !5
  %2357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2358 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2360, ptr noundef @.str.4)
  %2362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call ptr @s2n_strerror_debug(i32 noundef %2363, ptr noundef @.str.4)
  %2365 = call ptr @__errno_location() #12
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call ptr @strerror(i32 noundef %2366) #11
  %2368 = call ptr @__errno_location() #12
  %2369 = load i32, ptr %2368, align 4, !tbaa !5
  %2370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2357, ptr noundef @.str.2, i32 noundef %2358, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 91, ptr noundef %2361, ptr noundef %2364, ptr noundef %2367, i32 noundef %2369) #11
  br label %2388

2371:                                             ; preds = %2349, %2342
  %2372 = load i32, ptr %39, align 4, !tbaa !5
  %2373 = call ptr @__errno_location() #12
  store i32 %2372, ptr %2373, align 4, !tbaa !5
  %2374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2375 = load i32, ptr @test_count, align 4, !tbaa !5
  %2376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  %2378 = call ptr @s2n_strerror(i32 noundef %2377, ptr noundef @.str.4)
  %2379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror_debug(i32 noundef %2380, ptr noundef @.str.4)
  %2382 = call ptr @__errno_location() #12
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  %2384 = call ptr @strerror(i32 noundef %2383) #11
  %2385 = call ptr @__errno_location() #12
  %2386 = load i32, ptr %2385, align 4, !tbaa !5
  %2387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2374, ptr noundef @.str.5, i32 noundef %2375, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 91, ptr noundef %2378, ptr noundef %2381, ptr noundef %2384, i32 noundef %2386) #11
  br label %2388

2388:                                             ; preds = %2371, %2354
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %2389

2389:                                             ; preds = %2388
  br label %2390

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

2391:                                             ; No predecessors!
  br label %2392

2392:                                             ; preds = %2391
  br label %2393

2393:                                             ; preds = %2392, %2335
  br label %2394

2394:                                             ; preds = %2393
  br label %2395

2395:                                             ; preds = %2394
  %2396 = load ptr, ptr %37, align 8, !tbaa !9
  %2397 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2396, i32 0, i32 1
  %2398 = load ptr, ptr %2397, align 8, !tbaa !43
  %2399 = getelementptr inbounds ptr, ptr %2398, i64 0
  %2400 = load ptr, ptr %2399, align 8, !tbaa !9
  %2401 = load ptr, ptr %34, align 8, !tbaa !9
  %2402 = getelementptr inbounds %struct.s2n_connection, ptr %2401, i32 0, i32 31
  %2403 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %2402, i32 0, i32 1
  %2404 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %2403, i32 0, i32 0
  store ptr %2400, ptr %2404, align 8, !tbaa !42
  br label %2405

2405:                                             ; preds = %2395
  %2406 = load i32, ptr @test_count, align 4, !tbaa !5
  %2407 = add nsw i32 %2406, 1
  store i32 %2407, ptr @test_count, align 4, !tbaa !5
  %2408 = load ptr, ptr %37, align 8, !tbaa !9
  %2409 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2408, i32 0, i32 1
  %2410 = load ptr, ptr %2409, align 8, !tbaa !43
  %2411 = getelementptr inbounds ptr, ptr %2410, i64 0
  %2412 = load ptr, ptr %2411, align 8, !tbaa !9
  %2413 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %2412, i32 0, i32 3
  %2414 = load i8, ptr %2413, align 8, !tbaa !46
  %2415 = zext i8 %2414 to i32
  %2416 = add nsw i32 %2415, 8
  %2417 = load ptr, ptr %34, align 8, !tbaa !9
  %2418 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef %2417)
  %2419 = icmp eq i32 %2416, %2418
  br i1 %2419, label %2473, label %2420

2420:                                             ; preds = %2405
  br label %2421

2421:                                             ; preds = %2420
  br label %2422

2422:                                             ; preds = %2421
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %2423 = call ptr @__errno_location() #12
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  store i32 %2424, ptr %40, align 4, !tbaa !5
  %2425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2426 = call i32 @s2n_print_stacktrace(ptr noundef %2425)
  %2427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2428 = trunc i8 %2427 to i1
  br i1 %2428, label %2429, label %2451

2429:                                             ; preds = %2422
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = call i32 @fileno(ptr noundef %2430) #11
  %2432 = call i32 @isatty(i32 noundef %2431) #11
  %2433 = icmp ne i32 %2432, 0
  br i1 %2433, label %2434, label %2451

2434:                                             ; preds = %2429
  %2435 = load i32, ptr %40, align 4, !tbaa !5
  %2436 = call ptr @__errno_location() #12
  store i32 %2435, ptr %2436, align 4, !tbaa !5
  %2437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2438 = load i32, ptr @test_count, align 4, !tbaa !5
  %2439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2440 = load i32, ptr %2439, align 4, !tbaa !5
  %2441 = call ptr @s2n_strerror(i32 noundef %2440, ptr noundef @.str.4)
  %2442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  %2444 = call ptr @s2n_strerror_debug(i32 noundef %2443, ptr noundef @.str.4)
  %2445 = call ptr @__errno_location() #12
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  %2447 = call ptr @strerror(i32 noundef %2446) #11
  %2448 = call ptr @__errno_location() #12
  %2449 = load i32, ptr %2448, align 4, !tbaa !5
  %2450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2437, ptr noundef @.str.2, i32 noundef %2438, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 94, ptr noundef %2441, ptr noundef %2444, ptr noundef %2447, i32 noundef %2449) #11
  br label %2468

2451:                                             ; preds = %2429, %2422
  %2452 = load i32, ptr %40, align 4, !tbaa !5
  %2453 = call ptr @__errno_location() #12
  store i32 %2452, ptr %2453, align 4, !tbaa !5
  %2454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2455 = load i32, ptr @test_count, align 4, !tbaa !5
  %2456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror(i32 noundef %2457, ptr noundef @.str.4)
  %2459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2460 = load i32, ptr %2459, align 4, !tbaa !5
  %2461 = call ptr @s2n_strerror_debug(i32 noundef %2460, ptr noundef @.str.4)
  %2462 = call ptr @__errno_location() #12
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call ptr @strerror(i32 noundef %2463) #11
  %2465 = call ptr @__errno_location() #12
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2454, ptr noundef @.str.5, i32 noundef %2455, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 94, ptr noundef %2458, ptr noundef %2461, ptr noundef %2464, i32 noundef %2466) #11
  br label %2468

2468:                                             ; preds = %2451, %2434
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %2469

2469:                                             ; preds = %2468
  br label %2470

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

2471:                                             ; No predecessors!
  br label %2472

2472:                                             ; preds = %2471
  br label %2473

2473:                                             ; preds = %2472, %2405
  br label %2474

2474:                                             ; preds = %2473
  br label %2475

2475:                                             ; preds = %2474
  %2476 = load ptr, ptr %37, align 8, !tbaa !9
  %2477 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2476, i32 0, i32 1
  %2478 = load ptr, ptr %2477, align 8, !tbaa !43
  %2479 = getelementptr inbounds ptr, ptr %2478, i64 1
  %2480 = load ptr, ptr %2479, align 8, !tbaa !9
  %2481 = load ptr, ptr %34, align 8, !tbaa !9
  %2482 = getelementptr inbounds %struct.s2n_connection, ptr %2481, i32 0, i32 31
  %2483 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %2482, i32 0, i32 1
  %2484 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %2483, i32 0, i32 0
  store ptr %2480, ptr %2484, align 8, !tbaa !42
  br label %2485

2485:                                             ; preds = %2475
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %2487 = add nsw i32 %2486, 1
  store i32 %2487, ptr @test_count, align 4, !tbaa !5
  %2488 = load ptr, ptr %37, align 8, !tbaa !9
  %2489 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2488, i32 0, i32 1
  %2490 = load ptr, ptr %2489, align 8, !tbaa !43
  %2491 = getelementptr inbounds ptr, ptr %2490, i64 1
  %2492 = load ptr, ptr %2491, align 8, !tbaa !9
  %2493 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %2492, i32 0, i32 3
  %2494 = load i8, ptr %2493, align 8, !tbaa !46
  %2495 = zext i8 %2494 to i32
  %2496 = add nsw i32 %2495, 8
  %2497 = load ptr, ptr %34, align 8, !tbaa !9
  %2498 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef %2497)
  %2499 = icmp eq i32 %2496, %2498
  br i1 %2499, label %2553, label %2500

2500:                                             ; preds = %2485
  br label %2501

2501:                                             ; preds = %2500
  br label %2502

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

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

2514:                                             ; preds = %2509
  %2515 = load i32, ptr %41, align 4, !tbaa !5
  %2516 = call ptr @__errno_location() #12
  store i32 %2515, ptr %2516, align 4, !tbaa !5
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = load i32, ptr @test_count, align 4, !tbaa !5
  %2519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2520 = load i32, ptr %2519, align 4, !tbaa !5
  %2521 = call ptr @s2n_strerror(i32 noundef %2520, ptr noundef @.str.4)
  %2522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2523 = load i32, ptr %2522, align 4, !tbaa !5
  %2524 = call ptr @s2n_strerror_debug(i32 noundef %2523, ptr noundef @.str.4)
  %2525 = call ptr @__errno_location() #12
  %2526 = load i32, ptr %2525, align 4, !tbaa !5
  %2527 = call ptr @strerror(i32 noundef %2526) #11
  %2528 = call ptr @__errno_location() #12
  %2529 = load i32, ptr %2528, align 4, !tbaa !5
  %2530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2517, ptr noundef @.str.2, i32 noundef %2518, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 97, ptr noundef %2521, ptr noundef %2524, ptr noundef %2527, i32 noundef %2529) #11
  br label %2548

2531:                                             ; preds = %2509, %2502
  %2532 = load i32, ptr %41, align 4, !tbaa !5
  %2533 = call ptr @__errno_location() #12
  store i32 %2532, ptr %2533, align 4, !tbaa !5
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = load i32, ptr @test_count, align 4, !tbaa !5
  %2536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2537 = load i32, ptr %2536, align 4, !tbaa !5
  %2538 = call ptr @s2n_strerror(i32 noundef %2537, ptr noundef @.str.4)
  %2539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2540 = load i32, ptr %2539, align 4, !tbaa !5
  %2541 = call ptr @s2n_strerror_debug(i32 noundef %2540, ptr noundef @.str.4)
  %2542 = call ptr @__errno_location() #12
  %2543 = load i32, ptr %2542, align 4, !tbaa !5
  %2544 = call ptr @strerror(i32 noundef %2543) #11
  %2545 = call ptr @__errno_location() #12
  %2546 = load i32, ptr %2545, align 4, !tbaa !5
  %2547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2534, ptr noundef @.str.5, i32 noundef %2535, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 97, ptr noundef %2538, ptr noundef %2541, ptr noundef %2544, i32 noundef %2546) #11
  br label %2548

2548:                                             ; preds = %2531, %2514
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %2549

2549:                                             ; preds = %2548
  br label %2550

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

2551:                                             ; No predecessors!
  br label %2552

2552:                                             ; preds = %2551
  br label %2553

2553:                                             ; preds = %2552, %2485
  br label %2554

2554:                                             ; preds = %2553
  br label %2555

2555:                                             ; preds = %2554
  %2556 = load ptr, ptr %34, align 8, !tbaa !9
  %2557 = getelementptr inbounds %struct.s2n_connection, ptr %2556, i32 0, i32 31
  %2558 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %2557, i32 0, i32 1
  %2559 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %2558, i32 0, i32 0
  store ptr null, ptr %2559, align 8, !tbaa !42
  br label %2560

2560:                                             ; preds = %2555
  %2561 = load i32, ptr @test_count, align 4, !tbaa !5
  %2562 = add nsw i32 %2561, 1
  store i32 %2562, ptr @test_count, align 4, !tbaa !5
  %2563 = load ptr, ptr %34, align 8, !tbaa !9
  %2564 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef %2563)
  %2565 = icmp eq i32 0, %2564
  br i1 %2565, label %2619, label %2566

2566:                                             ; preds = %2560
  br label %2567

2567:                                             ; preds = %2566
  br label %2568

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

2575:                                             ; preds = %2568
  %2576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2577 = call i32 @fileno(ptr noundef %2576) #11
  %2578 = call i32 @isatty(i32 noundef %2577) #11
  %2579 = icmp ne i32 %2578, 0
  br i1 %2579, label %2580, label %2597

2580:                                             ; preds = %2575
  %2581 = load i32, ptr %42, align 4, !tbaa !5
  %2582 = call ptr @__errno_location() #12
  store i32 %2581, ptr %2582, align 4, !tbaa !5
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = load i32, ptr @test_count, align 4, !tbaa !5
  %2585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2586 = load i32, ptr %2585, align 4, !tbaa !5
  %2587 = call ptr @s2n_strerror(i32 noundef %2586, ptr noundef @.str.4)
  %2588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2589 = load i32, ptr %2588, align 4, !tbaa !5
  %2590 = call ptr @s2n_strerror_debug(i32 noundef %2589, ptr noundef @.str.4)
  %2591 = call ptr @__errno_location() #12
  %2592 = load i32, ptr %2591, align 4, !tbaa !5
  %2593 = call ptr @strerror(i32 noundef %2592) #11
  %2594 = call ptr @__errno_location() #12
  %2595 = load i32, ptr %2594, align 4, !tbaa !5
  %2596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2583, ptr noundef @.str.2, i32 noundef %2584, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2587, ptr noundef %2590, ptr noundef %2593, i32 noundef %2595) #11
  br label %2614

2597:                                             ; preds = %2575, %2568
  %2598 = load i32, ptr %42, align 4, !tbaa !5
  %2599 = call ptr @__errno_location() #12
  store i32 %2598, ptr %2599, align 4, !tbaa !5
  %2600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2601 = load i32, ptr @test_count, align 4, !tbaa !5
  %2602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2603 = load i32, ptr %2602, align 4, !tbaa !5
  %2604 = call ptr @s2n_strerror(i32 noundef %2603, ptr noundef @.str.4)
  %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_debug(i32 noundef %2606, ptr noundef @.str.4)
  %2608 = call ptr @__errno_location() #12
  %2609 = load i32, ptr %2608, align 4, !tbaa !5
  %2610 = call ptr @strerror(i32 noundef %2609) #11
  %2611 = call ptr @__errno_location() #12
  %2612 = load i32, ptr %2611, align 4, !tbaa !5
  %2613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2600, ptr noundef @.str.5, i32 noundef %2601, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2604, ptr noundef %2607, ptr noundef %2610, i32 noundef %2612) #11
  br label %2614

2614:                                             ; preds = %2597, %2580
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %2615

2615:                                             ; preds = %2614
  br label %2616

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

2617:                                             ; No predecessors!
  br label %2618

2618:                                             ; preds = %2617
  br label %2619

2619:                                             ; preds = %2618, %2560
  br label %2620

2620:                                             ; preds = %2619
  br label %2621

2621:                                             ; preds = %2620
  br label %2622

2622:                                             ; preds = %2621
  %2623 = load i32, ptr @test_count, align 4, !tbaa !5
  %2624 = add nsw i32 %2623, 1
  store i32 %2624, ptr @test_count, align 4, !tbaa !5
  %2625 = load ptr, ptr %34, align 8, !tbaa !9
  %2626 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %2625, i8 noundef zeroext 34)
  %2627 = icmp eq i32 %2626, -1
  br i1 %2627, label %2628, label %2681

2628:                                             ; preds = %2622
  br label %2629

2629:                                             ; preds = %2628
  br label %2630

2630:                                             ; preds = %2629
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %2631 = call ptr @__errno_location() #12
  %2632 = load i32, ptr %2631, align 4, !tbaa !5
  store i32 %2632, ptr %43, align 4, !tbaa !5
  %2633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2634 = call i32 @s2n_print_stacktrace(ptr noundef %2633)
  %2635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2636 = trunc i8 %2635 to i1
  br i1 %2636, label %2637, label %2659

2637:                                             ; preds = %2630
  %2638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2639 = call i32 @fileno(ptr noundef %2638) #11
  %2640 = call i32 @isatty(i32 noundef %2639) #11
  %2641 = icmp ne i32 %2640, 0
  br i1 %2641, label %2642, label %2659

2642:                                             ; preds = %2637
  %2643 = load i32, ptr %43, align 4, !tbaa !5
  %2644 = call ptr @__errno_location() #12
  store i32 %2643, ptr %2644, align 4, !tbaa !5
  %2645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2646 = load i32, ptr @test_count, align 4, !tbaa !5
  %2647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2648 = load i32, ptr %2647, align 4, !tbaa !5
  %2649 = call ptr @s2n_strerror(i32 noundef %2648, ptr noundef @.str.4)
  %2650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  %2652 = call ptr @s2n_strerror_debug(i32 noundef %2651, ptr noundef @.str.4)
  %2653 = call ptr @__errno_location() #12
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call ptr @strerror(i32 noundef %2654) #11
  %2656 = call ptr @__errno_location() #12
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2645, ptr noundef @.str.2, i32 noundef %2646, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 103, ptr noundef %2649, ptr noundef %2652, ptr noundef %2655, i32 noundef %2657) #11
  br label %2676

2659:                                             ; preds = %2637, %2630
  %2660 = load i32, ptr %43, align 4, !tbaa !5
  %2661 = call ptr @__errno_location() #12
  store i32 %2660, ptr %2661, align 4, !tbaa !5
  %2662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2663 = load i32, ptr @test_count, align 4, !tbaa !5
  %2664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2665 = load i32, ptr %2664, align 4, !tbaa !5
  %2666 = call ptr @s2n_strerror(i32 noundef %2665, ptr noundef @.str.4)
  %2667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2668 = load i32, ptr %2667, align 4, !tbaa !5
  %2669 = call ptr @s2n_strerror_debug(i32 noundef %2668, ptr noundef @.str.4)
  %2670 = call ptr @__errno_location() #12
  %2671 = load i32, ptr %2670, align 4, !tbaa !5
  %2672 = call ptr @strerror(i32 noundef %2671) #11
  %2673 = call ptr @__errno_location() #12
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2662, ptr noundef @.str.5, i32 noundef %2663, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 103, ptr noundef %2666, ptr noundef %2669, ptr noundef %2672, i32 noundef %2674) #11
  br label %2676

2676:                                             ; preds = %2659, %2642
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %2677

2677:                                             ; preds = %2676
  br label %2678

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

2679:                                             ; No predecessors!
  br label %2680

2680:                                             ; preds = %2679
  br label %2681

2681:                                             ; preds = %2680, %2622
  br label %2682

2682:                                             ; preds = %2681
  br label %2683

2683:                                             ; preds = %2682
  br label %2684

2684:                                             ; preds = %2683
  %2685 = load i32, ptr @test_count, align 4, !tbaa !5
  %2686 = add nsw i32 %2685, 1
  store i32 %2686, ptr @test_count, align 4, !tbaa !5
  %2687 = load ptr, ptr %34, align 8, !tbaa !9
  %2688 = call i32 @s2n_conn_choose_state_machine(ptr noundef %2687, i8 noundef zeroext 34)
  %2689 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  store i32 %2688, ptr %2689, align 4
  %2690 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  %2691 = load i32, ptr %2690, align 4
  %2692 = call zeroext i1 @s2n_result_is_ok(i32 %2691)
  br i1 %2692, label %2746, label %2693

2693:                                             ; preds = %2684
  br label %2694

2694:                                             ; preds = %2693
  br label %2695

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

2702:                                             ; preds = %2695
  %2703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2704 = call i32 @fileno(ptr noundef %2703) #11
  %2705 = call i32 @isatty(i32 noundef %2704) #11
  %2706 = icmp ne i32 %2705, 0
  br i1 %2706, label %2707, label %2724

2707:                                             ; preds = %2702
  %2708 = load i32, ptr %45, align 4, !tbaa !5
  %2709 = call ptr @__errno_location() #12
  store i32 %2708, ptr %2709, align 4, !tbaa !5
  %2710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2711 = load i32, ptr @test_count, align 4, !tbaa !5
  %2712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2713 = load i32, ptr %2712, align 4, !tbaa !5
  %2714 = call ptr @s2n_strerror(i32 noundef %2713, ptr noundef @.str.4)
  %2715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2716 = load i32, ptr %2715, align 4, !tbaa !5
  %2717 = call ptr @s2n_strerror_debug(i32 noundef %2716, ptr noundef @.str.4)
  %2718 = call ptr @__errno_location() #12
  %2719 = load i32, ptr %2718, align 4, !tbaa !5
  %2720 = call ptr @strerror(i32 noundef %2719) #11
  %2721 = call ptr @__errno_location() #12
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2710, ptr noundef @.str.2, i32 noundef %2711, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2714, ptr noundef %2717, ptr noundef %2720, i32 noundef %2722) #11
  br label %2741

2724:                                             ; preds = %2702, %2695
  %2725 = load i32, ptr %45, align 4, !tbaa !5
  %2726 = call ptr @__errno_location() #12
  store i32 %2725, ptr %2726, align 4, !tbaa !5
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = call ptr @s2n_strerror(i32 noundef %2730, ptr noundef @.str.4)
  %2732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call ptr @s2n_strerror_debug(i32 noundef %2733, ptr noundef @.str.4)
  %2735 = call ptr @__errno_location() #12
  %2736 = load i32, ptr %2735, align 4, !tbaa !5
  %2737 = call ptr @strerror(i32 noundef %2736) #11
  %2738 = call ptr @__errno_location() #12
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  %2740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2727, ptr noundef @.str.5, i32 noundef %2728, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2731, ptr noundef %2734, ptr noundef %2737, i32 noundef %2739) #11
  br label %2741

2741:                                             ; preds = %2724, %2707
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %2742

2742:                                             ; preds = %2741
  br label %2743

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

2744:                                             ; No predecessors!
  br label %2745

2745:                                             ; preds = %2744
  br label %2746

2746:                                             ; preds = %2745, %2684
  br label %2747

2747:                                             ; preds = %2746
  br label %2748

2748:                                             ; preds = %2747
  br label %2749

2749:                                             ; preds = %2748
  %2750 = load i32, ptr @test_count, align 4, !tbaa !5
  %2751 = add nsw i32 %2750, 1
  store i32 %2751, ptr @test_count, align 4, !tbaa !5
  %2752 = load ptr, ptr %34, align 8, !tbaa !9
  %2753 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %2752)
  %2754 = icmp eq i32 %2753, -1
  br i1 %2754, label %2755, label %2808

2755:                                             ; preds = %2749
  br label %2756

2756:                                             ; preds = %2755
  br label %2757

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

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

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

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

2803:                                             ; preds = %2786, %2769
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %2804

2804:                                             ; preds = %2803
  br label %2805

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

2806:                                             ; No predecessors!
  br label %2807

2807:                                             ; preds = %2806
  br label %2808

2808:                                             ; preds = %2807, %2749
  br label %2809

2809:                                             ; preds = %2808
  br label %2810

2810:                                             ; preds = %2809
  %2811 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %2812 = load ptr, ptr %34, align 8, !tbaa !9
  %2813 = getelementptr inbounds %struct.s2n_connection, ptr %2812, i32 0, i32 31
  %2814 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %2813, i32 0, i32 1
  %2815 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %2814, i32 0, i32 0
  store ptr %2811, ptr %2815, align 8, !tbaa !42
  br label %2816

2816:                                             ; preds = %2810
  %2817 = load i32, ptr @test_count, align 4, !tbaa !5
  %2818 = add nsw i32 %2817, 1
  store i32 %2818, ptr @test_count, align 4, !tbaa !5
  %2819 = load ptr, ptr %34, align 8, !tbaa !9
  %2820 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef %2819)
  %2821 = icmp eq i32 6, %2820
  br i1 %2821, label %2875, label %2822

2822:                                             ; preds = %2816
  br label %2823

2823:                                             ; preds = %2822
  br label %2824

2824:                                             ; preds = %2823
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %2825 = call ptr @__errno_location() #12
  %2826 = load i32, ptr %2825, align 4, !tbaa !5
  store i32 %2826, ptr %47, align 4, !tbaa !5
  %2827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2828 = call i32 @s2n_print_stacktrace(ptr noundef %2827)
  %2829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2830 = trunc i8 %2829 to i1
  br i1 %2830, label %2831, label %2853

2831:                                             ; preds = %2824
  %2832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2833 = call i32 @fileno(ptr noundef %2832) #11
  %2834 = call i32 @isatty(i32 noundef %2833) #11
  %2835 = icmp ne i32 %2834, 0
  br i1 %2835, label %2836, label %2853

2836:                                             ; preds = %2831
  %2837 = load i32, ptr %47, align 4, !tbaa !5
  %2838 = call ptr @__errno_location() #12
  store i32 %2837, ptr %2838, align 4, !tbaa !5
  %2839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2840 = load i32, ptr @test_count, align 4, !tbaa !5
  %2841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  %2843 = call ptr @s2n_strerror(i32 noundef %2842, ptr noundef @.str.4)
  %2844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2845 = load i32, ptr %2844, align 4, !tbaa !5
  %2846 = call ptr @s2n_strerror_debug(i32 noundef %2845, ptr noundef @.str.4)
  %2847 = call ptr @__errno_location() #12
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call ptr @strerror(i32 noundef %2848) #11
  %2850 = call ptr @__errno_location() #12
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2839, ptr noundef @.str.2, i32 noundef %2840, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2843, ptr noundef %2846, ptr noundef %2849, i32 noundef %2851) #11
  br label %2870

2853:                                             ; preds = %2831, %2824
  %2854 = load i32, ptr %47, align 4, !tbaa !5
  %2855 = call ptr @__errno_location() #12
  store i32 %2854, ptr %2855, align 4, !tbaa !5
  %2856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2857 = load i32, ptr @test_count, align 4, !tbaa !5
  %2858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2859 = load i32, ptr %2858, align 4, !tbaa !5
  %2860 = call ptr @s2n_strerror(i32 noundef %2859, ptr noundef @.str.4)
  %2861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2862 = load i32, ptr %2861, align 4, !tbaa !5
  %2863 = call ptr @s2n_strerror_debug(i32 noundef %2862, ptr noundef @.str.4)
  %2864 = call ptr @__errno_location() #12
  %2865 = load i32, ptr %2864, align 4, !tbaa !5
  %2866 = call ptr @strerror(i32 noundef %2865) #11
  %2867 = call ptr @__errno_location() #12
  %2868 = load i32, ptr %2867, align 4, !tbaa !5
  %2869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2856, ptr noundef @.str.5, i32 noundef %2857, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2860, ptr noundef %2863, ptr noundef %2866, i32 noundef %2868) #11
  br label %2870

2870:                                             ; preds = %2853, %2836
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %2871

2871:                                             ; preds = %2870
  br label %2872

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

2873:                                             ; No predecessors!
  br label %2874

2874:                                             ; preds = %2873
  br label %2875

2875:                                             ; preds = %2874, %2816
  br label %2876

2876:                                             ; preds = %2875
  br label %2877

2877:                                             ; preds = %2876
  br label %2878

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

2884:                                             ; preds = %2878
  br label %2885

2885:                                             ; preds = %2884
  br label %2886

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

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

2898:                                             ; preds = %2893
  %2899 = load i32, ptr %48, align 4, !tbaa !5
  %2900 = call ptr @__errno_location() #12
  store i32 %2899, ptr %2900, align 4, !tbaa !5
  %2901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2902 = load i32, ptr @test_count, align 4, !tbaa !5
  %2903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2904 = load i32, ptr %2903, align 4, !tbaa !5
  %2905 = call ptr @s2n_strerror(i32 noundef %2904, ptr noundef @.str.4)
  %2906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2907 = load i32, ptr %2906, align 4, !tbaa !5
  %2908 = call ptr @s2n_strerror_debug(i32 noundef %2907, ptr noundef @.str.4)
  %2909 = call ptr @__errno_location() #12
  %2910 = load i32, ptr %2909, align 4, !tbaa !5
  %2911 = call ptr @strerror(i32 noundef %2910) #11
  %2912 = call ptr @__errno_location() #12
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2901, ptr noundef @.str.2, i32 noundef %2902, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2905, ptr noundef %2908, ptr noundef %2911, i32 noundef %2913) #11
  br label %2932

2915:                                             ; preds = %2893, %2886
  %2916 = load i32, ptr %48, align 4, !tbaa !5
  %2917 = call ptr @__errno_location() #12
  store i32 %2916, ptr %2917, align 4, !tbaa !5
  %2918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2919 = load i32, ptr @test_count, align 4, !tbaa !5
  %2920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2921 = load i32, ptr %2920, align 4, !tbaa !5
  %2922 = call ptr @s2n_strerror(i32 noundef %2921, ptr noundef @.str.4)
  %2923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2924 = load i32, ptr %2923, align 4, !tbaa !5
  %2925 = call ptr @s2n_strerror_debug(i32 noundef %2924, ptr noundef @.str.4)
  %2926 = call ptr @__errno_location() #12
  %2927 = load i32, ptr %2926, align 4, !tbaa !5
  %2928 = call ptr @strerror(i32 noundef %2927) #11
  %2929 = call ptr @__errno_location() #12
  %2930 = load i32, ptr %2929, align 4, !tbaa !5
  %2931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2918, ptr noundef @.str.5, i32 noundef %2919, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2922, ptr noundef %2925, ptr noundef %2928, i32 noundef %2930) #11
  br label %2932

2932:                                             ; preds = %2915, %2898
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %2933

2933:                                             ; preds = %2932
  br label %2934

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

2935:                                             ; No predecessors!
  br label %2936

2936:                                             ; preds = %2935
  br label %2937

2937:                                             ; preds = %2936, %2878
  br label %2938

2938:                                             ; preds = %2937
  br label %2939

2939:                                             ; preds = %2938
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #11
  store ptr null, ptr %49, align 8, !tbaa !9
  br label %2940

2940:                                             ; preds = %2939
  %2941 = load i32, ptr @test_count, align 4, !tbaa !5
  %2942 = add nsw i32 %2941, 1
  store i32 %2942, ptr @test_count, align 4, !tbaa !5
  %2943 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2943, ptr %49, align 8, !tbaa !9
  %2944 = icmp eq ptr %2943, null
  br i1 %2944, label %2945, label %2998

2945:                                             ; preds = %2940
  br label %2946

2946:                                             ; preds = %2945
  br label %2947

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

2954:                                             ; preds = %2947
  %2955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2956 = call i32 @fileno(ptr noundef %2955) #11
  %2957 = call i32 @isatty(i32 noundef %2956) #11
  %2958 = icmp ne i32 %2957, 0
  br i1 %2958, label %2959, label %2976

2959:                                             ; preds = %2954
  %2960 = load i32, ptr %50, align 4, !tbaa !5
  %2961 = call ptr @__errno_location() #12
  store i32 %2960, ptr %2961, align 4, !tbaa !5
  %2962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2963 = load i32, ptr @test_count, align 4, !tbaa !5
  %2964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2965 = load i32, ptr %2964, align 4, !tbaa !5
  %2966 = call ptr @s2n_strerror(i32 noundef %2965, ptr noundef @.str.4)
  %2967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2968 = load i32, ptr %2967, align 4, !tbaa !5
  %2969 = call ptr @s2n_strerror_debug(i32 noundef %2968, ptr noundef @.str.4)
  %2970 = call ptr @__errno_location() #12
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = call ptr @strerror(i32 noundef %2971) #11
  %2973 = call ptr @__errno_location() #12
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  %2975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2962, ptr noundef @.str.2, i32 noundef %2963, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2966, ptr noundef %2969, ptr noundef %2972, i32 noundef %2974) #11
  br label %2993

2976:                                             ; preds = %2954, %2947
  %2977 = load i32, ptr %50, align 4, !tbaa !5
  %2978 = call ptr @__errno_location() #12
  store i32 %2977, ptr %2978, align 4, !tbaa !5
  %2979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2980 = load i32, ptr @test_count, align 4, !tbaa !5
  %2981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2982 = load i32, ptr %2981, align 4, !tbaa !5
  %2983 = call ptr @s2n_strerror(i32 noundef %2982, ptr noundef @.str.4)
  %2984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2985 = load i32, ptr %2984, align 4, !tbaa !5
  %2986 = call ptr @s2n_strerror_debug(i32 noundef %2985, ptr noundef @.str.4)
  %2987 = call ptr @__errno_location() #12
  %2988 = load i32, ptr %2987, align 4, !tbaa !5
  %2989 = call ptr @strerror(i32 noundef %2988) #11
  %2990 = call ptr @__errno_location() #12
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  %2992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2979, ptr noundef @.str.5, i32 noundef %2980, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2983, ptr noundef %2986, ptr noundef %2989, i32 noundef %2991) #11
  br label %2993

2993:                                             ; preds = %2976, %2959
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %2994

2994:                                             ; preds = %2993
  br label %2995

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

2996:                                             ; No predecessors!
  br label %2997

2997:                                             ; preds = %2996
  br label %2998

2998:                                             ; preds = %2997, %2940
  br label %2999

2999:                                             ; preds = %2998
  br label %3000

3000:                                             ; preds = %2999
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #11
  store ptr null, ptr %51, align 8, !tbaa !9
  br label %3001

3001:                                             ; preds = %3000
  %3002 = load i32, ptr @test_count, align 4, !tbaa !5
  %3003 = add nsw i32 %3002, 1
  store i32 %3003, ptr @test_count, align 4, !tbaa !5
  %3004 = load ptr, ptr %49, align 8, !tbaa !9
  %3005 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %3004, ptr noundef %51)
  %3006 = icmp eq i32 %3005, -1
  br i1 %3006, label %3007, label %3060

3007:                                             ; preds = %3001
  br label %3008

3008:                                             ; preds = %3007
  br label %3009

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

3016:                                             ; preds = %3009
  %3017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3018 = call i32 @fileno(ptr noundef %3017) #11
  %3019 = call i32 @isatty(i32 noundef %3018) #11
  %3020 = icmp ne i32 %3019, 0
  br i1 %3020, label %3021, label %3038

3021:                                             ; preds = %3016
  %3022 = load i32, ptr %52, align 4, !tbaa !5
  %3023 = call ptr @__errno_location() #12
  store i32 %3022, ptr %3023, align 4, !tbaa !5
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = load i32, ptr @test_count, align 4, !tbaa !5
  %3026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3027 = load i32, ptr %3026, align 4, !tbaa !5
  %3028 = call ptr @s2n_strerror(i32 noundef %3027, ptr noundef @.str.4)
  %3029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call ptr @s2n_strerror_debug(i32 noundef %3030, ptr noundef @.str.4)
  %3032 = call ptr @__errno_location() #12
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = call ptr @strerror(i32 noundef %3033) #11
  %3035 = call ptr @__errno_location() #12
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3024, ptr noundef @.str.2, i32 noundef %3025, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 118, ptr noundef %3028, ptr noundef %3031, ptr noundef %3034, i32 noundef %3036) #11
  br label %3055

3038:                                             ; preds = %3016, %3009
  %3039 = load i32, ptr %52, align 4, !tbaa !5
  %3040 = call ptr @__errno_location() #12
  store i32 %3039, ptr %3040, align 4, !tbaa !5
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = load i32, ptr @test_count, align 4, !tbaa !5
  %3043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  %3045 = call ptr @s2n_strerror(i32 noundef %3044, ptr noundef @.str.4)
  %3046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  %3048 = call ptr @s2n_strerror_debug(i32 noundef %3047, ptr noundef @.str.4)
  %3049 = call ptr @__errno_location() #12
  %3050 = load i32, ptr %3049, align 4, !tbaa !5
  %3051 = call ptr @strerror(i32 noundef %3050) #11
  %3052 = call ptr @__errno_location() #12
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  %3054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3041, ptr noundef @.str.5, i32 noundef %3042, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 118, ptr noundef %3045, ptr noundef %3048, ptr noundef %3051, i32 noundef %3053) #11
  br label %3055

3055:                                             ; preds = %3038, %3021
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %3056

3056:                                             ; preds = %3055
  br label %3057

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

3058:                                             ; No predecessors!
  br label %3059

3059:                                             ; preds = %3058
  br label %3060

3060:                                             ; preds = %3059, %3001
  br label %3061

3061:                                             ; preds = %3060
  br label %3062

3062:                                             ; preds = %3061
  br label %3063

3063:                                             ; preds = %3062
  %3064 = load i32, ptr @test_count, align 4, !tbaa !5
  %3065 = add nsw i32 %3064, 1
  store i32 %3065, ptr @test_count, align 4, !tbaa !5
  %3066 = load ptr, ptr %51, align 8, !tbaa !9
  %3067 = icmp eq ptr %3066, null
  br i1 %3067, label %3068, label %3121

3068:                                             ; preds = %3063
  br label %3069

3069:                                             ; preds = %3068
  br label %3070

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

3077:                                             ; preds = %3070
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = call i32 @fileno(ptr noundef %3078) #11
  %3080 = call i32 @isatty(i32 noundef %3079) #11
  %3081 = icmp ne i32 %3080, 0
  br i1 %3081, label %3082, label %3099

3082:                                             ; preds = %3077
  %3083 = load i32, ptr %53, align 4, !tbaa !5
  %3084 = call ptr @__errno_location() #12
  store i32 %3083, ptr %3084, align 4, !tbaa !5
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = load i32, ptr @test_count, align 4, !tbaa !5
  %3087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3088 = load i32, ptr %3087, align 4, !tbaa !5
  %3089 = call ptr @s2n_strerror(i32 noundef %3088, ptr noundef @.str.4)
  %3090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3091 = load i32, ptr %3090, align 4, !tbaa !5
  %3092 = call ptr @s2n_strerror_debug(i32 noundef %3091, ptr noundef @.str.4)
  %3093 = call ptr @__errno_location() #12
  %3094 = load i32, ptr %3093, align 4, !tbaa !5
  %3095 = call ptr @strerror(i32 noundef %3094) #11
  %3096 = call ptr @__errno_location() #12
  %3097 = load i32, ptr %3096, align 4, !tbaa !5
  %3098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3085, ptr noundef @.str.2, i32 noundef %3086, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 119, ptr noundef %3089, ptr noundef %3092, ptr noundef %3095, i32 noundef %3097) #11
  br label %3116

3099:                                             ; preds = %3077, %3070
  %3100 = load i32, ptr %53, align 4, !tbaa !5
  %3101 = call ptr @__errno_location() #12
  store i32 %3100, ptr %3101, align 4, !tbaa !5
  %3102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3103 = load i32, ptr @test_count, align 4, !tbaa !5
  %3104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3105 = load i32, ptr %3104, align 4, !tbaa !5
  %3106 = call ptr @s2n_strerror(i32 noundef %3105, ptr noundef @.str.4)
  %3107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3108 = load i32, ptr %3107, align 4, !tbaa !5
  %3109 = call ptr @s2n_strerror_debug(i32 noundef %3108, ptr noundef @.str.4)
  %3110 = call ptr @__errno_location() #12
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  %3112 = call ptr @strerror(i32 noundef %3111) #11
  %3113 = call ptr @__errno_location() #12
  %3114 = load i32, ptr %3113, align 4, !tbaa !5
  %3115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3102, ptr noundef @.str.5, i32 noundef %3103, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 119, ptr noundef %3106, ptr noundef %3109, ptr noundef %3112, i32 noundef %3114) #11
  br label %3116

3116:                                             ; preds = %3099, %3082
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %3117

3117:                                             ; preds = %3116
  br label %3118

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

3119:                                             ; No predecessors!
  br label %3120

3120:                                             ; preds = %3119
  br label %3121

3121:                                             ; preds = %3120, %3063
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

3123:                                             ; preds = %3122
  br label %3124

3124:                                             ; preds = %3123
  %3125 = load i32, ptr @test_count, align 4, !tbaa !5
  %3126 = add nsw i32 %3125, 1
  store i32 %3126, ptr @test_count, align 4, !tbaa !5
  %3127 = load ptr, ptr %49, align 8, !tbaa !9
  %3128 = getelementptr inbounds %struct.s2n_connection, ptr %3127, i32 0, i32 31
  %3129 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3128, i32 0, i32 4
  %3130 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %3129, i32 0, i32 0
  %3131 = load ptr, ptr %3130, align 8, !tbaa !48
  %3132 = icmp eq ptr %3131, null
  br i1 %3132, label %3186, label %3133

3133:                                             ; preds = %3124
  br label %3134

3134:                                             ; preds = %3133
  br label %3135

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

3142:                                             ; preds = %3135
  %3143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3144 = call i32 @fileno(ptr noundef %3143) #11
  %3145 = call i32 @isatty(i32 noundef %3144) #11
  %3146 = icmp ne i32 %3145, 0
  br i1 %3146, label %3147, label %3164

3147:                                             ; preds = %3142
  %3148 = load i32, ptr %54, align 4, !tbaa !5
  %3149 = call ptr @__errno_location() #12
  store i32 %3148, ptr %3149, align 4, !tbaa !5
  %3150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3151 = load i32, ptr @test_count, align 4, !tbaa !5
  %3152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3153 = load i32, ptr %3152, align 4, !tbaa !5
  %3154 = call ptr @s2n_strerror(i32 noundef %3153, ptr noundef @.str.4)
  %3155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3156 = load i32, ptr %3155, align 4, !tbaa !5
  %3157 = call ptr @s2n_strerror_debug(i32 noundef %3156, ptr noundef @.str.4)
  %3158 = call ptr @__errno_location() #12
  %3159 = load i32, ptr %3158, align 4, !tbaa !5
  %3160 = call ptr @strerror(i32 noundef %3159) #11
  %3161 = call ptr @__errno_location() #12
  %3162 = load i32, ptr %3161, align 4, !tbaa !5
  %3163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3150, ptr noundef @.str.2, i32 noundef %3151, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 121, ptr noundef %3154, ptr noundef %3157, ptr noundef %3160, i32 noundef %3162) #11
  br label %3181

3164:                                             ; preds = %3142, %3135
  %3165 = load i32, ptr %54, align 4, !tbaa !5
  %3166 = call ptr @__errno_location() #12
  store i32 %3165, ptr %3166, align 4, !tbaa !5
  %3167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3168 = load i32, ptr @test_count, align 4, !tbaa !5
  %3169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3170 = load i32, ptr %3169, align 4, !tbaa !5
  %3171 = call ptr @s2n_strerror(i32 noundef %3170, ptr noundef @.str.4)
  %3172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3173 = load i32, ptr %3172, align 4, !tbaa !5
  %3174 = call ptr @s2n_strerror_debug(i32 noundef %3173, ptr noundef @.str.4)
  %3175 = call ptr @__errno_location() #12
  %3176 = load i32, ptr %3175, align 4, !tbaa !5
  %3177 = call ptr @strerror(i32 noundef %3176) #11
  %3178 = call ptr @__errno_location() #12
  %3179 = load i32, ptr %3178, align 4, !tbaa !5
  %3180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3167, ptr noundef @.str.5, i32 noundef %3168, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 121, ptr noundef %3171, ptr noundef %3174, ptr noundef %3177, i32 noundef %3179) #11
  br label %3181

3181:                                             ; preds = %3164, %3147
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %3182

3182:                                             ; preds = %3181
  br label %3183

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

3184:                                             ; No predecessors!
  br label %3185

3185:                                             ; preds = %3184
  br label %3186

3186:                                             ; preds = %3185, %3124
  br label %3187

3187:                                             ; preds = %3186
  br label %3188

3188:                                             ; preds = %3187
  call void @llvm.lifetime.start.p0(i64 40, ptr %55) #11
  call void @llvm.memset.p0.i64(ptr align 8 %55, i8 0, i64 40, i1 false)
  br label %3189

3189:                                             ; preds = %3188
  %3190 = load i32, ptr @test_count, align 4, !tbaa !5
  %3191 = add nsw i32 %3190, 1
  store i32 %3191, ptr @test_count, align 4, !tbaa !5
  %3192 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %55, i32 noundef 1024)
  %3193 = icmp eq i32 %3192, -1
  br i1 %3193, label %3194, label %3247

3194:                                             ; preds = %3189
  br label %3195

3195:                                             ; preds = %3194
  br label %3196

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

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

3208:                                             ; preds = %3203
  %3209 = load i32, ptr %56, align 4, !tbaa !5
  %3210 = call ptr @__errno_location() #12
  store i32 %3209, ptr %3210, align 4, !tbaa !5
  %3211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3212 = load i32, ptr @test_count, align 4, !tbaa !5
  %3213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3214 = load i32, ptr %3213, align 4, !tbaa !5
  %3215 = call ptr @s2n_strerror(i32 noundef %3214, ptr noundef @.str.4)
  %3216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  %3218 = call ptr @s2n_strerror_debug(i32 noundef %3217, ptr noundef @.str.4)
  %3219 = call ptr @__errno_location() #12
  %3220 = load i32, ptr %3219, align 4, !tbaa !5
  %3221 = call ptr @strerror(i32 noundef %3220) #11
  %3222 = call ptr @__errno_location() #12
  %3223 = load i32, ptr %3222, align 4, !tbaa !5
  %3224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3211, ptr noundef @.str.2, i32 noundef %3212, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 123, ptr noundef %3215, ptr noundef %3218, ptr noundef %3221, i32 noundef %3223) #11
  br label %3242

3225:                                             ; preds = %3203, %3196
  %3226 = load i32, ptr %56, align 4, !tbaa !5
  %3227 = call ptr @__errno_location() #12
  store i32 %3226, ptr %3227, align 4, !tbaa !5
  %3228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3229 = load i32, ptr @test_count, align 4, !tbaa !5
  %3230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3231 = load i32, ptr %3230, align 4, !tbaa !5
  %3232 = call ptr @s2n_strerror(i32 noundef %3231, ptr noundef @.str.4)
  %3233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3234 = load i32, ptr %3233, align 4, !tbaa !5
  %3235 = call ptr @s2n_strerror_debug(i32 noundef %3234, ptr noundef @.str.4)
  %3236 = call ptr @__errno_location() #12
  %3237 = load i32, ptr %3236, align 4, !tbaa !5
  %3238 = call ptr @strerror(i32 noundef %3237) #11
  %3239 = call ptr @__errno_location() #12
  %3240 = load i32, ptr %3239, align 4, !tbaa !5
  %3241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3228, ptr noundef @.str.5, i32 noundef %3229, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 123, ptr noundef %3232, ptr noundef %3235, ptr noundef %3238, i32 noundef %3240) #11
  br label %3242

3242:                                             ; preds = %3225, %3208
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %3243

3243:                                             ; preds = %3242
  br label %3244

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

3245:                                             ; No predecessors!
  br label %3246

3246:                                             ; preds = %3245
  br label %3247

3247:                                             ; preds = %3246, %3189
  br label %3248

3248:                                             ; preds = %3247
  br label %3249

3249:                                             ; preds = %3248
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  store i64 0, ptr %57, align 8, !tbaa !49
  br label %3250

3250:                                             ; preds = %4054, %3249
  %3251 = load i64, ptr %57, align 8, !tbaa !49
  %3252 = load ptr, ptr %51, align 8, !tbaa !9
  %3253 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %3252, i32 0, i32 0
  %3254 = load i8, ptr %3253, align 8, !tbaa !50
  %3255 = zext i8 %3254 to i64
  %3256 = icmp ult i64 %3251, %3255
  br i1 %3256, label %3258, label %3257

3257:                                             ; preds = %3250
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  br label %4057

3258:                                             ; preds = %3250
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #11
  %3259 = load ptr, ptr %51, align 8, !tbaa !9
  %3260 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %3259, i32 0, i32 1
  %3261 = load ptr, ptr %3260, align 8, !tbaa !43
  %3262 = load i64, ptr %57, align 8, !tbaa !49
  %3263 = getelementptr inbounds ptr, ptr %3261, i64 %3262
  %3264 = load ptr, ptr %3263, align 8, !tbaa !9
  store ptr %3264, ptr %58, align 8, !tbaa !9
  %3265 = load ptr, ptr %58, align 8, !tbaa !9
  %3266 = load ptr, ptr %49, align 8, !tbaa !9
  %3267 = getelementptr inbounds %struct.s2n_connection, ptr %3266, i32 0, i32 31
  %3268 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3267, i32 0, i32 1
  %3269 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %3268, i32 0, i32 0
  store ptr %3265, ptr %3269, align 8, !tbaa !42
  %3270 = load ptr, ptr %58, align 8, !tbaa !9
  %3271 = load ptr, ptr %49, align 8, !tbaa !9
  %3272 = getelementptr inbounds %struct.s2n_connection, ptr %3271, i32 0, i32 31
  %3273 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3272, i32 0, i32 3
  %3274 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %3273, i32 0, i32 0
  store ptr %3270, ptr %3274, align 8, !tbaa !45
  br label %3275

3275:                                             ; preds = %3258
  %3276 = load i32, ptr @test_count, align 4, !tbaa !5
  %3277 = add nsw i32 %3276, 1
  store i32 %3277, ptr @test_count, align 4, !tbaa !5
  %3278 = load ptr, ptr %49, align 8, !tbaa !9
  %3279 = getelementptr inbounds %struct.s2n_connection, ptr %3278, i32 0, i32 31
  %3280 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3279, i32 0, i32 3
  %3281 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %3280)
  %3282 = icmp eq i32 %3281, -1
  br i1 %3282, label %3283, label %3336

3283:                                             ; preds = %3275
  br label %3284

3284:                                             ; preds = %3283
  br label %3285

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

3292:                                             ; preds = %3285
  %3293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3294 = call i32 @fileno(ptr noundef %3293) #11
  %3295 = call i32 @isatty(i32 noundef %3294) #11
  %3296 = icmp ne i32 %3295, 0
  br i1 %3296, label %3297, label %3314

3297:                                             ; preds = %3292
  %3298 = load i32, ptr %59, align 4, !tbaa !5
  %3299 = call ptr @__errno_location() #12
  store i32 %3298, ptr %3299, align 4, !tbaa !5
  %3300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3301 = load i32, ptr @test_count, align 4, !tbaa !5
  %3302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3303 = load i32, ptr %3302, align 4, !tbaa !5
  %3304 = call ptr @s2n_strerror(i32 noundef %3303, ptr noundef @.str.4)
  %3305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3306 = load i32, ptr %3305, align 4, !tbaa !5
  %3307 = call ptr @s2n_strerror_debug(i32 noundef %3306, ptr noundef @.str.4)
  %3308 = call ptr @__errno_location() #12
  %3309 = load i32, ptr %3308, align 4, !tbaa !5
  %3310 = call ptr @strerror(i32 noundef %3309) #11
  %3311 = call ptr @__errno_location() #12
  %3312 = load i32, ptr %3311, align 4, !tbaa !5
  %3313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3300, ptr noundef @.str.2, i32 noundef %3301, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 129, ptr noundef %3304, ptr noundef %3307, ptr noundef %3310, i32 noundef %3312) #11
  br label %3331

3314:                                             ; preds = %3292, %3285
  %3315 = load i32, ptr %59, align 4, !tbaa !5
  %3316 = call ptr @__errno_location() #12
  store i32 %3315, ptr %3316, align 4, !tbaa !5
  %3317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3318 = load i32, ptr @test_count, align 4, !tbaa !5
  %3319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3320 = load i32, ptr %3319, align 4, !tbaa !5
  %3321 = call ptr @s2n_strerror(i32 noundef %3320, ptr noundef @.str.4)
  %3322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3323 = load i32, ptr %3322, align 4, !tbaa !5
  %3324 = call ptr @s2n_strerror_debug(i32 noundef %3323, ptr noundef @.str.4)
  %3325 = call ptr @__errno_location() #12
  %3326 = load i32, ptr %3325, align 4, !tbaa !5
  %3327 = call ptr @strerror(i32 noundef %3326) #11
  %3328 = call ptr @__errno_location() #12
  %3329 = load i32, ptr %3328, align 4, !tbaa !5
  %3330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3317, ptr noundef @.str.5, i32 noundef %3318, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 129, ptr noundef %3321, ptr noundef %3324, ptr noundef %3327, i32 noundef %3329) #11
  br label %3331

3331:                                             ; preds = %3314, %3297
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %3332

3332:                                             ; preds = %3331
  br label %3333

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

3334:                                             ; No predecessors!
  br label %3335

3335:                                             ; preds = %3334
  br label %3336

3336:                                             ; preds = %3335, %3275
  br label %3337

3337:                                             ; preds = %3336
  br label %3338

3338:                                             ; preds = %3337
  br label %3339

3339:                                             ; preds = %3338
  %3340 = load i32, ptr @test_count, align 4, !tbaa !5
  %3341 = add nsw i32 %3340, 1
  store i32 %3341, ptr @test_count, align 4, !tbaa !5
  %3342 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %3343 = load ptr, ptr %49, align 8, !tbaa !9
  %3344 = call i32 %3342(ptr noundef %3343, ptr noundef %55)
  %3345 = icmp eq i32 %3344, -1
  br i1 %3345, label %3346, label %3399

3346:                                             ; preds = %3339
  br label %3347

3347:                                             ; preds = %3346
  br label %3348

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

3355:                                             ; preds = %3348
  %3356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3357 = call i32 @fileno(ptr noundef %3356) #11
  %3358 = call i32 @isatty(i32 noundef %3357) #11
  %3359 = icmp ne i32 %3358, 0
  br i1 %3359, label %3360, label %3377

3360:                                             ; preds = %3355
  %3361 = load i32, ptr %60, align 4, !tbaa !5
  %3362 = call ptr @__errno_location() #12
  store i32 %3361, ptr %3362, align 4, !tbaa !5
  %3363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3364 = load i32, ptr @test_count, align 4, !tbaa !5
  %3365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3366 = load i32, ptr %3365, align 4, !tbaa !5
  %3367 = call ptr @s2n_strerror(i32 noundef %3366, ptr noundef @.str.4)
  %3368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3369 = load i32, ptr %3368, align 4, !tbaa !5
  %3370 = call ptr @s2n_strerror_debug(i32 noundef %3369, ptr noundef @.str.4)
  %3371 = call ptr @__errno_location() #12
  %3372 = load i32, ptr %3371, align 4, !tbaa !5
  %3373 = call ptr @strerror(i32 noundef %3372) #11
  %3374 = call ptr @__errno_location() #12
  %3375 = load i32, ptr %3374, align 4, !tbaa !5
  %3376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3363, ptr noundef @.str.2, i32 noundef %3364, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 131, ptr noundef %3367, ptr noundef %3370, ptr noundef %3373, i32 noundef %3375) #11
  br label %3394

3377:                                             ; preds = %3355, %3348
  %3378 = load i32, ptr %60, align 4, !tbaa !5
  %3379 = call ptr @__errno_location() #12
  store i32 %3378, ptr %3379, align 4, !tbaa !5
  %3380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3381 = load i32, ptr @test_count, align 4, !tbaa !5
  %3382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3383 = load i32, ptr %3382, align 4, !tbaa !5
  %3384 = call ptr @s2n_strerror(i32 noundef %3383, ptr noundef @.str.4)
  %3385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3386 = load i32, ptr %3385, align 4, !tbaa !5
  %3387 = call ptr @s2n_strerror_debug(i32 noundef %3386, ptr noundef @.str.4)
  %3388 = call ptr @__errno_location() #12
  %3389 = load i32, ptr %3388, align 4, !tbaa !5
  %3390 = call ptr @strerror(i32 noundef %3389) #11
  %3391 = call ptr @__errno_location() #12
  %3392 = load i32, ptr %3391, align 4, !tbaa !5
  %3393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3380, ptr noundef @.str.5, i32 noundef %3381, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 131, ptr noundef %3384, ptr noundef %3387, ptr noundef %3390, i32 noundef %3392) #11
  br label %3394

3394:                                             ; preds = %3377, %3360
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %3395

3395:                                             ; preds = %3394
  br label %3396

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

3397:                                             ; No predecessors!
  br label %3398

3398:                                             ; preds = %3397
  br label %3399

3399:                                             ; preds = %3398, %3339
  br label %3400

3400:                                             ; preds = %3399
  br label %3401

3401:                                             ; preds = %3400
  br label %3402

3402:                                             ; preds = %3401
  call void @llvm.lifetime.start.p0(i64 2, ptr %61) #11
  br label %3403

3403:                                             ; preds = %3402
  %3404 = load i32, ptr @test_count, align 4, !tbaa !5
  %3405 = add nsw i32 %3404, 1
  store i32 %3405, ptr @test_count, align 4, !tbaa !5
  %3406 = call i32 @s2n_stuffer_read_uint16(ptr noundef %55, ptr noundef %61)
  %3407 = icmp eq i32 %3406, -1
  br i1 %3407, label %3408, label %3461

3408:                                             ; preds = %3403
  br label %3409

3409:                                             ; preds = %3408
  br label %3410

3410:                                             ; preds = %3409
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %3411 = call ptr @__errno_location() #12
  %3412 = load i32, ptr %3411, align 4, !tbaa !5
  store i32 %3412, ptr %62, align 4, !tbaa !5
  %3413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3414 = call i32 @s2n_print_stacktrace(ptr noundef %3413)
  %3415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3416 = trunc i8 %3415 to i1
  br i1 %3416, label %3417, label %3439

3417:                                             ; preds = %3410
  %3418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3419 = call i32 @fileno(ptr noundef %3418) #11
  %3420 = call i32 @isatty(i32 noundef %3419) #11
  %3421 = icmp ne i32 %3420, 0
  br i1 %3421, label %3422, label %3439

3422:                                             ; preds = %3417
  %3423 = load i32, ptr %62, align 4, !tbaa !5
  %3424 = call ptr @__errno_location() #12
  store i32 %3423, ptr %3424, align 4, !tbaa !5
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = load i32, ptr @test_count, align 4, !tbaa !5
  %3427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3428 = load i32, ptr %3427, align 4, !tbaa !5
  %3429 = call ptr @s2n_strerror(i32 noundef %3428, ptr noundef @.str.4)
  %3430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3431 = load i32, ptr %3430, align 4, !tbaa !5
  %3432 = call ptr @s2n_strerror_debug(i32 noundef %3431, ptr noundef @.str.4)
  %3433 = call ptr @__errno_location() #12
  %3434 = load i32, ptr %3433, align 4, !tbaa !5
  %3435 = call ptr @strerror(i32 noundef %3434) #11
  %3436 = call ptr @__errno_location() #12
  %3437 = load i32, ptr %3436, align 4, !tbaa !5
  %3438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3425, ptr noundef @.str.2, i32 noundef %3426, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 133, ptr noundef %3429, ptr noundef %3432, ptr noundef %3435, i32 noundef %3437) #11
  br label %3456

3439:                                             ; preds = %3417, %3410
  %3440 = load i32, ptr %62, align 4, !tbaa !5
  %3441 = call ptr @__errno_location() #12
  store i32 %3440, ptr %3441, align 4, !tbaa !5
  %3442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3443 = load i32, ptr @test_count, align 4, !tbaa !5
  %3444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3445 = load i32, ptr %3444, align 4, !tbaa !5
  %3446 = call ptr @s2n_strerror(i32 noundef %3445, ptr noundef @.str.4)
  %3447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3448 = load i32, ptr %3447, align 4, !tbaa !5
  %3449 = call ptr @s2n_strerror_debug(i32 noundef %3448, ptr noundef @.str.4)
  %3450 = call ptr @__errno_location() #12
  %3451 = load i32, ptr %3450, align 4, !tbaa !5
  %3452 = call ptr @strerror(i32 noundef %3451) #11
  %3453 = call ptr @__errno_location() #12
  %3454 = load i32, ptr %3453, align 4, !tbaa !5
  %3455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3442, ptr noundef @.str.5, i32 noundef %3443, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 133, ptr noundef %3446, ptr noundef %3449, ptr noundef %3452, i32 noundef %3454) #11
  br label %3456

3456:                                             ; preds = %3439, %3422
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %3457

3457:                                             ; preds = %3456
  br label %3458

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

3459:                                             ; No predecessors!
  br label %3460

3460:                                             ; preds = %3459
  br label %3461

3461:                                             ; preds = %3460, %3403
  br label %3462

3462:                                             ; preds = %3461
  br label %3463

3463:                                             ; preds = %3462
  br label %3464

3464:                                             ; preds = %3463
  %3465 = load i32, ptr @test_count, align 4, !tbaa !5
  %3466 = add nsw i32 %3465, 1
  store i32 %3466, ptr @test_count, align 4, !tbaa !5
  %3467 = load i16, ptr %61, align 2, !tbaa !53
  %3468 = zext i16 %3467 to i32
  %3469 = load ptr, ptr %58, align 8, !tbaa !9
  %3470 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %3469, i32 0, i32 0
  %3471 = load i16, ptr %3470, align 8, !tbaa !54
  %3472 = zext i16 %3471 to i32
  %3473 = icmp eq i32 %3468, %3472
  br i1 %3473, label %3527, label %3474

3474:                                             ; preds = %3464
  br label %3475

3475:                                             ; preds = %3474
  br label %3476

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

3483:                                             ; preds = %3476
  %3484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3485 = call i32 @fileno(ptr noundef %3484) #11
  %3486 = call i32 @isatty(i32 noundef %3485) #11
  %3487 = icmp ne i32 %3486, 0
  br i1 %3487, label %3488, label %3505

3488:                                             ; preds = %3483
  %3489 = load i32, ptr %63, align 4, !tbaa !5
  %3490 = call ptr @__errno_location() #12
  store i32 %3489, ptr %3490, align 4, !tbaa !5
  %3491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3492 = load i32, ptr @test_count, align 4, !tbaa !5
  %3493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3494 = load i32, ptr %3493, align 4, !tbaa !5
  %3495 = call ptr @s2n_strerror(i32 noundef %3494, ptr noundef @.str.4)
  %3496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3497 = load i32, ptr %3496, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror_debug(i32 noundef %3497, ptr noundef @.str.4)
  %3499 = call ptr @__errno_location() #12
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call ptr @strerror(i32 noundef %3500) #11
  %3502 = call ptr @__errno_location() #12
  %3503 = load i32, ptr %3502, align 4, !tbaa !5
  %3504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3491, ptr noundef @.str.2, i32 noundef %3492, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 133, ptr noundef %3495, ptr noundef %3498, ptr noundef %3501, i32 noundef %3503) #11
  br label %3522

3505:                                             ; preds = %3483, %3476
  %3506 = load i32, ptr %63, align 4, !tbaa !5
  %3507 = call ptr @__errno_location() #12
  store i32 %3506, ptr %3507, align 4, !tbaa !5
  %3508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3509 = load i32, ptr @test_count, align 4, !tbaa !5
  %3510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3511 = load i32, ptr %3510, align 4, !tbaa !5
  %3512 = call ptr @s2n_strerror(i32 noundef %3511, ptr noundef @.str.4)
  %3513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3514 = load i32, ptr %3513, align 4, !tbaa !5
  %3515 = call ptr @s2n_strerror_debug(i32 noundef %3514, ptr noundef @.str.4)
  %3516 = call ptr @__errno_location() #12
  %3517 = load i32, ptr %3516, align 4, !tbaa !5
  %3518 = call ptr @strerror(i32 noundef %3517) #11
  %3519 = call ptr @__errno_location() #12
  %3520 = load i32, ptr %3519, align 4, !tbaa !5
  %3521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3508, ptr noundef @.str.5, i32 noundef %3509, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 133, ptr noundef %3512, ptr noundef %3515, ptr noundef %3518, i32 noundef %3520) #11
  br label %3522

3522:                                             ; preds = %3505, %3488
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %3523

3523:                                             ; preds = %3522
  br label %3524

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

3525:                                             ; No predecessors!
  br label %3526

3526:                                             ; preds = %3525
  br label %3527

3527:                                             ; preds = %3526, %3464
  br label %3528

3528:                                             ; preds = %3527
  br label %3529

3529:                                             ; preds = %3528
  call void @llvm.lifetime.end.p0(i64 2, ptr %61) #11
  br label %3530

3530:                                             ; preds = %3529
  br label %3531

3531:                                             ; preds = %3530
  br label %3532

3532:                                             ; preds = %3531
  call void @llvm.lifetime.start.p0(i64 2, ptr %64) #11
  br label %3533

3533:                                             ; preds = %3532
  %3534 = load i32, ptr @test_count, align 4, !tbaa !5
  %3535 = add nsw i32 %3534, 1
  store i32 %3535, ptr @test_count, align 4, !tbaa !5
  %3536 = call i32 @s2n_stuffer_read_uint16(ptr noundef %55, ptr noundef %64)
  %3537 = icmp eq i32 %3536, -1
  br i1 %3537, label %3538, label %3591

3538:                                             ; preds = %3533
  br label %3539

3539:                                             ; preds = %3538
  br label %3540

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

3547:                                             ; preds = %3540
  %3548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3549 = call i32 @fileno(ptr noundef %3548) #11
  %3550 = call i32 @isatty(i32 noundef %3549) #11
  %3551 = icmp ne i32 %3550, 0
  br i1 %3551, label %3552, label %3569

3552:                                             ; preds = %3547
  %3553 = load i32, ptr %65, align 4, !tbaa !5
  %3554 = call ptr @__errno_location() #12
  store i32 %3553, ptr %3554, align 4, !tbaa !5
  %3555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3556 = load i32, ptr @test_count, align 4, !tbaa !5
  %3557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  %3559 = call ptr @s2n_strerror(i32 noundef %3558, ptr noundef @.str.4)
  %3560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  %3562 = call ptr @s2n_strerror_debug(i32 noundef %3561, ptr noundef @.str.4)
  %3563 = call ptr @__errno_location() #12
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call ptr @strerror(i32 noundef %3564) #11
  %3566 = call ptr @__errno_location() #12
  %3567 = load i32, ptr %3566, align 4, !tbaa !5
  %3568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3555, ptr noundef @.str.2, i32 noundef %3556, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 134, ptr noundef %3559, ptr noundef %3562, ptr noundef %3565, i32 noundef %3567) #11
  br label %3586

3569:                                             ; preds = %3547, %3540
  %3570 = load i32, ptr %65, align 4, !tbaa !5
  %3571 = call ptr @__errno_location() #12
  store i32 %3570, ptr %3571, align 4, !tbaa !5
  %3572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3573 = load i32, ptr @test_count, align 4, !tbaa !5
  %3574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3575 = load i32, ptr %3574, align 4, !tbaa !5
  %3576 = call ptr @s2n_strerror(i32 noundef %3575, ptr noundef @.str.4)
  %3577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3578 = load i32, ptr %3577, align 4, !tbaa !5
  %3579 = call ptr @s2n_strerror_debug(i32 noundef %3578, ptr noundef @.str.4)
  %3580 = call ptr @__errno_location() #12
  %3581 = load i32, ptr %3580, align 4, !tbaa !5
  %3582 = call ptr @strerror(i32 noundef %3581) #11
  %3583 = call ptr @__errno_location() #12
  %3584 = load i32, ptr %3583, align 4, !tbaa !5
  %3585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3572, ptr noundef @.str.5, i32 noundef %3573, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 134, ptr noundef %3576, ptr noundef %3579, ptr noundef %3582, i32 noundef %3584) #11
  br label %3586

3586:                                             ; preds = %3569, %3552
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %3587

3587:                                             ; preds = %3586
  br label %3588

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

3589:                                             ; No predecessors!
  br label %3590

3590:                                             ; preds = %3589
  br label %3591

3591:                                             ; preds = %3590, %3533
  br label %3592

3592:                                             ; preds = %3591
  br label %3593

3593:                                             ; preds = %3592
  br label %3594

3594:                                             ; preds = %3593
  %3595 = load i32, ptr @test_count, align 4, !tbaa !5
  %3596 = add nsw i32 %3595, 1
  store i32 %3596, ptr @test_count, align 4, !tbaa !5
  %3597 = load i16, ptr %64, align 2, !tbaa !53
  %3598 = zext i16 %3597 to i32
  %3599 = load ptr, ptr %58, align 8, !tbaa !9
  %3600 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %3599, i32 0, i32 3
  %3601 = load i8, ptr %3600, align 8, !tbaa !46
  %3602 = zext i8 %3601 to i32
  %3603 = icmp eq i32 %3598, %3602
  br i1 %3603, label %3657, label %3604

3604:                                             ; preds = %3594
  br label %3605

3605:                                             ; preds = %3604
  br label %3606

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

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

3618:                                             ; preds = %3613
  %3619 = load i32, ptr %66, align 4, !tbaa !5
  %3620 = call ptr @__errno_location() #12
  store i32 %3619, ptr %3620, align 4, !tbaa !5
  %3621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3622 = load i32, ptr @test_count, align 4, !tbaa !5
  %3623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3624 = load i32, ptr %3623, align 4, !tbaa !5
  %3625 = call ptr @s2n_strerror(i32 noundef %3624, ptr noundef @.str.4)
  %3626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3627 = load i32, ptr %3626, align 4, !tbaa !5
  %3628 = call ptr @s2n_strerror_debug(i32 noundef %3627, ptr noundef @.str.4)
  %3629 = call ptr @__errno_location() #12
  %3630 = load i32, ptr %3629, align 4, !tbaa !5
  %3631 = call ptr @strerror(i32 noundef %3630) #11
  %3632 = call ptr @__errno_location() #12
  %3633 = load i32, ptr %3632, align 4, !tbaa !5
  %3634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3621, ptr noundef @.str.2, i32 noundef %3622, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 134, ptr noundef %3625, ptr noundef %3628, ptr noundef %3631, i32 noundef %3633) #11
  br label %3652

3635:                                             ; preds = %3613, %3606
  %3636 = load i32, ptr %66, align 4, !tbaa !5
  %3637 = call ptr @__errno_location() #12
  store i32 %3636, ptr %3637, align 4, !tbaa !5
  %3638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3639 = load i32, ptr @test_count, align 4, !tbaa !5
  %3640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3641 = load i32, ptr %3640, align 4, !tbaa !5
  %3642 = call ptr @s2n_strerror(i32 noundef %3641, ptr noundef @.str.4)
  %3643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3644 = load i32, ptr %3643, align 4, !tbaa !5
  %3645 = call ptr @s2n_strerror_debug(i32 noundef %3644, ptr noundef @.str.4)
  %3646 = call ptr @__errno_location() #12
  %3647 = load i32, ptr %3646, align 4, !tbaa !5
  %3648 = call ptr @strerror(i32 noundef %3647) #11
  %3649 = call ptr @__errno_location() #12
  %3650 = load i32, ptr %3649, align 4, !tbaa !5
  %3651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3638, ptr noundef @.str.5, i32 noundef %3639, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 134, ptr noundef %3642, ptr noundef %3645, ptr noundef %3648, i32 noundef %3650) #11
  br label %3652

3652:                                             ; preds = %3635, %3618
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %3653

3653:                                             ; preds = %3652
  br label %3654

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

3655:                                             ; No predecessors!
  br label %3656

3656:                                             ; preds = %3655
  br label %3657

3657:                                             ; preds = %3656, %3594
  br label %3658

3658:                                             ; preds = %3657
  br label %3659

3659:                                             ; preds = %3658
  call void @llvm.lifetime.end.p0(i64 2, ptr %64) #11
  br label %3660

3660:                                             ; preds = %3659
  br label %3661

3661:                                             ; preds = %3660
  br label %3662

3662:                                             ; preds = %3661
  br label %3663

3663:                                             ; preds = %3662
  %3664 = load i32, ptr @test_count, align 4, !tbaa !5
  %3665 = add nsw i32 %3664, 1
  store i32 %3665, ptr @test_count, align 4, !tbaa !5
  %3666 = load ptr, ptr %58, align 8, !tbaa !9
  %3667 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %3666, i32 0, i32 3
  %3668 = load i8, ptr %3667, align 8, !tbaa !46
  %3669 = zext i8 %3668 to i32
  %3670 = call i32 @s2n_stuffer_skip_read(ptr noundef %55, i32 noundef %3669)
  %3671 = icmp eq i32 %3670, -1
  br i1 %3671, label %3672, label %3725

3672:                                             ; preds = %3663
  br label %3673

3673:                                             ; preds = %3672
  br label %3674

3674:                                             ; preds = %3673
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %3675 = call ptr @__errno_location() #12
  %3676 = load i32, ptr %3675, align 4, !tbaa !5
  store i32 %3676, ptr %67, align 4, !tbaa !5
  %3677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3678 = call i32 @s2n_print_stacktrace(ptr noundef %3677)
  %3679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3680 = trunc i8 %3679 to i1
  br i1 %3680, label %3681, label %3703

3681:                                             ; preds = %3674
  %3682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3683 = call i32 @fileno(ptr noundef %3682) #11
  %3684 = call i32 @isatty(i32 noundef %3683) #11
  %3685 = icmp ne i32 %3684, 0
  br i1 %3685, label %3686, label %3703

3686:                                             ; preds = %3681
  %3687 = load i32, ptr %67, align 4, !tbaa !5
  %3688 = call ptr @__errno_location() #12
  store i32 %3687, ptr %3688, align 4, !tbaa !5
  %3689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3690 = load i32, ptr @test_count, align 4, !tbaa !5
  %3691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3692 = load i32, ptr %3691, align 4, !tbaa !5
  %3693 = call ptr @s2n_strerror(i32 noundef %3692, ptr noundef @.str.4)
  %3694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3695 = load i32, ptr %3694, align 4, !tbaa !5
  %3696 = call ptr @s2n_strerror_debug(i32 noundef %3695, ptr noundef @.str.4)
  %3697 = call ptr @__errno_location() #12
  %3698 = load i32, ptr %3697, align 4, !tbaa !5
  %3699 = call ptr @strerror(i32 noundef %3698) #11
  %3700 = call ptr @__errno_location() #12
  %3701 = load i32, ptr %3700, align 4, !tbaa !5
  %3702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3689, ptr noundef @.str.2, i32 noundef %3690, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 135, ptr noundef %3693, ptr noundef %3696, ptr noundef %3699, i32 noundef %3701) #11
  br label %3720

3703:                                             ; preds = %3681, %3674
  %3704 = load i32, ptr %67, align 4, !tbaa !5
  %3705 = call ptr @__errno_location() #12
  store i32 %3704, ptr %3705, align 4, !tbaa !5
  %3706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3707 = load i32, ptr @test_count, align 4, !tbaa !5
  %3708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3709 = load i32, ptr %3708, align 4, !tbaa !5
  %3710 = call ptr @s2n_strerror(i32 noundef %3709, ptr noundef @.str.4)
  %3711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3712 = load i32, ptr %3711, align 4, !tbaa !5
  %3713 = call ptr @s2n_strerror_debug(i32 noundef %3712, ptr noundef @.str.4)
  %3714 = call ptr @__errno_location() #12
  %3715 = load i32, ptr %3714, align 4, !tbaa !5
  %3716 = call ptr @strerror(i32 noundef %3715) #11
  %3717 = call ptr @__errno_location() #12
  %3718 = load i32, ptr %3717, align 4, !tbaa !5
  %3719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3706, ptr noundef @.str.5, i32 noundef %3707, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 135, ptr noundef %3710, ptr noundef %3713, ptr noundef %3716, i32 noundef %3718) #11
  br label %3720

3720:                                             ; preds = %3703, %3686
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %3721

3721:                                             ; preds = %3720
  br label %3722

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

3723:                                             ; No predecessors!
  br label %3724

3724:                                             ; preds = %3723
  br label %3725

3725:                                             ; preds = %3724, %3663
  br label %3726

3726:                                             ; preds = %3725
  br label %3727

3727:                                             ; preds = %3726
  br label %3728

3728:                                             ; preds = %3727
  %3729 = load i32, ptr @test_count, align 4, !tbaa !5
  %3730 = add nsw i32 %3729, 1
  store i32 %3730, ptr @test_count, align 4, !tbaa !5
  %3731 = getelementptr inbounds %struct.s2n_stuffer, ptr %55, i32 0, i32 2
  %3732 = load i32, ptr %3731, align 4, !tbaa !55
  %3733 = getelementptr inbounds %struct.s2n_stuffer, ptr %55, i32 0, i32 1
  %3734 = load i32, ptr %3733, align 8, !tbaa !56
  %3735 = sub i32 %3732, %3734
  %3736 = icmp eq i32 %3735, 0
  br i1 %3736, label %3790, label %3737

3737:                                             ; preds = %3728
  br label %3738

3738:                                             ; preds = %3737
  br label %3739

3739:                                             ; preds = %3738
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %3740 = call ptr @__errno_location() #12
  %3741 = load i32, ptr %3740, align 4, !tbaa !5
  store i32 %3741, ptr %68, align 4, !tbaa !5
  %3742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3743 = call i32 @s2n_print_stacktrace(ptr noundef %3742)
  %3744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3745 = trunc i8 %3744 to i1
  br i1 %3745, label %3746, label %3768

3746:                                             ; preds = %3739
  %3747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3748 = call i32 @fileno(ptr noundef %3747) #11
  %3749 = call i32 @isatty(i32 noundef %3748) #11
  %3750 = icmp ne i32 %3749, 0
  br i1 %3750, label %3751, label %3768

3751:                                             ; preds = %3746
  %3752 = load i32, ptr %68, align 4, !tbaa !5
  %3753 = call ptr @__errno_location() #12
  store i32 %3752, ptr %3753, align 4, !tbaa !5
  %3754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3755 = load i32, ptr @test_count, align 4, !tbaa !5
  %3756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3757 = load i32, ptr %3756, align 4, !tbaa !5
  %3758 = call ptr @s2n_strerror(i32 noundef %3757, ptr noundef @.str.4)
  %3759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3760 = load i32, ptr %3759, align 4, !tbaa !5
  %3761 = call ptr @s2n_strerror_debug(i32 noundef %3760, ptr noundef @.str.4)
  %3762 = call ptr @__errno_location() #12
  %3763 = load i32, ptr %3762, align 4, !tbaa !5
  %3764 = call ptr @strerror(i32 noundef %3763) #11
  %3765 = call ptr @__errno_location() #12
  %3766 = load i32, ptr %3765, align 4, !tbaa !5
  %3767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3754, ptr noundef @.str.2, i32 noundef %3755, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 135, ptr noundef %3758, ptr noundef %3761, ptr noundef %3764, i32 noundef %3766) #11
  br label %3785

3768:                                             ; preds = %3746, %3739
  %3769 = load i32, ptr %68, align 4, !tbaa !5
  %3770 = call ptr @__errno_location() #12
  store i32 %3769, ptr %3770, align 4, !tbaa !5
  %3771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3772 = load i32, ptr @test_count, align 4, !tbaa !5
  %3773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3774 = load i32, ptr %3773, align 4, !tbaa !5
  %3775 = call ptr @s2n_strerror(i32 noundef %3774, ptr noundef @.str.4)
  %3776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3777 = load i32, ptr %3776, align 4, !tbaa !5
  %3778 = call ptr @s2n_strerror_debug(i32 noundef %3777, ptr noundef @.str.4)
  %3779 = call ptr @__errno_location() #12
  %3780 = load i32, ptr %3779, align 4, !tbaa !5
  %3781 = call ptr @strerror(i32 noundef %3780) #11
  %3782 = call ptr @__errno_location() #12
  %3783 = load i32, ptr %3782, align 4, !tbaa !5
  %3784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3771, ptr noundef @.str.5, i32 noundef %3772, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 135, ptr noundef %3775, ptr noundef %3778, ptr noundef %3781, i32 noundef %3783) #11
  br label %3785

3785:                                             ; preds = %3768, %3751
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %3786

3786:                                             ; preds = %3785
  br label %3787

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

3788:                                             ; No predecessors!
  br label %3789

3789:                                             ; preds = %3788
  br label %3790

3790:                                             ; preds = %3789, %3728
  br label %3791

3791:                                             ; preds = %3790
  br label %3792

3792:                                             ; preds = %3791
  br label %3793

3793:                                             ; preds = %3792
  br label %3794

3794:                                             ; preds = %3793
  br label %3795

3795:                                             ; preds = %3794
  %3796 = load i32, ptr @test_count, align 4, !tbaa !5
  %3797 = add nsw i32 %3796, 1
  store i32 %3797, ptr @test_count, align 4, !tbaa !5
  %3798 = load ptr, ptr %49, align 8, !tbaa !9
  %3799 = getelementptr inbounds %struct.s2n_connection, ptr %3798, i32 0, i32 31
  %3800 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3799, i32 0, i32 4
  %3801 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %3800, i32 0, i32 0
  %3802 = load ptr, ptr %3801, align 8, !tbaa !48
  %3803 = icmp eq ptr %3802, null
  br i1 %3803, label %3857, label %3804

3804:                                             ; preds = %3795
  br label %3805

3805:                                             ; preds = %3804
  br label %3806

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

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

3818:                                             ; preds = %3813
  %3819 = load i32, ptr %69, align 4, !tbaa !5
  %3820 = call ptr @__errno_location() #12
  store i32 %3819, ptr %3820, align 4, !tbaa !5
  %3821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3822 = load i32, ptr @test_count, align 4, !tbaa !5
  %3823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3824 = load i32, ptr %3823, align 4, !tbaa !5
  %3825 = call ptr @s2n_strerror(i32 noundef %3824, ptr noundef @.str.4)
  %3826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3827 = load i32, ptr %3826, align 4, !tbaa !5
  %3828 = call ptr @s2n_strerror_debug(i32 noundef %3827, ptr noundef @.str.4)
  %3829 = call ptr @__errno_location() #12
  %3830 = load i32, ptr %3829, align 4, !tbaa !5
  %3831 = call ptr @strerror(i32 noundef %3830) #11
  %3832 = call ptr @__errno_location() #12
  %3833 = load i32, ptr %3832, align 4, !tbaa !5
  %3834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3821, ptr noundef @.str.2, i32 noundef %3822, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 136, ptr noundef %3825, ptr noundef %3828, ptr noundef %3831, i32 noundef %3833) #11
  br label %3852

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

3852:                                             ; preds = %3835, %3818
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %3853

3853:                                             ; preds = %3852
  br label %3854

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

3855:                                             ; No predecessors!
  br label %3856

3856:                                             ; preds = %3855
  br label %3857

3857:                                             ; preds = %3856, %3795
  br label %3858

3858:                                             ; preds = %3857
  br label %3859

3859:                                             ; preds = %3858
  br label %3860

3860:                                             ; preds = %3859
  %3861 = load i32, ptr @test_count, align 4, !tbaa !5
  %3862 = add nsw i32 %3861, 1
  store i32 %3862, ptr @test_count, align 4, !tbaa !5
  %3863 = load ptr, ptr %49, align 8, !tbaa !9
  %3864 = getelementptr inbounds %struct.s2n_connection, ptr %3863, i32 0, i32 31
  %3865 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3864, i32 0, i32 1
  %3866 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %3865, i32 0, i32 0
  %3867 = load ptr, ptr %3866, align 8, !tbaa !42
  %3868 = load ptr, ptr %58, align 8, !tbaa !9
  %3869 = icmp eq ptr %3867, %3868
  br i1 %3869, label %3923, label %3870

3870:                                             ; preds = %3860
  br label %3871

3871:                                             ; preds = %3870
  br label %3872

3872:                                             ; preds = %3871
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %3873 = call ptr @__errno_location() #12
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  store i32 %3874, ptr %70, align 4, !tbaa !5
  %3875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3876 = call i32 @s2n_print_stacktrace(ptr noundef %3875)
  %3877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3878 = trunc i8 %3877 to i1
  br i1 %3878, label %3879, label %3901

3879:                                             ; preds = %3872
  %3880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3881 = call i32 @fileno(ptr noundef %3880) #11
  %3882 = call i32 @isatty(i32 noundef %3881) #11
  %3883 = icmp ne i32 %3882, 0
  br i1 %3883, label %3884, label %3901

3884:                                             ; preds = %3879
  %3885 = load i32, ptr %70, align 4, !tbaa !5
  %3886 = call ptr @__errno_location() #12
  store i32 %3885, ptr %3886, align 4, !tbaa !5
  %3887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3888 = load i32, ptr @test_count, align 4, !tbaa !5
  %3889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3890 = load i32, ptr %3889, align 4, !tbaa !5
  %3891 = call ptr @s2n_strerror(i32 noundef %3890, ptr noundef @.str.4)
  %3892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3893 = load i32, ptr %3892, align 4, !tbaa !5
  %3894 = call ptr @s2n_strerror_debug(i32 noundef %3893, ptr noundef @.str.4)
  %3895 = call ptr @__errno_location() #12
  %3896 = load i32, ptr %3895, align 4, !tbaa !5
  %3897 = call ptr @strerror(i32 noundef %3896) #11
  %3898 = call ptr @__errno_location() #12
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3887, ptr noundef @.str.2, i32 noundef %3888, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 137, ptr noundef %3891, ptr noundef %3894, ptr noundef %3897, i32 noundef %3899) #11
  br label %3918

3901:                                             ; preds = %3879, %3872
  %3902 = load i32, ptr %70, align 4, !tbaa !5
  %3903 = call ptr @__errno_location() #12
  store i32 %3902, ptr %3903, align 4, !tbaa !5
  %3904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3905 = load i32, ptr @test_count, align 4, !tbaa !5
  %3906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3907 = load i32, ptr %3906, align 4, !tbaa !5
  %3908 = call ptr @s2n_strerror(i32 noundef %3907, ptr noundef @.str.4)
  %3909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3910 = load i32, ptr %3909, align 4, !tbaa !5
  %3911 = call ptr @s2n_strerror_debug(i32 noundef %3910, ptr noundef @.str.4)
  %3912 = call ptr @__errno_location() #12
  %3913 = load i32, ptr %3912, align 4, !tbaa !5
  %3914 = call ptr @strerror(i32 noundef %3913) #11
  %3915 = call ptr @__errno_location() #12
  %3916 = load i32, ptr %3915, align 4, !tbaa !5
  %3917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3904, ptr noundef @.str.5, i32 noundef %3905, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 137, ptr noundef %3908, ptr noundef %3911, ptr noundef %3914, i32 noundef %3916) #11
  br label %3918

3918:                                             ; preds = %3901, %3884
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %3919

3919:                                             ; preds = %3918
  br label %3920

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

3921:                                             ; No predecessors!
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

3923:                                             ; preds = %3922, %3860
  br label %3924

3924:                                             ; preds = %3923
  br label %3925

3925:                                             ; preds = %3924
  br label %3926

3926:                                             ; preds = %3925
  %3927 = load i32, ptr @test_count, align 4, !tbaa !5
  %3928 = add nsw i32 %3927, 1
  store i32 %3928, ptr @test_count, align 4, !tbaa !5
  %3929 = load ptr, ptr %49, align 8, !tbaa !9
  %3930 = getelementptr inbounds %struct.s2n_connection, ptr %3929, i32 0, i32 31
  %3931 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3930, i32 0, i32 1
  %3932 = call i32 @s2n_ecc_evp_params_free(ptr noundef %3931)
  %3933 = icmp eq i32 %3932, -1
  br i1 %3933, label %3934, label %3987

3934:                                             ; preds = %3926
  br label %3935

3935:                                             ; preds = %3934
  br label %3936

3936:                                             ; preds = %3935
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %3937 = call ptr @__errno_location() #12
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  store i32 %3938, ptr %71, align 4, !tbaa !5
  %3939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3940 = call i32 @s2n_print_stacktrace(ptr noundef %3939)
  %3941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3942 = trunc i8 %3941 to i1
  br i1 %3942, label %3943, label %3965

3943:                                             ; preds = %3936
  %3944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3945 = call i32 @fileno(ptr noundef %3944) #11
  %3946 = call i32 @isatty(i32 noundef %3945) #11
  %3947 = icmp ne i32 %3946, 0
  br i1 %3947, label %3948, label %3965

3948:                                             ; preds = %3943
  %3949 = load i32, ptr %71, align 4, !tbaa !5
  %3950 = call ptr @__errno_location() #12
  store i32 %3949, ptr %3950, align 4, !tbaa !5
  %3951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3952 = load i32, ptr @test_count, align 4, !tbaa !5
  %3953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3954 = load i32, ptr %3953, align 4, !tbaa !5
  %3955 = call ptr @s2n_strerror(i32 noundef %3954, ptr noundef @.str.4)
  %3956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3957 = load i32, ptr %3956, align 4, !tbaa !5
  %3958 = call ptr @s2n_strerror_debug(i32 noundef %3957, ptr noundef @.str.4)
  %3959 = call ptr @__errno_location() #12
  %3960 = load i32, ptr %3959, align 4, !tbaa !5
  %3961 = call ptr @strerror(i32 noundef %3960) #11
  %3962 = call ptr @__errno_location() #12
  %3963 = load i32, ptr %3962, align 4, !tbaa !5
  %3964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3951, ptr noundef @.str.2, i32 noundef %3952, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3955, ptr noundef %3958, ptr noundef %3961, i32 noundef %3963) #11
  br label %3982

3965:                                             ; preds = %3943, %3936
  %3966 = load i32, ptr %71, align 4, !tbaa !5
  %3967 = call ptr @__errno_location() #12
  store i32 %3966, ptr %3967, align 4, !tbaa !5
  %3968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3969 = load i32, ptr @test_count, align 4, !tbaa !5
  %3970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3971 = load i32, ptr %3970, align 4, !tbaa !5
  %3972 = call ptr @s2n_strerror(i32 noundef %3971, ptr noundef @.str.4)
  %3973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3974 = load i32, ptr %3973, align 4, !tbaa !5
  %3975 = call ptr @s2n_strerror_debug(i32 noundef %3974, ptr noundef @.str.4)
  %3976 = call ptr @__errno_location() #12
  %3977 = load i32, ptr %3976, align 4, !tbaa !5
  %3978 = call ptr @strerror(i32 noundef %3977) #11
  %3979 = call ptr @__errno_location() #12
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3968, ptr noundef @.str.5, i32 noundef %3969, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3972, ptr noundef %3975, ptr noundef %3978, i32 noundef %3980) #11
  br label %3982

3982:                                             ; preds = %3965, %3948
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %3983

3983:                                             ; preds = %3982
  br label %3984

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

3985:                                             ; No predecessors!
  br label %3986

3986:                                             ; preds = %3985
  br label %3987

3987:                                             ; preds = %3986, %3926
  br label %3988

3988:                                             ; preds = %3987
  br label %3989

3989:                                             ; preds = %3988
  br label %3990

3990:                                             ; preds = %3989
  %3991 = load i32, ptr @test_count, align 4, !tbaa !5
  %3992 = add nsw i32 %3991, 1
  store i32 %3992, ptr @test_count, align 4, !tbaa !5
  %3993 = load ptr, ptr %49, align 8, !tbaa !9
  %3994 = getelementptr inbounds %struct.s2n_connection, ptr %3993, i32 0, i32 31
  %3995 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3994, i32 0, i32 3
  %3996 = call i32 @s2n_ecc_evp_params_free(ptr noundef %3995)
  %3997 = icmp eq i32 %3996, -1
  br i1 %3997, label %3998, label %4051

3998:                                             ; preds = %3990
  br label %3999

3999:                                             ; preds = %3998
  br label %4000

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

4007:                                             ; preds = %4000
  %4008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4009 = call i32 @fileno(ptr noundef %4008) #11
  %4010 = call i32 @isatty(i32 noundef %4009) #11
  %4011 = icmp ne i32 %4010, 0
  br i1 %4011, label %4012, label %4029

4012:                                             ; preds = %4007
  %4013 = load i32, ptr %72, align 4, !tbaa !5
  %4014 = call ptr @__errno_location() #12
  store i32 %4013, ptr %4014, align 4, !tbaa !5
  %4015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4016 = load i32, ptr @test_count, align 4, !tbaa !5
  %4017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4018 = load i32, ptr %4017, align 4, !tbaa !5
  %4019 = call ptr @s2n_strerror(i32 noundef %4018, ptr noundef @.str.4)
  %4020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4021 = load i32, ptr %4020, align 4, !tbaa !5
  %4022 = call ptr @s2n_strerror_debug(i32 noundef %4021, ptr noundef @.str.4)
  %4023 = call ptr @__errno_location() #12
  %4024 = load i32, ptr %4023, align 4, !tbaa !5
  %4025 = call ptr @strerror(i32 noundef %4024) #11
  %4026 = call ptr @__errno_location() #12
  %4027 = load i32, ptr %4026, align 4, !tbaa !5
  %4028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4015, ptr noundef @.str.2, i32 noundef %4016, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 139, ptr noundef %4019, ptr noundef %4022, ptr noundef %4025, i32 noundef %4027) #11
  br label %4046

4029:                                             ; preds = %4007, %4000
  %4030 = load i32, ptr %72, align 4, !tbaa !5
  %4031 = call ptr @__errno_location() #12
  store i32 %4030, ptr %4031, align 4, !tbaa !5
  %4032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4033 = load i32, ptr @test_count, align 4, !tbaa !5
  %4034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4035 = load i32, ptr %4034, align 4, !tbaa !5
  %4036 = call ptr @s2n_strerror(i32 noundef %4035, ptr noundef @.str.4)
  %4037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4038 = load i32, ptr %4037, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror_debug(i32 noundef %4038, ptr noundef @.str.4)
  %4040 = call ptr @__errno_location() #12
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call ptr @strerror(i32 noundef %4041) #11
  %4043 = call ptr @__errno_location() #12
  %4044 = load i32, ptr %4043, align 4, !tbaa !5
  %4045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4032, ptr noundef @.str.5, i32 noundef %4033, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 139, ptr noundef %4036, ptr noundef %4039, ptr noundef %4042, i32 noundef %4044) #11
  br label %4046

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

4047:                                             ; preds = %4046
  br label %4048

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

4049:                                             ; No predecessors!
  br label %4050

4050:                                             ; preds = %4049
  br label %4051

4051:                                             ; preds = %4050, %3990
  br label %4052

4052:                                             ; preds = %4051
  br label %4053

4053:                                             ; preds = %4052
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  br label %4054

4054:                                             ; preds = %4053
  %4055 = load i64, ptr %57, align 8, !tbaa !49
  %4056 = add i64 %4055, 1
  store i64 %4056, ptr %57, align 8, !tbaa !49
  br label %3250, !llvm.loop !57

4057:                                             ; preds = %3257
  br label %4058

4058:                                             ; preds = %4057
  %4059 = load i32, ptr @test_count, align 4, !tbaa !5
  %4060 = add nsw i32 %4059, 1
  store i32 %4060, ptr @test_count, align 4, !tbaa !5
  %4061 = load ptr, ptr %49, align 8, !tbaa !9
  %4062 = call i32 @s2n_connection_free(ptr noundef %4061)
  %4063 = icmp eq i32 %4062, -1
  br i1 %4063, label %4064, label %4117

4064:                                             ; preds = %4058
  br label %4065

4065:                                             ; preds = %4064
  br label %4066

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

4073:                                             ; preds = %4066
  %4074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4075 = call i32 @fileno(ptr noundef %4074) #11
  %4076 = call i32 @isatty(i32 noundef %4075) #11
  %4077 = icmp ne i32 %4076, 0
  br i1 %4077, label %4078, label %4095

4078:                                             ; preds = %4073
  %4079 = load i32, ptr %73, align 4, !tbaa !5
  %4080 = call ptr @__errno_location() #12
  store i32 %4079, ptr %4080, align 4, !tbaa !5
  %4081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4082 = load i32, ptr @test_count, align 4, !tbaa !5
  %4083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4084 = load i32, ptr %4083, align 4, !tbaa !5
  %4085 = call ptr @s2n_strerror(i32 noundef %4084, ptr noundef @.str.4)
  %4086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call ptr @s2n_strerror_debug(i32 noundef %4087, ptr noundef @.str.4)
  %4089 = call ptr @__errno_location() #12
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call ptr @strerror(i32 noundef %4090) #11
  %4092 = call ptr @__errno_location() #12
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4081, ptr noundef @.str.2, i32 noundef %4082, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 142, ptr noundef %4085, ptr noundef %4088, ptr noundef %4091, i32 noundef %4093) #11
  br label %4112

4095:                                             ; preds = %4073, %4066
  %4096 = load i32, ptr %73, align 4, !tbaa !5
  %4097 = call ptr @__errno_location() #12
  store i32 %4096, ptr %4097, align 4, !tbaa !5
  %4098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4099 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4101, ptr noundef @.str.4)
  %4103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4104 = load i32, ptr %4103, align 4, !tbaa !5
  %4105 = call ptr @s2n_strerror_debug(i32 noundef %4104, ptr noundef @.str.4)
  %4106 = call ptr @__errno_location() #12
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @strerror(i32 noundef %4107) #11
  %4109 = call ptr @__errno_location() #12
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4098, ptr noundef @.str.5, i32 noundef %4099, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 142, ptr noundef %4102, ptr noundef %4105, ptr noundef %4108, i32 noundef %4110) #11
  br label %4112

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

4113:                                             ; preds = %4112
  br label %4114

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

4115:                                             ; No predecessors!
  br label %4116

4116:                                             ; preds = %4115
  br label %4117

4117:                                             ; preds = %4116, %4058
  br label %4118

4118:                                             ; preds = %4117
  br label %4119

4119:                                             ; preds = %4118
  %4120 = call i32 @s2n_stuffer_free(ptr noundef %55)
  call void @llvm.lifetime.end.p0(i64 40, ptr %55) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #11
  store ptr null, ptr %74, align 8, !tbaa !9
  br label %4121

4121:                                             ; preds = %4119
  %4122 = load i32, ptr @test_count, align 4, !tbaa !5
  %4123 = add nsw i32 %4122, 1
  store i32 %4123, ptr @test_count, align 4, !tbaa !5
  %4124 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4124, ptr %74, align 8, !tbaa !9
  %4125 = icmp eq ptr %4124, null
  br i1 %4125, label %4126, label %4179

4126:                                             ; preds = %4121
  br label %4127

4127:                                             ; preds = %4126
  br label %4128

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

4135:                                             ; preds = %4128
  %4136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4137 = call i32 @fileno(ptr noundef %4136) #11
  %4138 = call i32 @isatty(i32 noundef %4137) #11
  %4139 = icmp ne i32 %4138, 0
  br i1 %4139, label %4140, label %4157

4140:                                             ; preds = %4135
  %4141 = load i32, ptr %75, align 4, !tbaa !5
  %4142 = call ptr @__errno_location() #12
  store i32 %4141, ptr %4142, align 4, !tbaa !5
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4144 = load i32, ptr @test_count, align 4, !tbaa !5
  %4145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4146 = load i32, ptr %4145, align 4, !tbaa !5
  %4147 = call ptr @s2n_strerror(i32 noundef %4146, ptr noundef @.str.4)
  %4148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4149 = load i32, ptr %4148, align 4, !tbaa !5
  %4150 = call ptr @s2n_strerror_debug(i32 noundef %4149, ptr noundef @.str.4)
  %4151 = call ptr @__errno_location() #12
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  %4153 = call ptr @strerror(i32 noundef %4152) #11
  %4154 = call ptr @__errno_location() #12
  %4155 = load i32, ptr %4154, align 4, !tbaa !5
  %4156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4143, ptr noundef @.str.2, i32 noundef %4144, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 148, ptr noundef %4147, ptr noundef %4150, ptr noundef %4153, i32 noundef %4155) #11
  br label %4174

4157:                                             ; preds = %4135, %4128
  %4158 = load i32, ptr %75, align 4, !tbaa !5
  %4159 = call ptr @__errno_location() #12
  store i32 %4158, ptr %4159, align 4, !tbaa !5
  %4160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4161 = load i32, ptr @test_count, align 4, !tbaa !5
  %4162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4163 = load i32, ptr %4162, align 4, !tbaa !5
  %4164 = call ptr @s2n_strerror(i32 noundef %4163, ptr noundef @.str.4)
  %4165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4166 = load i32, ptr %4165, align 4, !tbaa !5
  %4167 = call ptr @s2n_strerror_debug(i32 noundef %4166, ptr noundef @.str.4)
  %4168 = call ptr @__errno_location() #12
  %4169 = load i32, ptr %4168, align 4, !tbaa !5
  %4170 = call ptr @strerror(i32 noundef %4169) #11
  %4171 = call ptr @__errno_location() #12
  %4172 = load i32, ptr %4171, align 4, !tbaa !5
  %4173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4160, ptr noundef @.str.5, i32 noundef %4161, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 148, ptr noundef %4164, ptr noundef %4167, ptr noundef %4170, i32 noundef %4172) #11
  br label %4174

4174:                                             ; preds = %4157, %4140
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %4175

4175:                                             ; preds = %4174
  br label %4176

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

4177:                                             ; No predecessors!
  br label %4178

4178:                                             ; preds = %4177
  br label %4179

4179:                                             ; preds = %4178, %4121
  br label %4180

4180:                                             ; preds = %4179
  br label %4181

4181:                                             ; preds = %4180
  %4182 = load ptr, ptr %74, align 8, !tbaa !9
  %4183 = getelementptr inbounds %struct.s2n_connection, ptr %4182, i32 0, i32 23
  store i8 34, ptr %4183, align 4, !tbaa !59
  br label %4184

4184:                                             ; preds = %4181
  %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 %74, align 8, !tbaa !9
  %4188 = call i32 @s2n_conn_choose_state_machine(ptr noundef %4187, i8 noundef zeroext 34)
  %4189 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  store i32 %4188, ptr %4189, align 4
  %4190 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  %4191 = load i32, ptr %4190, align 4
  %4192 = call zeroext i1 @s2n_result_is_ok(i32 %4191)
  br i1 %4192, label %4246, label %4193

4193:                                             ; preds = %4184
  br label %4194

4194:                                             ; preds = %4193
  br label %4195

4195:                                             ; preds = %4194
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %4196 = call ptr @__errno_location() #12
  %4197 = load i32, ptr %4196, align 4, !tbaa !5
  store i32 %4197, ptr %77, 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) #11
  %4205 = call i32 @isatty(i32 noundef %4204) #11
  %4206 = icmp ne i32 %4205, 0
  br i1 %4206, label %4207, label %4224

4207:                                             ; preds = %4202
  %4208 = load i32, ptr %77, align 4, !tbaa !5
  %4209 = call ptr @__errno_location() #12
  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() #12
  %4219 = load i32, ptr %4218, align 4, !tbaa !5
  %4220 = call ptr @strerror(i32 noundef %4219) #11
  %4221 = call ptr @__errno_location() #12
  %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.23, ptr noundef @.str.1, i32 noundef 150, ptr noundef %4214, ptr noundef %4217, ptr noundef %4220, i32 noundef %4222) #11
  br label %4241

4224:                                             ; preds = %4202, %4195
  %4225 = load i32, ptr %77, align 4, !tbaa !5
  %4226 = call ptr @__errno_location() #12
  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() #12
  %4236 = load i32, ptr %4235, align 4, !tbaa !5
  %4237 = call ptr @strerror(i32 noundef %4236) #11
  %4238 = call ptr @__errno_location() #12
  %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.23, ptr noundef @.str.1, i32 noundef 150, ptr noundef %4231, ptr noundef %4234, ptr noundef %4237, i32 noundef %4239) #11
  br label %4241

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

4242:                                             ; preds = %4241
  br label %4243

4243:                                             ; preds = %4242
  call void @exit(i32 noundef 1) #13
  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
  %4249 = load ptr, ptr %74, align 8, !tbaa !9
  %4250 = getelementptr inbounds %struct.s2n_connection, ptr %4249, i32 0, i32 52
  %4251 = getelementptr inbounds %struct.s2n_handshake, ptr %4250, i32 0, i32 6
  store i32 16, ptr %4251, align 4, !tbaa !60
  %4252 = load ptr, ptr %74, align 8, !tbaa !9
  %4253 = getelementptr inbounds %struct.s2n_connection, ptr %4252, i32 0, i32 52
  %4254 = getelementptr inbounds %struct.s2n_handshake, ptr %4253, i32 0, i32 7
  store i32 1, ptr %4254, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #11
  store ptr null, ptr %78, align 8, !tbaa !9
  br label %4255

4255:                                             ; preds = %4248
  %4256 = load i32, ptr @test_count, align 4, !tbaa !5
  %4257 = add nsw i32 %4256, 1
  store i32 %4257, ptr @test_count, align 4, !tbaa !5
  %4258 = load ptr, ptr %74, align 8, !tbaa !9
  %4259 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %4258, ptr noundef %78)
  %4260 = icmp eq i32 %4259, -1
  br i1 %4260, label %4261, label %4314

4261:                                             ; preds = %4255
  br label %4262

4262:                                             ; preds = %4261
  br label %4263

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

4270:                                             ; preds = %4263
  %4271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4272 = call i32 @fileno(ptr noundef %4271) #11
  %4273 = call i32 @isatty(i32 noundef %4272) #11
  %4274 = icmp ne i32 %4273, 0
  br i1 %4274, label %4275, label %4292

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

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

4309:                                             ; preds = %4292, %4275
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %4310

4310:                                             ; preds = %4309
  br label %4311

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

4312:                                             ; No predecessors!
  br label %4313

4313:                                             ; preds = %4312
  br label %4314

4314:                                             ; preds = %4313, %4255
  br label %4315

4315:                                             ; preds = %4314
  br label %4316

4316:                                             ; preds = %4315
  br label %4317

4317:                                             ; preds = %4316
  %4318 = load i32, ptr @test_count, align 4, !tbaa !5
  %4319 = add nsw i32 %4318, 1
  store i32 %4319, ptr @test_count, align 4, !tbaa !5
  %4320 = load ptr, ptr %78, align 8, !tbaa !9
  %4321 = icmp eq ptr %4320, null
  br i1 %4321, label %4322, label %4375

4322:                                             ; preds = %4317
  br label %4323

4323:                                             ; preds = %4322
  br label %4324

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

4331:                                             ; preds = %4324
  %4332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4333 = call i32 @fileno(ptr noundef %4332) #11
  %4334 = call i32 @isatty(i32 noundef %4333) #11
  %4335 = icmp ne i32 %4334, 0
  br i1 %4335, label %4336, label %4353

4336:                                             ; preds = %4331
  %4337 = load i32, ptr %80, align 4, !tbaa !5
  %4338 = call ptr @__errno_location() #12
  store i32 %4337, ptr %4338, align 4, !tbaa !5
  %4339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4340 = load i32, ptr @test_count, align 4, !tbaa !5
  %4341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4342 = load i32, ptr %4341, align 4, !tbaa !5
  %4343 = call ptr @s2n_strerror(i32 noundef %4342, ptr noundef @.str.4)
  %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_debug(i32 noundef %4345, ptr noundef @.str.4)
  %4347 = call ptr @__errno_location() #12
  %4348 = load i32, ptr %4347, align 4, !tbaa !5
  %4349 = call ptr @strerror(i32 noundef %4348) #11
  %4350 = call ptr @__errno_location() #12
  %4351 = load i32, ptr %4350, align 4, !tbaa !5
  %4352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4339, ptr noundef @.str.2, i32 noundef %4340, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 156, ptr noundef %4343, ptr noundef %4346, ptr noundef %4349, i32 noundef %4351) #11
  br label %4370

4353:                                             ; preds = %4331, %4324
  %4354 = load i32, ptr %80, align 4, !tbaa !5
  %4355 = call ptr @__errno_location() #12
  store i32 %4354, ptr %4355, align 4, !tbaa !5
  %4356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4357 = load i32, ptr @test_count, align 4, !tbaa !5
  %4358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4359 = load i32, ptr %4358, align 4, !tbaa !5
  %4360 = call ptr @s2n_strerror(i32 noundef %4359, ptr noundef @.str.4)
  %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_debug(i32 noundef %4362, ptr noundef @.str.4)
  %4364 = call ptr @__errno_location() #12
  %4365 = load i32, ptr %4364, align 4, !tbaa !5
  %4366 = call ptr @strerror(i32 noundef %4365) #11
  %4367 = call ptr @__errno_location() #12
  %4368 = load i32, ptr %4367, align 4, !tbaa !5
  %4369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4356, ptr noundef @.str.5, i32 noundef %4357, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 156, ptr noundef %4360, ptr noundef %4363, ptr noundef %4366, i32 noundef %4368) #11
  br label %4370

4370:                                             ; preds = %4353, %4336
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %4371

4371:                                             ; preds = %4370
  br label %4372

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

4373:                                             ; No predecessors!
  br label %4374

4374:                                             ; preds = %4373
  br label %4375

4375:                                             ; preds = %4374, %4317
  br label %4376

4376:                                             ; preds = %4375
  br label %4377

4377:                                             ; preds = %4376
  br label %4378

4378:                                             ; preds = %4377
  %4379 = load i32, ptr @test_count, align 4, !tbaa !5
  %4380 = add nsw i32 %4379, 1
  store i32 %4380, ptr @test_count, align 4, !tbaa !5
  %4381 = load ptr, ptr %74, align 8, !tbaa !9
  %4382 = getelementptr inbounds %struct.s2n_connection, ptr %4381, i32 0, i32 31
  %4383 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4382, i32 0, i32 4
  %4384 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %4383, i32 0, i32 0
  %4385 = load ptr, ptr %4384, align 8, !tbaa !48
  %4386 = icmp eq ptr %4385, null
  br i1 %4386, label %4440, label %4387

4387:                                             ; preds = %4378
  br label %4388

4388:                                             ; preds = %4387
  br label %4389

4389:                                             ; preds = %4388
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %4390 = call ptr @__errno_location() #12
  %4391 = load i32, ptr %4390, align 4, !tbaa !5
  store i32 %4391, ptr %81, align 4, !tbaa !5
  %4392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4393 = call i32 @s2n_print_stacktrace(ptr noundef %4392)
  %4394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4395 = trunc i8 %4394 to i1
  br i1 %4395, label %4396, label %4418

4396:                                             ; preds = %4389
  %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
  %4400 = icmp ne i32 %4399, 0
  br i1 %4400, label %4401, label %4418

4401:                                             ; preds = %4396
  %4402 = load i32, ptr %81, align 4, !tbaa !5
  %4403 = call ptr @__errno_location() #12
  store i32 %4402, ptr %4403, align 4, !tbaa !5
  %4404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4405 = load i32, ptr @test_count, align 4, !tbaa !5
  %4406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4407 = load i32, ptr %4406, align 4, !tbaa !5
  %4408 = call ptr @s2n_strerror(i32 noundef %4407, ptr noundef @.str.4)
  %4409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  %4411 = call ptr @s2n_strerror_debug(i32 noundef %4410, ptr noundef @.str.4)
  %4412 = call ptr @__errno_location() #12
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  %4414 = call ptr @strerror(i32 noundef %4413) #11
  %4415 = call ptr @__errno_location() #12
  %4416 = load i32, ptr %4415, align 4, !tbaa !5
  %4417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4404, ptr noundef @.str.2, i32 noundef %4405, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 158, ptr noundef %4408, ptr noundef %4411, ptr noundef %4414, i32 noundef %4416) #11
  br label %4435

4418:                                             ; preds = %4396, %4389
  %4419 = load i32, ptr %81, align 4, !tbaa !5
  %4420 = call ptr @__errno_location() #12
  store i32 %4419, ptr %4420, align 4, !tbaa !5
  %4421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4422 = load i32, ptr @test_count, align 4, !tbaa !5
  %4423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4424 = load i32, ptr %4423, align 4, !tbaa !5
  %4425 = call ptr @s2n_strerror(i32 noundef %4424, ptr noundef @.str.4)
  %4426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4427 = load i32, ptr %4426, align 4, !tbaa !5
  %4428 = call ptr @s2n_strerror_debug(i32 noundef %4427, ptr noundef @.str.4)
  %4429 = call ptr @__errno_location() #12
  %4430 = load i32, ptr %4429, align 4, !tbaa !5
  %4431 = call ptr @strerror(i32 noundef %4430) #11
  %4432 = call ptr @__errno_location() #12
  %4433 = load i32, ptr %4432, align 4, !tbaa !5
  %4434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4421, ptr noundef @.str.5, i32 noundef %4422, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 158, ptr noundef %4425, ptr noundef %4428, ptr noundef %4431, i32 noundef %4433) #11
  br label %4435

4435:                                             ; preds = %4418, %4401
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %4436

4436:                                             ; preds = %4435
  br label %4437

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

4438:                                             ; No predecessors!
  br label %4439

4439:                                             ; preds = %4438
  br label %4440

4440:                                             ; preds = %4439, %4378
  br label %4441

4441:                                             ; preds = %4440
  br label %4442

4442:                                             ; preds = %4441
  call void @llvm.lifetime.start.p0(i64 40, ptr %82) #11
  call void @llvm.memset.p0.i64(ptr align 8 %82, i8 0, i64 40, i1 false)
  br label %4443

4443:                                             ; preds = %4442
  %4444 = load i32, ptr @test_count, align 4, !tbaa !5
  %4445 = add nsw i32 %4444, 1
  store i32 %4445, ptr @test_count, align 4, !tbaa !5
  %4446 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %82, i32 noundef 1024)
  %4447 = icmp eq i32 %4446, -1
  br i1 %4447, label %4448, label %4501

4448:                                             ; preds = %4443
  br label %4449

4449:                                             ; preds = %4448
  br label %4450

4450:                                             ; preds = %4449
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %4451 = call ptr @__errno_location() #12
  %4452 = load i32, ptr %4451, align 4, !tbaa !5
  store i32 %4452, ptr %83, align 4, !tbaa !5
  %4453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4454 = call i32 @s2n_print_stacktrace(ptr noundef %4453)
  %4455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4456 = trunc i8 %4455 to i1
  br i1 %4456, label %4457, label %4479

4457:                                             ; preds = %4450
  %4458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4459 = call i32 @fileno(ptr noundef %4458) #11
  %4460 = call i32 @isatty(i32 noundef %4459) #11
  %4461 = icmp ne i32 %4460, 0
  br i1 %4461, label %4462, label %4479

4462:                                             ; preds = %4457
  %4463 = load i32, ptr %83, align 4, !tbaa !5
  %4464 = call ptr @__errno_location() #12
  store i32 %4463, ptr %4464, align 4, !tbaa !5
  %4465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4466 = load i32, ptr @test_count, align 4, !tbaa !5
  %4467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4468 = load i32, ptr %4467, align 4, !tbaa !5
  %4469 = call ptr @s2n_strerror(i32 noundef %4468, ptr noundef @.str.4)
  %4470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4471 = load i32, ptr %4470, align 4, !tbaa !5
  %4472 = call ptr @s2n_strerror_debug(i32 noundef %4471, ptr noundef @.str.4)
  %4473 = call ptr @__errno_location() #12
  %4474 = load i32, ptr %4473, align 4, !tbaa !5
  %4475 = call ptr @strerror(i32 noundef %4474) #11
  %4476 = call ptr @__errno_location() #12
  %4477 = load i32, ptr %4476, align 4, !tbaa !5
  %4478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4465, ptr noundef @.str.2, i32 noundef %4466, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 160, ptr noundef %4469, ptr noundef %4472, ptr noundef %4475, i32 noundef %4477) #11
  br label %4496

4479:                                             ; preds = %4457, %4450
  %4480 = load i32, ptr %83, align 4, !tbaa !5
  %4481 = call ptr @__errno_location() #12
  store i32 %4480, ptr %4481, align 4, !tbaa !5
  %4482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4483 = load i32, ptr @test_count, align 4, !tbaa !5
  %4484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4485 = load i32, ptr %4484, align 4, !tbaa !5
  %4486 = call ptr @s2n_strerror(i32 noundef %4485, ptr noundef @.str.4)
  %4487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4488 = load i32, ptr %4487, align 4, !tbaa !5
  %4489 = call ptr @s2n_strerror_debug(i32 noundef %4488, ptr noundef @.str.4)
  %4490 = call ptr @__errno_location() #12
  %4491 = load i32, ptr %4490, align 4, !tbaa !5
  %4492 = call ptr @strerror(i32 noundef %4491) #11
  %4493 = call ptr @__errno_location() #12
  %4494 = load i32, ptr %4493, align 4, !tbaa !5
  %4495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4482, ptr noundef @.str.5, i32 noundef %4483, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 160, ptr noundef %4486, ptr noundef %4489, ptr noundef %4492, i32 noundef %4494) #11
  br label %4496

4496:                                             ; preds = %4479, %4462
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %4497

4497:                                             ; preds = %4496
  br label %4498

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

4499:                                             ; No predecessors!
  br label %4500

4500:                                             ; preds = %4499
  br label %4501

4501:                                             ; preds = %4500, %4443
  br label %4502

4502:                                             ; preds = %4501
  br label %4503

4503:                                             ; preds = %4502
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #11
  store i64 0, ptr %84, align 8, !tbaa !49
  br label %4504

4504:                                             ; preds = %4978, %4503
  %4505 = load i64, ptr %84, align 8, !tbaa !49
  %4506 = load ptr, ptr %78, align 8, !tbaa !9
  %4507 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %4506, i32 0, i32 0
  %4508 = load i8, ptr %4507, align 8, !tbaa !50
  %4509 = zext i8 %4508 to i64
  %4510 = icmp ult i64 %4505, %4509
  br i1 %4510, label %4512, label %4511

4511:                                             ; preds = %4504
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #11
  br label %4981

4512:                                             ; preds = %4504
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #11
  %4513 = load ptr, ptr %78, align 8, !tbaa !9
  %4514 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %4513, i32 0, i32 1
  %4515 = load ptr, ptr %4514, align 8, !tbaa !43
  %4516 = load i64, ptr %84, align 8, !tbaa !49
  %4517 = getelementptr inbounds ptr, ptr %4515, i64 %4516
  %4518 = load ptr, ptr %4517, align 8, !tbaa !9
  store ptr %4518, ptr %85, align 8, !tbaa !9
  %4519 = load ptr, ptr %85, align 8, !tbaa !9
  %4520 = load ptr, ptr %74, align 8, !tbaa !9
  %4521 = getelementptr inbounds %struct.s2n_connection, ptr %4520, i32 0, i32 31
  %4522 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4521, i32 0, i32 1
  %4523 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4522, i32 0, i32 0
  store ptr %4519, ptr %4523, align 8, !tbaa !42
  br label %4524

4524:                                             ; preds = %4512
  %4525 = load i32, ptr @test_count, align 4, !tbaa !5
  %4526 = add nsw i32 %4525, 1
  store i32 %4526, ptr @test_count, align 4, !tbaa !5
  %4527 = load ptr, ptr %74, align 8, !tbaa !9
  %4528 = getelementptr inbounds %struct.s2n_connection, ptr %4527, i32 0, i32 31
  %4529 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4528, i32 0, i32 1
  %4530 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4529, i32 0, i32 1
  %4531 = load ptr, ptr %4530, align 8, !tbaa !62
  %4532 = icmp eq ptr %4531, null
  br i1 %4532, label %4586, label %4533

4533:                                             ; preds = %4524
  br label %4534

4534:                                             ; preds = %4533
  br label %4535

4535:                                             ; preds = %4534
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %4536 = call ptr @__errno_location() #12
  %4537 = load i32, ptr %4536, align 4, !tbaa !5
  store i32 %4537, ptr %86, align 4, !tbaa !5
  %4538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4539 = call i32 @s2n_print_stacktrace(ptr noundef %4538)
  %4540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4541 = trunc i8 %4540 to i1
  br i1 %4541, label %4542, label %4564

4542:                                             ; preds = %4535
  %4543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4544 = call i32 @fileno(ptr noundef %4543) #11
  %4545 = call i32 @isatty(i32 noundef %4544) #11
  %4546 = icmp ne i32 %4545, 0
  br i1 %4546, label %4547, label %4564

4547:                                             ; preds = %4542
  %4548 = load i32, ptr %86, align 4, !tbaa !5
  %4549 = call ptr @__errno_location() #12
  store i32 %4548, ptr %4549, align 4, !tbaa !5
  %4550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4551 = load i32, ptr @test_count, align 4, !tbaa !5
  %4552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4553 = load i32, ptr %4552, align 4, !tbaa !5
  %4554 = call ptr @s2n_strerror(i32 noundef %4553, ptr noundef @.str.4)
  %4555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4556 = load i32, ptr %4555, align 4, !tbaa !5
  %4557 = call ptr @s2n_strerror_debug(i32 noundef %4556, ptr noundef @.str.4)
  %4558 = call ptr @__errno_location() #12
  %4559 = load i32, ptr %4558, align 4, !tbaa !5
  %4560 = call ptr @strerror(i32 noundef %4559) #11
  %4561 = call ptr @__errno_location() #12
  %4562 = load i32, ptr %4561, align 4, !tbaa !5
  %4563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4550, ptr noundef @.str.2, i32 noundef %4551, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 165, ptr noundef %4554, ptr noundef %4557, ptr noundef %4560, i32 noundef %4562) #11
  br label %4581

4564:                                             ; preds = %4542, %4535
  %4565 = load i32, ptr %86, align 4, !tbaa !5
  %4566 = call ptr @__errno_location() #12
  store i32 %4565, ptr %4566, align 4, !tbaa !5
  %4567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4568 = load i32, ptr @test_count, align 4, !tbaa !5
  %4569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4570 = load i32, ptr %4569, align 4, !tbaa !5
  %4571 = call ptr @s2n_strerror(i32 noundef %4570, ptr noundef @.str.4)
  %4572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4573 = load i32, ptr %4572, align 4, !tbaa !5
  %4574 = call ptr @s2n_strerror_debug(i32 noundef %4573, ptr noundef @.str.4)
  %4575 = call ptr @__errno_location() #12
  %4576 = load i32, ptr %4575, align 4, !tbaa !5
  %4577 = call ptr @strerror(i32 noundef %4576) #11
  %4578 = call ptr @__errno_location() #12
  %4579 = load i32, ptr %4578, align 4, !tbaa !5
  %4580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4567, ptr noundef @.str.5, i32 noundef %4568, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 165, ptr noundef %4571, ptr noundef %4574, ptr noundef %4577, i32 noundef %4579) #11
  br label %4581

4581:                                             ; preds = %4564, %4547
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %4582

4582:                                             ; preds = %4581
  br label %4583

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

4584:                                             ; No predecessors!
  br label %4585

4585:                                             ; preds = %4584
  br label %4586

4586:                                             ; preds = %4585, %4524
  br label %4587

4587:                                             ; preds = %4586
  br label %4588

4588:                                             ; preds = %4587
  br label %4589

4589:                                             ; preds = %4588
  %4590 = load i32, ptr @test_count, align 4, !tbaa !5
  %4591 = add nsw i32 %4590, 1
  store i32 %4591, ptr @test_count, align 4, !tbaa !5
  %4592 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %4593 = load ptr, ptr %74, align 8, !tbaa !9
  %4594 = call i32 %4592(ptr noundef %4593, ptr noundef %82)
  %4595 = icmp eq i32 %4594, -1
  br i1 %4595, label %4596, label %4649

4596:                                             ; preds = %4589
  br label %4597

4597:                                             ; preds = %4596
  br label %4598

4598:                                             ; preds = %4597
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %4599 = call ptr @__errno_location() #12
  %4600 = load i32, ptr %4599, align 4, !tbaa !5
  store i32 %4600, ptr %87, 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) #11
  %4608 = call i32 @isatty(i32 noundef %4607) #11
  %4609 = icmp ne i32 %4608, 0
  br i1 %4609, label %4610, label %4627

4610:                                             ; preds = %4605
  %4611 = load i32, ptr %87, align 4, !tbaa !5
  %4612 = call ptr @__errno_location() #12
  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() #12
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  %4623 = call ptr @strerror(i32 noundef %4622) #11
  %4624 = call ptr @__errno_location() #12
  %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.28, ptr noundef @.str.1, i32 noundef 167, ptr noundef %4617, ptr noundef %4620, ptr noundef %4623, i32 noundef %4625) #11
  br label %4644

4627:                                             ; preds = %4605, %4598
  %4628 = load i32, ptr %87, align 4, !tbaa !5
  %4629 = call ptr @__errno_location() #12
  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() #12
  %4639 = load i32, ptr %4638, align 4, !tbaa !5
  %4640 = call ptr @strerror(i32 noundef %4639) #11
  %4641 = call ptr @__errno_location() #12
  %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.28, ptr noundef @.str.1, i32 noundef 167, ptr noundef %4634, ptr noundef %4637, ptr noundef %4640, i32 noundef %4642) #11
  br label %4644

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

4645:                                             ; preds = %4644
  br label %4646

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

4647:                                             ; No predecessors!
  br label %4648

4648:                                             ; preds = %4647
  br label %4649

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

4650:                                             ; preds = %4649
  br label %4651

4651:                                             ; preds = %4650
  br label %4652

4652:                                             ; preds = %4651
  call void @llvm.lifetime.start.p0(i64 2, ptr %88) #11
  br label %4653

4653:                                             ; preds = %4652
  %4654 = load i32, ptr @test_count, align 4, !tbaa !5
  %4655 = add nsw i32 %4654, 1
  store i32 %4655, ptr @test_count, align 4, !tbaa !5
  %4656 = call i32 @s2n_stuffer_read_uint16(ptr noundef %82, ptr noundef %88)
  %4657 = icmp eq i32 %4656, -1
  br i1 %4657, label %4658, label %4711

4658:                                             ; preds = %4653
  br label %4659

4659:                                             ; preds = %4658
  br label %4660

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

4667:                                             ; preds = %4660
  %4668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4669 = call i32 @fileno(ptr noundef %4668) #11
  %4670 = call i32 @isatty(i32 noundef %4669) #11
  %4671 = icmp ne i32 %4670, 0
  br i1 %4671, label %4672, label %4689

4672:                                             ; preds = %4667
  %4673 = load i32, ptr %89, align 4, !tbaa !5
  %4674 = call ptr @__errno_location() #12
  store i32 %4673, ptr %4674, align 4, !tbaa !5
  %4675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4676 = load i32, ptr @test_count, align 4, !tbaa !5
  %4677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4678 = load i32, ptr %4677, align 4, !tbaa !5
  %4679 = call ptr @s2n_strerror(i32 noundef %4678, ptr noundef @.str.4)
  %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_debug(i32 noundef %4681, ptr noundef @.str.4)
  %4683 = call ptr @__errno_location() #12
  %4684 = load i32, ptr %4683, align 4, !tbaa !5
  %4685 = call ptr @strerror(i32 noundef %4684) #11
  %4686 = call ptr @__errno_location() #12
  %4687 = load i32, ptr %4686, align 4, !tbaa !5
  %4688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4675, ptr noundef @.str.2, i32 noundef %4676, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 169, ptr noundef %4679, ptr noundef %4682, ptr noundef %4685, i32 noundef %4687) #11
  br label %4706

4689:                                             ; preds = %4667, %4660
  %4690 = load i32, ptr %89, align 4, !tbaa !5
  %4691 = call ptr @__errno_location() #12
  store i32 %4690, ptr %4691, align 4, !tbaa !5
  %4692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4693 = load i32, ptr @test_count, align 4, !tbaa !5
  %4694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4695 = load i32, ptr %4694, align 4, !tbaa !5
  %4696 = call ptr @s2n_strerror(i32 noundef %4695, ptr noundef @.str.4)
  %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_debug(i32 noundef %4698, ptr noundef @.str.4)
  %4700 = call ptr @__errno_location() #12
  %4701 = load i32, ptr %4700, align 4, !tbaa !5
  %4702 = call ptr @strerror(i32 noundef %4701) #11
  %4703 = call ptr @__errno_location() #12
  %4704 = load i32, ptr %4703, align 4, !tbaa !5
  %4705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4692, ptr noundef @.str.5, i32 noundef %4693, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 169, ptr noundef %4696, ptr noundef %4699, ptr noundef %4702, i32 noundef %4704) #11
  br label %4706

4706:                                             ; preds = %4689, %4672
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %4707

4707:                                             ; preds = %4706
  br label %4708

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

4709:                                             ; No predecessors!
  br label %4710

4710:                                             ; preds = %4709
  br label %4711

4711:                                             ; preds = %4710, %4653
  br label %4712

4712:                                             ; preds = %4711
  br label %4713

4713:                                             ; preds = %4712
  br label %4714

4714:                                             ; preds = %4713
  %4715 = load i32, ptr @test_count, align 4, !tbaa !5
  %4716 = add nsw i32 %4715, 1
  store i32 %4716, ptr @test_count, align 4, !tbaa !5
  %4717 = load i16, ptr %88, align 2, !tbaa !53
  %4718 = zext i16 %4717 to i32
  %4719 = load ptr, ptr %85, align 8, !tbaa !9
  %4720 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %4719, i32 0, i32 0
  %4721 = load i16, ptr %4720, align 8, !tbaa !54
  %4722 = zext i16 %4721 to i32
  %4723 = icmp eq i32 %4718, %4722
  br i1 %4723, label %4777, label %4724

4724:                                             ; preds = %4714
  br label %4725

4725:                                             ; preds = %4724
  br label %4726

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

4733:                                             ; preds = %4726
  %4734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4735 = call i32 @fileno(ptr noundef %4734) #11
  %4736 = call i32 @isatty(i32 noundef %4735) #11
  %4737 = icmp ne i32 %4736, 0
  br i1 %4737, label %4738, label %4755

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

4755:                                             ; preds = %4733, %4726
  %4756 = load i32, ptr %90, align 4, !tbaa !5
  %4757 = call ptr @__errno_location() #12
  store i32 %4756, ptr %4757, align 4, !tbaa !5
  %4758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4759 = load i32, ptr @test_count, align 4, !tbaa !5
  %4760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4761 = load i32, ptr %4760, align 4, !tbaa !5
  %4762 = call ptr @s2n_strerror(i32 noundef %4761, ptr noundef @.str.4)
  %4763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = call ptr @s2n_strerror_debug(i32 noundef %4764, ptr noundef @.str.4)
  %4766 = call ptr @__errno_location() #12
  %4767 = load i32, ptr %4766, align 4, !tbaa !5
  %4768 = call ptr @strerror(i32 noundef %4767) #11
  %4769 = call ptr @__errno_location() #12
  %4770 = load i32, ptr %4769, align 4, !tbaa !5
  %4771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4758, ptr noundef @.str.5, i32 noundef %4759, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 169, ptr noundef %4762, ptr noundef %4765, ptr noundef %4768, i32 noundef %4770) #11
  br label %4772

4772:                                             ; preds = %4755, %4738
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %4773

4773:                                             ; preds = %4772
  br label %4774

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

4775:                                             ; No predecessors!
  br label %4776

4776:                                             ; preds = %4775
  br label %4777

4777:                                             ; preds = %4776, %4714
  br label %4778

4778:                                             ; preds = %4777
  br label %4779

4779:                                             ; preds = %4778
  call void @llvm.lifetime.end.p0(i64 2, ptr %88) #11
  br label %4780

4780:                                             ; preds = %4779
  br label %4781

4781:                                             ; preds = %4780
  br label %4782

4782:                                             ; preds = %4781
  %4783 = load i32, ptr @test_count, align 4, !tbaa !5
  %4784 = add nsw i32 %4783, 1
  store i32 %4784, ptr @test_count, align 4, !tbaa !5
  %4785 = getelementptr inbounds %struct.s2n_stuffer, ptr %82, i32 0, i32 2
  %4786 = load i32, ptr %4785, align 4, !tbaa !55
  %4787 = getelementptr inbounds %struct.s2n_stuffer, ptr %82, i32 0, i32 1
  %4788 = load i32, ptr %4787, align 8, !tbaa !56
  %4789 = sub i32 %4786, %4788
  %4790 = icmp eq i32 0, %4789
  br i1 %4790, label %4844, label %4791

4791:                                             ; preds = %4782
  br label %4792

4792:                                             ; preds = %4791
  br label %4793

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

4800:                                             ; preds = %4793
  %4801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4802 = call i32 @fileno(ptr noundef %4801) #11
  %4803 = call i32 @isatty(i32 noundef %4802) #11
  %4804 = icmp ne i32 %4803, 0
  br i1 %4804, label %4805, label %4822

4805:                                             ; preds = %4800
  %4806 = load i32, ptr %91, align 4, !tbaa !5
  %4807 = call ptr @__errno_location() #12
  store i32 %4806, ptr %4807, align 4, !tbaa !5
  %4808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4809 = load i32, ptr @test_count, align 4, !tbaa !5
  %4810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4811 = load i32, ptr %4810, align 4, !tbaa !5
  %4812 = call ptr @s2n_strerror(i32 noundef %4811, ptr noundef @.str.4)
  %4813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4814 = load i32, ptr %4813, align 4, !tbaa !5
  %4815 = call ptr @s2n_strerror_debug(i32 noundef %4814, ptr noundef @.str.4)
  %4816 = call ptr @__errno_location() #12
  %4817 = load i32, ptr %4816, align 4, !tbaa !5
  %4818 = call ptr @strerror(i32 noundef %4817) #11
  %4819 = call ptr @__errno_location() #12
  %4820 = load i32, ptr %4819, align 4, !tbaa !5
  %4821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4808, ptr noundef @.str.2, i32 noundef %4809, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 170, ptr noundef %4812, ptr noundef %4815, ptr noundef %4818, i32 noundef %4820) #11
  br label %4839

4822:                                             ; preds = %4800, %4793
  %4823 = load i32, ptr %91, align 4, !tbaa !5
  %4824 = call ptr @__errno_location() #12
  store i32 %4823, ptr %4824, align 4, !tbaa !5
  %4825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4826 = load i32, ptr @test_count, align 4, !tbaa !5
  %4827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4828 = load i32, ptr %4827, align 4, !tbaa !5
  %4829 = call ptr @s2n_strerror(i32 noundef %4828, ptr noundef @.str.4)
  %4830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4831 = load i32, ptr %4830, align 4, !tbaa !5
  %4832 = call ptr @s2n_strerror_debug(i32 noundef %4831, ptr noundef @.str.4)
  %4833 = call ptr @__errno_location() #12
  %4834 = load i32, ptr %4833, align 4, !tbaa !5
  %4835 = call ptr @strerror(i32 noundef %4834) #11
  %4836 = call ptr @__errno_location() #12
  %4837 = load i32, ptr %4836, align 4, !tbaa !5
  %4838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4825, ptr noundef @.str.5, i32 noundef %4826, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 170, ptr noundef %4829, ptr noundef %4832, ptr noundef %4835, i32 noundef %4837) #11
  br label %4839

4839:                                             ; preds = %4822, %4805
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %4840

4840:                                             ; preds = %4839
  br label %4841

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

4842:                                             ; No predecessors!
  br label %4843

4843:                                             ; preds = %4842
  br label %4844

4844:                                             ; preds = %4843, %4782
  br label %4845

4845:                                             ; preds = %4844
  br label %4846

4846:                                             ; preds = %4845
  br label %4847

4847:                                             ; preds = %4846
  %4848 = load i32, ptr @test_count, align 4, !tbaa !5
  %4849 = add nsw i32 %4848, 1
  store i32 %4849, ptr @test_count, align 4, !tbaa !5
  %4850 = load ptr, ptr %74, align 8, !tbaa !9
  %4851 = getelementptr inbounds %struct.s2n_connection, ptr %4850, i32 0, i32 31
  %4852 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4851, i32 0, i32 1
  %4853 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4852, i32 0, i32 0
  %4854 = load ptr, ptr %4853, align 8, !tbaa !42
  %4855 = load ptr, ptr %85, align 8, !tbaa !9
  %4856 = icmp eq ptr %4854, %4855
  br i1 %4856, label %4910, label %4857

4857:                                             ; preds = %4847
  br label %4858

4858:                                             ; preds = %4857
  br label %4859

4859:                                             ; preds = %4858
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %4860 = call ptr @__errno_location() #12
  %4861 = load i32, ptr %4860, align 4, !tbaa !5
  store i32 %4861, ptr %92, align 4, !tbaa !5
  %4862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4863 = call i32 @s2n_print_stacktrace(ptr noundef %4862)
  %4864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4865 = trunc i8 %4864 to i1
  br i1 %4865, label %4866, label %4888

4866:                                             ; preds = %4859
  %4867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4868 = call i32 @fileno(ptr noundef %4867) #11
  %4869 = call i32 @isatty(i32 noundef %4868) #11
  %4870 = icmp ne i32 %4869, 0
  br i1 %4870, label %4871, label %4888

4871:                                             ; preds = %4866
  %4872 = load i32, ptr %92, align 4, !tbaa !5
  %4873 = call ptr @__errno_location() #12
  store i32 %4872, ptr %4873, align 4, !tbaa !5
  %4874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4875 = load i32, ptr @test_count, align 4, !tbaa !5
  %4876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4877 = load i32, ptr %4876, align 4, !tbaa !5
  %4878 = call ptr @s2n_strerror(i32 noundef %4877, ptr noundef @.str.4)
  %4879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4880 = load i32, ptr %4879, align 4, !tbaa !5
  %4881 = call ptr @s2n_strerror_debug(i32 noundef %4880, ptr noundef @.str.4)
  %4882 = call ptr @__errno_location() #12
  %4883 = load i32, ptr %4882, align 4, !tbaa !5
  %4884 = call ptr @strerror(i32 noundef %4883) #11
  %4885 = call ptr @__errno_location() #12
  %4886 = load i32, ptr %4885, align 4, !tbaa !5
  %4887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4874, ptr noundef @.str.2, i32 noundef %4875, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 171, ptr noundef %4878, ptr noundef %4881, ptr noundef %4884, i32 noundef %4886) #11
  br label %4905

4888:                                             ; preds = %4866, %4859
  %4889 = load i32, ptr %92, align 4, !tbaa !5
  %4890 = call ptr @__errno_location() #12
  store i32 %4889, ptr %4890, align 4, !tbaa !5
  %4891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4892 = load i32, ptr @test_count, align 4, !tbaa !5
  %4893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4894 = load i32, ptr %4893, align 4, !tbaa !5
  %4895 = call ptr @s2n_strerror(i32 noundef %4894, ptr noundef @.str.4)
  %4896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4897 = load i32, ptr %4896, align 4, !tbaa !5
  %4898 = call ptr @s2n_strerror_debug(i32 noundef %4897, ptr noundef @.str.4)
  %4899 = call ptr @__errno_location() #12
  %4900 = load i32, ptr %4899, align 4, !tbaa !5
  %4901 = call ptr @strerror(i32 noundef %4900) #11
  %4902 = call ptr @__errno_location() #12
  %4903 = load i32, ptr %4902, align 4, !tbaa !5
  %4904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4891, ptr noundef @.str.5, i32 noundef %4892, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 171, ptr noundef %4895, ptr noundef %4898, ptr noundef %4901, i32 noundef %4903) #11
  br label %4905

4905:                                             ; preds = %4888, %4871
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %4906

4906:                                             ; preds = %4905
  br label %4907

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

4908:                                             ; No predecessors!
  br label %4909

4909:                                             ; preds = %4908
  br label %4910

4910:                                             ; preds = %4909, %4847
  br label %4911

4911:                                             ; preds = %4910
  br label %4912

4912:                                             ; preds = %4911
  br label %4913

4913:                                             ; preds = %4912
  %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 %74, align 8, !tbaa !9
  %4917 = getelementptr inbounds %struct.s2n_connection, ptr %4916, i32 0, i32 31
  %4918 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4917, i32 0, i32 1
  %4919 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4918, i32 0, i32 1
  %4920 = load ptr, ptr %4919, align 8, !tbaa !62
  %4921 = icmp eq ptr %4920, null
  br i1 %4921, label %4975, label %4922

4922:                                             ; preds = %4913
  br label %4923

4923:                                             ; preds = %4922
  br label %4924

4924:                                             ; preds = %4923
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #11
  %4925 = call ptr @__errno_location() #12
  %4926 = load i32, ptr %4925, align 4, !tbaa !5
  store i32 %4926, ptr %93, align 4, !tbaa !5
  %4927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4928 = call i32 @s2n_print_stacktrace(ptr noundef %4927)
  %4929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4930 = trunc i8 %4929 to i1
  br i1 %4930, label %4931, label %4953

4931:                                             ; preds = %4924
  %4932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4933 = call i32 @fileno(ptr noundef %4932) #11
  %4934 = call i32 @isatty(i32 noundef %4933) #11
  %4935 = icmp ne i32 %4934, 0
  br i1 %4935, label %4936, label %4953

4936:                                             ; preds = %4931
  %4937 = load i32, ptr %93, align 4, !tbaa !5
  %4938 = call ptr @__errno_location() #12
  store i32 %4937, ptr %4938, align 4, !tbaa !5
  %4939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4940 = load i32, ptr @test_count, align 4, !tbaa !5
  %4941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4942 = load i32, ptr %4941, align 4, !tbaa !5
  %4943 = call ptr @s2n_strerror(i32 noundef %4942, ptr noundef @.str.4)
  %4944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4945 = load i32, ptr %4944, align 4, !tbaa !5
  %4946 = call ptr @s2n_strerror_debug(i32 noundef %4945, ptr noundef @.str.4)
  %4947 = call ptr @__errno_location() #12
  %4948 = load i32, ptr %4947, align 4, !tbaa !5
  %4949 = call ptr @strerror(i32 noundef %4948) #11
  %4950 = call ptr @__errno_location() #12
  %4951 = load i32, ptr %4950, align 4, !tbaa !5
  %4952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4939, ptr noundef @.str.2, i32 noundef %4940, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4943, ptr noundef %4946, ptr noundef %4949, i32 noundef %4951) #11
  br label %4970

4953:                                             ; preds = %4931, %4924
  %4954 = load i32, ptr %93, align 4, !tbaa !5
  %4955 = call ptr @__errno_location() #12
  store i32 %4954, ptr %4955, align 4, !tbaa !5
  %4956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4957 = load i32, ptr @test_count, align 4, !tbaa !5
  %4958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4959 = load i32, ptr %4958, align 4, !tbaa !5
  %4960 = call ptr @s2n_strerror(i32 noundef %4959, ptr noundef @.str.4)
  %4961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4962 = load i32, ptr %4961, align 4, !tbaa !5
  %4963 = call ptr @s2n_strerror_debug(i32 noundef %4962, ptr noundef @.str.4)
  %4964 = call ptr @__errno_location() #12
  %4965 = load i32, ptr %4964, align 4, !tbaa !5
  %4966 = call ptr @strerror(i32 noundef %4965) #11
  %4967 = call ptr @__errno_location() #12
  %4968 = load i32, ptr %4967, align 4, !tbaa !5
  %4969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4956, ptr noundef @.str.5, i32 noundef %4957, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4960, ptr noundef %4963, ptr noundef %4966, i32 noundef %4968) #11
  br label %4970

4970:                                             ; preds = %4953, %4936
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %4971

4971:                                             ; preds = %4970
  br label %4972

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

4973:                                             ; No predecessors!
  br label %4974

4974:                                             ; preds = %4973
  br label %4975

4975:                                             ; preds = %4974, %4913
  br label %4976

4976:                                             ; preds = %4975
  br label %4977

4977:                                             ; preds = %4976
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #11
  br label %4978

4978:                                             ; preds = %4977
  %4979 = load i64, ptr %84, align 8, !tbaa !49
  %4980 = add i64 %4979, 1
  store i64 %4980, ptr %84, align 8, !tbaa !49
  br label %4504, !llvm.loop !63

4981:                                             ; preds = %4511
  br label %4982

4982:                                             ; preds = %4981
  %4983 = load i32, ptr @test_count, align 4, !tbaa !5
  %4984 = add nsw i32 %4983, 1
  store i32 %4984, ptr @test_count, align 4, !tbaa !5
  %4985 = load ptr, ptr %74, align 8, !tbaa !9
  %4986 = call i32 @s2n_connection_free(ptr noundef %4985)
  %4987 = icmp eq i32 %4986, -1
  br i1 %4987, label %4988, label %5041

4988:                                             ; preds = %4982
  br label %4989

4989:                                             ; preds = %4988
  br label %4990

4990:                                             ; preds = %4989
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %4991 = call ptr @__errno_location() #12
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  store i32 %4992, ptr %94, align 4, !tbaa !5
  %4993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4994 = call i32 @s2n_print_stacktrace(ptr noundef %4993)
  %4995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4996 = trunc i8 %4995 to i1
  br i1 %4996, label %4997, label %5019

4997:                                             ; preds = %4990
  %4998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4999 = call i32 @fileno(ptr noundef %4998) #11
  %5000 = call i32 @isatty(i32 noundef %4999) #11
  %5001 = icmp ne i32 %5000, 0
  br i1 %5001, label %5002, label %5019

5002:                                             ; preds = %4997
  %5003 = load i32, ptr %94, align 4, !tbaa !5
  %5004 = call ptr @__errno_location() #12
  store i32 %5003, ptr %5004, align 4, !tbaa !5
  %5005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5006 = load i32, ptr @test_count, align 4, !tbaa !5
  %5007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5008 = load i32, ptr %5007, align 4, !tbaa !5
  %5009 = call ptr @s2n_strerror(i32 noundef %5008, ptr noundef @.str.4)
  %5010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5011 = load i32, ptr %5010, align 4, !tbaa !5
  %5012 = call ptr @s2n_strerror_debug(i32 noundef %5011, ptr noundef @.str.4)
  %5013 = call ptr @__errno_location() #12
  %5014 = load i32, ptr %5013, align 4, !tbaa !5
  %5015 = call ptr @strerror(i32 noundef %5014) #11
  %5016 = call ptr @__errno_location() #12
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  %5018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5005, ptr noundef @.str.2, i32 noundef %5006, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 175, ptr noundef %5009, ptr noundef %5012, ptr noundef %5015, i32 noundef %5017) #11
  br label %5036

5019:                                             ; preds = %4997, %4990
  %5020 = load i32, ptr %94, align 4, !tbaa !5
  %5021 = call ptr @__errno_location() #12
  store i32 %5020, ptr %5021, align 4, !tbaa !5
  %5022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5023 = load i32, ptr @test_count, align 4, !tbaa !5
  %5024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5025 = load i32, ptr %5024, align 4, !tbaa !5
  %5026 = call ptr @s2n_strerror(i32 noundef %5025, ptr noundef @.str.4)
  %5027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5028 = load i32, ptr %5027, align 4, !tbaa !5
  %5029 = call ptr @s2n_strerror_debug(i32 noundef %5028, ptr noundef @.str.4)
  %5030 = call ptr @__errno_location() #12
  %5031 = load i32, ptr %5030, align 4, !tbaa !5
  %5032 = call ptr @strerror(i32 noundef %5031) #11
  %5033 = call ptr @__errno_location() #12
  %5034 = load i32, ptr %5033, align 4, !tbaa !5
  %5035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5022, ptr noundef @.str.5, i32 noundef %5023, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 175, ptr noundef %5026, ptr noundef %5029, ptr noundef %5032, i32 noundef %5034) #11
  br label %5036

5036:                                             ; preds = %5019, %5002
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %5037

5037:                                             ; preds = %5036
  br label %5038

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

5039:                                             ; No predecessors!
  br label %5040

5040:                                             ; preds = %5039
  br label %5041

5041:                                             ; preds = %5040, %4982
  br label %5042

5042:                                             ; preds = %5041
  br label %5043

5043:                                             ; preds = %5042
  %5044 = call i32 @s2n_stuffer_free(ptr noundef %82)
  call void @llvm.lifetime.end.p0(i64 40, ptr %82) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #11
  br label %5045

5045:                                             ; preds = %5043
  br label %5046

5046:                                             ; preds = %5045
  %5047 = load i32, ptr @test_count, align 4, !tbaa !5
  %5048 = add nsw i32 %5047, 1
  store i32 %5048, ptr @test_count, align 4, !tbaa !5
  %5049 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %5050 = call i32 %5049(ptr noundef null, ptr noundef null)
  %5051 = icmp eq i32 %5050, -1
  br i1 %5051, label %5103, label %5052

5052:                                             ; preds = %5046
  br label %5053

5053:                                             ; preds = %5052
  br label %5054

5054:                                             ; preds = %5053
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  %5055 = call ptr @__errno_location() #12
  %5056 = load i32, ptr %5055, align 4, !tbaa !5
  store i32 %5056, ptr %95, align 4, !tbaa !5
  %5057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5058 = call i32 @s2n_print_stacktrace(ptr noundef %5057)
  %5059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5060 = trunc i8 %5059 to i1
  br i1 %5060, label %5061, label %5083

5061:                                             ; preds = %5054
  %5062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5063 = call i32 @fileno(ptr noundef %5062) #11
  %5064 = call i32 @isatty(i32 noundef %5063) #11
  %5065 = icmp ne i32 %5064, 0
  br i1 %5065, label %5066, label %5083

5066:                                             ; preds = %5061
  %5067 = load i32, ptr %95, align 4, !tbaa !5
  %5068 = call ptr @__errno_location() #12
  store i32 %5067, ptr %5068, align 4, !tbaa !5
  %5069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5070 = load i32, ptr @test_count, align 4, !tbaa !5
  %5071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5072 = load i32, ptr %5071, align 4, !tbaa !5
  %5073 = call ptr @s2n_strerror(i32 noundef %5072, ptr noundef @.str.4)
  %5074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5075 = load i32, ptr %5074, align 4, !tbaa !5
  %5076 = call ptr @s2n_strerror_debug(i32 noundef %5075, ptr noundef @.str.4)
  %5077 = call ptr @__errno_location() #12
  %5078 = load i32, ptr %5077, align 4, !tbaa !5
  %5079 = call ptr @strerror(i32 noundef %5078) #11
  %5080 = call ptr @__errno_location() #12
  %5081 = load i32, ptr %5080, align 4, !tbaa !5
  %5082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5069, ptr noundef @.str.2, i32 noundef %5070, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 180, ptr noundef %5073, ptr noundef %5076, ptr noundef %5079, i32 noundef %5081) #11
  br label %5100

5083:                                             ; preds = %5061, %5054
  %5084 = load i32, ptr %95, align 4, !tbaa !5
  %5085 = call ptr @__errno_location() #12
  store i32 %5084, ptr %5085, align 4, !tbaa !5
  %5086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5087 = load i32, ptr @test_count, align 4, !tbaa !5
  %5088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call ptr @s2n_strerror(i32 noundef %5089, ptr noundef @.str.4)
  %5091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call ptr @s2n_strerror_debug(i32 noundef %5092, ptr noundef @.str.4)
  %5094 = call ptr @__errno_location() #12
  %5095 = load i32, ptr %5094, align 4, !tbaa !5
  %5096 = call ptr @strerror(i32 noundef %5095) #11
  %5097 = call ptr @__errno_location() #12
  %5098 = load i32, ptr %5097, align 4, !tbaa !5
  %5099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5086, ptr noundef @.str.5, i32 noundef %5087, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 180, ptr noundef %5090, ptr noundef %5093, ptr noundef %5096, i32 noundef %5098) #11
  br label %5100

5100:                                             ; preds = %5083, %5066
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %5101

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

5102:                                             ; No predecessors!
  br label %5103

5103:                                             ; preds = %5102, %5046
  br label %5104

5104:                                             ; preds = %5103
  br label %5105

5105:                                             ; preds = %5104
  %5106 = load i32, ptr @test_count, align 4, !tbaa !5
  %5107 = add nsw i32 %5106, 1
  store i32 %5107, ptr @test_count, align 4, !tbaa !5
  %5108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5109 = load i32, ptr %5108, align 4, !tbaa !5
  %5110 = icmp eq i32 %5109, 0
  br i1 %5110, label %5111, label %5162

5111:                                             ; preds = %5105
  br label %5112

5112:                                             ; preds = %5111
  br label %5113

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

5120:                                             ; preds = %5113
  %5121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5122 = call i32 @fileno(ptr noundef %5121) #11
  %5123 = call i32 @isatty(i32 noundef %5122) #11
  %5124 = icmp ne i32 %5123, 0
  br i1 %5124, label %5125, label %5142

5125:                                             ; preds = %5120
  %5126 = load i32, ptr %96, align 4, !tbaa !5
  %5127 = call ptr @__errno_location() #12
  store i32 %5126, ptr %5127, align 4, !tbaa !5
  %5128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5129 = load i32, ptr @test_count, align 4, !tbaa !5
  %5130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5131 = load i32, ptr %5130, align 4, !tbaa !5
  %5132 = call ptr @s2n_strerror(i32 noundef %5131, ptr noundef @.str.4)
  %5133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5134 = load i32, ptr %5133, align 4, !tbaa !5
  %5135 = call ptr @s2n_strerror_debug(i32 noundef %5134, ptr noundef @.str.4)
  %5136 = call ptr @__errno_location() #12
  %5137 = load i32, ptr %5136, align 4, !tbaa !5
  %5138 = call ptr @strerror(i32 noundef %5137) #11
  %5139 = call ptr @__errno_location() #12
  %5140 = load i32, ptr %5139, align 4, !tbaa !5
  %5141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5128, ptr noundef @.str.2, i32 noundef %5129, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 180, ptr noundef %5132, ptr noundef %5135, ptr noundef %5138, i32 noundef %5140) #11
  br label %5159

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

5159:                                             ; preds = %5142, %5125
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %5160

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

5161:                                             ; No predecessors!
  br label %5162

5162:                                             ; preds = %5161, %5105
  br label %5163

5163:                                             ; preds = %5162
  br label %5164

5164:                                             ; preds = %5163
  %5165 = load i32, ptr @test_count, align 4, !tbaa !5
  %5166 = add nsw i32 %5165, 1
  store i32 %5166, ptr @test_count, align 4, !tbaa !5
  %5167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5168 = load i32, ptr %5167, align 4, !tbaa !5
  %5169 = call ptr @s2n_strerror_debug(i32 noundef %5168, ptr noundef @.str.4)
  %5170 = icmp eq ptr %5169, null
  br i1 %5170, label %5171, label %5222

5171:                                             ; preds = %5164
  br label %5172

5172:                                             ; preds = %5171
  br label %5173

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

5180:                                             ; preds = %5173
  %5181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5182 = call i32 @fileno(ptr noundef %5181) #11
  %5183 = call i32 @isatty(i32 noundef %5182) #11
  %5184 = icmp ne i32 %5183, 0
  br i1 %5184, label %5185, label %5202

5185:                                             ; preds = %5180
  %5186 = load i32, ptr %97, align 4, !tbaa !5
  %5187 = call ptr @__errno_location() #12
  store i32 %5186, ptr %5187, align 4, !tbaa !5
  %5188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5189 = load i32, ptr @test_count, align 4, !tbaa !5
  %5190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5191 = load i32, ptr %5190, align 4, !tbaa !5
  %5192 = call ptr @s2n_strerror(i32 noundef %5191, ptr noundef @.str.4)
  %5193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5194 = load i32, ptr %5193, align 4, !tbaa !5
  %5195 = call ptr @s2n_strerror_debug(i32 noundef %5194, ptr noundef @.str.4)
  %5196 = call ptr @__errno_location() #12
  %5197 = load i32, ptr %5196, align 4, !tbaa !5
  %5198 = call ptr @strerror(i32 noundef %5197) #11
  %5199 = call ptr @__errno_location() #12
  %5200 = load i32, ptr %5199, align 4, !tbaa !5
  %5201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5188, ptr noundef @.str.2, i32 noundef %5189, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 180, ptr noundef %5192, ptr noundef %5195, ptr noundef %5198, i32 noundef %5200) #11
  br label %5219

5202:                                             ; preds = %5180, %5173
  %5203 = load i32, ptr %97, align 4, !tbaa !5
  %5204 = call ptr @__errno_location() #12
  store i32 %5203, ptr %5204, align 4, !tbaa !5
  %5205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5206 = load i32, ptr @test_count, align 4, !tbaa !5
  %5207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5208 = load i32, ptr %5207, align 4, !tbaa !5
  %5209 = call ptr @s2n_strerror(i32 noundef %5208, ptr noundef @.str.4)
  %5210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5211 = load i32, ptr %5210, align 4, !tbaa !5
  %5212 = call ptr @s2n_strerror_debug(i32 noundef %5211, ptr noundef @.str.4)
  %5213 = call ptr @__errno_location() #12
  %5214 = load i32, ptr %5213, align 4, !tbaa !5
  %5215 = call ptr @strerror(i32 noundef %5214) #11
  %5216 = call ptr @__errno_location() #12
  %5217 = load i32, ptr %5216, align 4, !tbaa !5
  %5218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5205, ptr noundef @.str.5, i32 noundef %5206, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 180, ptr noundef %5209, ptr noundef %5212, ptr noundef %5215, i32 noundef %5217) #11
  br label %5219

5219:                                             ; preds = %5202, %5185
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %5220

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

5221:                                             ; No predecessors!
  br label %5222

5222:                                             ; preds = %5221, %5164
  br label %5223

5223:                                             ; preds = %5222
  br label %5224

5224:                                             ; preds = %5223
  %5225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5225, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5226 = call ptr @__errno_location() #12
  store i32 0, ptr %5226, align 4, !tbaa !5
  br label %5227

5227:                                             ; preds = %5224
  br label %5228

5228:                                             ; preds = %5227
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #11
  store ptr null, ptr %98, align 8, !tbaa !9
  br label %5229

5229:                                             ; preds = %5228
  %5230 = load i32, ptr @test_count, align 4, !tbaa !5
  %5231 = add nsw i32 %5230, 1
  store i32 %5231, ptr @test_count, align 4, !tbaa !5
  %5232 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5232, ptr %98, align 8, !tbaa !9
  %5233 = icmp eq ptr %5232, null
  br i1 %5233, label %5234, label %5287

5234:                                             ; preds = %5229
  br label %5235

5235:                                             ; preds = %5234
  br label %5236

5236:                                             ; preds = %5235
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #11
  %5237 = call ptr @__errno_location() #12
  %5238 = load i32, ptr %5237, align 4, !tbaa !5
  store i32 %5238, ptr %99, align 4, !tbaa !5
  %5239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5240 = call i32 @s2n_print_stacktrace(ptr noundef %5239)
  %5241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5242 = trunc i8 %5241 to i1
  br i1 %5242, label %5243, label %5265

5243:                                             ; preds = %5236
  %5244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5245 = call i32 @fileno(ptr noundef %5244) #11
  %5246 = call i32 @isatty(i32 noundef %5245) #11
  %5247 = icmp ne i32 %5246, 0
  br i1 %5247, label %5248, label %5265

5248:                                             ; preds = %5243
  %5249 = load i32, ptr %99, align 4, !tbaa !5
  %5250 = call ptr @__errno_location() #12
  store i32 %5249, ptr %5250, align 4, !tbaa !5
  %5251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5252 = load i32, ptr @test_count, align 4, !tbaa !5
  %5253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5254 = load i32, ptr %5253, align 4, !tbaa !5
  %5255 = call ptr @s2n_strerror(i32 noundef %5254, ptr noundef @.str.4)
  %5256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5257 = load i32, ptr %5256, align 4, !tbaa !5
  %5258 = call ptr @s2n_strerror_debug(i32 noundef %5257, ptr noundef @.str.4)
  %5259 = call ptr @__errno_location() #12
  %5260 = load i32, ptr %5259, align 4, !tbaa !5
  %5261 = call ptr @strerror(i32 noundef %5260) #11
  %5262 = call ptr @__errno_location() #12
  %5263 = load i32, ptr %5262, align 4, !tbaa !5
  %5264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5251, ptr noundef @.str.2, i32 noundef %5252, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 183, ptr noundef %5255, ptr noundef %5258, ptr noundef %5261, i32 noundef %5263) #11
  br label %5282

5265:                                             ; preds = %5243, %5236
  %5266 = load i32, ptr %99, align 4, !tbaa !5
  %5267 = call ptr @__errno_location() #12
  store i32 %5266, ptr %5267, align 4, !tbaa !5
  %5268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5269 = load i32, ptr @test_count, align 4, !tbaa !5
  %5270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5271 = load i32, ptr %5270, align 4, !tbaa !5
  %5272 = call ptr @s2n_strerror(i32 noundef %5271, ptr noundef @.str.4)
  %5273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5274 = load i32, ptr %5273, align 4, !tbaa !5
  %5275 = call ptr @s2n_strerror_debug(i32 noundef %5274, ptr noundef @.str.4)
  %5276 = call ptr @__errno_location() #12
  %5277 = load i32, ptr %5276, align 4, !tbaa !5
  %5278 = call ptr @strerror(i32 noundef %5277) #11
  %5279 = call ptr @__errno_location() #12
  %5280 = load i32, ptr %5279, align 4, !tbaa !5
  %5281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5268, ptr noundef @.str.5, i32 noundef %5269, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 183, ptr noundef %5272, ptr noundef %5275, ptr noundef %5278, i32 noundef %5280) #11
  br label %5282

5282:                                             ; preds = %5265, %5248
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %5283

5283:                                             ; preds = %5282
  br label %5284

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

5285:                                             ; No predecessors!
  br label %5286

5286:                                             ; preds = %5285
  br label %5287

5287:                                             ; preds = %5286, %5229
  br label %5288

5288:                                             ; preds = %5287
  br label %5289

5289:                                             ; preds = %5288
  br label %5290

5290:                                             ; preds = %5289
  br label %5291

5291:                                             ; preds = %5290
  %5292 = load i32, ptr @test_count, align 4, !tbaa !5
  %5293 = add nsw i32 %5292, 1
  store i32 %5293, ptr @test_count, align 4, !tbaa !5
  %5294 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %5295 = load ptr, ptr %98, align 8, !tbaa !9
  %5296 = call i32 %5294(ptr noundef %5295, ptr noundef null)
  %5297 = icmp eq i32 %5296, -1
  br i1 %5297, label %5351, label %5298

5298:                                             ; preds = %5291
  br label %5299

5299:                                             ; preds = %5298
  br label %5300

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

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

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

5329:                                             ; preds = %5307, %5300
  %5330 = load i32, ptr %100, align 4, !tbaa !5
  %5331 = call ptr @__errno_location() #12
  store i32 %5330, ptr %5331, align 4, !tbaa !5
  %5332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5333 = load i32, ptr @test_count, align 4, !tbaa !5
  %5334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5335 = load i32, ptr %5334, align 4, !tbaa !5
  %5336 = call ptr @s2n_strerror(i32 noundef %5335, ptr noundef @.str.4)
  %5337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5338 = load i32, ptr %5337, align 4, !tbaa !5
  %5339 = call ptr @s2n_strerror_debug(i32 noundef %5338, ptr noundef @.str.4)
  %5340 = call ptr @__errno_location() #12
  %5341 = load i32, ptr %5340, align 4, !tbaa !5
  %5342 = call ptr @strerror(i32 noundef %5341) #11
  %5343 = call ptr @__errno_location() #12
  %5344 = load i32, ptr %5343, align 4, !tbaa !5
  %5345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5332, ptr noundef @.str.5, i32 noundef %5333, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 184, ptr noundef %5336, ptr noundef %5339, ptr noundef %5342, i32 noundef %5344) #11
  br label %5346

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

5347:                                             ; preds = %5346
  br label %5348

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

5349:                                             ; No predecessors!
  br label %5350

5350:                                             ; preds = %5349
  br label %5351

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

5352:                                             ; preds = %5351
  br label %5353

5353:                                             ; preds = %5352
  br label %5354

5354:                                             ; preds = %5353
  %5355 = load i32, ptr @test_count, align 4, !tbaa !5
  %5356 = add nsw i32 %5355, 1
  store i32 %5356, ptr @test_count, align 4, !tbaa !5
  %5357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5358 = load i32, ptr %5357, align 4, !tbaa !5
  %5359 = icmp eq i32 %5358, 0
  br i1 %5359, label %5360, label %5413

5360:                                             ; preds = %5354
  br label %5361

5361:                                             ; preds = %5360
  br label %5362

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

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

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

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

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

5409:                                             ; preds = %5408
  br label %5410

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

5411:                                             ; No predecessors!
  br label %5412

5412:                                             ; preds = %5411
  br label %5413

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

5414:                                             ; preds = %5413
  br label %5415

5415:                                             ; preds = %5414
  br label %5416

5416:                                             ; preds = %5415
  %5417 = load i32, ptr @test_count, align 4, !tbaa !5
  %5418 = add nsw i32 %5417, 1
  store i32 %5418, ptr @test_count, align 4, !tbaa !5
  %5419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5420 = load i32, ptr %5419, align 4, !tbaa !5
  %5421 = call ptr @s2n_strerror_debug(i32 noundef %5420, ptr noundef @.str.4)
  %5422 = icmp eq ptr %5421, null
  br i1 %5422, label %5423, label %5476

5423:                                             ; preds = %5416
  br label %5424

5424:                                             ; preds = %5423
  br label %5425

5425:                                             ; preds = %5424
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %5426 = call ptr @__errno_location() #12
  %5427 = load i32, ptr %5426, align 4, !tbaa !5
  store i32 %5427, ptr %102, align 4, !tbaa !5
  %5428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5429 = call i32 @s2n_print_stacktrace(ptr noundef %5428)
  %5430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5431 = trunc i8 %5430 to i1
  br i1 %5431, label %5432, label %5454

5432:                                             ; preds = %5425
  %5433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5434 = call i32 @fileno(ptr noundef %5433) #11
  %5435 = call i32 @isatty(i32 noundef %5434) #11
  %5436 = icmp ne i32 %5435, 0
  br i1 %5436, label %5437, label %5454

5437:                                             ; preds = %5432
  %5438 = load i32, ptr %102, align 4, !tbaa !5
  %5439 = call ptr @__errno_location() #12
  store i32 %5438, ptr %5439, align 4, !tbaa !5
  %5440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5441 = load i32, ptr @test_count, align 4, !tbaa !5
  %5442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5443 = load i32, ptr %5442, align 4, !tbaa !5
  %5444 = call ptr @s2n_strerror(i32 noundef %5443, ptr noundef @.str.4)
  %5445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5446 = load i32, ptr %5445, align 4, !tbaa !5
  %5447 = call ptr @s2n_strerror_debug(i32 noundef %5446, ptr noundef @.str.4)
  %5448 = call ptr @__errno_location() #12
  %5449 = load i32, ptr %5448, align 4, !tbaa !5
  %5450 = call ptr @strerror(i32 noundef %5449) #11
  %5451 = call ptr @__errno_location() #12
  %5452 = load i32, ptr %5451, align 4, !tbaa !5
  %5453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5440, ptr noundef @.str.2, i32 noundef %5441, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 184, ptr noundef %5444, ptr noundef %5447, ptr noundef %5450, i32 noundef %5452) #11
  br label %5471

5454:                                             ; preds = %5432, %5425
  %5455 = load i32, ptr %102, align 4, !tbaa !5
  %5456 = call ptr @__errno_location() #12
  store i32 %5455, ptr %5456, align 4, !tbaa !5
  %5457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5458 = load i32, ptr @test_count, align 4, !tbaa !5
  %5459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5460 = load i32, ptr %5459, align 4, !tbaa !5
  %5461 = call ptr @s2n_strerror(i32 noundef %5460, ptr noundef @.str.4)
  %5462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5463 = load i32, ptr %5462, align 4, !tbaa !5
  %5464 = call ptr @s2n_strerror_debug(i32 noundef %5463, ptr noundef @.str.4)
  %5465 = call ptr @__errno_location() #12
  %5466 = load i32, ptr %5465, align 4, !tbaa !5
  %5467 = call ptr @strerror(i32 noundef %5466) #11
  %5468 = call ptr @__errno_location() #12
  %5469 = load i32, ptr %5468, align 4, !tbaa !5
  %5470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5457, ptr noundef @.str.5, i32 noundef %5458, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 184, ptr noundef %5461, ptr noundef %5464, ptr noundef %5467, i32 noundef %5469) #11
  br label %5471

5471:                                             ; preds = %5454, %5437
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %5472

5472:                                             ; preds = %5471
  br label %5473

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

5474:                                             ; No predecessors!
  br label %5475

5475:                                             ; preds = %5474
  br label %5476

5476:                                             ; preds = %5475, %5416
  br label %5477

5477:                                             ; preds = %5476
  br label %5478

5478:                                             ; preds = %5477
  br label %5479

5479:                                             ; preds = %5478
  %5480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5480, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5481 = call ptr @__errno_location() #12
  store i32 0, ptr %5481, align 4, !tbaa !5
  br label %5482

5482:                                             ; preds = %5479
  br label %5483

5483:                                             ; preds = %5482
  br label %5484

5484:                                             ; preds = %5483
  br label %5485

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

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

5491:                                             ; preds = %5486
  br label %5492

5492:                                             ; preds = %5491
  br label %5493

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

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

5505:                                             ; preds = %5500
  %5506 = load i32, ptr %104, align 4, !tbaa !5
  %5507 = call ptr @__errno_location() #12
  store i32 %5506, ptr %5507, align 4, !tbaa !5
  %5508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5509 = load i32, ptr @test_count, align 4, !tbaa !5
  %5510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5511 = load i32, ptr %5510, align 4, !tbaa !5
  %5512 = call ptr @s2n_strerror(i32 noundef %5511, ptr noundef @.str.4)
  %5513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5514 = load i32, ptr %5513, align 4, !tbaa !5
  %5515 = call ptr @s2n_strerror_debug(i32 noundef %5514, ptr noundef @.str.4)
  %5516 = call ptr @__errno_location() #12
  %5517 = load i32, ptr %5516, align 4, !tbaa !5
  %5518 = call ptr @strerror(i32 noundef %5517) #11
  %5519 = call ptr @__errno_location() #12
  %5520 = load i32, ptr %5519, align 4, !tbaa !5
  %5521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5508, ptr noundef @.str.2, i32 noundef %5509, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 187, ptr noundef %5512, ptr noundef %5515, ptr noundef %5518, i32 noundef %5520) #11
  br label %5539

5522:                                             ; preds = %5500, %5493
  %5523 = load i32, ptr %104, align 4, !tbaa !5
  %5524 = call ptr @__errno_location() #12
  store i32 %5523, ptr %5524, align 4, !tbaa !5
  %5525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5526 = load i32, ptr @test_count, align 4, !tbaa !5
  %5527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5528 = load i32, ptr %5527, align 4, !tbaa !5
  %5529 = call ptr @s2n_strerror(i32 noundef %5528, ptr noundef @.str.4)
  %5530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5531 = load i32, ptr %5530, align 4, !tbaa !5
  %5532 = call ptr @s2n_strerror_debug(i32 noundef %5531, ptr noundef @.str.4)
  %5533 = call ptr @__errno_location() #12
  %5534 = load i32, ptr %5533, align 4, !tbaa !5
  %5535 = call ptr @strerror(i32 noundef %5534) #11
  %5536 = call ptr @__errno_location() #12
  %5537 = load i32, ptr %5536, align 4, !tbaa !5
  %5538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5525, ptr noundef @.str.5, i32 noundef %5526, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 187, ptr noundef %5529, ptr noundef %5532, ptr noundef %5535, i32 noundef %5537) #11
  br label %5539

5539:                                             ; preds = %5522, %5505
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %5540

5540:                                             ; preds = %5539
  br label %5541

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

5542:                                             ; No predecessors!
  br label %5543

5543:                                             ; preds = %5542
  br label %5544

5544:                                             ; preds = %5543, %5486
  br label %5545

5545:                                             ; preds = %5544
  br label %5546

5546:                                             ; preds = %5545
  %5547 = load ptr, ptr %98, align 8, !tbaa !9
  %5548 = getelementptr inbounds %struct.s2n_connection, ptr %5547, i32 0, i32 31
  %5549 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5548, i32 0, i32 1
  %5550 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %5549, i32 0, i32 0
  store ptr null, ptr %5550, align 8, !tbaa !42
  %5551 = load ptr, ptr %98, align 8, !tbaa !9
  %5552 = getelementptr inbounds %struct.s2n_connection, ptr %5551, i32 0, i32 31
  %5553 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5552, i32 0, i32 4
  %5554 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5553, i32 0, i32 0
  store ptr null, ptr %5554, align 8, !tbaa !48
  br label %5555

5555:                                             ; preds = %5546
  br label %5556

5556:                                             ; preds = %5555
  br label %5557

5557:                                             ; preds = %5556
  %5558 = load i32, ptr @test_count, align 4, !tbaa !5
  %5559 = add nsw i32 %5558, 1
  store i32 %5559, ptr @test_count, align 4, !tbaa !5
  %5560 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %5561 = load ptr, ptr %98, align 8, !tbaa !9
  %5562 = call i32 %5560(ptr noundef %5561, ptr noundef %103)
  %5563 = icmp eq i32 %5562, -1
  br i1 %5563, label %5617, label %5564

5564:                                             ; preds = %5557
  br label %5565

5565:                                             ; preds = %5564
  br label %5566

5566:                                             ; preds = %5565
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #11
  %5567 = call ptr @__errno_location() #12
  %5568 = load i32, ptr %5567, align 4, !tbaa !5
  store i32 %5568, ptr %105, align 4, !tbaa !5
  %5569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5570 = call i32 @s2n_print_stacktrace(ptr noundef %5569)
  %5571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5572 = trunc i8 %5571 to i1
  br i1 %5572, label %5573, label %5595

5573:                                             ; preds = %5566
  %5574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5575 = call i32 @fileno(ptr noundef %5574) #11
  %5576 = call i32 @isatty(i32 noundef %5575) #11
  %5577 = icmp ne i32 %5576, 0
  br i1 %5577, label %5578, label %5595

5578:                                             ; preds = %5573
  %5579 = load i32, ptr %105, align 4, !tbaa !5
  %5580 = call ptr @__errno_location() #12
  store i32 %5579, ptr %5580, align 4, !tbaa !5
  %5581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5582 = load i32, ptr @test_count, align 4, !tbaa !5
  %5583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5584 = load i32, ptr %5583, align 4, !tbaa !5
  %5585 = call ptr @s2n_strerror(i32 noundef %5584, ptr noundef @.str.4)
  %5586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5587 = load i32, ptr %5586, align 4, !tbaa !5
  %5588 = call ptr @s2n_strerror_debug(i32 noundef %5587, ptr noundef @.str.4)
  %5589 = call ptr @__errno_location() #12
  %5590 = load i32, ptr %5589, align 4, !tbaa !5
  %5591 = call ptr @strerror(i32 noundef %5590) #11
  %5592 = call ptr @__errno_location() #12
  %5593 = load i32, ptr %5592, align 4, !tbaa !5
  %5594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5581, ptr noundef @.str.2, i32 noundef %5582, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 192, ptr noundef %5585, ptr noundef %5588, ptr noundef %5591, i32 noundef %5593) #11
  br label %5612

5595:                                             ; preds = %5573, %5566
  %5596 = load i32, ptr %105, align 4, !tbaa !5
  %5597 = call ptr @__errno_location() #12
  store i32 %5596, ptr %5597, align 4, !tbaa !5
  %5598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5599 = load i32, ptr @test_count, align 4, !tbaa !5
  %5600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5601 = load i32, ptr %5600, align 4, !tbaa !5
  %5602 = call ptr @s2n_strerror(i32 noundef %5601, ptr noundef @.str.4)
  %5603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5604 = load i32, ptr %5603, align 4, !tbaa !5
  %5605 = call ptr @s2n_strerror_debug(i32 noundef %5604, ptr noundef @.str.4)
  %5606 = call ptr @__errno_location() #12
  %5607 = load i32, ptr %5606, align 4, !tbaa !5
  %5608 = call ptr @strerror(i32 noundef %5607) #11
  %5609 = call ptr @__errno_location() #12
  %5610 = load i32, ptr %5609, align 4, !tbaa !5
  %5611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5598, ptr noundef @.str.5, i32 noundef %5599, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 192, ptr noundef %5602, ptr noundef %5605, ptr noundef %5608, i32 noundef %5610) #11
  br label %5612

5612:                                             ; preds = %5595, %5578
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %5613

5613:                                             ; preds = %5612
  br label %5614

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

5615:                                             ; No predecessors!
  br label %5616

5616:                                             ; preds = %5615
  br label %5617

5617:                                             ; preds = %5616, %5557
  br label %5618

5618:                                             ; preds = %5617
  br label %5619

5619:                                             ; preds = %5618
  br label %5620

5620:                                             ; preds = %5619
  %5621 = load i32, ptr @test_count, align 4, !tbaa !5
  %5622 = add nsw i32 %5621, 1
  store i32 %5622, ptr @test_count, align 4, !tbaa !5
  %5623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5624 = load i32, ptr %5623, align 4, !tbaa !5
  %5625 = icmp eq i32 %5624, 335544356
  br i1 %5625, label %5679, label %5626

5626:                                             ; preds = %5620
  br label %5627

5627:                                             ; preds = %5626
  br label %5628

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

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

5640:                                             ; preds = %5635
  %5641 = load i32, ptr %106, align 4, !tbaa !5
  %5642 = call ptr @__errno_location() #12
  store i32 %5641, ptr %5642, align 4, !tbaa !5
  %5643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5644 = load i32, ptr @test_count, align 4, !tbaa !5
  %5645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5646 = load i32, ptr %5645, align 4, !tbaa !5
  %5647 = call ptr @s2n_strerror(i32 noundef %5646, ptr noundef @.str.4)
  %5648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5649 = load i32, ptr %5648, align 4, !tbaa !5
  %5650 = call ptr @s2n_strerror_debug(i32 noundef %5649, ptr noundef @.str.4)
  %5651 = call ptr @__errno_location() #12
  %5652 = load i32, ptr %5651, align 4, !tbaa !5
  %5653 = call ptr @strerror(i32 noundef %5652) #11
  %5654 = call ptr @__errno_location() #12
  %5655 = load i32, ptr %5654, align 4, !tbaa !5
  %5656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5643, ptr noundef @.str.2, i32 noundef %5644, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 192, ptr noundef %5647, ptr noundef %5650, ptr noundef %5653, i32 noundef %5655) #11
  br label %5674

5657:                                             ; preds = %5635, %5628
  %5658 = load i32, ptr %106, align 4, !tbaa !5
  %5659 = call ptr @__errno_location() #12
  store i32 %5658, ptr %5659, align 4, !tbaa !5
  %5660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5661 = load i32, ptr @test_count, align 4, !tbaa !5
  %5662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5663 = load i32, ptr %5662, align 4, !tbaa !5
  %5664 = call ptr @s2n_strerror(i32 noundef %5663, ptr noundef @.str.4)
  %5665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5666 = load i32, ptr %5665, align 4, !tbaa !5
  %5667 = call ptr @s2n_strerror_debug(i32 noundef %5666, ptr noundef @.str.4)
  %5668 = call ptr @__errno_location() #12
  %5669 = load i32, ptr %5668, align 4, !tbaa !5
  %5670 = call ptr @strerror(i32 noundef %5669) #11
  %5671 = call ptr @__errno_location() #12
  %5672 = load i32, ptr %5671, align 4, !tbaa !5
  %5673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5660, ptr noundef @.str.5, i32 noundef %5661, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 192, ptr noundef %5664, ptr noundef %5667, ptr noundef %5670, i32 noundef %5672) #11
  br label %5674

5674:                                             ; preds = %5657, %5640
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %5675

5675:                                             ; preds = %5674
  br label %5676

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

5677:                                             ; No predecessors!
  br label %5678

5678:                                             ; preds = %5677
  br label %5679

5679:                                             ; preds = %5678, %5620
  br label %5680

5680:                                             ; preds = %5679
  br label %5681

5681:                                             ; preds = %5680
  br label %5682

5682:                                             ; preds = %5681
  %5683 = load i32, ptr @test_count, align 4, !tbaa !5
  %5684 = add nsw i32 %5683, 1
  store i32 %5684, ptr @test_count, align 4, !tbaa !5
  %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 = icmp eq ptr %5687, null
  br i1 %5688, label %5689, label %5742

5689:                                             ; preds = %5682
  br label %5690

5690:                                             ; preds = %5689
  br label %5691

5691:                                             ; preds = %5690
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #11
  %5692 = call ptr @__errno_location() #12
  %5693 = load i32, ptr %5692, align 4, !tbaa !5
  store i32 %5693, ptr %107, align 4, !tbaa !5
  %5694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5695 = call i32 @s2n_print_stacktrace(ptr noundef %5694)
  %5696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5697 = trunc i8 %5696 to i1
  br i1 %5697, label %5698, label %5720

5698:                                             ; preds = %5691
  %5699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5700 = call i32 @fileno(ptr noundef %5699) #11
  %5701 = call i32 @isatty(i32 noundef %5700) #11
  %5702 = icmp ne i32 %5701, 0
  br i1 %5702, label %5703, label %5720

5703:                                             ; preds = %5698
  %5704 = load i32, ptr %107, align 4, !tbaa !5
  %5705 = call ptr @__errno_location() #12
  store i32 %5704, ptr %5705, align 4, !tbaa !5
  %5706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5707 = load i32, ptr @test_count, align 4, !tbaa !5
  %5708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5709 = load i32, ptr %5708, align 4, !tbaa !5
  %5710 = call ptr @s2n_strerror(i32 noundef %5709, ptr noundef @.str.4)
  %5711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5712 = load i32, ptr %5711, align 4, !tbaa !5
  %5713 = call ptr @s2n_strerror_debug(i32 noundef %5712, ptr noundef @.str.4)
  %5714 = call ptr @__errno_location() #12
  %5715 = load i32, ptr %5714, align 4, !tbaa !5
  %5716 = call ptr @strerror(i32 noundef %5715) #11
  %5717 = call ptr @__errno_location() #12
  %5718 = load i32, ptr %5717, align 4, !tbaa !5
  %5719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5706, ptr noundef @.str.2, i32 noundef %5707, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 192, ptr noundef %5710, ptr noundef %5713, ptr noundef %5716, i32 noundef %5718) #11
  br label %5737

5720:                                             ; preds = %5698, %5691
  %5721 = load i32, ptr %107, align 4, !tbaa !5
  %5722 = call ptr @__errno_location() #12
  store i32 %5721, ptr %5722, align 4, !tbaa !5
  %5723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5724 = load i32, ptr @test_count, align 4, !tbaa !5
  %5725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5726 = load i32, ptr %5725, align 4, !tbaa !5
  %5727 = call ptr @s2n_strerror(i32 noundef %5726, ptr noundef @.str.4)
  %5728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5729 = load i32, ptr %5728, align 4, !tbaa !5
  %5730 = call ptr @s2n_strerror_debug(i32 noundef %5729, ptr noundef @.str.4)
  %5731 = call ptr @__errno_location() #12
  %5732 = load i32, ptr %5731, align 4, !tbaa !5
  %5733 = call ptr @strerror(i32 noundef %5732) #11
  %5734 = call ptr @__errno_location() #12
  %5735 = load i32, ptr %5734, align 4, !tbaa !5
  %5736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5723, ptr noundef @.str.5, i32 noundef %5724, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 192, ptr noundef %5727, ptr noundef %5730, ptr noundef %5733, i32 noundef %5735) #11
  br label %5737

5737:                                             ; preds = %5720, %5703
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %5738

5738:                                             ; preds = %5737
  br label %5739

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

5740:                                             ; No predecessors!
  br label %5741

5741:                                             ; preds = %5740
  br label %5742

5742:                                             ; preds = %5741, %5682
  br label %5743

5743:                                             ; preds = %5742
  br label %5744

5744:                                             ; preds = %5743
  br label %5745

5745:                                             ; preds = %5744
  br label %5746

5746:                                             ; preds = %5745
  br label %5747

5747:                                             ; preds = %5746
  %5748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5748, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5749 = call ptr @__errno_location() #12
  store i32 0, ptr %5749, align 4, !tbaa !5
  br label %5750

5750:                                             ; preds = %5747
  br label %5751

5751:                                             ; preds = %5750
  br label %5752

5752:                                             ; preds = %5751
  br label %5753

5753:                                             ; preds = %5752
  br label %5754

5754:                                             ; preds = %5753
  %5755 = load i32, ptr @test_count, align 4, !tbaa !5
  %5756 = add nsw i32 %5755, 1
  store i32 %5756, ptr @test_count, align 4, !tbaa !5
  %5757 = load ptr, ptr %98, align 8, !tbaa !9
  %5758 = call i32 @s2n_connection_free(ptr noundef %5757)
  %5759 = icmp eq i32 %5758, -1
  br i1 %5759, label %5760, label %5813

5760:                                             ; preds = %5754
  br label %5761

5761:                                             ; preds = %5760
  br label %5762

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

5769:                                             ; preds = %5762
  %5770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5771 = call i32 @fileno(ptr noundef %5770) #11
  %5772 = call i32 @isatty(i32 noundef %5771) #11
  %5773 = icmp ne i32 %5772, 0
  br i1 %5773, label %5774, label %5791

5774:                                             ; preds = %5769
  %5775 = load i32, ptr %108, align 4, !tbaa !5
  %5776 = call ptr @__errno_location() #12
  store i32 %5775, ptr %5776, align 4, !tbaa !5
  %5777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5778 = load i32, ptr @test_count, align 4, !tbaa !5
  %5779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5780 = load i32, ptr %5779, align 4, !tbaa !5
  %5781 = call ptr @s2n_strerror(i32 noundef %5780, ptr noundef @.str.4)
  %5782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5783 = load i32, ptr %5782, align 4, !tbaa !5
  %5784 = call ptr @s2n_strerror_debug(i32 noundef %5783, ptr noundef @.str.4)
  %5785 = call ptr @__errno_location() #12
  %5786 = load i32, ptr %5785, align 4, !tbaa !5
  %5787 = call ptr @strerror(i32 noundef %5786) #11
  %5788 = call ptr @__errno_location() #12
  %5789 = load i32, ptr %5788, align 4, !tbaa !5
  %5790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5777, ptr noundef @.str.2, i32 noundef %5778, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 194, ptr noundef %5781, ptr noundef %5784, ptr noundef %5787, i32 noundef %5789) #11
  br label %5808

5791:                                             ; preds = %5769, %5762
  %5792 = load i32, ptr %108, align 4, !tbaa !5
  %5793 = call ptr @__errno_location() #12
  store i32 %5792, ptr %5793, align 4, !tbaa !5
  %5794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5795 = load i32, ptr @test_count, align 4, !tbaa !5
  %5796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5797 = load i32, ptr %5796, align 4, !tbaa !5
  %5798 = call ptr @s2n_strerror(i32 noundef %5797, ptr noundef @.str.4)
  %5799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5800 = load i32, ptr %5799, align 4, !tbaa !5
  %5801 = call ptr @s2n_strerror_debug(i32 noundef %5800, ptr noundef @.str.4)
  %5802 = call ptr @__errno_location() #12
  %5803 = load i32, ptr %5802, align 4, !tbaa !5
  %5804 = call ptr @strerror(i32 noundef %5803) #11
  %5805 = call ptr @__errno_location() #12
  %5806 = load i32, ptr %5805, align 4, !tbaa !5
  %5807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5794, ptr noundef @.str.5, i32 noundef %5795, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 194, ptr noundef %5798, ptr noundef %5801, ptr noundef %5804, i32 noundef %5806) #11
  br label %5808

5808:                                             ; preds = %5791, %5774
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %5809

5809:                                             ; preds = %5808
  br label %5810

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

5811:                                             ; No predecessors!
  br label %5812

5812:                                             ; preds = %5811
  br label %5813

5813:                                             ; preds = %5812, %5754
  br label %5814

5814:                                             ; preds = %5813
  br label %5815

5815:                                             ; preds = %5814
  %5816 = call i32 @s2n_stuffer_free(ptr noundef %103)
  call void @llvm.lifetime.end.p0(i64 40, ptr %103) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #11
  store ptr null, ptr %109, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  store i32 0, ptr %110, align 4, !tbaa !5
  br label %5817

5817:                                             ; preds = %6696, %5815
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #11
  store ptr null, ptr %111, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #11
  store ptr null, ptr %112, align 8, !tbaa !9
  br label %5818

5818:                                             ; preds = %5817
  %5819 = load i32, ptr @test_count, align 4, !tbaa !5
  %5820 = add nsw i32 %5819, 1
  store i32 %5820, ptr @test_count, align 4, !tbaa !5
  %5821 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5821, ptr %111, align 8, !tbaa !9
  %5822 = icmp eq ptr %5821, null
  br i1 %5822, label %5823, label %5876

5823:                                             ; preds = %5818
  br label %5824

5824:                                             ; preds = %5823
  br label %5825

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

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

5837:                                             ; preds = %5832
  %5838 = load i32, ptr %113, align 4, !tbaa !5
  %5839 = call ptr @__errno_location() #12
  store i32 %5838, ptr %5839, align 4, !tbaa !5
  %5840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5841 = load i32, ptr @test_count, align 4, !tbaa !5
  %5842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5843 = load i32, ptr %5842, align 4, !tbaa !5
  %5844 = call ptr @s2n_strerror(i32 noundef %5843, ptr noundef @.str.4)
  %5845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5846 = load i32, ptr %5845, align 4, !tbaa !5
  %5847 = call ptr @s2n_strerror_debug(i32 noundef %5846, ptr noundef @.str.4)
  %5848 = call ptr @__errno_location() #12
  %5849 = load i32, ptr %5848, align 4, !tbaa !5
  %5850 = call ptr @strerror(i32 noundef %5849) #11
  %5851 = call ptr @__errno_location() #12
  %5852 = load i32, ptr %5851, align 4, !tbaa !5
  %5853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5840, ptr noundef @.str.2, i32 noundef %5841, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 205, ptr noundef %5844, ptr noundef %5847, ptr noundef %5850, i32 noundef %5852) #11
  br label %5871

5854:                                             ; preds = %5832, %5825
  %5855 = load i32, ptr %113, align 4, !tbaa !5
  %5856 = call ptr @__errno_location() #12
  store i32 %5855, ptr %5856, align 4, !tbaa !5
  %5857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5858 = load i32, ptr @test_count, align 4, !tbaa !5
  %5859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5860 = load i32, ptr %5859, align 4, !tbaa !5
  %5861 = call ptr @s2n_strerror(i32 noundef %5860, ptr noundef @.str.4)
  %5862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5863 = load i32, ptr %5862, align 4, !tbaa !5
  %5864 = call ptr @s2n_strerror_debug(i32 noundef %5863, ptr noundef @.str.4)
  %5865 = call ptr @__errno_location() #12
  %5866 = load i32, ptr %5865, align 4, !tbaa !5
  %5867 = call ptr @strerror(i32 noundef %5866) #11
  %5868 = call ptr @__errno_location() #12
  %5869 = load i32, ptr %5868, align 4, !tbaa !5
  %5870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5857, ptr noundef @.str.5, i32 noundef %5858, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 205, ptr noundef %5861, ptr noundef %5864, ptr noundef %5867, i32 noundef %5869) #11
  br label %5871

5871:                                             ; preds = %5854, %5837
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %5872

5872:                                             ; preds = %5871
  br label %5873

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

5874:                                             ; No predecessors!
  br label %5875

5875:                                             ; preds = %5874
  br label %5876

5876:                                             ; preds = %5875, %5818
  br label %5877

5877:                                             ; preds = %5876
  br label %5878

5878:                                             ; preds = %5877
  br label %5879

5879:                                             ; preds = %5878
  %5880 = load i32, ptr @test_count, align 4, !tbaa !5
  %5881 = add nsw i32 %5880, 1
  store i32 %5881, ptr @test_count, align 4, !tbaa !5
  %5882 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5882, ptr %112, align 8, !tbaa !9
  %5883 = icmp eq ptr %5882, null
  br i1 %5883, label %5884, label %5937

5884:                                             ; preds = %5879
  br label %5885

5885:                                             ; preds = %5884
  br label %5886

5886:                                             ; preds = %5885
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %5887 = call ptr @__errno_location() #12
  %5888 = load i32, ptr %5887, align 4, !tbaa !5
  store i32 %5888, ptr %114, align 4, !tbaa !5
  %5889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5890 = call i32 @s2n_print_stacktrace(ptr noundef %5889)
  %5891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5892 = trunc i8 %5891 to i1
  br i1 %5892, label %5893, label %5915

5893:                                             ; preds = %5886
  %5894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5895 = call i32 @fileno(ptr noundef %5894) #11
  %5896 = call i32 @isatty(i32 noundef %5895) #11
  %5897 = icmp ne i32 %5896, 0
  br i1 %5897, label %5898, label %5915

5898:                                             ; preds = %5893
  %5899 = load i32, ptr %114, align 4, !tbaa !5
  %5900 = call ptr @__errno_location() #12
  store i32 %5899, ptr %5900, align 4, !tbaa !5
  %5901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5902 = load i32, ptr @test_count, align 4, !tbaa !5
  %5903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5904 = load i32, ptr %5903, align 4, !tbaa !5
  %5905 = call ptr @s2n_strerror(i32 noundef %5904, ptr noundef @.str.4)
  %5906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5907 = load i32, ptr %5906, align 4, !tbaa !5
  %5908 = call ptr @s2n_strerror_debug(i32 noundef %5907, ptr noundef @.str.4)
  %5909 = call ptr @__errno_location() #12
  %5910 = load i32, ptr %5909, align 4, !tbaa !5
  %5911 = call ptr @strerror(i32 noundef %5910) #11
  %5912 = call ptr @__errno_location() #12
  %5913 = load i32, ptr %5912, align 4, !tbaa !5
  %5914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5901, ptr noundef @.str.2, i32 noundef %5902, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 206, ptr noundef %5905, ptr noundef %5908, ptr noundef %5911, i32 noundef %5913) #11
  br label %5932

5915:                                             ; preds = %5893, %5886
  %5916 = load i32, ptr %114, align 4, !tbaa !5
  %5917 = call ptr @__errno_location() #12
  store i32 %5916, ptr %5917, align 4, !tbaa !5
  %5918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5919 = load i32, ptr @test_count, align 4, !tbaa !5
  %5920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5921 = load i32, ptr %5920, align 4, !tbaa !5
  %5922 = call ptr @s2n_strerror(i32 noundef %5921, ptr noundef @.str.4)
  %5923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5924 = load i32, ptr %5923, align 4, !tbaa !5
  %5925 = call ptr @s2n_strerror_debug(i32 noundef %5924, ptr noundef @.str.4)
  %5926 = call ptr @__errno_location() #12
  %5927 = load i32, ptr %5926, align 4, !tbaa !5
  %5928 = call ptr @strerror(i32 noundef %5927) #11
  %5929 = call ptr @__errno_location() #12
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  %5931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5918, ptr noundef @.str.5, i32 noundef %5919, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 206, ptr noundef %5922, ptr noundef %5925, ptr noundef %5928, i32 noundef %5930) #11
  br label %5932

5932:                                             ; preds = %5915, %5898
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %5933

5933:                                             ; preds = %5932
  br label %5934

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

5935:                                             ; No predecessors!
  br label %5936

5936:                                             ; preds = %5935
  br label %5937

5937:                                             ; preds = %5936, %5879
  br label %5938

5938:                                             ; preds = %5937
  br label %5939

5939:                                             ; preds = %5938
  br label %5940

5940:                                             ; preds = %5939
  %5941 = load i32, ptr @test_count, align 4, !tbaa !5
  %5942 = add nsw i32 %5941, 1
  store i32 %5942, ptr @test_count, align 4, !tbaa !5
  %5943 = load ptr, ptr %111, align 8, !tbaa !9
  %5944 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %5943, ptr noundef %109)
  %5945 = icmp eq i32 %5944, -1
  br i1 %5945, label %5946, label %5999

5946:                                             ; preds = %5940
  br label %5947

5947:                                             ; preds = %5946
  br label %5948

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

5955:                                             ; preds = %5948
  %5956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5957 = call i32 @fileno(ptr noundef %5956) #11
  %5958 = call i32 @isatty(i32 noundef %5957) #11
  %5959 = icmp ne i32 %5958, 0
  br i1 %5959, label %5960, label %5977

5960:                                             ; preds = %5955
  %5961 = load i32, ptr %115, align 4, !tbaa !5
  %5962 = call ptr @__errno_location() #12
  store i32 %5961, ptr %5962, align 4, !tbaa !5
  %5963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5964 = load i32, ptr @test_count, align 4, !tbaa !5
  %5965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5966 = load i32, ptr %5965, align 4, !tbaa !5
  %5967 = call ptr @s2n_strerror(i32 noundef %5966, ptr noundef @.str.4)
  %5968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5969 = load i32, ptr %5968, align 4, !tbaa !5
  %5970 = call ptr @s2n_strerror_debug(i32 noundef %5969, ptr noundef @.str.4)
  %5971 = call ptr @__errno_location() #12
  %5972 = load i32, ptr %5971, align 4, !tbaa !5
  %5973 = call ptr @strerror(i32 noundef %5972) #11
  %5974 = call ptr @__errno_location() #12
  %5975 = load i32, ptr %5974, align 4, !tbaa !5
  %5976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5963, ptr noundef @.str.2, i32 noundef %5964, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 208, ptr noundef %5967, ptr noundef %5970, ptr noundef %5973, i32 noundef %5975) #11
  br label %5994

5977:                                             ; preds = %5955, %5948
  %5978 = load i32, ptr %115, align 4, !tbaa !5
  %5979 = call ptr @__errno_location() #12
  store i32 %5978, ptr %5979, align 4, !tbaa !5
  %5980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5981 = load i32, ptr @test_count, align 4, !tbaa !5
  %5982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5983 = load i32, ptr %5982, align 4, !tbaa !5
  %5984 = call ptr @s2n_strerror(i32 noundef %5983, ptr noundef @.str.4)
  %5985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5986 = load i32, ptr %5985, align 4, !tbaa !5
  %5987 = call ptr @s2n_strerror_debug(i32 noundef %5986, ptr noundef @.str.4)
  %5988 = call ptr @__errno_location() #12
  %5989 = load i32, ptr %5988, align 4, !tbaa !5
  %5990 = call ptr @strerror(i32 noundef %5989) #11
  %5991 = call ptr @__errno_location() #12
  %5992 = load i32, ptr %5991, align 4, !tbaa !5
  %5993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5980, ptr noundef @.str.5, i32 noundef %5981, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 208, ptr noundef %5984, ptr noundef %5987, ptr noundef %5990, i32 noundef %5992) #11
  br label %5994

5994:                                             ; preds = %5977, %5960
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %5995

5995:                                             ; preds = %5994
  br label %5996

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

5997:                                             ; No predecessors!
  br label %5998

5998:                                             ; preds = %5997
  br label %5999

5999:                                             ; preds = %5998, %5940
  br label %6000

6000:                                             ; preds = %5999
  br label %6001

6001:                                             ; preds = %6000
  br label %6002

6002:                                             ; preds = %6001
  %6003 = load i32, ptr @test_count, align 4, !tbaa !5
  %6004 = add nsw i32 %6003, 1
  store i32 %6004, ptr @test_count, align 4, !tbaa !5
  %6005 = load ptr, ptr %109, align 8, !tbaa !9
  %6006 = icmp eq ptr %6005, null
  br i1 %6006, label %6007, label %6060

6007:                                             ; preds = %6002
  br label %6008

6008:                                             ; preds = %6007
  br label %6009

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

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

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

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

6055:                                             ; preds = %6038, %6021
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %6056

6056:                                             ; preds = %6055
  br label %6057

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

6058:                                             ; No predecessors!
  br label %6059

6059:                                             ; preds = %6058
  br label %6060

6060:                                             ; preds = %6059, %6002
  br label %6061

6061:                                             ; preds = %6060
  br label %6062

6062:                                             ; preds = %6061
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #11
  %6063 = load ptr, ptr %111, align 8, !tbaa !9
  %6064 = getelementptr inbounds %struct.s2n_connection, ptr %6063, i32 0, i32 52
  %6065 = getelementptr inbounds %struct.s2n_handshake, ptr %6064, i32 0, i32 0
  store ptr %6065, ptr %117, align 8, !tbaa !9
  %6066 = load ptr, ptr %109, align 8, !tbaa !9
  %6067 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %6066, i32 0, i32 1
  %6068 = load ptr, ptr %6067, align 8, !tbaa !43
  %6069 = load i32, ptr %110, align 4, !tbaa !5
  %6070 = sext i32 %6069 to i64
  %6071 = getelementptr inbounds ptr, ptr %6068, i64 %6070
  %6072 = load ptr, ptr %6071, align 8, !tbaa !9
  %6073 = load ptr, ptr %111, align 8, !tbaa !9
  %6074 = getelementptr inbounds %struct.s2n_connection, ptr %6073, i32 0, i32 31
  %6075 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6074, i32 0, i32 1
  %6076 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6075, i32 0, i32 0
  store ptr %6072, ptr %6076, align 8, !tbaa !42
  %6077 = load ptr, ptr %109, align 8, !tbaa !9
  %6078 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %6077, i32 0, i32 1
  %6079 = load ptr, ptr %6078, align 8, !tbaa !43
  %6080 = load i32, ptr %110, align 4, !tbaa !5
  %6081 = sext i32 %6080 to i64
  %6082 = getelementptr inbounds ptr, ptr %6079, i64 %6081
  %6083 = load ptr, ptr %6082, align 8, !tbaa !9
  %6084 = load ptr, ptr %111, align 8, !tbaa !9
  %6085 = getelementptr inbounds %struct.s2n_connection, ptr %6084, i32 0, i32 31
  %6086 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6085, i32 0, i32 3
  %6087 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6086, i32 0, i32 0
  store ptr %6083, ptr %6087, align 8, !tbaa !45
  br label %6088

6088:                                             ; preds = %6062
  %6089 = load i32, ptr @test_count, align 4, !tbaa !5
  %6090 = add nsw i32 %6089, 1
  store i32 %6090, ptr @test_count, align 4, !tbaa !5
  %6091 = load ptr, ptr %111, align 8, !tbaa !9
  %6092 = getelementptr inbounds %struct.s2n_connection, ptr %6091, i32 0, i32 31
  %6093 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6092, i32 0, i32 3
  %6094 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %6093)
  %6095 = icmp eq i32 %6094, -1
  br i1 %6095, label %6096, label %6149

6096:                                             ; preds = %6088
  br label %6097

6097:                                             ; preds = %6096
  br label %6098

6098:                                             ; preds = %6097
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %6099 = call ptr @__errno_location() #12
  %6100 = load i32, ptr %6099, align 4, !tbaa !5
  store i32 %6100, ptr %118, align 4, !tbaa !5
  %6101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6102 = call i32 @s2n_print_stacktrace(ptr noundef %6101)
  %6103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6104 = trunc i8 %6103 to i1
  br i1 %6104, label %6105, label %6127

6105:                                             ; preds = %6098
  %6106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6107 = call i32 @fileno(ptr noundef %6106) #11
  %6108 = call i32 @isatty(i32 noundef %6107) #11
  %6109 = icmp ne i32 %6108, 0
  br i1 %6109, label %6110, label %6127

6110:                                             ; preds = %6105
  %6111 = load i32, ptr %118, align 4, !tbaa !5
  %6112 = call ptr @__errno_location() #12
  store i32 %6111, ptr %6112, align 4, !tbaa !5
  %6113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6114 = load i32, ptr @test_count, align 4, !tbaa !5
  %6115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6116 = load i32, ptr %6115, align 4, !tbaa !5
  %6117 = call ptr @s2n_strerror(i32 noundef %6116, ptr noundef @.str.4)
  %6118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6119 = load i32, ptr %6118, align 4, !tbaa !5
  %6120 = call ptr @s2n_strerror_debug(i32 noundef %6119, ptr noundef @.str.4)
  %6121 = call ptr @__errno_location() #12
  %6122 = load i32, ptr %6121, align 4, !tbaa !5
  %6123 = call ptr @strerror(i32 noundef %6122) #11
  %6124 = call ptr @__errno_location() #12
  %6125 = load i32, ptr %6124, align 4, !tbaa !5
  %6126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6113, ptr noundef @.str.2, i32 noundef %6114, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 215, ptr noundef %6117, ptr noundef %6120, ptr noundef %6123, i32 noundef %6125) #11
  br label %6144

6127:                                             ; preds = %6105, %6098
  %6128 = load i32, ptr %118, align 4, !tbaa !5
  %6129 = call ptr @__errno_location() #12
  store i32 %6128, ptr %6129, align 4, !tbaa !5
  %6130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6131 = load i32, ptr @test_count, align 4, !tbaa !5
  %6132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6133 = load i32, ptr %6132, align 4, !tbaa !5
  %6134 = call ptr @s2n_strerror(i32 noundef %6133, ptr noundef @.str.4)
  %6135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6136 = load i32, ptr %6135, align 4, !tbaa !5
  %6137 = call ptr @s2n_strerror_debug(i32 noundef %6136, ptr noundef @.str.4)
  %6138 = call ptr @__errno_location() #12
  %6139 = load i32, ptr %6138, align 4, !tbaa !5
  %6140 = call ptr @strerror(i32 noundef %6139) #11
  %6141 = call ptr @__errno_location() #12
  %6142 = load i32, ptr %6141, align 4, !tbaa !5
  %6143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6130, ptr noundef @.str.5, i32 noundef %6131, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 215, ptr noundef %6134, ptr noundef %6137, ptr noundef %6140, i32 noundef %6142) #11
  br label %6144

6144:                                             ; preds = %6127, %6110
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %6145

6145:                                             ; preds = %6144
  br label %6146

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

6147:                                             ; No predecessors!
  br label %6148

6148:                                             ; preds = %6147
  br label %6149

6149:                                             ; preds = %6148, %6088
  br label %6150

6150:                                             ; preds = %6149
  br label %6151

6151:                                             ; preds = %6150
  br label %6152

6152:                                             ; preds = %6151
  %6153 = load i32, ptr @test_count, align 4, !tbaa !5
  %6154 = add nsw i32 %6153, 1
  store i32 %6154, ptr @test_count, align 4, !tbaa !5
  %6155 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %6156 = load ptr, ptr %111, align 8, !tbaa !9
  %6157 = load ptr, ptr %117, align 8, !tbaa !9
  %6158 = call i32 %6155(ptr noundef %6156, ptr noundef %6157)
  %6159 = icmp eq i32 %6158, -1
  br i1 %6159, label %6160, label %6213

6160:                                             ; preds = %6152
  br label %6161

6161:                                             ; preds = %6160
  br label %6162

6162:                                             ; preds = %6161
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %6163 = call ptr @__errno_location() #12
  %6164 = load i32, ptr %6163, align 4, !tbaa !5
  store i32 %6164, ptr %119, align 4, !tbaa !5
  %6165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6166 = call i32 @s2n_print_stacktrace(ptr noundef %6165)
  %6167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6168 = trunc i8 %6167 to i1
  br i1 %6168, label %6169, label %6191

6169:                                             ; preds = %6162
  %6170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6171 = call i32 @fileno(ptr noundef %6170) #11
  %6172 = call i32 @isatty(i32 noundef %6171) #11
  %6173 = icmp ne i32 %6172, 0
  br i1 %6173, label %6174, label %6191

6174:                                             ; preds = %6169
  %6175 = load i32, ptr %119, align 4, !tbaa !5
  %6176 = call ptr @__errno_location() #12
  store i32 %6175, ptr %6176, align 4, !tbaa !5
  %6177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6178 = load i32, ptr @test_count, align 4, !tbaa !5
  %6179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6180 = load i32, ptr %6179, align 4, !tbaa !5
  %6181 = call ptr @s2n_strerror(i32 noundef %6180, ptr noundef @.str.4)
  %6182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6183 = load i32, ptr %6182, align 4, !tbaa !5
  %6184 = call ptr @s2n_strerror_debug(i32 noundef %6183, ptr noundef @.str.4)
  %6185 = call ptr @__errno_location() #12
  %6186 = load i32, ptr %6185, align 4, !tbaa !5
  %6187 = call ptr @strerror(i32 noundef %6186) #11
  %6188 = call ptr @__errno_location() #12
  %6189 = load i32, ptr %6188, align 4, !tbaa !5
  %6190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6177, ptr noundef @.str.2, i32 noundef %6178, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 216, ptr noundef %6181, ptr noundef %6184, ptr noundef %6187, i32 noundef %6189) #11
  br label %6208

6191:                                             ; preds = %6169, %6162
  %6192 = load i32, ptr %119, align 4, !tbaa !5
  %6193 = call ptr @__errno_location() #12
  store i32 %6192, ptr %6193, align 4, !tbaa !5
  %6194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6195 = load i32, ptr @test_count, align 4, !tbaa !5
  %6196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6197 = load i32, ptr %6196, align 4, !tbaa !5
  %6198 = call ptr @s2n_strerror(i32 noundef %6197, ptr noundef @.str.4)
  %6199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6200 = load i32, ptr %6199, align 4, !tbaa !5
  %6201 = call ptr @s2n_strerror_debug(i32 noundef %6200, ptr noundef @.str.4)
  %6202 = call ptr @__errno_location() #12
  %6203 = load i32, ptr %6202, align 4, !tbaa !5
  %6204 = call ptr @strerror(i32 noundef %6203) #11
  %6205 = call ptr @__errno_location() #12
  %6206 = load i32, ptr %6205, align 4, !tbaa !5
  %6207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6194, ptr noundef @.str.5, i32 noundef %6195, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 216, ptr noundef %6198, ptr noundef %6201, ptr noundef %6204, i32 noundef %6206) #11
  br label %6208

6208:                                             ; preds = %6191, %6174
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %6209

6209:                                             ; preds = %6208
  br label %6210

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

6211:                                             ; No predecessors!
  br label %6212

6212:                                             ; preds = %6211
  br label %6213

6213:                                             ; preds = %6212, %6152
  br label %6214

6214:                                             ; preds = %6213
  br label %6215

6215:                                             ; preds = %6214
  %6216 = load ptr, ptr %109, align 8, !tbaa !9
  %6217 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %6216, i32 0, i32 1
  %6218 = load ptr, ptr %6217, align 8, !tbaa !43
  %6219 = load i32, ptr %110, align 4, !tbaa !5
  %6220 = sext i32 %6219 to i64
  %6221 = getelementptr inbounds ptr, ptr %6218, i64 %6220
  %6222 = load ptr, ptr %6221, align 8, !tbaa !9
  %6223 = load ptr, ptr %112, align 8, !tbaa !9
  %6224 = getelementptr inbounds %struct.s2n_connection, ptr %6223, i32 0, i32 31
  %6225 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6224, i32 0, i32 3
  %6226 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6225, i32 0, i32 0
  store ptr %6222, ptr %6226, align 8, !tbaa !45
  br label %6227

6227:                                             ; preds = %6215
  %6228 = load i32, ptr @test_count, align 4, !tbaa !5
  %6229 = add nsw i32 %6228, 1
  store i32 %6229, ptr @test_count, align 4, !tbaa !5
  %6230 = load ptr, ptr %112, align 8, !tbaa !9
  %6231 = getelementptr inbounds %struct.s2n_connection, ptr %6230, i32 0, i32 31
  %6232 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6231, i32 0, i32 3
  %6233 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %6232)
  %6234 = icmp eq i32 %6233, -1
  br i1 %6234, label %6235, label %6288

6235:                                             ; preds = %6227
  br label %6236

6236:                                             ; preds = %6235
  br label %6237

6237:                                             ; preds = %6236
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #11
  %6238 = call ptr @__errno_location() #12
  %6239 = load i32, ptr %6238, align 4, !tbaa !5
  store i32 %6239, ptr %120, align 4, !tbaa !5
  %6240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6241 = call i32 @s2n_print_stacktrace(ptr noundef %6240)
  %6242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6243 = trunc i8 %6242 to i1
  br i1 %6243, label %6244, label %6266

6244:                                             ; preds = %6237
  %6245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6246 = call i32 @fileno(ptr noundef %6245) #11
  %6247 = call i32 @isatty(i32 noundef %6246) #11
  %6248 = icmp ne i32 %6247, 0
  br i1 %6248, label %6249, label %6266

6249:                                             ; preds = %6244
  %6250 = load i32, ptr %120, align 4, !tbaa !5
  %6251 = call ptr @__errno_location() #12
  store i32 %6250, ptr %6251, align 4, !tbaa !5
  %6252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6253 = load i32, ptr @test_count, align 4, !tbaa !5
  %6254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6255 = load i32, ptr %6254, align 4, !tbaa !5
  %6256 = call ptr @s2n_strerror(i32 noundef %6255, ptr noundef @.str.4)
  %6257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6258 = load i32, ptr %6257, align 4, !tbaa !5
  %6259 = call ptr @s2n_strerror_debug(i32 noundef %6258, ptr noundef @.str.4)
  %6260 = call ptr @__errno_location() #12
  %6261 = load i32, ptr %6260, align 4, !tbaa !5
  %6262 = call ptr @strerror(i32 noundef %6261) #11
  %6263 = call ptr @__errno_location() #12
  %6264 = load i32, ptr %6263, align 4, !tbaa !5
  %6265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6252, ptr noundef @.str.2, i32 noundef %6253, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 219, ptr noundef %6256, ptr noundef %6259, ptr noundef %6262, i32 noundef %6264) #11
  br label %6283

6266:                                             ; preds = %6244, %6237
  %6267 = load i32, ptr %120, align 4, !tbaa !5
  %6268 = call ptr @__errno_location() #12
  store i32 %6267, ptr %6268, align 4, !tbaa !5
  %6269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6270 = load i32, ptr @test_count, align 4, !tbaa !5
  %6271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6272 = load i32, ptr %6271, align 4, !tbaa !5
  %6273 = call ptr @s2n_strerror(i32 noundef %6272, ptr noundef @.str.4)
  %6274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6275 = load i32, ptr %6274, align 4, !tbaa !5
  %6276 = call ptr @s2n_strerror_debug(i32 noundef %6275, ptr noundef @.str.4)
  %6277 = call ptr @__errno_location() #12
  %6278 = load i32, ptr %6277, align 4, !tbaa !5
  %6279 = call ptr @strerror(i32 noundef %6278) #11
  %6280 = call ptr @__errno_location() #12
  %6281 = load i32, ptr %6280, align 4, !tbaa !5
  %6282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6269, ptr noundef @.str.5, i32 noundef %6270, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 219, ptr noundef %6273, ptr noundef %6276, ptr noundef %6279, i32 noundef %6281) #11
  br label %6283

6283:                                             ; preds = %6266, %6249
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %6284

6284:                                             ; preds = %6283
  br label %6285

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

6286:                                             ; No predecessors!
  br label %6287

6287:                                             ; preds = %6286
  br label %6288

6288:                                             ; preds = %6287, %6227
  br label %6289

6289:                                             ; preds = %6288
  br label %6290

6290:                                             ; preds = %6289
  br label %6291

6291:                                             ; preds = %6290
  %6292 = load i32, ptr @test_count, align 4, !tbaa !5
  %6293 = add nsw i32 %6292, 1
  store i32 %6293, ptr @test_count, align 4, !tbaa !5
  %6294 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %6295 = load ptr, ptr %112, align 8, !tbaa !9
  %6296 = load ptr, ptr %117, align 8, !tbaa !9
  %6297 = call i32 %6294(ptr noundef %6295, ptr noundef %6296)
  %6298 = icmp eq i32 %6297, -1
  br i1 %6298, label %6299, label %6352

6299:                                             ; preds = %6291
  br label %6300

6300:                                             ; preds = %6299
  br label %6301

6301:                                             ; preds = %6300
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #11
  %6302 = call ptr @__errno_location() #12
  %6303 = load i32, ptr %6302, align 4, !tbaa !5
  store i32 %6303, ptr %121, align 4, !tbaa !5
  %6304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6305 = call i32 @s2n_print_stacktrace(ptr noundef %6304)
  %6306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6307 = trunc i8 %6306 to i1
  br i1 %6307, label %6308, label %6330

6308:                                             ; preds = %6301
  %6309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6310 = call i32 @fileno(ptr noundef %6309) #11
  %6311 = call i32 @isatty(i32 noundef %6310) #11
  %6312 = icmp ne i32 %6311, 0
  br i1 %6312, label %6313, label %6330

6313:                                             ; preds = %6308
  %6314 = load i32, ptr %121, align 4, !tbaa !5
  %6315 = call ptr @__errno_location() #12
  store i32 %6314, ptr %6315, align 4, !tbaa !5
  %6316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6317 = load i32, ptr @test_count, align 4, !tbaa !5
  %6318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6319 = load i32, ptr %6318, align 4, !tbaa !5
  %6320 = call ptr @s2n_strerror(i32 noundef %6319, ptr noundef @.str.4)
  %6321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6322 = load i32, ptr %6321, align 4, !tbaa !5
  %6323 = call ptr @s2n_strerror_debug(i32 noundef %6322, ptr noundef @.str.4)
  %6324 = call ptr @__errno_location() #12
  %6325 = load i32, ptr %6324, align 4, !tbaa !5
  %6326 = call ptr @strerror(i32 noundef %6325) #11
  %6327 = call ptr @__errno_location() #12
  %6328 = load i32, ptr %6327, align 4, !tbaa !5
  %6329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6316, ptr noundef @.str.2, i32 noundef %6317, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 222, ptr noundef %6320, ptr noundef %6323, ptr noundef %6326, i32 noundef %6328) #11
  br label %6347

6330:                                             ; preds = %6308, %6301
  %6331 = load i32, ptr %121, align 4, !tbaa !5
  %6332 = call ptr @__errno_location() #12
  store i32 %6331, ptr %6332, align 4, !tbaa !5
  %6333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6334 = load i32, ptr @test_count, align 4, !tbaa !5
  %6335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6336 = load i32, ptr %6335, align 4, !tbaa !5
  %6337 = call ptr @s2n_strerror(i32 noundef %6336, ptr noundef @.str.4)
  %6338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6339 = load i32, ptr %6338, align 4, !tbaa !5
  %6340 = call ptr @s2n_strerror_debug(i32 noundef %6339, ptr noundef @.str.4)
  %6341 = call ptr @__errno_location() #12
  %6342 = load i32, ptr %6341, align 4, !tbaa !5
  %6343 = call ptr @strerror(i32 noundef %6342) #11
  %6344 = call ptr @__errno_location() #12
  %6345 = load i32, ptr %6344, align 4, !tbaa !5
  %6346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6333, ptr noundef @.str.5, i32 noundef %6334, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 222, ptr noundef %6337, ptr noundef %6340, ptr noundef %6343, i32 noundef %6345) #11
  br label %6347

6347:                                             ; preds = %6330, %6313
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #11
  br label %6348

6348:                                             ; preds = %6347
  br label %6349

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

6350:                                             ; No predecessors!
  br label %6351

6351:                                             ; preds = %6350
  br label %6352

6352:                                             ; preds = %6351, %6291
  br label %6353

6353:                                             ; preds = %6352
  br label %6354

6354:                                             ; preds = %6353
  br label %6355

6355:                                             ; preds = %6354
  %6356 = load i32, ptr @test_count, align 4, !tbaa !5
  %6357 = add nsw i32 %6356, 1
  store i32 %6357, ptr @test_count, align 4, !tbaa !5
  %6358 = load ptr, ptr %117, align 8, !tbaa !9
  %6359 = getelementptr inbounds %struct.s2n_stuffer, ptr %6358, i32 0, i32 2
  %6360 = load i32, ptr %6359, align 4, !tbaa !55
  %6361 = load ptr, ptr %117, align 8, !tbaa !9
  %6362 = getelementptr inbounds %struct.s2n_stuffer, ptr %6361, i32 0, i32 1
  %6363 = load i32, ptr %6362, align 8, !tbaa !56
  %6364 = sub i32 %6360, %6363
  %6365 = icmp eq i32 %6364, 0
  br i1 %6365, label %6419, label %6366

6366:                                             ; preds = %6355
  br label %6367

6367:                                             ; preds = %6366
  br label %6368

6368:                                             ; preds = %6367
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #11
  %6369 = call ptr @__errno_location() #12
  %6370 = load i32, ptr %6369, align 4, !tbaa !5
  store i32 %6370, ptr %122, align 4, !tbaa !5
  %6371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6372 = call i32 @s2n_print_stacktrace(ptr noundef %6371)
  %6373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6374 = trunc i8 %6373 to i1
  br i1 %6374, label %6375, label %6397

6375:                                             ; preds = %6368
  %6376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6377 = call i32 @fileno(ptr noundef %6376) #11
  %6378 = call i32 @isatty(i32 noundef %6377) #11
  %6379 = icmp ne i32 %6378, 0
  br i1 %6379, label %6380, label %6397

6380:                                             ; preds = %6375
  %6381 = load i32, ptr %122, align 4, !tbaa !5
  %6382 = call ptr @__errno_location() #12
  store i32 %6381, ptr %6382, align 4, !tbaa !5
  %6383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6384 = load i32, ptr @test_count, align 4, !tbaa !5
  %6385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6386 = load i32, ptr %6385, align 4, !tbaa !5
  %6387 = call ptr @s2n_strerror(i32 noundef %6386, ptr noundef @.str.4)
  %6388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6389 = load i32, ptr %6388, align 4, !tbaa !5
  %6390 = call ptr @s2n_strerror_debug(i32 noundef %6389, ptr noundef @.str.4)
  %6391 = call ptr @__errno_location() #12
  %6392 = load i32, ptr %6391, align 4, !tbaa !5
  %6393 = call ptr @strerror(i32 noundef %6392) #11
  %6394 = call ptr @__errno_location() #12
  %6395 = load i32, ptr %6394, align 4, !tbaa !5
  %6396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6383, ptr noundef @.str.2, i32 noundef %6384, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 223, ptr noundef %6387, ptr noundef %6390, ptr noundef %6393, i32 noundef %6395) #11
  br label %6414

6397:                                             ; preds = %6375, %6368
  %6398 = load i32, ptr %122, align 4, !tbaa !5
  %6399 = call ptr @__errno_location() #12
  store i32 %6398, ptr %6399, align 4, !tbaa !5
  %6400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6401 = load i32, ptr @test_count, align 4, !tbaa !5
  %6402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6403 = load i32, ptr %6402, align 4, !tbaa !5
  %6404 = call ptr @s2n_strerror(i32 noundef %6403, ptr noundef @.str.4)
  %6405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6406 = load i32, ptr %6405, align 4, !tbaa !5
  %6407 = call ptr @s2n_strerror_debug(i32 noundef %6406, ptr noundef @.str.4)
  %6408 = call ptr @__errno_location() #12
  %6409 = load i32, ptr %6408, align 4, !tbaa !5
  %6410 = call ptr @strerror(i32 noundef %6409) #11
  %6411 = call ptr @__errno_location() #12
  %6412 = load i32, ptr %6411, align 4, !tbaa !5
  %6413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6400, ptr noundef @.str.5, i32 noundef %6401, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 223, ptr noundef %6404, ptr noundef %6407, ptr noundef %6410, i32 noundef %6412) #11
  br label %6414

6414:                                             ; preds = %6397, %6380
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #11
  br label %6415

6415:                                             ; preds = %6414
  br label %6416

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

6417:                                             ; No predecessors!
  br label %6418

6418:                                             ; preds = %6417
  br label %6419

6419:                                             ; preds = %6418, %6355
  br label %6420

6420:                                             ; preds = %6419
  br label %6421

6421:                                             ; preds = %6420
  br label %6422

6422:                                             ; preds = %6421
  %6423 = load i32, ptr @test_count, align 4, !tbaa !5
  %6424 = add nsw i32 %6423, 1
  store i32 %6424, ptr @test_count, align 4, !tbaa !5
  %6425 = load ptr, ptr %111, align 8, !tbaa !9
  %6426 = getelementptr inbounds %struct.s2n_connection, ptr %6425, i32 0, i32 31
  %6427 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6426, i32 0, i32 1
  %6428 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6427, i32 0, i32 0
  %6429 = load ptr, ptr %6428, align 8, !tbaa !42
  %6430 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %6429, i32 0, i32 0
  %6431 = load i16, ptr %6430, align 8, !tbaa !54
  %6432 = zext i16 %6431 to i32
  %6433 = load ptr, ptr %112, align 8, !tbaa !9
  %6434 = getelementptr inbounds %struct.s2n_connection, ptr %6433, i32 0, i32 31
  %6435 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6434, i32 0, i32 1
  %6436 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6435, i32 0, i32 0
  %6437 = load ptr, ptr %6436, align 8, !tbaa !42
  %6438 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %6437, i32 0, i32 0
  %6439 = load i16, ptr %6438, align 8, !tbaa !54
  %6440 = zext i16 %6439 to i32
  %6441 = icmp eq i32 %6432, %6440
  br i1 %6441, label %6495, label %6442

6442:                                             ; preds = %6422
  br label %6443

6443:                                             ; preds = %6442
  br label %6444

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

6451:                                             ; preds = %6444
  %6452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6453 = call i32 @fileno(ptr noundef %6452) #11
  %6454 = call i32 @isatty(i32 noundef %6453) #11
  %6455 = icmp ne i32 %6454, 0
  br i1 %6455, label %6456, label %6473

6456:                                             ; preds = %6451
  %6457 = load i32, ptr %123, align 4, !tbaa !5
  %6458 = call ptr @__errno_location() #12
  store i32 %6457, ptr %6458, align 4, !tbaa !5
  %6459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6460 = load i32, ptr @test_count, align 4, !tbaa !5
  %6461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6462 = load i32, ptr %6461, align 4, !tbaa !5
  %6463 = call ptr @s2n_strerror(i32 noundef %6462, ptr noundef @.str.4)
  %6464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6465 = load i32, ptr %6464, align 4, !tbaa !5
  %6466 = call ptr @s2n_strerror_debug(i32 noundef %6465, ptr noundef @.str.4)
  %6467 = call ptr @__errno_location() #12
  %6468 = load i32, ptr %6467, align 4, !tbaa !5
  %6469 = call ptr @strerror(i32 noundef %6468) #11
  %6470 = call ptr @__errno_location() #12
  %6471 = load i32, ptr %6470, align 4, !tbaa !5
  %6472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6459, ptr noundef @.str.2, i32 noundef %6460, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 225, ptr noundef %6463, ptr noundef %6466, ptr noundef %6469, i32 noundef %6471) #11
  br label %6490

6473:                                             ; preds = %6451, %6444
  %6474 = load i32, ptr %123, align 4, !tbaa !5
  %6475 = call ptr @__errno_location() #12
  store i32 %6474, ptr %6475, align 4, !tbaa !5
  %6476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6477 = load i32, ptr @test_count, align 4, !tbaa !5
  %6478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6479 = load i32, ptr %6478, align 4, !tbaa !5
  %6480 = call ptr @s2n_strerror(i32 noundef %6479, ptr noundef @.str.4)
  %6481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6482 = load i32, ptr %6481, align 4, !tbaa !5
  %6483 = call ptr @s2n_strerror_debug(i32 noundef %6482, ptr noundef @.str.4)
  %6484 = call ptr @__errno_location() #12
  %6485 = load i32, ptr %6484, align 4, !tbaa !5
  %6486 = call ptr @strerror(i32 noundef %6485) #11
  %6487 = call ptr @__errno_location() #12
  %6488 = load i32, ptr %6487, align 4, !tbaa !5
  %6489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6476, ptr noundef @.str.5, i32 noundef %6477, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 225, ptr noundef %6480, ptr noundef %6483, ptr noundef %6486, i32 noundef %6488) #11
  br label %6490

6490:                                             ; preds = %6473, %6456
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %6491

6491:                                             ; preds = %6490
  br label %6492

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

6493:                                             ; No predecessors!
  br label %6494

6494:                                             ; preds = %6493
  br label %6495

6495:                                             ; preds = %6494, %6422
  br label %6496

6496:                                             ; preds = %6495
  br label %6497

6497:                                             ; preds = %6496
  br label %6498

6498:                                             ; preds = %6497
  %6499 = load i32, ptr @test_count, align 4, !tbaa !5
  %6500 = add nsw i32 %6499, 1
  store i32 %6500, ptr @test_count, align 4, !tbaa !5
  %6501 = load ptr, ptr %111, align 8, !tbaa !9
  %6502 = getelementptr inbounds %struct.s2n_connection, ptr %6501, i32 0, i32 31
  %6503 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6502, i32 0, i32 1
  %6504 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6503, i32 0, i32 0
  %6505 = load ptr, ptr %6504, align 8, !tbaa !42
  %6506 = load ptr, ptr %109, align 8, !tbaa !9
  %6507 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %6506, i32 0, i32 1
  %6508 = load ptr, ptr %6507, align 8, !tbaa !43
  %6509 = load i32, ptr %110, align 4, !tbaa !5
  %6510 = sext i32 %6509 to i64
  %6511 = getelementptr inbounds ptr, ptr %6508, i64 %6510
  %6512 = load ptr, ptr %6511, align 8, !tbaa !9
  %6513 = icmp eq ptr %6505, %6512
  br i1 %6513, label %6567, label %6514

6514:                                             ; preds = %6498
  br label %6515

6515:                                             ; preds = %6514
  br label %6516

6516:                                             ; preds = %6515
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  %6517 = call ptr @__errno_location() #12
  %6518 = load i32, ptr %6517, align 4, !tbaa !5
  store i32 %6518, ptr %124, align 4, !tbaa !5
  %6519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6520 = call i32 @s2n_print_stacktrace(ptr noundef %6519)
  %6521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6522 = trunc i8 %6521 to i1
  br i1 %6522, label %6523, label %6545

6523:                                             ; preds = %6516
  %6524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6525 = call i32 @fileno(ptr noundef %6524) #11
  %6526 = call i32 @isatty(i32 noundef %6525) #11
  %6527 = icmp ne i32 %6526, 0
  br i1 %6527, label %6528, label %6545

6528:                                             ; preds = %6523
  %6529 = load i32, ptr %124, align 4, !tbaa !5
  %6530 = call ptr @__errno_location() #12
  store i32 %6529, ptr %6530, align 4, !tbaa !5
  %6531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6532 = load i32, ptr @test_count, align 4, !tbaa !5
  %6533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6534 = load i32, ptr %6533, align 4, !tbaa !5
  %6535 = call ptr @s2n_strerror(i32 noundef %6534, ptr noundef @.str.4)
  %6536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6537 = load i32, ptr %6536, align 4, !tbaa !5
  %6538 = call ptr @s2n_strerror_debug(i32 noundef %6537, ptr noundef @.str.4)
  %6539 = call ptr @__errno_location() #12
  %6540 = load i32, ptr %6539, align 4, !tbaa !5
  %6541 = call ptr @strerror(i32 noundef %6540) #11
  %6542 = call ptr @__errno_location() #12
  %6543 = load i32, ptr %6542, align 4, !tbaa !5
  %6544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6531, ptr noundef @.str.2, i32 noundef %6532, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 226, ptr noundef %6535, ptr noundef %6538, ptr noundef %6541, i32 noundef %6543) #11
  br label %6562

6545:                                             ; preds = %6523, %6516
  %6546 = load i32, ptr %124, align 4, !tbaa !5
  %6547 = call ptr @__errno_location() #12
  store i32 %6546, ptr %6547, align 4, !tbaa !5
  %6548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6549 = load i32, ptr @test_count, align 4, !tbaa !5
  %6550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6551 = load i32, ptr %6550, align 4, !tbaa !5
  %6552 = call ptr @s2n_strerror(i32 noundef %6551, ptr noundef @.str.4)
  %6553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6554 = load i32, ptr %6553, align 4, !tbaa !5
  %6555 = call ptr @s2n_strerror_debug(i32 noundef %6554, ptr noundef @.str.4)
  %6556 = call ptr @__errno_location() #12
  %6557 = load i32, ptr %6556, align 4, !tbaa !5
  %6558 = call ptr @strerror(i32 noundef %6557) #11
  %6559 = call ptr @__errno_location() #12
  %6560 = load i32, ptr %6559, align 4, !tbaa !5
  %6561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6548, ptr noundef @.str.5, i32 noundef %6549, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 226, ptr noundef %6552, ptr noundef %6555, ptr noundef %6558, i32 noundef %6560) #11
  br label %6562

6562:                                             ; preds = %6545, %6528
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %6563

6563:                                             ; preds = %6562
  br label %6564

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

6565:                                             ; No predecessors!
  br label %6566

6566:                                             ; preds = %6565
  br label %6567

6567:                                             ; preds = %6566, %6498
  br label %6568

6568:                                             ; preds = %6567
  br label %6569

6569:                                             ; preds = %6568
  br label %6570

6570:                                             ; preds = %6569
  %6571 = load i32, ptr @test_count, align 4, !tbaa !5
  %6572 = add nsw i32 %6571, 1
  store i32 %6572, ptr @test_count, align 4, !tbaa !5
  %6573 = load ptr, ptr %111, align 8, !tbaa !9
  %6574 = call i32 @s2n_connection_free(ptr noundef %6573)
  %6575 = icmp eq i32 %6574, -1
  br i1 %6575, label %6576, label %6629

6576:                                             ; preds = %6570
  br label %6577

6577:                                             ; preds = %6576
  br label %6578

6578:                                             ; preds = %6577
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #11
  %6579 = call ptr @__errno_location() #12
  %6580 = load i32, ptr %6579, align 4, !tbaa !5
  store i32 %6580, ptr %125, align 4, !tbaa !5
  %6581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6582 = call i32 @s2n_print_stacktrace(ptr noundef %6581)
  %6583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6584 = trunc i8 %6583 to i1
  br i1 %6584, label %6585, label %6607

6585:                                             ; preds = %6578
  %6586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6587 = call i32 @fileno(ptr noundef %6586) #11
  %6588 = call i32 @isatty(i32 noundef %6587) #11
  %6589 = icmp ne i32 %6588, 0
  br i1 %6589, label %6590, label %6607

6590:                                             ; preds = %6585
  %6591 = load i32, ptr %125, align 4, !tbaa !5
  %6592 = call ptr @__errno_location() #12
  store i32 %6591, ptr %6592, align 4, !tbaa !5
  %6593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6594 = load i32, ptr @test_count, align 4, !tbaa !5
  %6595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6596 = load i32, ptr %6595, align 4, !tbaa !5
  %6597 = call ptr @s2n_strerror(i32 noundef %6596, ptr noundef @.str.4)
  %6598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6599 = load i32, ptr %6598, align 4, !tbaa !5
  %6600 = call ptr @s2n_strerror_debug(i32 noundef %6599, ptr noundef @.str.4)
  %6601 = call ptr @__errno_location() #12
  %6602 = load i32, ptr %6601, align 4, !tbaa !5
  %6603 = call ptr @strerror(i32 noundef %6602) #11
  %6604 = call ptr @__errno_location() #12
  %6605 = load i32, ptr %6604, align 4, !tbaa !5
  %6606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6593, ptr noundef @.str.2, i32 noundef %6594, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 228, ptr noundef %6597, ptr noundef %6600, ptr noundef %6603, i32 noundef %6605) #11
  br label %6624

6607:                                             ; preds = %6585, %6578
  %6608 = load i32, ptr %125, align 4, !tbaa !5
  %6609 = call ptr @__errno_location() #12
  store i32 %6608, ptr %6609, align 4, !tbaa !5
  %6610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6611 = load i32, ptr @test_count, align 4, !tbaa !5
  %6612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6613 = load i32, ptr %6612, align 4, !tbaa !5
  %6614 = call ptr @s2n_strerror(i32 noundef %6613, ptr noundef @.str.4)
  %6615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6616 = load i32, ptr %6615, align 4, !tbaa !5
  %6617 = call ptr @s2n_strerror_debug(i32 noundef %6616, ptr noundef @.str.4)
  %6618 = call ptr @__errno_location() #12
  %6619 = load i32, ptr %6618, align 4, !tbaa !5
  %6620 = call ptr @strerror(i32 noundef %6619) #11
  %6621 = call ptr @__errno_location() #12
  %6622 = load i32, ptr %6621, align 4, !tbaa !5
  %6623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6610, ptr noundef @.str.5, i32 noundef %6611, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 228, ptr noundef %6614, ptr noundef %6617, ptr noundef %6620, i32 noundef %6622) #11
  br label %6624

6624:                                             ; preds = %6607, %6590
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %6625

6625:                                             ; preds = %6624
  br label %6626

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

6627:                                             ; No predecessors!
  br label %6628

6628:                                             ; preds = %6627
  br label %6629

6629:                                             ; preds = %6628, %6570
  br label %6630

6630:                                             ; preds = %6629
  br label %6631

6631:                                             ; preds = %6630
  br label %6632

6632:                                             ; preds = %6631
  %6633 = load i32, ptr @test_count, align 4, !tbaa !5
  %6634 = add nsw i32 %6633, 1
  store i32 %6634, ptr @test_count, align 4, !tbaa !5
  %6635 = load ptr, ptr %112, align 8, !tbaa !9
  %6636 = call i32 @s2n_connection_free(ptr noundef %6635)
  %6637 = icmp eq i32 %6636, -1
  br i1 %6637, label %6638, label %6691

6638:                                             ; preds = %6632
  br label %6639

6639:                                             ; preds = %6638
  br label %6640

6640:                                             ; preds = %6639
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #11
  %6641 = call ptr @__errno_location() #12
  %6642 = load i32, ptr %6641, align 4, !tbaa !5
  store i32 %6642, ptr %126, align 4, !tbaa !5
  %6643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6644 = call i32 @s2n_print_stacktrace(ptr noundef %6643)
  %6645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6646 = trunc i8 %6645 to i1
  br i1 %6646, label %6647, label %6669

6647:                                             ; preds = %6640
  %6648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6649 = call i32 @fileno(ptr noundef %6648) #11
  %6650 = call i32 @isatty(i32 noundef %6649) #11
  %6651 = icmp ne i32 %6650, 0
  br i1 %6651, label %6652, label %6669

6652:                                             ; preds = %6647
  %6653 = load i32, ptr %126, align 4, !tbaa !5
  %6654 = call ptr @__errno_location() #12
  store i32 %6653, ptr %6654, align 4, !tbaa !5
  %6655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6656 = load i32, ptr @test_count, align 4, !tbaa !5
  %6657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6658 = load i32, ptr %6657, align 4, !tbaa !5
  %6659 = call ptr @s2n_strerror(i32 noundef %6658, ptr noundef @.str.4)
  %6660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6661 = load i32, ptr %6660, align 4, !tbaa !5
  %6662 = call ptr @s2n_strerror_debug(i32 noundef %6661, ptr noundef @.str.4)
  %6663 = call ptr @__errno_location() #12
  %6664 = load i32, ptr %6663, align 4, !tbaa !5
  %6665 = call ptr @strerror(i32 noundef %6664) #11
  %6666 = call ptr @__errno_location() #12
  %6667 = load i32, ptr %6666, align 4, !tbaa !5
  %6668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6655, ptr noundef @.str.2, i32 noundef %6656, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 229, ptr noundef %6659, ptr noundef %6662, ptr noundef %6665, i32 noundef %6667) #11
  br label %6686

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

6686:                                             ; preds = %6669, %6652
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %6687

6687:                                             ; preds = %6686
  br label %6688

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

6689:                                             ; No predecessors!
  br label %6690

6690:                                             ; preds = %6689
  br label %6691

6691:                                             ; preds = %6690, %6632
  br label %6692

6692:                                             ; preds = %6691
  br label %6693

6693:                                             ; preds = %6692
  %6694 = load i32, ptr %110, align 4, !tbaa !5
  %6695 = add nsw i32 %6694, 1
  store i32 %6695, ptr %110, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #11
  br label %6696

6696:                                             ; preds = %6693
  %6697 = load i32, ptr %110, align 4, !tbaa !5
  %6698 = load ptr, ptr %109, align 8, !tbaa !9
  %6699 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %6698, i32 0, i32 0
  %6700 = load i8, ptr %6699, align 8, !tbaa !50
  %6701 = zext i8 %6700 to i32
  %6702 = icmp slt i32 %6697, %6701
  br i1 %6702, label %5817, label %6703, !llvm.loop !65

6703:                                             ; preds = %6696
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  %6704 = call i32 (...) @s2n_is_evp_apis_supported()
  %6705 = icmp ne i32 %6704, 0
  br i1 %6705, label %6706, label %8463

6706:                                             ; preds = %6703
  call void @llvm.lifetime.start.p0(i64 24, ptr %127) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %127, ptr align 16 @__const.main.key_share_payloads, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #11
  store i32 0, ptr %128, align 4, !tbaa !5
  br label %6707

6707:                                             ; preds = %7490, %6706
  %6708 = load i32, ptr %128, align 4, !tbaa !5
  %6709 = icmp slt i32 %6708, 3
  br i1 %6709, label %6711, label %6710

6710:                                             ; preds = %6707
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %7493

6711:                                             ; preds = %6707
  call void @llvm.lifetime.start.p0(i64 40, ptr %129) #11
  call void @llvm.memset.p0.i64(ptr align 8 %129, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #11
  store ptr null, ptr %130, align 8, !tbaa !9
  br label %6712

6712:                                             ; preds = %6711
  %6713 = load i32, ptr @test_count, align 4, !tbaa !5
  %6714 = add nsw i32 %6713, 1
  store i32 %6714, ptr @test_count, align 4, !tbaa !5
  %6715 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6715, ptr %130, align 8, !tbaa !9
  %6716 = icmp eq ptr %6715, null
  br i1 %6716, label %6717, label %6770

6717:                                             ; preds = %6712
  br label %6718

6718:                                             ; preds = %6717
  br label %6719

6719:                                             ; preds = %6718
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %6720 = call ptr @__errno_location() #12
  %6721 = load i32, ptr %6720, align 4, !tbaa !5
  store i32 %6721, ptr %131, align 4, !tbaa !5
  %6722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6723 = call i32 @s2n_print_stacktrace(ptr noundef %6722)
  %6724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6725 = trunc i8 %6724 to i1
  br i1 %6725, label %6726, label %6748

6726:                                             ; preds = %6719
  %6727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6728 = call i32 @fileno(ptr noundef %6727) #11
  %6729 = call i32 @isatty(i32 noundef %6728) #11
  %6730 = icmp ne i32 %6729, 0
  br i1 %6730, label %6731, label %6748

6731:                                             ; preds = %6726
  %6732 = load i32, ptr %131, align 4, !tbaa !5
  %6733 = call ptr @__errno_location() #12
  store i32 %6732, ptr %6733, align 4, !tbaa !5
  %6734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6735 = load i32, ptr @test_count, align 4, !tbaa !5
  %6736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6737 = load i32, ptr %6736, align 4, !tbaa !5
  %6738 = call ptr @s2n_strerror(i32 noundef %6737, ptr noundef @.str.4)
  %6739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6740 = load i32, ptr %6739, align 4, !tbaa !5
  %6741 = call ptr @s2n_strerror_debug(i32 noundef %6740, ptr noundef @.str.4)
  %6742 = call ptr @__errno_location() #12
  %6743 = load i32, ptr %6742, align 4, !tbaa !5
  %6744 = call ptr @strerror(i32 noundef %6743) #11
  %6745 = call ptr @__errno_location() #12
  %6746 = load i32, ptr %6745, align 4, !tbaa !5
  %6747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6734, ptr noundef @.str.2, i32 noundef %6735, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 253, ptr noundef %6738, ptr noundef %6741, ptr noundef %6744, i32 noundef %6746) #11
  br label %6765

6748:                                             ; preds = %6726, %6719
  %6749 = load i32, ptr %131, align 4, !tbaa !5
  %6750 = call ptr @__errno_location() #12
  store i32 %6749, ptr %6750, align 4, !tbaa !5
  %6751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6752 = load i32, ptr @test_count, align 4, !tbaa !5
  %6753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6754 = load i32, ptr %6753, align 4, !tbaa !5
  %6755 = call ptr @s2n_strerror(i32 noundef %6754, ptr noundef @.str.4)
  %6756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6757 = load i32, ptr %6756, align 4, !tbaa !5
  %6758 = call ptr @s2n_strerror_debug(i32 noundef %6757, ptr noundef @.str.4)
  %6759 = call ptr @__errno_location() #12
  %6760 = load i32, ptr %6759, align 4, !tbaa !5
  %6761 = call ptr @strerror(i32 noundef %6760) #11
  %6762 = call ptr @__errno_location() #12
  %6763 = load i32, ptr %6762, align 4, !tbaa !5
  %6764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6751, ptr noundef @.str.5, i32 noundef %6752, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 253, ptr noundef %6755, ptr noundef %6758, ptr noundef %6761, i32 noundef %6763) #11
  br label %6765

6765:                                             ; preds = %6748, %6731
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %6766

6766:                                             ; preds = %6765
  br label %6767

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

6768:                                             ; No predecessors!
  br label %6769

6769:                                             ; preds = %6768
  br label %6770

6770:                                             ; preds = %6769, %6712
  br label %6771

6771:                                             ; preds = %6770
  br label %6772

6772:                                             ; preds = %6771
  br label %6773

6773:                                             ; preds = %6772
  %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 ptr, ptr %130, align 8, !tbaa !9
  %6777 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %6776, ptr noundef @.str.60)
  %6778 = icmp eq i32 %6777, -1
  br i1 %6778, label %6779, label %6832

6779:                                             ; preds = %6773
  br label %6780

6780:                                             ; preds = %6779
  br label %6781

6781:                                             ; preds = %6780
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #11
  %6782 = call ptr @__errno_location() #12
  %6783 = load i32, ptr %6782, align 4, !tbaa !5
  store i32 %6783, ptr %132, align 4, !tbaa !5
  %6784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6785 = call i32 @s2n_print_stacktrace(ptr noundef %6784)
  %6786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6787 = trunc i8 %6786 to i1
  br i1 %6787, label %6788, label %6810

6788:                                             ; preds = %6781
  %6789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6790 = call i32 @fileno(ptr noundef %6789) #11
  %6791 = call i32 @isatty(i32 noundef %6790) #11
  %6792 = icmp ne i32 %6791, 0
  br i1 %6792, label %6793, label %6810

6793:                                             ; preds = %6788
  %6794 = load i32, ptr %132, align 4, !tbaa !5
  %6795 = call ptr @__errno_location() #12
  store i32 %6794, ptr %6795, align 4, !tbaa !5
  %6796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6797 = load i32, ptr @test_count, align 4, !tbaa !5
  %6798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6799 = load i32, ptr %6798, align 4, !tbaa !5
  %6800 = call ptr @s2n_strerror(i32 noundef %6799, ptr noundef @.str.4)
  %6801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6802 = load i32, ptr %6801, align 4, !tbaa !5
  %6803 = call ptr @s2n_strerror_debug(i32 noundef %6802, ptr noundef @.str.4)
  %6804 = call ptr @__errno_location() #12
  %6805 = load i32, ptr %6804, align 4, !tbaa !5
  %6806 = call ptr @strerror(i32 noundef %6805) #11
  %6807 = call ptr @__errno_location() #12
  %6808 = load i32, ptr %6807, align 4, !tbaa !5
  %6809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6796, ptr noundef @.str.2, i32 noundef %6797, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 254, ptr noundef %6800, ptr noundef %6803, ptr noundef %6806, i32 noundef %6808) #11
  br label %6827

6810:                                             ; preds = %6788, %6781
  %6811 = load i32, ptr %132, align 4, !tbaa !5
  %6812 = call ptr @__errno_location() #12
  store i32 %6811, ptr %6812, align 4, !tbaa !5
  %6813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6814 = load i32, ptr @test_count, align 4, !tbaa !5
  %6815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6816 = load i32, ptr %6815, align 4, !tbaa !5
  %6817 = call ptr @s2n_strerror(i32 noundef %6816, ptr noundef @.str.4)
  %6818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6819 = load i32, ptr %6818, align 4, !tbaa !5
  %6820 = call ptr @s2n_strerror_debug(i32 noundef %6819, ptr noundef @.str.4)
  %6821 = call ptr @__errno_location() #12
  %6822 = load i32, ptr %6821, align 4, !tbaa !5
  %6823 = call ptr @strerror(i32 noundef %6822) #11
  %6824 = call ptr @__errno_location() #12
  %6825 = load i32, ptr %6824, align 4, !tbaa !5
  %6826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6813, ptr noundef @.str.5, i32 noundef %6814, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 254, ptr noundef %6817, ptr noundef %6820, ptr noundef %6823, i32 noundef %6825) #11
  br label %6827

6827:                                             ; preds = %6810, %6793
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  br label %6828

6828:                                             ; preds = %6827
  br label %6829

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

6830:                                             ; No predecessors!
  br label %6831

6831:                                             ; preds = %6830
  br label %6832

6832:                                             ; preds = %6831, %6773
  br label %6833

6833:                                             ; preds = %6832
  br label %6834

6834:                                             ; preds = %6833
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #11
  store ptr null, ptr %133, align 8, !tbaa !9
  br label %6835

6835:                                             ; preds = %6834
  %6836 = load i32, ptr @test_count, align 4, !tbaa !5
  %6837 = add nsw i32 %6836, 1
  store i32 %6837, ptr @test_count, align 4, !tbaa !5
  %6838 = load ptr, ptr %130, align 8, !tbaa !9
  %6839 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %6838, ptr noundef %133)
  %6840 = icmp eq i32 %6839, -1
  br i1 %6840, label %6841, label %6894

6841:                                             ; preds = %6835
  br label %6842

6842:                                             ; preds = %6841
  br label %6843

6843:                                             ; preds = %6842
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %6844 = call ptr @__errno_location() #12
  %6845 = load i32, ptr %6844, align 4, !tbaa !5
  store i32 %6845, ptr %134, align 4, !tbaa !5
  %6846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6847 = call i32 @s2n_print_stacktrace(ptr noundef %6846)
  %6848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6849 = trunc i8 %6848 to i1
  br i1 %6849, label %6850, label %6872

6850:                                             ; preds = %6843
  %6851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6852 = call i32 @fileno(ptr noundef %6851) #11
  %6853 = call i32 @isatty(i32 noundef %6852) #11
  %6854 = icmp ne i32 %6853, 0
  br i1 %6854, label %6855, label %6872

6855:                                             ; preds = %6850
  %6856 = load i32, ptr %134, align 4, !tbaa !5
  %6857 = call ptr @__errno_location() #12
  store i32 %6856, ptr %6857, align 4, !tbaa !5
  %6858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6859 = load i32, ptr @test_count, align 4, !tbaa !5
  %6860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6861 = load i32, ptr %6860, align 4, !tbaa !5
  %6862 = call ptr @s2n_strerror(i32 noundef %6861, ptr noundef @.str.4)
  %6863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6864 = load i32, ptr %6863, align 4, !tbaa !5
  %6865 = call ptr @s2n_strerror_debug(i32 noundef %6864, ptr noundef @.str.4)
  %6866 = call ptr @__errno_location() #12
  %6867 = load i32, ptr %6866, align 4, !tbaa !5
  %6868 = call ptr @strerror(i32 noundef %6867) #11
  %6869 = call ptr @__errno_location() #12
  %6870 = load i32, ptr %6869, align 4, !tbaa !5
  %6871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6858, ptr noundef @.str.2, i32 noundef %6859, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 257, ptr noundef %6862, ptr noundef %6865, ptr noundef %6868, i32 noundef %6870) #11
  br label %6889

6872:                                             ; preds = %6850, %6843
  %6873 = load i32, ptr %134, align 4, !tbaa !5
  %6874 = call ptr @__errno_location() #12
  store i32 %6873, ptr %6874, align 4, !tbaa !5
  %6875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6876 = load i32, ptr @test_count, align 4, !tbaa !5
  %6877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6878 = load i32, ptr %6877, align 4, !tbaa !5
  %6879 = call ptr @s2n_strerror(i32 noundef %6878, ptr noundef @.str.4)
  %6880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6881 = load i32, ptr %6880, align 4, !tbaa !5
  %6882 = call ptr @s2n_strerror_debug(i32 noundef %6881, ptr noundef @.str.4)
  %6883 = call ptr @__errno_location() #12
  %6884 = load i32, ptr %6883, align 4, !tbaa !5
  %6885 = call ptr @strerror(i32 noundef %6884) #11
  %6886 = call ptr @__errno_location() #12
  %6887 = load i32, ptr %6886, align 4, !tbaa !5
  %6888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6875, ptr noundef @.str.5, i32 noundef %6876, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 257, ptr noundef %6879, ptr noundef %6882, ptr noundef %6885, i32 noundef %6887) #11
  br label %6889

6889:                                             ; preds = %6872, %6855
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %6890

6890:                                             ; preds = %6889
  br label %6891

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

6892:                                             ; No predecessors!
  br label %6893

6893:                                             ; preds = %6892
  br label %6894

6894:                                             ; preds = %6893, %6835
  br label %6895

6895:                                             ; preds = %6894
  br label %6896

6896:                                             ; preds = %6895
  br label %6897

6897:                                             ; preds = %6896
  %6898 = load i32, ptr @test_count, align 4, !tbaa !5
  %6899 = add nsw i32 %6898, 1
  store i32 %6899, ptr @test_count, align 4, !tbaa !5
  %6900 = load ptr, ptr %133, align 8, !tbaa !9
  %6901 = icmp eq ptr %6900, null
  br i1 %6901, label %6902, label %6955

6902:                                             ; preds = %6897
  br label %6903

6903:                                             ; preds = %6902
  br label %6904

6904:                                             ; preds = %6903
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %6905 = call ptr @__errno_location() #12
  %6906 = load i32, ptr %6905, align 4, !tbaa !5
  store i32 %6906, ptr %135, align 4, !tbaa !5
  %6907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6908 = call i32 @s2n_print_stacktrace(ptr noundef %6907)
  %6909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6910 = trunc i8 %6909 to i1
  br i1 %6910, label %6911, label %6933

6911:                                             ; preds = %6904
  %6912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6913 = call i32 @fileno(ptr noundef %6912) #11
  %6914 = call i32 @isatty(i32 noundef %6913) #11
  %6915 = icmp ne i32 %6914, 0
  br i1 %6915, label %6916, label %6933

6916:                                             ; preds = %6911
  %6917 = load i32, ptr %135, align 4, !tbaa !5
  %6918 = call ptr @__errno_location() #12
  store i32 %6917, ptr %6918, align 4, !tbaa !5
  %6919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6920 = load i32, ptr @test_count, align 4, !tbaa !5
  %6921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6922 = load i32, ptr %6921, align 4, !tbaa !5
  %6923 = call ptr @s2n_strerror(i32 noundef %6922, ptr noundef @.str.4)
  %6924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6925 = load i32, ptr %6924, align 4, !tbaa !5
  %6926 = call ptr @s2n_strerror_debug(i32 noundef %6925, ptr noundef @.str.4)
  %6927 = call ptr @__errno_location() #12
  %6928 = load i32, ptr %6927, align 4, !tbaa !5
  %6929 = call ptr @strerror(i32 noundef %6928) #11
  %6930 = call ptr @__errno_location() #12
  %6931 = load i32, ptr %6930, align 4, !tbaa !5
  %6932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6919, ptr noundef @.str.2, i32 noundef %6920, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 258, ptr noundef %6923, ptr noundef %6926, ptr noundef %6929, i32 noundef %6931) #11
  br label %6950

6933:                                             ; preds = %6911, %6904
  %6934 = load i32, ptr %135, align 4, !tbaa !5
  %6935 = call ptr @__errno_location() #12
  store i32 %6934, ptr %6935, align 4, !tbaa !5
  %6936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6937 = load i32, ptr @test_count, align 4, !tbaa !5
  %6938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6939 = load i32, ptr %6938, align 4, !tbaa !5
  %6940 = call ptr @s2n_strerror(i32 noundef %6939, ptr noundef @.str.4)
  %6941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6942 = load i32, ptr %6941, align 4, !tbaa !5
  %6943 = call ptr @s2n_strerror_debug(i32 noundef %6942, ptr noundef @.str.4)
  %6944 = call ptr @__errno_location() #12
  %6945 = load i32, ptr %6944, align 4, !tbaa !5
  %6946 = call ptr @strerror(i32 noundef %6945) #11
  %6947 = call ptr @__errno_location() #12
  %6948 = load i32, ptr %6947, align 4, !tbaa !5
  %6949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6936, ptr noundef @.str.5, i32 noundef %6937, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 258, ptr noundef %6940, ptr noundef %6943, ptr noundef %6946, i32 noundef %6948) #11
  br label %6950

6950:                                             ; preds = %6933, %6916
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %6951

6951:                                             ; preds = %6950
  br label %6952

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

6953:                                             ; No predecessors!
  br label %6954

6954:                                             ; preds = %6953
  br label %6955

6955:                                             ; preds = %6954, %6897
  br label %6956

6956:                                             ; preds = %6955
  br label %6957

6957:                                             ; preds = %6956
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #11
  %6958 = load i32, ptr %128, align 4, !tbaa !5
  %6959 = sext i32 %6958 to i64
  %6960 = getelementptr inbounds [3 x ptr], ptr %127, i64 0, i64 %6959
  %6961 = load ptr, ptr %6960, align 8, !tbaa !9
  store ptr %6961, ptr %136, align 8, !tbaa !9
  br label %6962

6962:                                             ; preds = %6957
  %6963 = load i32, ptr @test_count, align 4, !tbaa !5
  %6964 = add nsw i32 %6963, 1
  store i32 %6964, ptr @test_count, align 4, !tbaa !5
  %6965 = load ptr, ptr %130, align 8, !tbaa !9
  %6966 = getelementptr inbounds %struct.s2n_connection, ptr %6965, i32 0, i32 31
  %6967 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6966, i32 0, i32 1
  %6968 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6967, i32 0, i32 0
  %6969 = load ptr, ptr %6968, align 8, !tbaa !42
  %6970 = icmp eq ptr %6969, null
  br i1 %6970, label %7024, label %6971

6971:                                             ; preds = %6962
  br label %6972

6972:                                             ; preds = %6971
  br label %6973

6973:                                             ; preds = %6972
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #11
  %6974 = call ptr @__errno_location() #12
  %6975 = load i32, ptr %6974, align 4, !tbaa !5
  store i32 %6975, ptr %137, align 4, !tbaa !5
  %6976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6977 = call i32 @s2n_print_stacktrace(ptr noundef %6976)
  %6978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6979 = trunc i8 %6978 to i1
  br i1 %6979, label %6980, label %7002

6980:                                             ; preds = %6973
  %6981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6982 = call i32 @fileno(ptr noundef %6981) #11
  %6983 = call i32 @isatty(i32 noundef %6982) #11
  %6984 = icmp ne i32 %6983, 0
  br i1 %6984, label %6985, label %7002

6985:                                             ; preds = %6980
  %6986 = load i32, ptr %137, align 4, !tbaa !5
  %6987 = call ptr @__errno_location() #12
  store i32 %6986, ptr %6987, align 4, !tbaa !5
  %6988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6989 = load i32, ptr @test_count, align 4, !tbaa !5
  %6990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6991 = load i32, ptr %6990, align 4, !tbaa !5
  %6992 = call ptr @s2n_strerror(i32 noundef %6991, ptr noundef @.str.4)
  %6993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6994 = load i32, ptr %6993, align 4, !tbaa !5
  %6995 = call ptr @s2n_strerror_debug(i32 noundef %6994, ptr noundef @.str.4)
  %6996 = call ptr @__errno_location() #12
  %6997 = load i32, ptr %6996, align 4, !tbaa !5
  %6998 = call ptr @strerror(i32 noundef %6997) #11
  %6999 = call ptr @__errno_location() #12
  %7000 = load i32, ptr %6999, align 4, !tbaa !5
  %7001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6988, ptr noundef @.str.2, i32 noundef %6989, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 262, ptr noundef %6992, ptr noundef %6995, ptr noundef %6998, i32 noundef %7000) #11
  br label %7019

7002:                                             ; preds = %6980, %6973
  %7003 = load i32, ptr %137, align 4, !tbaa !5
  %7004 = call ptr @__errno_location() #12
  store i32 %7003, ptr %7004, align 4, !tbaa !5
  %7005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7006 = load i32, ptr @test_count, align 4, !tbaa !5
  %7007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7008 = load i32, ptr %7007, align 4, !tbaa !5
  %7009 = call ptr @s2n_strerror(i32 noundef %7008, ptr noundef @.str.4)
  %7010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7011 = load i32, ptr %7010, align 4, !tbaa !5
  %7012 = call ptr @s2n_strerror_debug(i32 noundef %7011, ptr noundef @.str.4)
  %7013 = call ptr @__errno_location() #12
  %7014 = load i32, ptr %7013, align 4, !tbaa !5
  %7015 = call ptr @strerror(i32 noundef %7014) #11
  %7016 = call ptr @__errno_location() #12
  %7017 = load i32, ptr %7016, align 4, !tbaa !5
  %7018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7005, ptr noundef @.str.5, i32 noundef %7006, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 262, ptr noundef %7009, ptr noundef %7012, ptr noundef %7015, i32 noundef %7017) #11
  br label %7019

7019:                                             ; preds = %7002, %6985
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %7020

7020:                                             ; preds = %7019
  br label %7021

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

7022:                                             ; No predecessors!
  br label %7023

7023:                                             ; preds = %7022
  br label %7024

7024:                                             ; preds = %7023, %6962
  br label %7025

7025:                                             ; preds = %7024
  br label %7026

7026:                                             ; preds = %7025
  br label %7027

7027:                                             ; preds = %7026
  %7028 = load i32, ptr @test_count, align 4, !tbaa !5
  %7029 = add nsw i32 %7028, 1
  store i32 %7029, ptr @test_count, align 4, !tbaa !5
  %7030 = load ptr, ptr %136, align 8, !tbaa !9
  %7031 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef %129, ptr noundef %7030)
  %7032 = getelementptr inbounds %struct.s2n_result, ptr %138, i32 0, i32 0
  store i32 %7031, ptr %7032, align 4
  %7033 = getelementptr inbounds %struct.s2n_result, ptr %138, i32 0, i32 0
  %7034 = load i32, ptr %7033, align 4
  %7035 = call zeroext i1 @s2n_result_is_ok(i32 %7034)
  br i1 %7035, label %7089, label %7036

7036:                                             ; preds = %7027
  br label %7037

7037:                                             ; preds = %7036
  br label %7038

7038:                                             ; preds = %7037
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %7039 = call ptr @__errno_location() #12
  %7040 = load i32, ptr %7039, align 4, !tbaa !5
  store i32 %7040, ptr %139, align 4, !tbaa !5
  %7041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7042 = call i32 @s2n_print_stacktrace(ptr noundef %7041)
  %7043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7044 = trunc i8 %7043 to i1
  br i1 %7044, label %7045, label %7067

7045:                                             ; preds = %7038
  %7046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7047 = call i32 @fileno(ptr noundef %7046) #11
  %7048 = call i32 @isatty(i32 noundef %7047) #11
  %7049 = icmp ne i32 %7048, 0
  br i1 %7049, label %7050, label %7067

7050:                                             ; preds = %7045
  %7051 = load i32, ptr %139, align 4, !tbaa !5
  %7052 = call ptr @__errno_location() #12
  store i32 %7051, ptr %7052, align 4, !tbaa !5
  %7053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7054 = load i32, ptr @test_count, align 4, !tbaa !5
  %7055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7056 = load i32, ptr %7055, align 4, !tbaa !5
  %7057 = call ptr @s2n_strerror(i32 noundef %7056, ptr noundef @.str.4)
  %7058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7059 = load i32, ptr %7058, align 4, !tbaa !5
  %7060 = call ptr @s2n_strerror_debug(i32 noundef %7059, ptr noundef @.str.4)
  %7061 = call ptr @__errno_location() #12
  %7062 = load i32, ptr %7061, align 4, !tbaa !5
  %7063 = call ptr @strerror(i32 noundef %7062) #11
  %7064 = call ptr @__errno_location() #12
  %7065 = load i32, ptr %7064, align 4, !tbaa !5
  %7066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7053, ptr noundef @.str.2, i32 noundef %7054, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 263, ptr noundef %7057, ptr noundef %7060, ptr noundef %7063, i32 noundef %7065) #11
  br label %7084

7067:                                             ; preds = %7045, %7038
  %7068 = load i32, ptr %139, align 4, !tbaa !5
  %7069 = call ptr @__errno_location() #12
  store i32 %7068, ptr %7069, align 4, !tbaa !5
  %7070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7071 = load i32, ptr @test_count, align 4, !tbaa !5
  %7072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7073 = load i32, ptr %7072, align 4, !tbaa !5
  %7074 = call ptr @s2n_strerror(i32 noundef %7073, ptr noundef @.str.4)
  %7075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7076 = load i32, ptr %7075, align 4, !tbaa !5
  %7077 = call ptr @s2n_strerror_debug(i32 noundef %7076, ptr noundef @.str.4)
  %7078 = call ptr @__errno_location() #12
  %7079 = load i32, ptr %7078, align 4, !tbaa !5
  %7080 = call ptr @strerror(i32 noundef %7079) #11
  %7081 = call ptr @__errno_location() #12
  %7082 = load i32, ptr %7081, align 4, !tbaa !5
  %7083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7070, ptr noundef @.str.5, i32 noundef %7071, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 263, ptr noundef %7074, ptr noundef %7077, ptr noundef %7080, i32 noundef %7082) #11
  br label %7084

7084:                                             ; preds = %7067, %7050
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %7085

7085:                                             ; preds = %7084
  br label %7086

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

7087:                                             ; No predecessors!
  br label %7088

7088:                                             ; preds = %7087
  br label %7089

7089:                                             ; preds = %7088, %7027
  br label %7090

7090:                                             ; preds = %7089
  br label %7091

7091:                                             ; preds = %7090
  %7092 = load ptr, ptr %133, align 8, !tbaa !9
  %7093 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %7092, i32 0, i32 1
  %7094 = load ptr, ptr %7093, align 8, !tbaa !43
  %7095 = load i32, ptr %128, align 4, !tbaa !5
  %7096 = sext i32 %7095 to i64
  %7097 = getelementptr inbounds ptr, ptr %7094, i64 %7096
  %7098 = load ptr, ptr %7097, align 8, !tbaa !9
  %7099 = load ptr, ptr %130, align 8, !tbaa !9
  %7100 = getelementptr inbounds %struct.s2n_connection, ptr %7099, i32 0, i32 31
  %7101 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7100, i32 0, i32 3
  %7102 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7101, i32 0, i32 0
  store ptr %7098, ptr %7102, align 8, !tbaa !45
  br label %7103

7103:                                             ; preds = %7091
  %7104 = load i32, ptr @test_count, align 4, !tbaa !5
  %7105 = add nsw i32 %7104, 1
  store i32 %7105, ptr @test_count, align 4, !tbaa !5
  %7106 = load ptr, ptr %130, align 8, !tbaa !9
  %7107 = getelementptr inbounds %struct.s2n_connection, ptr %7106, i32 0, i32 31
  %7108 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7107, i32 0, i32 3
  %7109 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %7108)
  %7110 = icmp eq i32 %7109, -1
  br i1 %7110, label %7111, label %7164

7111:                                             ; preds = %7103
  br label %7112

7112:                                             ; preds = %7111
  br label %7113

7113:                                             ; preds = %7112
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %7114 = call ptr @__errno_location() #12
  %7115 = load i32, ptr %7114, align 4, !tbaa !5
  store i32 %7115, ptr %140, align 4, !tbaa !5
  %7116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7117 = call i32 @s2n_print_stacktrace(ptr noundef %7116)
  %7118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7119 = trunc i8 %7118 to i1
  br i1 %7119, label %7120, label %7142

7120:                                             ; preds = %7113
  %7121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7122 = call i32 @fileno(ptr noundef %7121) #11
  %7123 = call i32 @isatty(i32 noundef %7122) #11
  %7124 = icmp ne i32 %7123, 0
  br i1 %7124, label %7125, label %7142

7125:                                             ; preds = %7120
  %7126 = load i32, ptr %140, align 4, !tbaa !5
  %7127 = call ptr @__errno_location() #12
  store i32 %7126, ptr %7127, align 4, !tbaa !5
  %7128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7129 = load i32, ptr @test_count, align 4, !tbaa !5
  %7130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7131 = load i32, ptr %7130, align 4, !tbaa !5
  %7132 = call ptr @s2n_strerror(i32 noundef %7131, ptr noundef @.str.4)
  %7133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7134 = load i32, ptr %7133, align 4, !tbaa !5
  %7135 = call ptr @s2n_strerror_debug(i32 noundef %7134, ptr noundef @.str.4)
  %7136 = call ptr @__errno_location() #12
  %7137 = load i32, ptr %7136, align 4, !tbaa !5
  %7138 = call ptr @strerror(i32 noundef %7137) #11
  %7139 = call ptr @__errno_location() #12
  %7140 = load i32, ptr %7139, align 4, !tbaa !5
  %7141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7128, ptr noundef @.str.2, i32 noundef %7129, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 266, ptr noundef %7132, ptr noundef %7135, ptr noundef %7138, i32 noundef %7140) #11
  br label %7159

7142:                                             ; preds = %7120, %7113
  %7143 = load i32, ptr %140, align 4, !tbaa !5
  %7144 = call ptr @__errno_location() #12
  store i32 %7143, ptr %7144, align 4, !tbaa !5
  %7145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7146 = load i32, ptr @test_count, align 4, !tbaa !5
  %7147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  %7149 = call ptr @s2n_strerror(i32 noundef %7148, ptr noundef @.str.4)
  %7150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7151 = load i32, ptr %7150, align 4, !tbaa !5
  %7152 = call ptr @s2n_strerror_debug(i32 noundef %7151, ptr noundef @.str.4)
  %7153 = call ptr @__errno_location() #12
  %7154 = load i32, ptr %7153, align 4, !tbaa !5
  %7155 = call ptr @strerror(i32 noundef %7154) #11
  %7156 = call ptr @__errno_location() #12
  %7157 = load i32, ptr %7156, align 4, !tbaa !5
  %7158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7145, ptr noundef @.str.5, i32 noundef %7146, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 266, ptr noundef %7149, ptr noundef %7152, ptr noundef %7155, i32 noundef %7157) #11
  br label %7159

7159:                                             ; preds = %7142, %7125
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %7160

7160:                                             ; preds = %7159
  br label %7161

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

7162:                                             ; No predecessors!
  br label %7163

7163:                                             ; preds = %7162
  br label %7164

7164:                                             ; preds = %7163, %7103
  br label %7165

7165:                                             ; preds = %7164
  br label %7166

7166:                                             ; preds = %7165
  br label %7167

7167:                                             ; preds = %7166
  %7168 = load i32, ptr @test_count, align 4, !tbaa !5
  %7169 = add nsw i32 %7168, 1
  store i32 %7169, ptr @test_count, align 4, !tbaa !5
  %7170 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %7171 = load ptr, ptr %130, align 8, !tbaa !9
  %7172 = call i32 %7170(ptr noundef %7171, ptr noundef %129)
  %7173 = icmp eq i32 %7172, -1
  br i1 %7173, label %7174, label %7227

7174:                                             ; preds = %7167
  br label %7175

7175:                                             ; preds = %7174
  br label %7176

7176:                                             ; preds = %7175
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %7177 = call ptr @__errno_location() #12
  %7178 = load i32, ptr %7177, align 4, !tbaa !5
  store i32 %7178, ptr %141, align 4, !tbaa !5
  %7179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7180 = call i32 @s2n_print_stacktrace(ptr noundef %7179)
  %7181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7182 = trunc i8 %7181 to i1
  br i1 %7182, label %7183, label %7205

7183:                                             ; preds = %7176
  %7184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7185 = call i32 @fileno(ptr noundef %7184) #11
  %7186 = call i32 @isatty(i32 noundef %7185) #11
  %7187 = icmp ne i32 %7186, 0
  br i1 %7187, label %7188, label %7205

7188:                                             ; preds = %7183
  %7189 = load i32, ptr %141, align 4, !tbaa !5
  %7190 = call ptr @__errno_location() #12
  store i32 %7189, ptr %7190, align 4, !tbaa !5
  %7191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7192 = load i32, ptr @test_count, align 4, !tbaa !5
  %7193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7194 = load i32, ptr %7193, align 4, !tbaa !5
  %7195 = call ptr @s2n_strerror(i32 noundef %7194, ptr noundef @.str.4)
  %7196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7197 = load i32, ptr %7196, align 4, !tbaa !5
  %7198 = call ptr @s2n_strerror_debug(i32 noundef %7197, ptr noundef @.str.4)
  %7199 = call ptr @__errno_location() #12
  %7200 = load i32, ptr %7199, align 4, !tbaa !5
  %7201 = call ptr @strerror(i32 noundef %7200) #11
  %7202 = call ptr @__errno_location() #12
  %7203 = load i32, ptr %7202, align 4, !tbaa !5
  %7204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7191, ptr noundef @.str.2, i32 noundef %7192, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 268, ptr noundef %7195, ptr noundef %7198, ptr noundef %7201, i32 noundef %7203) #11
  br label %7222

7205:                                             ; preds = %7183, %7176
  %7206 = load i32, ptr %141, align 4, !tbaa !5
  %7207 = call ptr @__errno_location() #12
  store i32 %7206, ptr %7207, align 4, !tbaa !5
  %7208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7209 = load i32, ptr @test_count, align 4, !tbaa !5
  %7210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7211 = load i32, ptr %7210, align 4, !tbaa !5
  %7212 = call ptr @s2n_strerror(i32 noundef %7211, ptr noundef @.str.4)
  %7213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7214 = load i32, ptr %7213, align 4, !tbaa !5
  %7215 = call ptr @s2n_strerror_debug(i32 noundef %7214, ptr noundef @.str.4)
  %7216 = call ptr @__errno_location() #12
  %7217 = load i32, ptr %7216, align 4, !tbaa !5
  %7218 = call ptr @strerror(i32 noundef %7217) #11
  %7219 = call ptr @__errno_location() #12
  %7220 = load i32, ptr %7219, align 4, !tbaa !5
  %7221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7208, ptr noundef @.str.5, i32 noundef %7209, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 268, ptr noundef %7212, ptr noundef %7215, ptr noundef %7218, i32 noundef %7220) #11
  br label %7222

7222:                                             ; preds = %7205, %7188
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %7223

7223:                                             ; preds = %7222
  br label %7224

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

7225:                                             ; No predecessors!
  br label %7226

7226:                                             ; preds = %7225
  br label %7227

7227:                                             ; preds = %7226, %7167
  br label %7228

7228:                                             ; preds = %7227
  br label %7229

7229:                                             ; preds = %7228
  br label %7230

7230:                                             ; preds = %7229
  %7231 = load i32, ptr @test_count, align 4, !tbaa !5
  %7232 = add nsw i32 %7231, 1
  store i32 %7232, ptr @test_count, align 4, !tbaa !5
  %7233 = load ptr, ptr %130, align 8, !tbaa !9
  %7234 = getelementptr inbounds %struct.s2n_connection, ptr %7233, i32 0, i32 31
  %7235 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7234, i32 0, i32 1
  %7236 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7235, i32 0, i32 0
  %7237 = load ptr, ptr %7236, align 8, !tbaa !42
  %7238 = load ptr, ptr %133, align 8, !tbaa !9
  %7239 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %7238, i32 0, i32 1
  %7240 = load ptr, ptr %7239, align 8, !tbaa !43
  %7241 = load i32, ptr %128, align 4, !tbaa !5
  %7242 = sext i32 %7241 to i64
  %7243 = getelementptr inbounds ptr, ptr %7240, i64 %7242
  %7244 = load ptr, ptr %7243, align 8, !tbaa !9
  %7245 = icmp eq ptr %7237, %7244
  br i1 %7245, label %7299, label %7246

7246:                                             ; preds = %7230
  br label %7247

7247:                                             ; preds = %7246
  br label %7248

7248:                                             ; preds = %7247
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %7249 = call ptr @__errno_location() #12
  %7250 = load i32, ptr %7249, align 4, !tbaa !5
  store i32 %7250, ptr %142, align 4, !tbaa !5
  %7251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7252 = call i32 @s2n_print_stacktrace(ptr noundef %7251)
  %7253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7254 = trunc i8 %7253 to i1
  br i1 %7254, label %7255, label %7277

7255:                                             ; preds = %7248
  %7256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7257 = call i32 @fileno(ptr noundef %7256) #11
  %7258 = call i32 @isatty(i32 noundef %7257) #11
  %7259 = icmp ne i32 %7258, 0
  br i1 %7259, label %7260, label %7277

7260:                                             ; preds = %7255
  %7261 = load i32, ptr %142, align 4, !tbaa !5
  %7262 = call ptr @__errno_location() #12
  store i32 %7261, ptr %7262, align 4, !tbaa !5
  %7263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7264 = load i32, ptr @test_count, align 4, !tbaa !5
  %7265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7266 = load i32, ptr %7265, align 4, !tbaa !5
  %7267 = call ptr @s2n_strerror(i32 noundef %7266, ptr noundef @.str.4)
  %7268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7269 = load i32, ptr %7268, align 4, !tbaa !5
  %7270 = call ptr @s2n_strerror_debug(i32 noundef %7269, ptr noundef @.str.4)
  %7271 = call ptr @__errno_location() #12
  %7272 = load i32, ptr %7271, align 4, !tbaa !5
  %7273 = call ptr @strerror(i32 noundef %7272) #11
  %7274 = call ptr @__errno_location() #12
  %7275 = load i32, ptr %7274, align 4, !tbaa !5
  %7276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7263, ptr noundef @.str.2, i32 noundef %7264, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 269, ptr noundef %7267, ptr noundef %7270, ptr noundef %7273, i32 noundef %7275) #11
  br label %7294

7277:                                             ; preds = %7255, %7248
  %7278 = load i32, ptr %142, align 4, !tbaa !5
  %7279 = call ptr @__errno_location() #12
  store i32 %7278, ptr %7279, align 4, !tbaa !5
  %7280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7281 = load i32, ptr @test_count, align 4, !tbaa !5
  %7282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7283 = load i32, ptr %7282, align 4, !tbaa !5
  %7284 = call ptr @s2n_strerror(i32 noundef %7283, ptr noundef @.str.4)
  %7285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7286 = load i32, ptr %7285, align 4, !tbaa !5
  %7287 = call ptr @s2n_strerror_debug(i32 noundef %7286, ptr noundef @.str.4)
  %7288 = call ptr @__errno_location() #12
  %7289 = load i32, ptr %7288, align 4, !tbaa !5
  %7290 = call ptr @strerror(i32 noundef %7289) #11
  %7291 = call ptr @__errno_location() #12
  %7292 = load i32, ptr %7291, align 4, !tbaa !5
  %7293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7280, ptr noundef @.str.5, i32 noundef %7281, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 269, ptr noundef %7284, ptr noundef %7287, ptr noundef %7290, i32 noundef %7292) #11
  br label %7294

7294:                                             ; preds = %7277, %7260
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %7295

7295:                                             ; preds = %7294
  br label %7296

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

7297:                                             ; No predecessors!
  br label %7298

7298:                                             ; preds = %7297
  br label %7299

7299:                                             ; preds = %7298, %7230
  br label %7300

7300:                                             ; preds = %7299
  br label %7301

7301:                                             ; preds = %7300
  br label %7302

7302:                                             ; preds = %7301
  %7303 = load i32, ptr @test_count, align 4, !tbaa !5
  %7304 = add nsw i32 %7303, 1
  store i32 %7304, ptr @test_count, align 4, !tbaa !5
  %7305 = getelementptr inbounds %struct.s2n_stuffer, ptr %129, i32 0, i32 2
  %7306 = load i32, ptr %7305, align 4, !tbaa !55
  %7307 = getelementptr inbounds %struct.s2n_stuffer, ptr %129, i32 0, i32 1
  %7308 = load i32, ptr %7307, align 8, !tbaa !56
  %7309 = sub i32 %7306, %7308
  %7310 = icmp eq i32 %7309, 0
  br i1 %7310, label %7364, label %7311

7311:                                             ; preds = %7302
  br label %7312

7312:                                             ; preds = %7311
  br label %7313

7313:                                             ; preds = %7312
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #11
  %7314 = call ptr @__errno_location() #12
  %7315 = load i32, ptr %7314, align 4, !tbaa !5
  store i32 %7315, ptr %143, align 4, !tbaa !5
  %7316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7317 = call i32 @s2n_print_stacktrace(ptr noundef %7316)
  %7318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7319 = trunc i8 %7318 to i1
  br i1 %7319, label %7320, label %7342

7320:                                             ; preds = %7313
  %7321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7322 = call i32 @fileno(ptr noundef %7321) #11
  %7323 = call i32 @isatty(i32 noundef %7322) #11
  %7324 = icmp ne i32 %7323, 0
  br i1 %7324, label %7325, label %7342

7325:                                             ; preds = %7320
  %7326 = load i32, ptr %143, align 4, !tbaa !5
  %7327 = call ptr @__errno_location() #12
  store i32 %7326, ptr %7327, align 4, !tbaa !5
  %7328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7329 = load i32, ptr @test_count, align 4, !tbaa !5
  %7330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7331 = load i32, ptr %7330, align 4, !tbaa !5
  %7332 = call ptr @s2n_strerror(i32 noundef %7331, ptr noundef @.str.4)
  %7333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7334 = load i32, ptr %7333, align 4, !tbaa !5
  %7335 = call ptr @s2n_strerror_debug(i32 noundef %7334, ptr noundef @.str.4)
  %7336 = call ptr @__errno_location() #12
  %7337 = load i32, ptr %7336, align 4, !tbaa !5
  %7338 = call ptr @strerror(i32 noundef %7337) #11
  %7339 = call ptr @__errno_location() #12
  %7340 = load i32, ptr %7339, align 4, !tbaa !5
  %7341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7328, ptr noundef @.str.2, i32 noundef %7329, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 270, ptr noundef %7332, ptr noundef %7335, ptr noundef %7338, i32 noundef %7340) #11
  br label %7359

7342:                                             ; preds = %7320, %7313
  %7343 = load i32, ptr %143, align 4, !tbaa !5
  %7344 = call ptr @__errno_location() #12
  store i32 %7343, ptr %7344, align 4, !tbaa !5
  %7345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7346 = load i32, ptr @test_count, align 4, !tbaa !5
  %7347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7348 = load i32, ptr %7347, align 4, !tbaa !5
  %7349 = call ptr @s2n_strerror(i32 noundef %7348, ptr noundef @.str.4)
  %7350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7351 = load i32, ptr %7350, align 4, !tbaa !5
  %7352 = call ptr @s2n_strerror_debug(i32 noundef %7351, ptr noundef @.str.4)
  %7353 = call ptr @__errno_location() #12
  %7354 = load i32, ptr %7353, align 4, !tbaa !5
  %7355 = call ptr @strerror(i32 noundef %7354) #11
  %7356 = call ptr @__errno_location() #12
  %7357 = load i32, ptr %7356, align 4, !tbaa !5
  %7358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7345, ptr noundef @.str.5, i32 noundef %7346, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 270, ptr noundef %7349, ptr noundef %7352, ptr noundef %7355, i32 noundef %7357) #11
  br label %7359

7359:                                             ; preds = %7342, %7325
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #11
  br label %7360

7360:                                             ; preds = %7359
  br label %7361

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

7362:                                             ; No predecessors!
  br label %7363

7363:                                             ; preds = %7362
  br label %7364

7364:                                             ; preds = %7363, %7302
  br label %7365

7365:                                             ; preds = %7364
  br label %7366

7366:                                             ; preds = %7365
  br label %7367

7367:                                             ; preds = %7366
  %7368 = load i32, ptr @test_count, align 4, !tbaa !5
  %7369 = add nsw i32 %7368, 1
  store i32 %7369, ptr @test_count, align 4, !tbaa !5
  %7370 = call i32 @s2n_stuffer_free(ptr noundef %129)
  %7371 = icmp eq i32 %7370, -1
  br i1 %7371, label %7372, label %7425

7372:                                             ; preds = %7367
  br label %7373

7373:                                             ; preds = %7372
  br label %7374

7374:                                             ; preds = %7373
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  %7375 = call ptr @__errno_location() #12
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  store i32 %7376, ptr %144, align 4, !tbaa !5
  %7377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7378 = call i32 @s2n_print_stacktrace(ptr noundef %7377)
  %7379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7380 = trunc i8 %7379 to i1
  br i1 %7380, label %7381, label %7403

7381:                                             ; preds = %7374
  %7382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7383 = call i32 @fileno(ptr noundef %7382) #11
  %7384 = call i32 @isatty(i32 noundef %7383) #11
  %7385 = icmp ne i32 %7384, 0
  br i1 %7385, label %7386, label %7403

7386:                                             ; preds = %7381
  %7387 = load i32, ptr %144, align 4, !tbaa !5
  %7388 = call ptr @__errno_location() #12
  store i32 %7387, ptr %7388, align 4, !tbaa !5
  %7389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7390 = load i32, ptr @test_count, align 4, !tbaa !5
  %7391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7392 = load i32, ptr %7391, align 4, !tbaa !5
  %7393 = call ptr @s2n_strerror(i32 noundef %7392, ptr noundef @.str.4)
  %7394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7395 = load i32, ptr %7394, align 4, !tbaa !5
  %7396 = call ptr @s2n_strerror_debug(i32 noundef %7395, ptr noundef @.str.4)
  %7397 = call ptr @__errno_location() #12
  %7398 = load i32, ptr %7397, align 4, !tbaa !5
  %7399 = call ptr @strerror(i32 noundef %7398) #11
  %7400 = call ptr @__errno_location() #12
  %7401 = load i32, ptr %7400, align 4, !tbaa !5
  %7402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7389, ptr noundef @.str.2, i32 noundef %7390, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 272, ptr noundef %7393, ptr noundef %7396, ptr noundef %7399, i32 noundef %7401) #11
  br label %7420

7403:                                             ; preds = %7381, %7374
  %7404 = load i32, ptr %144, align 4, !tbaa !5
  %7405 = call ptr @__errno_location() #12
  store i32 %7404, ptr %7405, align 4, !tbaa !5
  %7406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7407 = load i32, ptr @test_count, align 4, !tbaa !5
  %7408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7409 = load i32, ptr %7408, align 4, !tbaa !5
  %7410 = call ptr @s2n_strerror(i32 noundef %7409, ptr noundef @.str.4)
  %7411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7412 = load i32, ptr %7411, align 4, !tbaa !5
  %7413 = call ptr @s2n_strerror_debug(i32 noundef %7412, ptr noundef @.str.4)
  %7414 = call ptr @__errno_location() #12
  %7415 = load i32, ptr %7414, align 4, !tbaa !5
  %7416 = call ptr @strerror(i32 noundef %7415) #11
  %7417 = call ptr @__errno_location() #12
  %7418 = load i32, ptr %7417, align 4, !tbaa !5
  %7419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7406, ptr noundef @.str.5, i32 noundef %7407, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 272, ptr noundef %7410, ptr noundef %7413, ptr noundef %7416, i32 noundef %7418) #11
  br label %7420

7420:                                             ; preds = %7403, %7386
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  br label %7421

7421:                                             ; preds = %7420
  br label %7422

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

7423:                                             ; No predecessors!
  br label %7424

7424:                                             ; preds = %7423
  br label %7425

7425:                                             ; preds = %7424, %7367
  br label %7426

7426:                                             ; preds = %7425
  br label %7427

7427:                                             ; preds = %7426
  br label %7428

7428:                                             ; preds = %7427
  %7429 = load i32, ptr @test_count, align 4, !tbaa !5
  %7430 = add nsw i32 %7429, 1
  store i32 %7430, ptr @test_count, align 4, !tbaa !5
  %7431 = load ptr, ptr %130, align 8, !tbaa !9
  %7432 = call i32 @s2n_connection_free(ptr noundef %7431)
  %7433 = icmp eq i32 %7432, -1
  br i1 %7433, label %7434, label %7487

7434:                                             ; preds = %7428
  br label %7435

7435:                                             ; preds = %7434
  br label %7436

7436:                                             ; preds = %7435
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #11
  %7437 = call ptr @__errno_location() #12
  %7438 = load i32, ptr %7437, align 4, !tbaa !5
  store i32 %7438, ptr %145, align 4, !tbaa !5
  %7439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7440 = call i32 @s2n_print_stacktrace(ptr noundef %7439)
  %7441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7442 = trunc i8 %7441 to i1
  br i1 %7442, label %7443, label %7465

7443:                                             ; preds = %7436
  %7444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7445 = call i32 @fileno(ptr noundef %7444) #11
  %7446 = call i32 @isatty(i32 noundef %7445) #11
  %7447 = icmp ne i32 %7446, 0
  br i1 %7447, label %7448, label %7465

7448:                                             ; preds = %7443
  %7449 = load i32, ptr %145, align 4, !tbaa !5
  %7450 = call ptr @__errno_location() #12
  store i32 %7449, ptr %7450, align 4, !tbaa !5
  %7451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7452 = load i32, ptr @test_count, align 4, !tbaa !5
  %7453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7454 = load i32, ptr %7453, align 4, !tbaa !5
  %7455 = call ptr @s2n_strerror(i32 noundef %7454, ptr noundef @.str.4)
  %7456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7457 = load i32, ptr %7456, align 4, !tbaa !5
  %7458 = call ptr @s2n_strerror_debug(i32 noundef %7457, ptr noundef @.str.4)
  %7459 = call ptr @__errno_location() #12
  %7460 = load i32, ptr %7459, align 4, !tbaa !5
  %7461 = call ptr @strerror(i32 noundef %7460) #11
  %7462 = call ptr @__errno_location() #12
  %7463 = load i32, ptr %7462, align 4, !tbaa !5
  %7464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7451, ptr noundef @.str.2, i32 noundef %7452, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 273, ptr noundef %7455, ptr noundef %7458, ptr noundef %7461, i32 noundef %7463) #11
  br label %7482

7465:                                             ; preds = %7443, %7436
  %7466 = load i32, ptr %145, align 4, !tbaa !5
  %7467 = call ptr @__errno_location() #12
  store i32 %7466, ptr %7467, align 4, !tbaa !5
  %7468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7469 = load i32, ptr @test_count, align 4, !tbaa !5
  %7470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7471 = load i32, ptr %7470, align 4, !tbaa !5
  %7472 = call ptr @s2n_strerror(i32 noundef %7471, ptr noundef @.str.4)
  %7473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7474 = load i32, ptr %7473, align 4, !tbaa !5
  %7475 = call ptr @s2n_strerror_debug(i32 noundef %7474, ptr noundef @.str.4)
  %7476 = call ptr @__errno_location() #12
  %7477 = load i32, ptr %7476, align 4, !tbaa !5
  %7478 = call ptr @strerror(i32 noundef %7477) #11
  %7479 = call ptr @__errno_location() #12
  %7480 = load i32, ptr %7479, align 4, !tbaa !5
  %7481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7468, ptr noundef @.str.5, i32 noundef %7469, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 273, ptr noundef %7472, ptr noundef %7475, ptr noundef %7478, i32 noundef %7480) #11
  br label %7482

7482:                                             ; preds = %7465, %7448
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #11
  br label %7483

7483:                                             ; preds = %7482
  br label %7484

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

7485:                                             ; No predecessors!
  br label %7486

7486:                                             ; preds = %7485
  br label %7487

7487:                                             ; preds = %7486, %7428
  br label %7488

7488:                                             ; preds = %7487
  br label %7489

7489:                                             ; preds = %7488
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %129) #11
  br label %7490

7490:                                             ; preds = %7489
  %7491 = load i32, ptr %128, align 4, !tbaa !5
  %7492 = add nsw i32 %7491, 1
  store i32 %7492, ptr %128, align 4, !tbaa !5
  br label %6707, !llvm.loop !66

7493:                                             ; preds = %6710
  call void @llvm.lifetime.start.p0(i64 40, ptr %146) #11
  call void @llvm.memset.p0.i64(ptr align 8 %146, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #11
  store ptr null, ptr %147, align 8, !tbaa !9
  br label %7494

7494:                                             ; preds = %7493
  %7495 = load i32, ptr @test_count, align 4, !tbaa !5
  %7496 = add nsw i32 %7495, 1
  store i32 %7496, ptr @test_count, align 4, !tbaa !5
  %7497 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7497, ptr %147, align 8, !tbaa !9
  %7498 = icmp eq ptr %7497, null
  br i1 %7498, label %7499, label %7552

7499:                                             ; preds = %7494
  br label %7500

7500:                                             ; preds = %7499
  br label %7501

7501:                                             ; preds = %7500
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %7502 = call ptr @__errno_location() #12
  %7503 = load i32, ptr %7502, align 4, !tbaa !5
  store i32 %7503, ptr %148, align 4, !tbaa !5
  %7504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7505 = call i32 @s2n_print_stacktrace(ptr noundef %7504)
  %7506 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7507 = trunc i8 %7506 to i1
  br i1 %7507, label %7508, label %7530

7508:                                             ; preds = %7501
  %7509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7510 = call i32 @fileno(ptr noundef %7509) #11
  %7511 = call i32 @isatty(i32 noundef %7510) #11
  %7512 = icmp ne i32 %7511, 0
  br i1 %7512, label %7513, label %7530

7513:                                             ; preds = %7508
  %7514 = load i32, ptr %148, align 4, !tbaa !5
  %7515 = call ptr @__errno_location() #12
  store i32 %7514, ptr %7515, align 4, !tbaa !5
  %7516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7517 = load i32, ptr @test_count, align 4, !tbaa !5
  %7518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7519 = load i32, ptr %7518, align 4, !tbaa !5
  %7520 = call ptr @s2n_strerror(i32 noundef %7519, ptr noundef @.str.4)
  %7521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7522 = load i32, ptr %7521, align 4, !tbaa !5
  %7523 = call ptr @s2n_strerror_debug(i32 noundef %7522, ptr noundef @.str.4)
  %7524 = call ptr @__errno_location() #12
  %7525 = load i32, ptr %7524, align 4, !tbaa !5
  %7526 = call ptr @strerror(i32 noundef %7525) #11
  %7527 = call ptr @__errno_location() #12
  %7528 = load i32, ptr %7527, align 4, !tbaa !5
  %7529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7516, ptr noundef @.str.2, i32 noundef %7517, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 282, ptr noundef %7520, ptr noundef %7523, ptr noundef %7526, i32 noundef %7528) #11
  br label %7547

7530:                                             ; preds = %7508, %7501
  %7531 = load i32, ptr %148, align 4, !tbaa !5
  %7532 = call ptr @__errno_location() #12
  store i32 %7531, ptr %7532, align 4, !tbaa !5
  %7533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7534 = load i32, ptr @test_count, align 4, !tbaa !5
  %7535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7536 = load i32, ptr %7535, align 4, !tbaa !5
  %7537 = call ptr @s2n_strerror(i32 noundef %7536, ptr noundef @.str.4)
  %7538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7539 = load i32, ptr %7538, align 4, !tbaa !5
  %7540 = call ptr @s2n_strerror_debug(i32 noundef %7539, ptr noundef @.str.4)
  %7541 = call ptr @__errno_location() #12
  %7542 = load i32, ptr %7541, align 4, !tbaa !5
  %7543 = call ptr @strerror(i32 noundef %7542) #11
  %7544 = call ptr @__errno_location() #12
  %7545 = load i32, ptr %7544, align 4, !tbaa !5
  %7546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7533, ptr noundef @.str.5, i32 noundef %7534, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 282, ptr noundef %7537, ptr noundef %7540, ptr noundef %7543, i32 noundef %7545) #11
  br label %7547

7547:                                             ; preds = %7530, %7513
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %7548

7548:                                             ; preds = %7547
  br label %7549

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

7550:                                             ; No predecessors!
  br label %7551

7551:                                             ; preds = %7550
  br label %7552

7552:                                             ; preds = %7551, %7494
  br label %7553

7553:                                             ; preds = %7552
  br label %7554

7554:                                             ; preds = %7553
  br label %7555

7555:                                             ; preds = %7554
  %7556 = load i32, ptr @test_count, align 4, !tbaa !5
  %7557 = add nsw i32 %7556, 1
  store i32 %7557, ptr @test_count, align 4, !tbaa !5
  %7558 = load ptr, ptr %147, align 8, !tbaa !9
  %7559 = load i16, ptr @s2n_server_key_share_extension, align 8, !tbaa !67
  %7560 = call i32 @s2n_connection_allow_response_extension(ptr noundef %7558, i16 noundef zeroext %7559)
  %7561 = icmp eq i32 %7560, -1
  br i1 %7561, label %7562, label %7615

7562:                                             ; preds = %7555
  br label %7563

7563:                                             ; preds = %7562
  br label %7564

7564:                                             ; preds = %7563
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #11
  %7565 = call ptr @__errno_location() #12
  %7566 = load i32, ptr %7565, align 4, !tbaa !5
  store i32 %7566, ptr %149, align 4, !tbaa !5
  %7567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7568 = call i32 @s2n_print_stacktrace(ptr noundef %7567)
  %7569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7570 = trunc i8 %7569 to i1
  br i1 %7570, label %7571, label %7593

7571:                                             ; preds = %7564
  %7572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7573 = call i32 @fileno(ptr noundef %7572) #11
  %7574 = call i32 @isatty(i32 noundef %7573) #11
  %7575 = icmp ne i32 %7574, 0
  br i1 %7575, label %7576, label %7593

7576:                                             ; preds = %7571
  %7577 = load i32, ptr %149, align 4, !tbaa !5
  %7578 = call ptr @__errno_location() #12
  store i32 %7577, ptr %7578, align 4, !tbaa !5
  %7579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7580 = load i32, ptr @test_count, align 4, !tbaa !5
  %7581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7582 = load i32, ptr %7581, align 4, !tbaa !5
  %7583 = call ptr @s2n_strerror(i32 noundef %7582, ptr noundef @.str.4)
  %7584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7585 = load i32, ptr %7584, align 4, !tbaa !5
  %7586 = call ptr @s2n_strerror_debug(i32 noundef %7585, ptr noundef @.str.4)
  %7587 = call ptr @__errno_location() #12
  %7588 = load i32, ptr %7587, align 4, !tbaa !5
  %7589 = call ptr @strerror(i32 noundef %7588) #11
  %7590 = call ptr @__errno_location() #12
  %7591 = load i32, ptr %7590, align 4, !tbaa !5
  %7592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7579, ptr noundef @.str.2, i32 noundef %7580, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 284, ptr noundef %7583, ptr noundef %7586, ptr noundef %7589, i32 noundef %7591) #11
  br label %7610

7593:                                             ; preds = %7571, %7564
  %7594 = load i32, ptr %149, align 4, !tbaa !5
  %7595 = call ptr @__errno_location() #12
  store i32 %7594, ptr %7595, align 4, !tbaa !5
  %7596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7597 = load i32, ptr @test_count, align 4, !tbaa !5
  %7598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7599 = load i32, ptr %7598, align 4, !tbaa !5
  %7600 = call ptr @s2n_strerror(i32 noundef %7599, ptr noundef @.str.4)
  %7601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7602 = load i32, ptr %7601, align 4, !tbaa !5
  %7603 = call ptr @s2n_strerror_debug(i32 noundef %7602, ptr noundef @.str.4)
  %7604 = call ptr @__errno_location() #12
  %7605 = load i32, ptr %7604, align 4, !tbaa !5
  %7606 = call ptr @strerror(i32 noundef %7605) #11
  %7607 = call ptr @__errno_location() #12
  %7608 = load i32, ptr %7607, align 4, !tbaa !5
  %7609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7596, ptr noundef @.str.5, i32 noundef %7597, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 284, ptr noundef %7600, ptr noundef %7603, ptr noundef %7606, i32 noundef %7608) #11
  br label %7610

7610:                                             ; preds = %7593, %7576
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  br label %7611

7611:                                             ; preds = %7610
  br label %7612

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

7613:                                             ; No predecessors!
  br label %7614

7614:                                             ; preds = %7613
  br label %7615

7615:                                             ; preds = %7614, %7555
  br label %7616

7616:                                             ; preds = %7615
  br label %7617

7617:                                             ; preds = %7616
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #11
  store ptr null, ptr %150, align 8, !tbaa !9
  br label %7618

7618:                                             ; preds = %7617
  %7619 = load i32, ptr @test_count, align 4, !tbaa !5
  %7620 = add nsw i32 %7619, 1
  store i32 %7620, ptr @test_count, align 4, !tbaa !5
  %7621 = load ptr, ptr %147, align 8, !tbaa !9
  %7622 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %7621, ptr noundef %150)
  %7623 = icmp eq i32 %7622, -1
  br i1 %7623, label %7624, label %7677

7624:                                             ; preds = %7618
  br label %7625

7625:                                             ; preds = %7624
  br label %7626

7626:                                             ; preds = %7625
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #11
  %7627 = call ptr @__errno_location() #12
  %7628 = load i32, ptr %7627, align 4, !tbaa !5
  store i32 %7628, ptr %151, align 4, !tbaa !5
  %7629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7630 = call i32 @s2n_print_stacktrace(ptr noundef %7629)
  %7631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7632 = trunc i8 %7631 to i1
  br i1 %7632, label %7633, label %7655

7633:                                             ; preds = %7626
  %7634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7635 = call i32 @fileno(ptr noundef %7634) #11
  %7636 = call i32 @isatty(i32 noundef %7635) #11
  %7637 = icmp ne i32 %7636, 0
  br i1 %7637, label %7638, label %7655

7638:                                             ; preds = %7633
  %7639 = load i32, ptr %151, align 4, !tbaa !5
  %7640 = call ptr @__errno_location() #12
  store i32 %7639, ptr %7640, align 4, !tbaa !5
  %7641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7642 = load i32, ptr @test_count, align 4, !tbaa !5
  %7643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7644 = load i32, ptr %7643, align 4, !tbaa !5
  %7645 = call ptr @s2n_strerror(i32 noundef %7644, ptr noundef @.str.4)
  %7646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7647 = load i32, ptr %7646, align 4, !tbaa !5
  %7648 = call ptr @s2n_strerror_debug(i32 noundef %7647, ptr noundef @.str.4)
  %7649 = call ptr @__errno_location() #12
  %7650 = load i32, ptr %7649, align 4, !tbaa !5
  %7651 = call ptr @strerror(i32 noundef %7650) #11
  %7652 = call ptr @__errno_location() #12
  %7653 = load i32, ptr %7652, align 4, !tbaa !5
  %7654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7641, ptr noundef @.str.2, i32 noundef %7642, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 287, ptr noundef %7645, ptr noundef %7648, ptr noundef %7651, i32 noundef %7653) #11
  br label %7672

7655:                                             ; preds = %7633, %7626
  %7656 = load i32, ptr %151, align 4, !tbaa !5
  %7657 = call ptr @__errno_location() #12
  store i32 %7656, ptr %7657, align 4, !tbaa !5
  %7658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7659 = load i32, ptr @test_count, align 4, !tbaa !5
  %7660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7661 = load i32, ptr %7660, align 4, !tbaa !5
  %7662 = call ptr @s2n_strerror(i32 noundef %7661, ptr noundef @.str.4)
  %7663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7664 = load i32, ptr %7663, align 4, !tbaa !5
  %7665 = call ptr @s2n_strerror_debug(i32 noundef %7664, ptr noundef @.str.4)
  %7666 = call ptr @__errno_location() #12
  %7667 = load i32, ptr %7666, align 4, !tbaa !5
  %7668 = call ptr @strerror(i32 noundef %7667) #11
  %7669 = call ptr @__errno_location() #12
  %7670 = load i32, ptr %7669, align 4, !tbaa !5
  %7671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7658, ptr noundef @.str.5, i32 noundef %7659, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 287, ptr noundef %7662, ptr noundef %7665, ptr noundef %7668, i32 noundef %7670) #11
  br label %7672

7672:                                             ; preds = %7655, %7638
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #11
  br label %7673

7673:                                             ; preds = %7672
  br label %7674

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

7675:                                             ; No predecessors!
  br label %7676

7676:                                             ; preds = %7675
  br label %7677

7677:                                             ; preds = %7676, %7618
  br label %7678

7678:                                             ; preds = %7677
  br label %7679

7679:                                             ; preds = %7678
  br label %7680

7680:                                             ; preds = %7679
  %7681 = load i32, ptr @test_count, align 4, !tbaa !5
  %7682 = add nsw i32 %7681, 1
  store i32 %7682, ptr @test_count, align 4, !tbaa !5
  %7683 = load ptr, ptr %150, align 8, !tbaa !9
  %7684 = icmp eq ptr %7683, null
  br i1 %7684, label %7685, label %7738

7685:                                             ; preds = %7680
  br label %7686

7686:                                             ; preds = %7685
  br label %7687

7687:                                             ; preds = %7686
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #11
  %7688 = call ptr @__errno_location() #12
  %7689 = load i32, ptr %7688, align 4, !tbaa !5
  store i32 %7689, ptr %152, align 4, !tbaa !5
  %7690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7691 = call i32 @s2n_print_stacktrace(ptr noundef %7690)
  %7692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7693 = trunc i8 %7692 to i1
  br i1 %7693, label %7694, label %7716

7694:                                             ; preds = %7687
  %7695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7696 = call i32 @fileno(ptr noundef %7695) #11
  %7697 = call i32 @isatty(i32 noundef %7696) #11
  %7698 = icmp ne i32 %7697, 0
  br i1 %7698, label %7699, label %7716

7699:                                             ; preds = %7694
  %7700 = load i32, ptr %152, align 4, !tbaa !5
  %7701 = call ptr @__errno_location() #12
  store i32 %7700, ptr %7701, align 4, !tbaa !5
  %7702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7703 = load i32, ptr @test_count, align 4, !tbaa !5
  %7704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7705 = load i32, ptr %7704, align 4, !tbaa !5
  %7706 = call ptr @s2n_strerror(i32 noundef %7705, ptr noundef @.str.4)
  %7707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7708 = load i32, ptr %7707, align 4, !tbaa !5
  %7709 = call ptr @s2n_strerror_debug(i32 noundef %7708, ptr noundef @.str.4)
  %7710 = call ptr @__errno_location() #12
  %7711 = load i32, ptr %7710, align 4, !tbaa !5
  %7712 = call ptr @strerror(i32 noundef %7711) #11
  %7713 = call ptr @__errno_location() #12
  %7714 = load i32, ptr %7713, align 4, !tbaa !5
  %7715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7702, ptr noundef @.str.2, i32 noundef %7703, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 288, ptr noundef %7706, ptr noundef %7709, ptr noundef %7712, i32 noundef %7714) #11
  br label %7733

7716:                                             ; preds = %7694, %7687
  %7717 = load i32, ptr %152, align 4, !tbaa !5
  %7718 = call ptr @__errno_location() #12
  store i32 %7717, ptr %7718, align 4, !tbaa !5
  %7719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7720 = load i32, ptr @test_count, align 4, !tbaa !5
  %7721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7722 = load i32, ptr %7721, align 4, !tbaa !5
  %7723 = call ptr @s2n_strerror(i32 noundef %7722, ptr noundef @.str.4)
  %7724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7725 = load i32, ptr %7724, align 4, !tbaa !5
  %7726 = call ptr @s2n_strerror_debug(i32 noundef %7725, ptr noundef @.str.4)
  %7727 = call ptr @__errno_location() #12
  %7728 = load i32, ptr %7727, align 4, !tbaa !5
  %7729 = call ptr @strerror(i32 noundef %7728) #11
  %7730 = call ptr @__errno_location() #12
  %7731 = load i32, ptr %7730, align 4, !tbaa !5
  %7732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7719, ptr noundef @.str.5, i32 noundef %7720, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 288, ptr noundef %7723, ptr noundef %7726, ptr noundef %7729, i32 noundef %7731) #11
  br label %7733

7733:                                             ; preds = %7716, %7699
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %7734

7734:                                             ; preds = %7733
  br label %7735

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

7736:                                             ; No predecessors!
  br label %7737

7737:                                             ; preds = %7736
  br label %7738

7738:                                             ; preds = %7737, %7680
  br label %7739

7739:                                             ; preds = %7738
  br label %7740

7740:                                             ; preds = %7739
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #11
  %7741 = getelementptr inbounds [3 x ptr], ptr %127, i64 0, i64 0
  %7742 = load ptr, ptr %7741, align 16, !tbaa !9
  store ptr %7742, ptr %153, align 8, !tbaa !9
  br label %7743

7743:                                             ; preds = %7740
  %7744 = load i32, ptr @test_count, align 4, !tbaa !5
  %7745 = add nsw i32 %7744, 1
  store i32 %7745, ptr @test_count, align 4, !tbaa !5
  %7746 = load ptr, ptr %147, align 8, !tbaa !9
  %7747 = getelementptr inbounds %struct.s2n_connection, ptr %7746, i32 0, i32 31
  %7748 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7747, i32 0, i32 1
  %7749 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7748, i32 0, i32 0
  %7750 = load ptr, ptr %7749, align 8, !tbaa !42
  %7751 = icmp eq ptr %7750, null
  br i1 %7751, label %7805, label %7752

7752:                                             ; preds = %7743
  br label %7753

7753:                                             ; preds = %7752
  br label %7754

7754:                                             ; preds = %7753
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  %7755 = call ptr @__errno_location() #12
  %7756 = load i32, ptr %7755, align 4, !tbaa !5
  store i32 %7756, ptr %154, align 4, !tbaa !5
  %7757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7758 = call i32 @s2n_print_stacktrace(ptr noundef %7757)
  %7759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7760 = trunc i8 %7759 to i1
  br i1 %7760, label %7761, label %7783

7761:                                             ; preds = %7754
  %7762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7763 = call i32 @fileno(ptr noundef %7762) #11
  %7764 = call i32 @isatty(i32 noundef %7763) #11
  %7765 = icmp ne i32 %7764, 0
  br i1 %7765, label %7766, label %7783

7766:                                             ; preds = %7761
  %7767 = load i32, ptr %154, align 4, !tbaa !5
  %7768 = call ptr @__errno_location() #12
  store i32 %7767, ptr %7768, align 4, !tbaa !5
  %7769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7770 = load i32, ptr @test_count, align 4, !tbaa !5
  %7771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7772 = load i32, ptr %7771, align 4, !tbaa !5
  %7773 = call ptr @s2n_strerror(i32 noundef %7772, ptr noundef @.str.4)
  %7774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7775 = load i32, ptr %7774, align 4, !tbaa !5
  %7776 = call ptr @s2n_strerror_debug(i32 noundef %7775, ptr noundef @.str.4)
  %7777 = call ptr @__errno_location() #12
  %7778 = load i32, ptr %7777, align 4, !tbaa !5
  %7779 = call ptr @strerror(i32 noundef %7778) #11
  %7780 = call ptr @__errno_location() #12
  %7781 = load i32, ptr %7780, align 4, !tbaa !5
  %7782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7769, ptr noundef @.str.2, i32 noundef %7770, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 292, ptr noundef %7773, ptr noundef %7776, ptr noundef %7779, i32 noundef %7781) #11
  br label %7800

7783:                                             ; preds = %7761, %7754
  %7784 = load i32, ptr %154, align 4, !tbaa !5
  %7785 = call ptr @__errno_location() #12
  store i32 %7784, ptr %7785, align 4, !tbaa !5
  %7786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7787 = load i32, ptr @test_count, align 4, !tbaa !5
  %7788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7789 = load i32, ptr %7788, align 4, !tbaa !5
  %7790 = call ptr @s2n_strerror(i32 noundef %7789, ptr noundef @.str.4)
  %7791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7792 = load i32, ptr %7791, align 4, !tbaa !5
  %7793 = call ptr @s2n_strerror_debug(i32 noundef %7792, ptr noundef @.str.4)
  %7794 = call ptr @__errno_location() #12
  %7795 = load i32, ptr %7794, align 4, !tbaa !5
  %7796 = call ptr @strerror(i32 noundef %7795) #11
  %7797 = call ptr @__errno_location() #12
  %7798 = load i32, ptr %7797, align 4, !tbaa !5
  %7799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7786, ptr noundef @.str.5, i32 noundef %7787, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 292, ptr noundef %7790, ptr noundef %7793, ptr noundef %7796, i32 noundef %7798) #11
  br label %7800

7800:                                             ; preds = %7783, %7766
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %7801

7801:                                             ; preds = %7800
  br label %7802

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

7803:                                             ; No predecessors!
  br label %7804

7804:                                             ; preds = %7803
  br label %7805

7805:                                             ; preds = %7804, %7743
  br label %7806

7806:                                             ; preds = %7805
  br label %7807

7807:                                             ; preds = %7806
  br label %7808

7808:                                             ; preds = %7807
  %7809 = load i32, ptr @test_count, align 4, !tbaa !5
  %7810 = add nsw i32 %7809, 1
  store i32 %7810, ptr @test_count, align 4, !tbaa !5
  %7811 = load ptr, ptr %153, align 8, !tbaa !9
  %7812 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef %146, ptr noundef %7811)
  %7813 = getelementptr inbounds %struct.s2n_result, ptr %155, i32 0, i32 0
  store i32 %7812, ptr %7813, align 4
  %7814 = getelementptr inbounds %struct.s2n_result, ptr %155, i32 0, i32 0
  %7815 = load i32, ptr %7814, align 4
  %7816 = call zeroext i1 @s2n_result_is_ok(i32 %7815)
  br i1 %7816, label %7870, label %7817

7817:                                             ; preds = %7808
  br label %7818

7818:                                             ; preds = %7817
  br label %7819

7819:                                             ; preds = %7818
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %7820 = call ptr @__errno_location() #12
  %7821 = load i32, ptr %7820, align 4, !tbaa !5
  store i32 %7821, ptr %156, align 4, !tbaa !5
  %7822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7823 = call i32 @s2n_print_stacktrace(ptr noundef %7822)
  %7824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7825 = trunc i8 %7824 to i1
  br i1 %7825, label %7826, label %7848

7826:                                             ; preds = %7819
  %7827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7828 = call i32 @fileno(ptr noundef %7827) #11
  %7829 = call i32 @isatty(i32 noundef %7828) #11
  %7830 = icmp ne i32 %7829, 0
  br i1 %7830, label %7831, label %7848

7831:                                             ; preds = %7826
  %7832 = load i32, ptr %156, align 4, !tbaa !5
  %7833 = call ptr @__errno_location() #12
  store i32 %7832, ptr %7833, align 4, !tbaa !5
  %7834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7835 = load i32, ptr @test_count, align 4, !tbaa !5
  %7836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7837 = load i32, ptr %7836, align 4, !tbaa !5
  %7838 = call ptr @s2n_strerror(i32 noundef %7837, ptr noundef @.str.4)
  %7839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7840 = load i32, ptr %7839, align 4, !tbaa !5
  %7841 = call ptr @s2n_strerror_debug(i32 noundef %7840, ptr noundef @.str.4)
  %7842 = call ptr @__errno_location() #12
  %7843 = load i32, ptr %7842, align 4, !tbaa !5
  %7844 = call ptr @strerror(i32 noundef %7843) #11
  %7845 = call ptr @__errno_location() #12
  %7846 = load i32, ptr %7845, align 4, !tbaa !5
  %7847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7834, ptr noundef @.str.2, i32 noundef %7835, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 293, ptr noundef %7838, ptr noundef %7841, ptr noundef %7844, i32 noundef %7846) #11
  br label %7865

7848:                                             ; preds = %7826, %7819
  %7849 = load i32, ptr %156, align 4, !tbaa !5
  %7850 = call ptr @__errno_location() #12
  store i32 %7849, ptr %7850, align 4, !tbaa !5
  %7851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7852 = load i32, ptr @test_count, align 4, !tbaa !5
  %7853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7854 = load i32, ptr %7853, align 4, !tbaa !5
  %7855 = call ptr @s2n_strerror(i32 noundef %7854, ptr noundef @.str.4)
  %7856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7857 = load i32, ptr %7856, align 4, !tbaa !5
  %7858 = call ptr @s2n_strerror_debug(i32 noundef %7857, ptr noundef @.str.4)
  %7859 = call ptr @__errno_location() #12
  %7860 = load i32, ptr %7859, align 4, !tbaa !5
  %7861 = call ptr @strerror(i32 noundef %7860) #11
  %7862 = call ptr @__errno_location() #12
  %7863 = load i32, ptr %7862, align 4, !tbaa !5
  %7864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7851, ptr noundef @.str.5, i32 noundef %7852, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 293, ptr noundef %7855, ptr noundef %7858, ptr noundef %7861, i32 noundef %7863) #11
  br label %7865

7865:                                             ; preds = %7848, %7831
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %7866

7866:                                             ; preds = %7865
  br label %7867

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

7868:                                             ; No predecessors!
  br label %7869

7869:                                             ; preds = %7868
  br label %7870

7870:                                             ; preds = %7869, %7808
  br label %7871

7871:                                             ; preds = %7870
  br label %7872

7872:                                             ; preds = %7871
  %7873 = load ptr, ptr %150, align 8, !tbaa !9
  %7874 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %7873, i32 0, i32 1
  %7875 = load ptr, ptr %7874, align 8, !tbaa !43
  %7876 = getelementptr inbounds ptr, ptr %7875, i64 0
  %7877 = load ptr, ptr %7876, align 8, !tbaa !9
  %7878 = load ptr, ptr %147, align 8, !tbaa !9
  %7879 = getelementptr inbounds %struct.s2n_connection, ptr %7878, i32 0, i32 31
  %7880 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7879, i32 0, i32 3
  %7881 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7880, i32 0, i32 0
  store ptr %7877, ptr %7881, align 8, !tbaa !45
  br label %7882

7882:                                             ; preds = %7872
  %7883 = load i32, ptr @test_count, align 4, !tbaa !5
  %7884 = add nsw i32 %7883, 1
  store i32 %7884, ptr @test_count, align 4, !tbaa !5
  %7885 = load ptr, ptr %147, align 8, !tbaa !9
  %7886 = getelementptr inbounds %struct.s2n_connection, ptr %7885, i32 0, i32 31
  %7887 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7886, i32 0, i32 3
  %7888 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %7887)
  %7889 = icmp eq i32 %7888, -1
  br i1 %7889, label %7890, label %7943

7890:                                             ; preds = %7882
  br label %7891

7891:                                             ; preds = %7890
  br label %7892

7892:                                             ; preds = %7891
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #11
  %7893 = call ptr @__errno_location() #12
  %7894 = load i32, ptr %7893, align 4, !tbaa !5
  store i32 %7894, ptr %157, align 4, !tbaa !5
  %7895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7896 = call i32 @s2n_print_stacktrace(ptr noundef %7895)
  %7897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7898 = trunc i8 %7897 to i1
  br i1 %7898, label %7899, label %7921

7899:                                             ; preds = %7892
  %7900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7901 = call i32 @fileno(ptr noundef %7900) #11
  %7902 = call i32 @isatty(i32 noundef %7901) #11
  %7903 = icmp ne i32 %7902, 0
  br i1 %7903, label %7904, label %7921

7904:                                             ; preds = %7899
  %7905 = load i32, ptr %157, align 4, !tbaa !5
  %7906 = call ptr @__errno_location() #12
  store i32 %7905, ptr %7906, align 4, !tbaa !5
  %7907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7908 = load i32, ptr @test_count, align 4, !tbaa !5
  %7909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7910 = load i32, ptr %7909, align 4, !tbaa !5
  %7911 = call ptr @s2n_strerror(i32 noundef %7910, ptr noundef @.str.4)
  %7912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7913 = load i32, ptr %7912, align 4, !tbaa !5
  %7914 = call ptr @s2n_strerror_debug(i32 noundef %7913, ptr noundef @.str.4)
  %7915 = call ptr @__errno_location() #12
  %7916 = load i32, ptr %7915, align 4, !tbaa !5
  %7917 = call ptr @strerror(i32 noundef %7916) #11
  %7918 = call ptr @__errno_location() #12
  %7919 = load i32, ptr %7918, align 4, !tbaa !5
  %7920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7907, ptr noundef @.str.2, i32 noundef %7908, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 296, ptr noundef %7911, ptr noundef %7914, ptr noundef %7917, i32 noundef %7919) #11
  br label %7938

7921:                                             ; preds = %7899, %7892
  %7922 = load i32, ptr %157, align 4, !tbaa !5
  %7923 = call ptr @__errno_location() #12
  store i32 %7922, ptr %7923, align 4, !tbaa !5
  %7924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7925 = load i32, ptr @test_count, align 4, !tbaa !5
  %7926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7927 = load i32, ptr %7926, align 4, !tbaa !5
  %7928 = call ptr @s2n_strerror(i32 noundef %7927, ptr noundef @.str.4)
  %7929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7930 = load i32, ptr %7929, align 4, !tbaa !5
  %7931 = call ptr @s2n_strerror_debug(i32 noundef %7930, ptr noundef @.str.4)
  %7932 = call ptr @__errno_location() #12
  %7933 = load i32, ptr %7932, align 4, !tbaa !5
  %7934 = call ptr @strerror(i32 noundef %7933) #11
  %7935 = call ptr @__errno_location() #12
  %7936 = load i32, ptr %7935, align 4, !tbaa !5
  %7937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7924, ptr noundef @.str.5, i32 noundef %7925, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 296, ptr noundef %7928, ptr noundef %7931, ptr noundef %7934, i32 noundef %7936) #11
  br label %7938

7938:                                             ; preds = %7921, %7904
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %7939

7939:                                             ; preds = %7938
  br label %7940

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

7941:                                             ; No predecessors!
  br label %7942

7942:                                             ; preds = %7941
  br label %7943

7943:                                             ; preds = %7942, %7882
  br label %7944

7944:                                             ; preds = %7943
  br label %7945

7945:                                             ; preds = %7944
  %7946 = load ptr, ptr %147, align 8, !tbaa !9
  %7947 = getelementptr inbounds %struct.s2n_connection, ptr %7946, i32 0, i32 23
  store i8 33, ptr %7947, align 4, !tbaa !59
  br label %7948

7948:                                             ; preds = %7945
  %7949 = load i32, ptr @test_count, align 4, !tbaa !5
  %7950 = add nsw i32 %7949, 1
  store i32 %7950, ptr @test_count, align 4, !tbaa !5
  %7951 = load ptr, ptr %147, align 8, !tbaa !9
  %7952 = call i32 @s2n_extension_recv(ptr noundef @s2n_server_key_share_extension, ptr noundef %7951, ptr noundef %146)
  %7953 = icmp eq i32 %7952, -1
  br i1 %7953, label %7954, label %8007

7954:                                             ; preds = %7948
  br label %7955

7955:                                             ; preds = %7954
  br label %7956

7956:                                             ; preds = %7955
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %7957 = call ptr @__errno_location() #12
  %7958 = load i32, ptr %7957, align 4, !tbaa !5
  store i32 %7958, ptr %158, align 4, !tbaa !5
  %7959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7960 = call i32 @s2n_print_stacktrace(ptr noundef %7959)
  %7961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7962 = trunc i8 %7961 to i1
  br i1 %7962, label %7963, label %7985

7963:                                             ; preds = %7956
  %7964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7965 = call i32 @fileno(ptr noundef %7964) #11
  %7966 = call i32 @isatty(i32 noundef %7965) #11
  %7967 = icmp ne i32 %7966, 0
  br i1 %7967, label %7968, label %7985

7968:                                             ; preds = %7963
  %7969 = load i32, ptr %158, align 4, !tbaa !5
  %7970 = call ptr @__errno_location() #12
  store i32 %7969, ptr %7970, align 4, !tbaa !5
  %7971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7972 = load i32, ptr @test_count, align 4, !tbaa !5
  %7973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7974 = load i32, ptr %7973, align 4, !tbaa !5
  %7975 = call ptr @s2n_strerror(i32 noundef %7974, ptr noundef @.str.4)
  %7976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7977 = load i32, ptr %7976, align 4, !tbaa !5
  %7978 = call ptr @s2n_strerror_debug(i32 noundef %7977, ptr noundef @.str.4)
  %7979 = call ptr @__errno_location() #12
  %7980 = load i32, ptr %7979, align 4, !tbaa !5
  %7981 = call ptr @strerror(i32 noundef %7980) #11
  %7982 = call ptr @__errno_location() #12
  %7983 = load i32, ptr %7982, align 4, !tbaa !5
  %7984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7971, ptr noundef @.str.2, i32 noundef %7972, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 299, ptr noundef %7975, ptr noundef %7978, ptr noundef %7981, i32 noundef %7983) #11
  br label %8002

7985:                                             ; preds = %7963, %7956
  %7986 = load i32, ptr %158, align 4, !tbaa !5
  %7987 = call ptr @__errno_location() #12
  store i32 %7986, ptr %7987, align 4, !tbaa !5
  %7988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7989 = load i32, ptr @test_count, align 4, !tbaa !5
  %7990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7991 = load i32, ptr %7990, align 4, !tbaa !5
  %7992 = call ptr @s2n_strerror(i32 noundef %7991, ptr noundef @.str.4)
  %7993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7994 = load i32, ptr %7993, align 4, !tbaa !5
  %7995 = call ptr @s2n_strerror_debug(i32 noundef %7994, ptr noundef @.str.4)
  %7996 = call ptr @__errno_location() #12
  %7997 = load i32, ptr %7996, align 4, !tbaa !5
  %7998 = call ptr @strerror(i32 noundef %7997) #11
  %7999 = call ptr @__errno_location() #12
  %8000 = load i32, ptr %7999, align 4, !tbaa !5
  %8001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7988, ptr noundef @.str.5, i32 noundef %7989, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 299, ptr noundef %7992, ptr noundef %7995, ptr noundef %7998, i32 noundef %8000) #11
  br label %8002

8002:                                             ; preds = %7985, %7968
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %8003

8003:                                             ; preds = %8002
  br label %8004

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

8005:                                             ; No predecessors!
  br label %8006

8006:                                             ; preds = %8005
  br label %8007

8007:                                             ; preds = %8006, %7948
  br label %8008

8008:                                             ; preds = %8007
  br label %8009

8009:                                             ; preds = %8008
  br label %8010

8010:                                             ; preds = %8009
  %8011 = load i32, ptr @test_count, align 4, !tbaa !5
  %8012 = add nsw i32 %8011, 1
  store i32 %8012, ptr @test_count, align 4, !tbaa !5
  %8013 = load ptr, ptr %147, align 8, !tbaa !9
  %8014 = getelementptr inbounds %struct.s2n_connection, ptr %8013, i32 0, i32 31
  %8015 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %8014, i32 0, i32 1
  %8016 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %8015, i32 0, i32 0
  %8017 = load ptr, ptr %8016, align 8, !tbaa !42
  %8018 = icmp eq ptr %8017, null
  br i1 %8018, label %8072, label %8019

8019:                                             ; preds = %8010
  br label %8020

8020:                                             ; preds = %8019
  br label %8021

8021:                                             ; preds = %8020
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #11
  %8022 = call ptr @__errno_location() #12
  %8023 = load i32, ptr %8022, align 4, !tbaa !5
  store i32 %8023, ptr %159, align 4, !tbaa !5
  %8024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8025 = call i32 @s2n_print_stacktrace(ptr noundef %8024)
  %8026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8027 = trunc i8 %8026 to i1
  br i1 %8027, label %8028, label %8050

8028:                                             ; preds = %8021
  %8029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8030 = call i32 @fileno(ptr noundef %8029) #11
  %8031 = call i32 @isatty(i32 noundef %8030) #11
  %8032 = icmp ne i32 %8031, 0
  br i1 %8032, label %8033, label %8050

8033:                                             ; preds = %8028
  %8034 = load i32, ptr %159, align 4, !tbaa !5
  %8035 = call ptr @__errno_location() #12
  store i32 %8034, ptr %8035, align 4, !tbaa !5
  %8036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8037 = load i32, ptr @test_count, align 4, !tbaa !5
  %8038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8039 = load i32, ptr %8038, align 4, !tbaa !5
  %8040 = call ptr @s2n_strerror(i32 noundef %8039, ptr noundef @.str.4)
  %8041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8042 = load i32, ptr %8041, align 4, !tbaa !5
  %8043 = call ptr @s2n_strerror_debug(i32 noundef %8042, ptr noundef @.str.4)
  %8044 = call ptr @__errno_location() #12
  %8045 = load i32, ptr %8044, align 4, !tbaa !5
  %8046 = call ptr @strerror(i32 noundef %8045) #11
  %8047 = call ptr @__errno_location() #12
  %8048 = load i32, ptr %8047, align 4, !tbaa !5
  %8049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8036, ptr noundef @.str.2, i32 noundef %8037, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 300, ptr noundef %8040, ptr noundef %8043, ptr noundef %8046, i32 noundef %8048) #11
  br label %8067

8050:                                             ; preds = %8028, %8021
  %8051 = load i32, ptr %159, align 4, !tbaa !5
  %8052 = call ptr @__errno_location() #12
  store i32 %8051, ptr %8052, align 4, !tbaa !5
  %8053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8054 = load i32, ptr @test_count, align 4, !tbaa !5
  %8055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8056 = load i32, ptr %8055, align 4, !tbaa !5
  %8057 = call ptr @s2n_strerror(i32 noundef %8056, ptr noundef @.str.4)
  %8058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8059 = load i32, ptr %8058, align 4, !tbaa !5
  %8060 = call ptr @s2n_strerror_debug(i32 noundef %8059, ptr noundef @.str.4)
  %8061 = call ptr @__errno_location() #12
  %8062 = load i32, ptr %8061, align 4, !tbaa !5
  %8063 = call ptr @strerror(i32 noundef %8062) #11
  %8064 = call ptr @__errno_location() #12
  %8065 = load i32, ptr %8064, align 4, !tbaa !5
  %8066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8053, ptr noundef @.str.5, i32 noundef %8054, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 300, ptr noundef %8057, ptr noundef %8060, ptr noundef %8063, i32 noundef %8065) #11
  br label %8067

8067:                                             ; preds = %8050, %8033
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #11
  br label %8068

8068:                                             ; preds = %8067
  br label %8069

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

8070:                                             ; No predecessors!
  br label %8071

8071:                                             ; preds = %8070
  br label %8072

8072:                                             ; preds = %8071, %8010
  br label %8073

8073:                                             ; preds = %8072
  br label %8074

8074:                                             ; preds = %8073
  br label %8075

8075:                                             ; preds = %8074
  %8076 = load i32, ptr @test_count, align 4, !tbaa !5
  %8077 = add nsw i32 %8076, 1
  store i32 %8077, ptr @test_count, align 4, !tbaa !5
  %8078 = getelementptr inbounds %struct.s2n_stuffer, ptr %146, i32 0, i32 2
  %8079 = load i32, ptr %8078, align 4, !tbaa !55
  %8080 = getelementptr inbounds %struct.s2n_stuffer, ptr %146, i32 0, i32 1
  %8081 = load i32, ptr %8080, align 8, !tbaa !56
  %8082 = sub i32 %8079, %8081
  %8083 = icmp eq i32 %8082, 0
  br i1 %8083, label %8084, label %8137

8084:                                             ; preds = %8075
  br label %8085

8085:                                             ; preds = %8084
  br label %8086

8086:                                             ; preds = %8085
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #11
  %8087 = call ptr @__errno_location() #12
  %8088 = load i32, ptr %8087, align 4, !tbaa !5
  store i32 %8088, ptr %160, align 4, !tbaa !5
  %8089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8090 = call i32 @s2n_print_stacktrace(ptr noundef %8089)
  %8091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8092 = trunc i8 %8091 to i1
  br i1 %8092, label %8093, label %8115

8093:                                             ; preds = %8086
  %8094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8095 = call i32 @fileno(ptr noundef %8094) #11
  %8096 = call i32 @isatty(i32 noundef %8095) #11
  %8097 = icmp ne i32 %8096, 0
  br i1 %8097, label %8098, label %8115

8098:                                             ; preds = %8093
  %8099 = load i32, ptr %160, align 4, !tbaa !5
  %8100 = call ptr @__errno_location() #12
  store i32 %8099, ptr %8100, align 4, !tbaa !5
  %8101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8102 = load i32, ptr @test_count, align 4, !tbaa !5
  %8103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8104 = load i32, ptr %8103, align 4, !tbaa !5
  %8105 = call ptr @s2n_strerror(i32 noundef %8104, ptr noundef @.str.4)
  %8106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8107 = load i32, ptr %8106, align 4, !tbaa !5
  %8108 = call ptr @s2n_strerror_debug(i32 noundef %8107, ptr noundef @.str.4)
  %8109 = call ptr @__errno_location() #12
  %8110 = load i32, ptr %8109, align 4, !tbaa !5
  %8111 = call ptr @strerror(i32 noundef %8110) #11
  %8112 = call ptr @__errno_location() #12
  %8113 = load i32, ptr %8112, align 4, !tbaa !5
  %8114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8101, ptr noundef @.str.2, i32 noundef %8102, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 301, ptr noundef %8105, ptr noundef %8108, ptr noundef %8111, i32 noundef %8113) #11
  br label %8132

8115:                                             ; preds = %8093, %8086
  %8116 = load i32, ptr %160, align 4, !tbaa !5
  %8117 = call ptr @__errno_location() #12
  store i32 %8116, ptr %8117, align 4, !tbaa !5
  %8118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8119 = load i32, ptr @test_count, align 4, !tbaa !5
  %8120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8121 = load i32, ptr %8120, align 4, !tbaa !5
  %8122 = call ptr @s2n_strerror(i32 noundef %8121, ptr noundef @.str.4)
  %8123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8124 = load i32, ptr %8123, align 4, !tbaa !5
  %8125 = call ptr @s2n_strerror_debug(i32 noundef %8124, ptr noundef @.str.4)
  %8126 = call ptr @__errno_location() #12
  %8127 = load i32, ptr %8126, align 4, !tbaa !5
  %8128 = call ptr @strerror(i32 noundef %8127) #11
  %8129 = call ptr @__errno_location() #12
  %8130 = load i32, ptr %8129, align 4, !tbaa !5
  %8131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8118, ptr noundef @.str.5, i32 noundef %8119, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 301, ptr noundef %8122, ptr noundef %8125, ptr noundef %8128, i32 noundef %8130) #11
  br label %8132

8132:                                             ; preds = %8115, %8098
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %8133

8133:                                             ; preds = %8132
  br label %8134

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

8135:                                             ; No predecessors!
  br label %8136

8136:                                             ; preds = %8135
  br label %8137

8137:                                             ; preds = %8136, %8075
  br label %8138

8138:                                             ; preds = %8137
  br label %8139

8139:                                             ; preds = %8138
  %8140 = load ptr, ptr %147, align 8, !tbaa !9
  %8141 = getelementptr inbounds %struct.s2n_connection, ptr %8140, i32 0, i32 23
  store i8 34, ptr %8141, align 4, !tbaa !59
  br label %8142

8142:                                             ; preds = %8139
  %8143 = load i32, ptr @test_count, align 4, !tbaa !5
  %8144 = add nsw i32 %8143, 1
  store i32 %8144, ptr @test_count, align 4, !tbaa !5
  %8145 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %8146 = load ptr, ptr %147, align 8, !tbaa !9
  %8147 = call i32 %8145(ptr noundef %8146, ptr noundef %146)
  %8148 = icmp eq i32 %8147, -1
  br i1 %8148, label %8149, label %8202

8149:                                             ; preds = %8142
  br label %8150

8150:                                             ; preds = %8149
  br label %8151

8151:                                             ; preds = %8150
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #11
  %8152 = call ptr @__errno_location() #12
  %8153 = load i32, ptr %8152, align 4, !tbaa !5
  store i32 %8153, ptr %161, align 4, !tbaa !5
  %8154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8155 = call i32 @s2n_print_stacktrace(ptr noundef %8154)
  %8156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8157 = trunc i8 %8156 to i1
  br i1 %8157, label %8158, label %8180

8158:                                             ; preds = %8151
  %8159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8160 = call i32 @fileno(ptr noundef %8159) #11
  %8161 = call i32 @isatty(i32 noundef %8160) #11
  %8162 = icmp ne i32 %8161, 0
  br i1 %8162, label %8163, label %8180

8163:                                             ; preds = %8158
  %8164 = load i32, ptr %161, align 4, !tbaa !5
  %8165 = call ptr @__errno_location() #12
  store i32 %8164, ptr %8165, align 4, !tbaa !5
  %8166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8167 = load i32, ptr @test_count, align 4, !tbaa !5
  %8168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8169 = load i32, ptr %8168, align 4, !tbaa !5
  %8170 = call ptr @s2n_strerror(i32 noundef %8169, ptr noundef @.str.4)
  %8171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8172 = load i32, ptr %8171, align 4, !tbaa !5
  %8173 = call ptr @s2n_strerror_debug(i32 noundef %8172, ptr noundef @.str.4)
  %8174 = call ptr @__errno_location() #12
  %8175 = load i32, ptr %8174, align 4, !tbaa !5
  %8176 = call ptr @strerror(i32 noundef %8175) #11
  %8177 = call ptr @__errno_location() #12
  %8178 = load i32, ptr %8177, align 4, !tbaa !5
  %8179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8166, ptr noundef @.str.2, i32 noundef %8167, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 304, ptr noundef %8170, ptr noundef %8173, ptr noundef %8176, i32 noundef %8178) #11
  br label %8197

8180:                                             ; preds = %8158, %8151
  %8181 = load i32, ptr %161, align 4, !tbaa !5
  %8182 = call ptr @__errno_location() #12
  store i32 %8181, ptr %8182, align 4, !tbaa !5
  %8183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8184 = load i32, ptr @test_count, align 4, !tbaa !5
  %8185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8186 = load i32, ptr %8185, align 4, !tbaa !5
  %8187 = call ptr @s2n_strerror(i32 noundef %8186, ptr noundef @.str.4)
  %8188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8189 = load i32, ptr %8188, align 4, !tbaa !5
  %8190 = call ptr @s2n_strerror_debug(i32 noundef %8189, ptr noundef @.str.4)
  %8191 = call ptr @__errno_location() #12
  %8192 = load i32, ptr %8191, align 4, !tbaa !5
  %8193 = call ptr @strerror(i32 noundef %8192) #11
  %8194 = call ptr @__errno_location() #12
  %8195 = load i32, ptr %8194, align 4, !tbaa !5
  %8196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8183, ptr noundef @.str.5, i32 noundef %8184, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 304, ptr noundef %8187, ptr noundef %8190, ptr noundef %8193, i32 noundef %8195) #11
  br label %8197

8197:                                             ; preds = %8180, %8163
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  br label %8198

8198:                                             ; preds = %8197
  br label %8199

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

8200:                                             ; No predecessors!
  br label %8201

8201:                                             ; preds = %8200
  br label %8202

8202:                                             ; preds = %8201, %8142
  br label %8203

8203:                                             ; preds = %8202
  br label %8204

8204:                                             ; preds = %8203
  br label %8205

8205:                                             ; preds = %8204
  %8206 = load i32, ptr @test_count, align 4, !tbaa !5
  %8207 = add nsw i32 %8206, 1
  store i32 %8207, ptr @test_count, align 4, !tbaa !5
  %8208 = load ptr, ptr %147, align 8, !tbaa !9
  %8209 = getelementptr inbounds %struct.s2n_connection, ptr %8208, i32 0, i32 31
  %8210 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %8209, i32 0, i32 1
  %8211 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %8210, i32 0, i32 0
  %8212 = load ptr, ptr %8211, align 8, !tbaa !42
  %8213 = load ptr, ptr %150, align 8, !tbaa !9
  %8214 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %8213, i32 0, i32 1
  %8215 = load ptr, ptr %8214, align 8, !tbaa !43
  %8216 = getelementptr inbounds ptr, ptr %8215, i64 0
  %8217 = load ptr, ptr %8216, align 8, !tbaa !9
  %8218 = icmp eq ptr %8212, %8217
  br i1 %8218, label %8272, label %8219

8219:                                             ; preds = %8205
  br label %8220

8220:                                             ; preds = %8219
  br label %8221

8221:                                             ; preds = %8220
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %8222 = call ptr @__errno_location() #12
  %8223 = load i32, ptr %8222, align 4, !tbaa !5
  store i32 %8223, ptr %162, 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) #11
  %8231 = call i32 @isatty(i32 noundef %8230) #11
  %8232 = icmp ne i32 %8231, 0
  br i1 %8232, label %8233, label %8250

8233:                                             ; preds = %8228
  %8234 = load i32, ptr %162, align 4, !tbaa !5
  %8235 = call ptr @__errno_location() #12
  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() #12
  %8245 = load i32, ptr %8244, align 4, !tbaa !5
  %8246 = call ptr @strerror(i32 noundef %8245) #11
  %8247 = call ptr @__errno_location() #12
  %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.74, ptr noundef @.str.1, i32 noundef 305, ptr noundef %8240, ptr noundef %8243, ptr noundef %8246, i32 noundef %8248) #11
  br label %8267

8250:                                             ; preds = %8228, %8221
  %8251 = load i32, ptr %162, align 4, !tbaa !5
  %8252 = call ptr @__errno_location() #12
  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() #12
  %8262 = load i32, ptr %8261, align 4, !tbaa !5
  %8263 = call ptr @strerror(i32 noundef %8262) #11
  %8264 = call ptr @__errno_location() #12
  %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.74, ptr noundef @.str.1, i32 noundef 305, ptr noundef %8257, ptr noundef %8260, ptr noundef %8263, i32 noundef %8265) #11
  br label %8267

8267:                                             ; preds = %8250, %8233
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %8268

8268:                                             ; preds = %8267
  br label %8269

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

8270:                                             ; No predecessors!
  br label %8271

8271:                                             ; preds = %8270
  br label %8272

8272:                                             ; preds = %8271, %8205
  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 = getelementptr inbounds %struct.s2n_stuffer, ptr %146, i32 0, i32 2
  %8279 = load i32, ptr %8278, align 4, !tbaa !55
  %8280 = getelementptr inbounds %struct.s2n_stuffer, ptr %146, i32 0, i32 1
  %8281 = load i32, ptr %8280, align 8, !tbaa !56
  %8282 = sub i32 %8279, %8281
  %8283 = icmp eq i32 %8282, 0
  br i1 %8283, label %8337, label %8284

8284:                                             ; preds = %8275
  br label %8285

8285:                                             ; preds = %8284
  br label %8286

8286:                                             ; preds = %8285
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %8287 = call ptr @__errno_location() #12
  %8288 = load i32, ptr %8287, align 4, !tbaa !5
  store i32 %8288, ptr %163, align 4, !tbaa !5
  %8289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8290 = call i32 @s2n_print_stacktrace(ptr noundef %8289)
  %8291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8292 = trunc i8 %8291 to i1
  br i1 %8292, label %8293, label %8315

8293:                                             ; preds = %8286
  %8294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8295 = call i32 @fileno(ptr noundef %8294) #11
  %8296 = call i32 @isatty(i32 noundef %8295) #11
  %8297 = icmp ne i32 %8296, 0
  br i1 %8297, label %8298, label %8315

8298:                                             ; preds = %8293
  %8299 = load i32, ptr %163, align 4, !tbaa !5
  %8300 = call ptr @__errno_location() #12
  store i32 %8299, ptr %8300, align 4, !tbaa !5
  %8301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8302 = load i32, ptr @test_count, align 4, !tbaa !5
  %8303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8304 = load i32, ptr %8303, align 4, !tbaa !5
  %8305 = call ptr @s2n_strerror(i32 noundef %8304, ptr noundef @.str.4)
  %8306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8307 = load i32, ptr %8306, align 4, !tbaa !5
  %8308 = call ptr @s2n_strerror_debug(i32 noundef %8307, ptr noundef @.str.4)
  %8309 = call ptr @__errno_location() #12
  %8310 = load i32, ptr %8309, align 4, !tbaa !5
  %8311 = call ptr @strerror(i32 noundef %8310) #11
  %8312 = call ptr @__errno_location() #12
  %8313 = load i32, ptr %8312, align 4, !tbaa !5
  %8314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8301, ptr noundef @.str.2, i32 noundef %8302, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 306, ptr noundef %8305, ptr noundef %8308, ptr noundef %8311, i32 noundef %8313) #11
  br label %8332

8315:                                             ; preds = %8293, %8286
  %8316 = load i32, ptr %163, align 4, !tbaa !5
  %8317 = call ptr @__errno_location() #12
  store i32 %8316, ptr %8317, align 4, !tbaa !5
  %8318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8319 = load i32, ptr @test_count, align 4, !tbaa !5
  %8320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8321 = load i32, ptr %8320, align 4, !tbaa !5
  %8322 = call ptr @s2n_strerror(i32 noundef %8321, ptr noundef @.str.4)
  %8323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8324 = load i32, ptr %8323, align 4, !tbaa !5
  %8325 = call ptr @s2n_strerror_debug(i32 noundef %8324, ptr noundef @.str.4)
  %8326 = call ptr @__errno_location() #12
  %8327 = load i32, ptr %8326, align 4, !tbaa !5
  %8328 = call ptr @strerror(i32 noundef %8327) #11
  %8329 = call ptr @__errno_location() #12
  %8330 = load i32, ptr %8329, align 4, !tbaa !5
  %8331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8318, ptr noundef @.str.5, i32 noundef %8319, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 306, ptr noundef %8322, ptr noundef %8325, ptr noundef %8328, i32 noundef %8330) #11
  br label %8332

8332:                                             ; preds = %8315, %8298
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %8333

8333:                                             ; preds = %8332
  br label %8334

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

8335:                                             ; No predecessors!
  br label %8336

8336:                                             ; preds = %8335
  br label %8337

8337:                                             ; preds = %8336, %8275
  br label %8338

8338:                                             ; preds = %8337
  br label %8339

8339:                                             ; preds = %8338
  br label %8340

8340:                                             ; preds = %8339
  %8341 = load i32, ptr @test_count, align 4, !tbaa !5
  %8342 = add nsw i32 %8341, 1
  store i32 %8342, ptr @test_count, align 4, !tbaa !5
  %8343 = call i32 @s2n_stuffer_free(ptr noundef %146)
  %8344 = icmp eq i32 %8343, -1
  br i1 %8344, label %8345, label %8398

8345:                                             ; preds = %8340
  br label %8346

8346:                                             ; preds = %8345
  br label %8347

8347:                                             ; preds = %8346
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %8348 = call ptr @__errno_location() #12
  %8349 = load i32, ptr %8348, align 4, !tbaa !5
  store i32 %8349, ptr %164, align 4, !tbaa !5
  %8350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8351 = call i32 @s2n_print_stacktrace(ptr noundef %8350)
  %8352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8353 = trunc i8 %8352 to i1
  br i1 %8353, label %8354, label %8376

8354:                                             ; preds = %8347
  %8355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8356 = call i32 @fileno(ptr noundef %8355) #11
  %8357 = call i32 @isatty(i32 noundef %8356) #11
  %8358 = icmp ne i32 %8357, 0
  br i1 %8358, label %8359, label %8376

8359:                                             ; preds = %8354
  %8360 = load i32, ptr %164, align 4, !tbaa !5
  %8361 = call ptr @__errno_location() #12
  store i32 %8360, ptr %8361, align 4, !tbaa !5
  %8362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8363 = load i32, ptr @test_count, align 4, !tbaa !5
  %8364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8365 = load i32, ptr %8364, align 4, !tbaa !5
  %8366 = call ptr @s2n_strerror(i32 noundef %8365, ptr noundef @.str.4)
  %8367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8368 = load i32, ptr %8367, align 4, !tbaa !5
  %8369 = call ptr @s2n_strerror_debug(i32 noundef %8368, ptr noundef @.str.4)
  %8370 = call ptr @__errno_location() #12
  %8371 = load i32, ptr %8370, align 4, !tbaa !5
  %8372 = call ptr @strerror(i32 noundef %8371) #11
  %8373 = call ptr @__errno_location() #12
  %8374 = load i32, ptr %8373, align 4, !tbaa !5
  %8375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8362, ptr noundef @.str.2, i32 noundef %8363, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 308, ptr noundef %8366, ptr noundef %8369, ptr noundef %8372, i32 noundef %8374) #11
  br label %8393

8376:                                             ; preds = %8354, %8347
  %8377 = load i32, ptr %164, align 4, !tbaa !5
  %8378 = call ptr @__errno_location() #12
  store i32 %8377, ptr %8378, align 4, !tbaa !5
  %8379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8380 = load i32, ptr @test_count, align 4, !tbaa !5
  %8381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8382 = load i32, ptr %8381, align 4, !tbaa !5
  %8383 = call ptr @s2n_strerror(i32 noundef %8382, ptr noundef @.str.4)
  %8384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8385 = load i32, ptr %8384, align 4, !tbaa !5
  %8386 = call ptr @s2n_strerror_debug(i32 noundef %8385, ptr noundef @.str.4)
  %8387 = call ptr @__errno_location() #12
  %8388 = load i32, ptr %8387, align 4, !tbaa !5
  %8389 = call ptr @strerror(i32 noundef %8388) #11
  %8390 = call ptr @__errno_location() #12
  %8391 = load i32, ptr %8390, align 4, !tbaa !5
  %8392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8379, ptr noundef @.str.5, i32 noundef %8380, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 308, ptr noundef %8383, ptr noundef %8386, ptr noundef %8389, i32 noundef %8391) #11
  br label %8393

8393:                                             ; preds = %8376, %8359
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %8394

8394:                                             ; preds = %8393
  br label %8395

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

8396:                                             ; No predecessors!
  br label %8397

8397:                                             ; preds = %8396
  br label %8398

8398:                                             ; preds = %8397, %8340
  br label %8399

8399:                                             ; preds = %8398
  br label %8400

8400:                                             ; preds = %8399
  br label %8401

8401:                                             ; preds = %8400
  %8402 = load i32, ptr @test_count, align 4, !tbaa !5
  %8403 = add nsw i32 %8402, 1
  store i32 %8403, ptr @test_count, align 4, !tbaa !5
  %8404 = load ptr, ptr %147, align 8, !tbaa !9
  %8405 = call i32 @s2n_connection_free(ptr noundef %8404)
  %8406 = icmp eq i32 %8405, -1
  br i1 %8406, label %8407, label %8460

8407:                                             ; preds = %8401
  br label %8408

8408:                                             ; preds = %8407
  br label %8409

8409:                                             ; preds = %8408
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %8410 = call ptr @__errno_location() #12
  %8411 = load i32, ptr %8410, align 4, !tbaa !5
  store i32 %8411, ptr %165, align 4, !tbaa !5
  %8412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8413 = call i32 @s2n_print_stacktrace(ptr noundef %8412)
  %8414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8415 = trunc i8 %8414 to i1
  br i1 %8415, label %8416, label %8438

8416:                                             ; preds = %8409
  %8417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8418 = call i32 @fileno(ptr noundef %8417) #11
  %8419 = call i32 @isatty(i32 noundef %8418) #11
  %8420 = icmp ne i32 %8419, 0
  br i1 %8420, label %8421, label %8438

8421:                                             ; preds = %8416
  %8422 = load i32, ptr %165, align 4, !tbaa !5
  %8423 = call ptr @__errno_location() #12
  store i32 %8422, ptr %8423, align 4, !tbaa !5
  %8424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8425 = load i32, ptr @test_count, align 4, !tbaa !5
  %8426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8427 = load i32, ptr %8426, align 4, !tbaa !5
  %8428 = call ptr @s2n_strerror(i32 noundef %8427, ptr noundef @.str.4)
  %8429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8430 = load i32, ptr %8429, align 4, !tbaa !5
  %8431 = call ptr @s2n_strerror_debug(i32 noundef %8430, ptr noundef @.str.4)
  %8432 = call ptr @__errno_location() #12
  %8433 = load i32, ptr %8432, align 4, !tbaa !5
  %8434 = call ptr @strerror(i32 noundef %8433) #11
  %8435 = call ptr @__errno_location() #12
  %8436 = load i32, ptr %8435, align 4, !tbaa !5
  %8437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8424, ptr noundef @.str.2, i32 noundef %8425, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 309, ptr noundef %8428, ptr noundef %8431, ptr noundef %8434, i32 noundef %8436) #11
  br label %8455

8438:                                             ; preds = %8416, %8409
  %8439 = load i32, ptr %165, align 4, !tbaa !5
  %8440 = call ptr @__errno_location() #12
  store i32 %8439, ptr %8440, align 4, !tbaa !5
  %8441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8442 = load i32, ptr @test_count, align 4, !tbaa !5
  %8443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8444 = load i32, ptr %8443, align 4, !tbaa !5
  %8445 = call ptr @s2n_strerror(i32 noundef %8444, ptr noundef @.str.4)
  %8446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8447 = load i32, ptr %8446, align 4, !tbaa !5
  %8448 = call ptr @s2n_strerror_debug(i32 noundef %8447, ptr noundef @.str.4)
  %8449 = call ptr @__errno_location() #12
  %8450 = load i32, ptr %8449, align 4, !tbaa !5
  %8451 = call ptr @strerror(i32 noundef %8450) #11
  %8452 = call ptr @__errno_location() #12
  %8453 = load i32, ptr %8452, align 4, !tbaa !5
  %8454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8441, ptr noundef @.str.5, i32 noundef %8442, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 309, ptr noundef %8445, ptr noundef %8448, ptr noundef %8451, i32 noundef %8453) #11
  br label %8455

8455:                                             ; preds = %8438, %8421
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %8456

8456:                                             ; preds = %8455
  br label %8457

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

8458:                                             ; No predecessors!
  br label %8459

8459:                                             ; preds = %8458
  br label %8460

8460:                                             ; preds = %8459, %8401
  br label %8461

8461:                                             ; preds = %8460
  br label %8462

8462:                                             ; preds = %8461
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %146) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %127) #11
  br label %8463

8463:                                             ; preds = %8462, %6703
  call void @llvm.lifetime.start.p0(i64 40, ptr %166) #11
  call void @llvm.memset.p0.i64(ptr align 8 %166, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #11
  store ptr null, ptr %167, align 8, !tbaa !9
  br label %8464

8464:                                             ; preds = %8463
  %8465 = load i32, ptr @test_count, align 4, !tbaa !5
  %8466 = add nsw i32 %8465, 1
  store i32 %8466, ptr @test_count, align 4, !tbaa !5
  %8467 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8467, ptr %167, align 8, !tbaa !9
  %8468 = icmp eq ptr %8467, null
  br i1 %8468, label %8469, label %8522

8469:                                             ; preds = %8464
  br label %8470

8470:                                             ; preds = %8469
  br label %8471

8471:                                             ; preds = %8470
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #11
  %8472 = call ptr @__errno_location() #12
  %8473 = load i32, ptr %8472, align 4, !tbaa !5
  store i32 %8473, ptr %168, align 4, !tbaa !5
  %8474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8475 = call i32 @s2n_print_stacktrace(ptr noundef %8474)
  %8476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8477 = trunc i8 %8476 to i1
  br i1 %8477, label %8478, label %8500

8478:                                             ; preds = %8471
  %8479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8480 = call i32 @fileno(ptr noundef %8479) #11
  %8481 = call i32 @isatty(i32 noundef %8480) #11
  %8482 = icmp ne i32 %8481, 0
  br i1 %8482, label %8483, label %8500

8483:                                             ; preds = %8478
  %8484 = load i32, ptr %168, align 4, !tbaa !5
  %8485 = call ptr @__errno_location() #12
  store i32 %8484, ptr %8485, align 4, !tbaa !5
  %8486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8487 = load i32, ptr @test_count, align 4, !tbaa !5
  %8488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8489 = load i32, ptr %8488, align 4, !tbaa !5
  %8490 = call ptr @s2n_strerror(i32 noundef %8489, ptr noundef @.str.4)
  %8491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8492 = load i32, ptr %8491, align 4, !tbaa !5
  %8493 = call ptr @s2n_strerror_debug(i32 noundef %8492, ptr noundef @.str.4)
  %8494 = call ptr @__errno_location() #12
  %8495 = load i32, ptr %8494, align 4, !tbaa !5
  %8496 = call ptr @strerror(i32 noundef %8495) #11
  %8497 = call ptr @__errno_location() #12
  %8498 = load i32, ptr %8497, align 4, !tbaa !5
  %8499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8486, ptr noundef @.str.2, i32 noundef %8487, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 318, ptr noundef %8490, ptr noundef %8493, ptr noundef %8496, i32 noundef %8498) #11
  br label %8517

8500:                                             ; preds = %8478, %8471
  %8501 = load i32, ptr %168, align 4, !tbaa !5
  %8502 = call ptr @__errno_location() #12
  store i32 %8501, ptr %8502, align 4, !tbaa !5
  %8503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8504 = load i32, ptr @test_count, align 4, !tbaa !5
  %8505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8506 = load i32, ptr %8505, align 4, !tbaa !5
  %8507 = call ptr @s2n_strerror(i32 noundef %8506, ptr noundef @.str.4)
  %8508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8509 = load i32, ptr %8508, align 4, !tbaa !5
  %8510 = call ptr @s2n_strerror_debug(i32 noundef %8509, ptr noundef @.str.4)
  %8511 = call ptr @__errno_location() #12
  %8512 = load i32, ptr %8511, align 4, !tbaa !5
  %8513 = call ptr @strerror(i32 noundef %8512) #11
  %8514 = call ptr @__errno_location() #12
  %8515 = load i32, ptr %8514, align 4, !tbaa !5
  %8516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8503, ptr noundef @.str.5, i32 noundef %8504, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 318, ptr noundef %8507, ptr noundef %8510, ptr noundef %8513, i32 noundef %8515) #11
  br label %8517

8517:                                             ; preds = %8500, %8483
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %8518

8518:                                             ; preds = %8517
  br label %8519

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

8520:                                             ; No predecessors!
  br label %8521

8521:                                             ; preds = %8520
  br label %8522

8522:                                             ; preds = %8521, %8464
  br label %8523

8523:                                             ; preds = %8522
  br label %8524

8524:                                             ; preds = %8523
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #11
  store ptr @.str.75, ptr %169, align 8, !tbaa !9
  br label %8525

8525:                                             ; preds = %8524
  %8526 = load i32, ptr @test_count, align 4, !tbaa !5
  %8527 = add nsw i32 %8526, 1
  store i32 %8527, ptr @test_count, align 4, !tbaa !5
  %8528 = load ptr, ptr %167, align 8, !tbaa !9
  %8529 = getelementptr inbounds %struct.s2n_connection, ptr %8528, i32 0, i32 31
  %8530 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %8529, i32 0, i32 1
  %8531 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %8530, i32 0, i32 0
  %8532 = load ptr, ptr %8531, align 8, !tbaa !42
  %8533 = icmp eq ptr %8532, null
  br i1 %8533, label %8587, label %8534

8534:                                             ; preds = %8525
  br label %8535

8535:                                             ; preds = %8534
  br label %8536

8536:                                             ; preds = %8535
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %8537 = call ptr @__errno_location() #12
  %8538 = load i32, ptr %8537, align 4, !tbaa !5
  store i32 %8538, ptr %170, align 4, !tbaa !5
  %8539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8540 = call i32 @s2n_print_stacktrace(ptr noundef %8539)
  %8541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8542 = trunc i8 %8541 to i1
  br i1 %8542, label %8543, label %8565

8543:                                             ; preds = %8536
  %8544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8545 = call i32 @fileno(ptr noundef %8544) #11
  %8546 = call i32 @isatty(i32 noundef %8545) #11
  %8547 = icmp ne i32 %8546, 0
  br i1 %8547, label %8548, label %8565

8548:                                             ; preds = %8543
  %8549 = load i32, ptr %170, align 4, !tbaa !5
  %8550 = call ptr @__errno_location() #12
  store i32 %8549, ptr %8550, align 4, !tbaa !5
  %8551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8552 = load i32, ptr @test_count, align 4, !tbaa !5
  %8553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8554 = load i32, ptr %8553, align 4, !tbaa !5
  %8555 = call ptr @s2n_strerror(i32 noundef %8554, ptr noundef @.str.4)
  %8556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8557 = load i32, ptr %8556, align 4, !tbaa !5
  %8558 = call ptr @s2n_strerror_debug(i32 noundef %8557, ptr noundef @.str.4)
  %8559 = call ptr @__errno_location() #12
  %8560 = load i32, ptr %8559, align 4, !tbaa !5
  %8561 = call ptr @strerror(i32 noundef %8560) #11
  %8562 = call ptr @__errno_location() #12
  %8563 = load i32, ptr %8562, align 4, !tbaa !5
  %8564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8551, ptr noundef @.str.2, i32 noundef %8552, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 321, ptr noundef %8555, ptr noundef %8558, ptr noundef %8561, i32 noundef %8563) #11
  br label %8582

8565:                                             ; preds = %8543, %8536
  %8566 = load i32, ptr %170, align 4, !tbaa !5
  %8567 = call ptr @__errno_location() #12
  store i32 %8566, ptr %8567, align 4, !tbaa !5
  %8568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8569 = load i32, ptr @test_count, align 4, !tbaa !5
  %8570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8571 = load i32, ptr %8570, align 4, !tbaa !5
  %8572 = call ptr @s2n_strerror(i32 noundef %8571, ptr noundef @.str.4)
  %8573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8574 = load i32, ptr %8573, align 4, !tbaa !5
  %8575 = call ptr @s2n_strerror_debug(i32 noundef %8574, ptr noundef @.str.4)
  %8576 = call ptr @__errno_location() #12
  %8577 = load i32, ptr %8576, align 4, !tbaa !5
  %8578 = call ptr @strerror(i32 noundef %8577) #11
  %8579 = call ptr @__errno_location() #12
  %8580 = load i32, ptr %8579, align 4, !tbaa !5
  %8581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8568, ptr noundef @.str.5, i32 noundef %8569, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 321, ptr noundef %8572, ptr noundef %8575, ptr noundef %8578, i32 noundef %8580) #11
  br label %8582

8582:                                             ; preds = %8565, %8548
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %8583

8583:                                             ; preds = %8582
  br label %8584

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

8585:                                             ; No predecessors!
  br label %8586

8586:                                             ; preds = %8585
  br label %8587

8587:                                             ; preds = %8586, %8525
  br label %8588

8588:                                             ; preds = %8587
  br label %8589

8589:                                             ; preds = %8588
  br label %8590

8590:                                             ; preds = %8589
  %8591 = load i32, ptr @test_count, align 4, !tbaa !5
  %8592 = add nsw i32 %8591, 1
  store i32 %8592, ptr @test_count, align 4, !tbaa !5
  %8593 = load ptr, ptr %169, align 8, !tbaa !9
  %8594 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef %166, ptr noundef %8593)
  %8595 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  store i32 %8594, ptr %8595, align 4
  %8596 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  %8597 = load i32, ptr %8596, align 4
  %8598 = call zeroext i1 @s2n_result_is_ok(i32 %8597)
  br i1 %8598, label %8652, label %8599

8599:                                             ; preds = %8590
  br label %8600

8600:                                             ; preds = %8599
  br label %8601

8601:                                             ; preds = %8600
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %8602 = call ptr @__errno_location() #12
  %8603 = load i32, ptr %8602, align 4, !tbaa !5
  store i32 %8603, ptr %172, align 4, !tbaa !5
  %8604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8605 = call i32 @s2n_print_stacktrace(ptr noundef %8604)
  %8606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8607 = trunc i8 %8606 to i1
  br i1 %8607, label %8608, label %8630

8608:                                             ; preds = %8601
  %8609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8610 = call i32 @fileno(ptr noundef %8609) #11
  %8611 = call i32 @isatty(i32 noundef %8610) #11
  %8612 = icmp ne i32 %8611, 0
  br i1 %8612, label %8613, label %8630

8613:                                             ; preds = %8608
  %8614 = load i32, ptr %172, align 4, !tbaa !5
  %8615 = call ptr @__errno_location() #12
  store i32 %8614, ptr %8615, align 4, !tbaa !5
  %8616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8617 = load i32, ptr @test_count, align 4, !tbaa !5
  %8618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8619 = load i32, ptr %8618, align 4, !tbaa !5
  %8620 = call ptr @s2n_strerror(i32 noundef %8619, ptr noundef @.str.4)
  %8621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8622 = load i32, ptr %8621, align 4, !tbaa !5
  %8623 = call ptr @s2n_strerror_debug(i32 noundef %8622, ptr noundef @.str.4)
  %8624 = call ptr @__errno_location() #12
  %8625 = load i32, ptr %8624, align 4, !tbaa !5
  %8626 = call ptr @strerror(i32 noundef %8625) #11
  %8627 = call ptr @__errno_location() #12
  %8628 = load i32, ptr %8627, align 4, !tbaa !5
  %8629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8616, ptr noundef @.str.2, i32 noundef %8617, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 322, ptr noundef %8620, ptr noundef %8623, ptr noundef %8626, i32 noundef %8628) #11
  br label %8647

8630:                                             ; preds = %8608, %8601
  %8631 = load i32, ptr %172, align 4, !tbaa !5
  %8632 = call ptr @__errno_location() #12
  store i32 %8631, ptr %8632, align 4, !tbaa !5
  %8633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8634 = load i32, ptr @test_count, align 4, !tbaa !5
  %8635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8636 = load i32, ptr %8635, align 4, !tbaa !5
  %8637 = call ptr @s2n_strerror(i32 noundef %8636, ptr noundef @.str.4)
  %8638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8639 = load i32, ptr %8638, align 4, !tbaa !5
  %8640 = call ptr @s2n_strerror_debug(i32 noundef %8639, ptr noundef @.str.4)
  %8641 = call ptr @__errno_location() #12
  %8642 = load i32, ptr %8641, align 4, !tbaa !5
  %8643 = call ptr @strerror(i32 noundef %8642) #11
  %8644 = call ptr @__errno_location() #12
  %8645 = load i32, ptr %8644, align 4, !tbaa !5
  %8646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8633, ptr noundef @.str.5, i32 noundef %8634, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 322, ptr noundef %8637, ptr noundef %8640, ptr noundef %8643, i32 noundef %8645) #11
  br label %8647

8647:                                             ; preds = %8630, %8613
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %8648

8648:                                             ; preds = %8647
  br label %8649

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

8650:                                             ; No predecessors!
  br label %8651

8651:                                             ; preds = %8650
  br label %8652

8652:                                             ; preds = %8651, %8590
  br label %8653

8653:                                             ; preds = %8652
  br label %8654

8654:                                             ; preds = %8653
  br label %8655

8655:                                             ; preds = %8654
  br label %8656

8656:                                             ; preds = %8655
  br label %8657

8657:                                             ; preds = %8656
  %8658 = load i32, ptr @test_count, align 4, !tbaa !5
  %8659 = add nsw i32 %8658, 1
  store i32 %8659, ptr @test_count, align 4, !tbaa !5
  %8660 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %8661 = load ptr, ptr %167, align 8, !tbaa !9
  %8662 = call i32 %8660(ptr noundef %8661, ptr noundef %166)
  %8663 = icmp eq i32 %8662, -1
  br i1 %8663, label %8717, label %8664

8664:                                             ; preds = %8657
  br label %8665

8665:                                             ; preds = %8664
  br label %8666

8666:                                             ; preds = %8665
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %8667 = call ptr @__errno_location() #12
  %8668 = load i32, ptr %8667, align 4, !tbaa !5
  store i32 %8668, ptr %173, align 4, !tbaa !5
  %8669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8670 = call i32 @s2n_print_stacktrace(ptr noundef %8669)
  %8671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8672 = trunc i8 %8671 to i1
  br i1 %8672, label %8673, label %8695

8673:                                             ; preds = %8666
  %8674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8675 = call i32 @fileno(ptr noundef %8674) #11
  %8676 = call i32 @isatty(i32 noundef %8675) #11
  %8677 = icmp ne i32 %8676, 0
  br i1 %8677, label %8678, label %8695

8678:                                             ; preds = %8673
  %8679 = load i32, ptr %173, align 4, !tbaa !5
  %8680 = call ptr @__errno_location() #12
  store i32 %8679, ptr %8680, align 4, !tbaa !5
  %8681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8682 = load i32, ptr @test_count, align 4, !tbaa !5
  %8683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8684 = load i32, ptr %8683, align 4, !tbaa !5
  %8685 = call ptr @s2n_strerror(i32 noundef %8684, ptr noundef @.str.4)
  %8686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8687 = load i32, ptr %8686, align 4, !tbaa !5
  %8688 = call ptr @s2n_strerror_debug(i32 noundef %8687, ptr noundef @.str.4)
  %8689 = call ptr @__errno_location() #12
  %8690 = load i32, ptr %8689, align 4, !tbaa !5
  %8691 = call ptr @strerror(i32 noundef %8690) #11
  %8692 = call ptr @__errno_location() #12
  %8693 = load i32, ptr %8692, align 4, !tbaa !5
  %8694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8681, ptr noundef @.str.2, i32 noundef %8682, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 324, ptr noundef %8685, ptr noundef %8688, ptr noundef %8691, i32 noundef %8693) #11
  br label %8712

8695:                                             ; preds = %8673, %8666
  %8696 = load i32, ptr %173, align 4, !tbaa !5
  %8697 = call ptr @__errno_location() #12
  store i32 %8696, ptr %8697, align 4, !tbaa !5
  %8698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8699 = load i32, ptr @test_count, align 4, !tbaa !5
  %8700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8701 = load i32, ptr %8700, align 4, !tbaa !5
  %8702 = call ptr @s2n_strerror(i32 noundef %8701, ptr noundef @.str.4)
  %8703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8704 = load i32, ptr %8703, align 4, !tbaa !5
  %8705 = call ptr @s2n_strerror_debug(i32 noundef %8704, ptr noundef @.str.4)
  %8706 = call ptr @__errno_location() #12
  %8707 = load i32, ptr %8706, align 4, !tbaa !5
  %8708 = call ptr @strerror(i32 noundef %8707) #11
  %8709 = call ptr @__errno_location() #12
  %8710 = load i32, ptr %8709, align 4, !tbaa !5
  %8711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8698, ptr noundef @.str.5, i32 noundef %8699, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 324, ptr noundef %8702, ptr noundef %8705, ptr noundef %8708, i32 noundef %8710) #11
  br label %8712

8712:                                             ; preds = %8695, %8678
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %8713

8713:                                             ; preds = %8712
  br label %8714

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

8715:                                             ; No predecessors!
  br label %8716

8716:                                             ; preds = %8715
  br label %8717

8717:                                             ; preds = %8716, %8657
  br label %8718

8718:                                             ; preds = %8717
  br label %8719

8719:                                             ; preds = %8718
  br label %8720

8720:                                             ; preds = %8719
  %8721 = load i32, ptr @test_count, align 4, !tbaa !5
  %8722 = add nsw i32 %8721, 1
  store i32 %8722, ptr @test_count, align 4, !tbaa !5
  %8723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8724 = load i32, ptr %8723, align 4, !tbaa !5
  %8725 = icmp eq i32 %8724, 335544385
  br i1 %8725, label %8779, label %8726

8726:                                             ; preds = %8720
  br label %8727

8727:                                             ; preds = %8726
  br label %8728

8728:                                             ; preds = %8727
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %8729 = call ptr @__errno_location() #12
  %8730 = load i32, ptr %8729, align 4, !tbaa !5
  store i32 %8730, ptr %174, align 4, !tbaa !5
  %8731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8732 = call i32 @s2n_print_stacktrace(ptr noundef %8731)
  %8733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8734 = trunc i8 %8733 to i1
  br i1 %8734, label %8735, label %8757

8735:                                             ; preds = %8728
  %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
  %8739 = icmp ne i32 %8738, 0
  br i1 %8739, label %8740, label %8757

8740:                                             ; preds = %8735
  %8741 = load i32, ptr %174, align 4, !tbaa !5
  %8742 = call ptr @__errno_location() #12
  store i32 %8741, ptr %8742, align 4, !tbaa !5
  %8743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8744 = load i32, ptr @test_count, align 4, !tbaa !5
  %8745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8746 = load i32, ptr %8745, align 4, !tbaa !5
  %8747 = call ptr @s2n_strerror(i32 noundef %8746, ptr noundef @.str.4)
  %8748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8749 = load i32, ptr %8748, align 4, !tbaa !5
  %8750 = call ptr @s2n_strerror_debug(i32 noundef %8749, ptr noundef @.str.4)
  %8751 = call ptr @__errno_location() #12
  %8752 = load i32, ptr %8751, align 4, !tbaa !5
  %8753 = call ptr @strerror(i32 noundef %8752) #11
  %8754 = call ptr @__errno_location() #12
  %8755 = load i32, ptr %8754, align 4, !tbaa !5
  %8756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8743, ptr noundef @.str.2, i32 noundef %8744, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 324, ptr noundef %8747, ptr noundef %8750, ptr noundef %8753, i32 noundef %8755) #11
  br label %8774

8757:                                             ; preds = %8735, %8728
  %8758 = load i32, ptr %174, align 4, !tbaa !5
  %8759 = call ptr @__errno_location() #12
  store i32 %8758, ptr %8759, align 4, !tbaa !5
  %8760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8761 = load i32, ptr @test_count, align 4, !tbaa !5
  %8762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8763 = load i32, ptr %8762, align 4, !tbaa !5
  %8764 = call ptr @s2n_strerror(i32 noundef %8763, ptr noundef @.str.4)
  %8765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8766 = load i32, ptr %8765, align 4, !tbaa !5
  %8767 = call ptr @s2n_strerror_debug(i32 noundef %8766, ptr noundef @.str.4)
  %8768 = call ptr @__errno_location() #12
  %8769 = load i32, ptr %8768, align 4, !tbaa !5
  %8770 = call ptr @strerror(i32 noundef %8769) #11
  %8771 = call ptr @__errno_location() #12
  %8772 = load i32, ptr %8771, align 4, !tbaa !5
  %8773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8760, ptr noundef @.str.5, i32 noundef %8761, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 324, ptr noundef %8764, ptr noundef %8767, ptr noundef %8770, i32 noundef %8772) #11
  br label %8774

8774:                                             ; preds = %8757, %8740
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %8775

8775:                                             ; preds = %8774
  br label %8776

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

8777:                                             ; No predecessors!
  br label %8778

8778:                                             ; preds = %8777
  br label %8779

8779:                                             ; preds = %8778, %8720
  br label %8780

8780:                                             ; preds = %8779
  br label %8781

8781:                                             ; preds = %8780
  br label %8782

8782:                                             ; preds = %8781
  %8783 = load i32, ptr @test_count, align 4, !tbaa !5
  %8784 = add nsw i32 %8783, 1
  store i32 %8784, 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_debug(i32 noundef %8786, ptr noundef @.str.4)
  %8788 = icmp eq ptr %8787, null
  br i1 %8788, label %8789, label %8842

8789:                                             ; preds = %8782
  br label %8790

8790:                                             ; preds = %8789
  br label %8791

8791:                                             ; preds = %8790
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %8792 = call ptr @__errno_location() #12
  %8793 = load i32, ptr %8792, align 4, !tbaa !5
  store i32 %8793, ptr %175, align 4, !tbaa !5
  %8794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8795 = call i32 @s2n_print_stacktrace(ptr noundef %8794)
  %8796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8797 = trunc i8 %8796 to i1
  br i1 %8797, label %8798, label %8820

8798:                                             ; preds = %8791
  %8799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8800 = call i32 @fileno(ptr noundef %8799) #11
  %8801 = call i32 @isatty(i32 noundef %8800) #11
  %8802 = icmp ne i32 %8801, 0
  br i1 %8802, label %8803, label %8820

8803:                                             ; preds = %8798
  %8804 = load i32, ptr %175, align 4, !tbaa !5
  %8805 = call ptr @__errno_location() #12
  store i32 %8804, ptr %8805, align 4, !tbaa !5
  %8806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8807 = load i32, ptr @test_count, align 4, !tbaa !5
  %8808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8809 = load i32, ptr %8808, align 4, !tbaa !5
  %8810 = call ptr @s2n_strerror(i32 noundef %8809, ptr noundef @.str.4)
  %8811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8812 = load i32, ptr %8811, align 4, !tbaa !5
  %8813 = call ptr @s2n_strerror_debug(i32 noundef %8812, ptr noundef @.str.4)
  %8814 = call ptr @__errno_location() #12
  %8815 = load i32, ptr %8814, align 4, !tbaa !5
  %8816 = call ptr @strerror(i32 noundef %8815) #11
  %8817 = call ptr @__errno_location() #12
  %8818 = load i32, ptr %8817, align 4, !tbaa !5
  %8819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8806, ptr noundef @.str.2, i32 noundef %8807, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 324, ptr noundef %8810, ptr noundef %8813, ptr noundef %8816, i32 noundef %8818) #11
  br label %8837

8820:                                             ; preds = %8798, %8791
  %8821 = load i32, ptr %175, align 4, !tbaa !5
  %8822 = call ptr @__errno_location() #12
  store i32 %8821, ptr %8822, align 4, !tbaa !5
  %8823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8824 = load i32, ptr @test_count, align 4, !tbaa !5
  %8825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8826 = load i32, ptr %8825, align 4, !tbaa !5
  %8827 = call ptr @s2n_strerror(i32 noundef %8826, ptr noundef @.str.4)
  %8828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8829 = load i32, ptr %8828, align 4, !tbaa !5
  %8830 = call ptr @s2n_strerror_debug(i32 noundef %8829, ptr noundef @.str.4)
  %8831 = call ptr @__errno_location() #12
  %8832 = load i32, ptr %8831, align 4, !tbaa !5
  %8833 = call ptr @strerror(i32 noundef %8832) #11
  %8834 = call ptr @__errno_location() #12
  %8835 = load i32, ptr %8834, align 4, !tbaa !5
  %8836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8823, ptr noundef @.str.5, i32 noundef %8824, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 324, ptr noundef %8827, ptr noundef %8830, ptr noundef %8833, i32 noundef %8835) #11
  br label %8837

8837:                                             ; preds = %8820, %8803
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %8838

8838:                                             ; preds = %8837
  br label %8839

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

8840:                                             ; No predecessors!
  br label %8841

8841:                                             ; preds = %8840
  br label %8842

8842:                                             ; preds = %8841, %8782
  br label %8843

8843:                                             ; preds = %8842
  br label %8844

8844:                                             ; preds = %8843
  br label %8845

8845:                                             ; preds = %8844
  br label %8846

8846:                                             ; preds = %8845
  br label %8847

8847:                                             ; preds = %8846
  %8848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8848, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8849 = call ptr @__errno_location() #12
  store i32 0, ptr %8849, align 4, !tbaa !5
  br label %8850

8850:                                             ; preds = %8847
  br label %8851

8851:                                             ; preds = %8850
  br label %8852

8852:                                             ; preds = %8851
  br label %8853

8853:                                             ; preds = %8852
  br label %8854

8854:                                             ; preds = %8853
  %8855 = load i32, ptr @test_count, align 4, !tbaa !5
  %8856 = add nsw i32 %8855, 1
  store i32 %8856, ptr @test_count, align 4, !tbaa !5
  %8857 = call i32 @s2n_stuffer_free(ptr noundef %166)
  %8858 = icmp eq i32 %8857, -1
  br i1 %8858, label %8859, label %8912

8859:                                             ; preds = %8854
  br label %8860

8860:                                             ; preds = %8859
  br label %8861

8861:                                             ; preds = %8860
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  %8862 = call ptr @__errno_location() #12
  %8863 = load i32, ptr %8862, align 4, !tbaa !5
  store i32 %8863, ptr %176, align 4, !tbaa !5
  %8864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8865 = call i32 @s2n_print_stacktrace(ptr noundef %8864)
  %8866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8867 = trunc i8 %8866 to i1
  br i1 %8867, label %8868, label %8890

8868:                                             ; preds = %8861
  %8869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8870 = call i32 @fileno(ptr noundef %8869) #11
  %8871 = call i32 @isatty(i32 noundef %8870) #11
  %8872 = icmp ne i32 %8871, 0
  br i1 %8872, label %8873, label %8890

8873:                                             ; preds = %8868
  %8874 = load i32, ptr %176, align 4, !tbaa !5
  %8875 = call ptr @__errno_location() #12
  store i32 %8874, ptr %8875, align 4, !tbaa !5
  %8876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8877 = load i32, ptr @test_count, align 4, !tbaa !5
  %8878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8879 = load i32, ptr %8878, align 4, !tbaa !5
  %8880 = call ptr @s2n_strerror(i32 noundef %8879, ptr noundef @.str.4)
  %8881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8882 = load i32, ptr %8881, align 4, !tbaa !5
  %8883 = call ptr @s2n_strerror_debug(i32 noundef %8882, ptr noundef @.str.4)
  %8884 = call ptr @__errno_location() #12
  %8885 = load i32, ptr %8884, align 4, !tbaa !5
  %8886 = call ptr @strerror(i32 noundef %8885) #11
  %8887 = call ptr @__errno_location() #12
  %8888 = load i32, ptr %8887, align 4, !tbaa !5
  %8889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8876, ptr noundef @.str.2, i32 noundef %8877, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 326, ptr noundef %8880, ptr noundef %8883, ptr noundef %8886, i32 noundef %8888) #11
  br label %8907

8890:                                             ; preds = %8868, %8861
  %8891 = load i32, ptr %176, align 4, !tbaa !5
  %8892 = call ptr @__errno_location() #12
  store i32 %8891, ptr %8892, align 4, !tbaa !5
  %8893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8894 = load i32, ptr @test_count, align 4, !tbaa !5
  %8895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8896 = load i32, ptr %8895, align 4, !tbaa !5
  %8897 = call ptr @s2n_strerror(i32 noundef %8896, ptr noundef @.str.4)
  %8898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8899 = load i32, ptr %8898, align 4, !tbaa !5
  %8900 = call ptr @s2n_strerror_debug(i32 noundef %8899, ptr noundef @.str.4)
  %8901 = call ptr @__errno_location() #12
  %8902 = load i32, ptr %8901, align 4, !tbaa !5
  %8903 = call ptr @strerror(i32 noundef %8902) #11
  %8904 = call ptr @__errno_location() #12
  %8905 = load i32, ptr %8904, align 4, !tbaa !5
  %8906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8893, ptr noundef @.str.5, i32 noundef %8894, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 326, ptr noundef %8897, ptr noundef %8900, ptr noundef %8903, i32 noundef %8905) #11
  br label %8907

8907:                                             ; preds = %8890, %8873
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  br label %8908

8908:                                             ; preds = %8907
  br label %8909

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

8910:                                             ; No predecessors!
  br label %8911

8911:                                             ; preds = %8910
  br label %8912

8912:                                             ; preds = %8911, %8854
  br label %8913

8913:                                             ; preds = %8912
  br label %8914

8914:                                             ; preds = %8913
  br label %8915

8915:                                             ; preds = %8914
  %8916 = load i32, ptr @test_count, align 4, !tbaa !5
  %8917 = add nsw i32 %8916, 1
  store i32 %8917, ptr @test_count, align 4, !tbaa !5
  %8918 = load ptr, ptr %167, align 8, !tbaa !9
  %8919 = call i32 @s2n_connection_free(ptr noundef %8918)
  %8920 = icmp eq i32 %8919, -1
  br i1 %8920, label %8921, label %8974

8921:                                             ; preds = %8915
  br label %8922

8922:                                             ; preds = %8921
  br label %8923

8923:                                             ; preds = %8922
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %8924 = call ptr @__errno_location() #12
  %8925 = load i32, ptr %8924, align 4, !tbaa !5
  store i32 %8925, ptr %177, align 4, !tbaa !5
  %8926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8927 = call i32 @s2n_print_stacktrace(ptr noundef %8926)
  %8928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8929 = trunc i8 %8928 to i1
  br i1 %8929, label %8930, label %8952

8930:                                             ; preds = %8923
  %8931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8932 = call i32 @fileno(ptr noundef %8931) #11
  %8933 = call i32 @isatty(i32 noundef %8932) #11
  %8934 = icmp ne i32 %8933, 0
  br i1 %8934, label %8935, label %8952

8935:                                             ; preds = %8930
  %8936 = load i32, ptr %177, align 4, !tbaa !5
  %8937 = call ptr @__errno_location() #12
  store i32 %8936, ptr %8937, align 4, !tbaa !5
  %8938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8939 = load i32, ptr @test_count, align 4, !tbaa !5
  %8940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8941 = load i32, ptr %8940, align 4, !tbaa !5
  %8942 = call ptr @s2n_strerror(i32 noundef %8941, ptr noundef @.str.4)
  %8943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8944 = load i32, ptr %8943, align 4, !tbaa !5
  %8945 = call ptr @s2n_strerror_debug(i32 noundef %8944, ptr noundef @.str.4)
  %8946 = call ptr @__errno_location() #12
  %8947 = load i32, ptr %8946, align 4, !tbaa !5
  %8948 = call ptr @strerror(i32 noundef %8947) #11
  %8949 = call ptr @__errno_location() #12
  %8950 = load i32, ptr %8949, align 4, !tbaa !5
  %8951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8938, ptr noundef @.str.2, i32 noundef %8939, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 327, ptr noundef %8942, ptr noundef %8945, ptr noundef %8948, i32 noundef %8950) #11
  br label %8969

8952:                                             ; preds = %8930, %8923
  %8953 = load i32, ptr %177, align 4, !tbaa !5
  %8954 = call ptr @__errno_location() #12
  store i32 %8953, ptr %8954, align 4, !tbaa !5
  %8955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8956 = load i32, ptr @test_count, align 4, !tbaa !5
  %8957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8958 = load i32, ptr %8957, align 4, !tbaa !5
  %8959 = call ptr @s2n_strerror(i32 noundef %8958, ptr noundef @.str.4)
  %8960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8961 = load i32, ptr %8960, align 4, !tbaa !5
  %8962 = call ptr @s2n_strerror_debug(i32 noundef %8961, ptr noundef @.str.4)
  %8963 = call ptr @__errno_location() #12
  %8964 = load i32, ptr %8963, align 4, !tbaa !5
  %8965 = call ptr @strerror(i32 noundef %8964) #11
  %8966 = call ptr @__errno_location() #12
  %8967 = load i32, ptr %8966, align 4, !tbaa !5
  %8968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8955, ptr noundef @.str.5, i32 noundef %8956, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 327, ptr noundef %8959, ptr noundef %8962, ptr noundef %8965, i32 noundef %8967) #11
  br label %8969

8969:                                             ; preds = %8952, %8935
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %8970

8970:                                             ; preds = %8969
  br label %8971

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

8972:                                             ; No predecessors!
  br label %8973

8973:                                             ; preds = %8972
  br label %8974

8974:                                             ; preds = %8973, %8915
  br label %8975

8975:                                             ; preds = %8974
  br label %8976

8976:                                             ; preds = %8975
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %166) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %178) #11
  call void @llvm.memset.p0.i64(ptr align 8 %178, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %179) #11
  store ptr null, ptr %179, align 8, !tbaa !9
  br label %8977

8977:                                             ; preds = %8976
  %8978 = load i32, ptr @test_count, align 4, !tbaa !5
  %8979 = add nsw i32 %8978, 1
  store i32 %8979, ptr @test_count, align 4, !tbaa !5
  %8980 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8980, ptr %179, align 8, !tbaa !9
  %8981 = icmp eq ptr %8980, null
  br i1 %8981, label %8982, label %9035

8982:                                             ; preds = %8977
  br label %8983

8983:                                             ; preds = %8982
  br label %8984

8984:                                             ; preds = %8983
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %8985 = call ptr @__errno_location() #12
  %8986 = load i32, ptr %8985, align 4, !tbaa !5
  store i32 %8986, ptr %180, align 4, !tbaa !5
  %8987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8988 = call i32 @s2n_print_stacktrace(ptr noundef %8987)
  %8989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8990 = trunc i8 %8989 to i1
  br i1 %8990, label %8991, label %9013

8991:                                             ; preds = %8984
  %8992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8993 = call i32 @fileno(ptr noundef %8992) #11
  %8994 = call i32 @isatty(i32 noundef %8993) #11
  %8995 = icmp ne i32 %8994, 0
  br i1 %8995, label %8996, label %9013

8996:                                             ; preds = %8991
  %8997 = load i32, ptr %180, align 4, !tbaa !5
  %8998 = call ptr @__errno_location() #12
  store i32 %8997, ptr %8998, align 4, !tbaa !5
  %8999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9000 = load i32, ptr @test_count, align 4, !tbaa !5
  %9001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9002 = load i32, ptr %9001, align 4, !tbaa !5
  %9003 = call ptr @s2n_strerror(i32 noundef %9002, ptr noundef @.str.4)
  %9004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9005 = load i32, ptr %9004, align 4, !tbaa !5
  %9006 = call ptr @s2n_strerror_debug(i32 noundef %9005, ptr noundef @.str.4)
  %9007 = call ptr @__errno_location() #12
  %9008 = load i32, ptr %9007, align 4, !tbaa !5
  %9009 = call ptr @strerror(i32 noundef %9008) #11
  %9010 = call ptr @__errno_location() #12
  %9011 = load i32, ptr %9010, align 4, !tbaa !5
  %9012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8999, ptr noundef @.str.2, i32 noundef %9000, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 335, ptr noundef %9003, ptr noundef %9006, ptr noundef %9009, i32 noundef %9011) #11
  br label %9030

9013:                                             ; preds = %8991, %8984
  %9014 = load i32, ptr %180, align 4, !tbaa !5
  %9015 = call ptr @__errno_location() #12
  store i32 %9014, ptr %9015, align 4, !tbaa !5
  %9016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9017 = load i32, ptr @test_count, align 4, !tbaa !5
  %9018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9019 = load i32, ptr %9018, align 4, !tbaa !5
  %9020 = call ptr @s2n_strerror(i32 noundef %9019, ptr noundef @.str.4)
  %9021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9022 = load i32, ptr %9021, align 4, !tbaa !5
  %9023 = call ptr @s2n_strerror_debug(i32 noundef %9022, ptr noundef @.str.4)
  %9024 = call ptr @__errno_location() #12
  %9025 = load i32, ptr %9024, align 4, !tbaa !5
  %9026 = call ptr @strerror(i32 noundef %9025) #11
  %9027 = call ptr @__errno_location() #12
  %9028 = load i32, ptr %9027, align 4, !tbaa !5
  %9029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9016, ptr noundef @.str.5, i32 noundef %9017, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 335, ptr noundef %9020, ptr noundef %9023, ptr noundef %9026, i32 noundef %9028) #11
  br label %9030

9030:                                             ; preds = %9013, %8996
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %9031

9031:                                             ; preds = %9030
  br label %9032

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

9033:                                             ; No predecessors!
  br label %9034

9034:                                             ; preds = %9033
  br label %9035

9035:                                             ; preds = %9034, %8977
  br label %9036

9036:                                             ; preds = %9035
  br label %9037

9037:                                             ; preds = %9036
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #11
  store ptr null, ptr %181, align 8, !tbaa !9
  br label %9038

9038:                                             ; preds = %9037
  %9039 = load i32, ptr @test_count, align 4, !tbaa !5
  %9040 = add nsw i32 %9039, 1
  store i32 %9040, ptr @test_count, align 4, !tbaa !5
  %9041 = load ptr, ptr %179, align 8, !tbaa !9
  %9042 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %9041, ptr noundef %181)
  %9043 = icmp eq i32 %9042, -1
  br i1 %9043, label %9044, label %9097

9044:                                             ; preds = %9038
  br label %9045

9045:                                             ; preds = %9044
  br label %9046

9046:                                             ; preds = %9045
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %9047 = call ptr @__errno_location() #12
  %9048 = load i32, ptr %9047, align 4, !tbaa !5
  store i32 %9048, ptr %182, align 4, !tbaa !5
  %9049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9050 = call i32 @s2n_print_stacktrace(ptr noundef %9049)
  %9051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9052 = trunc i8 %9051 to i1
  br i1 %9052, label %9053, label %9075

9053:                                             ; preds = %9046
  %9054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9055 = call i32 @fileno(ptr noundef %9054) #11
  %9056 = call i32 @isatty(i32 noundef %9055) #11
  %9057 = icmp ne i32 %9056, 0
  br i1 %9057, label %9058, label %9075

9058:                                             ; preds = %9053
  %9059 = load i32, ptr %182, align 4, !tbaa !5
  %9060 = call ptr @__errno_location() #12
  store i32 %9059, ptr %9060, align 4, !tbaa !5
  %9061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9062 = load i32, ptr @test_count, align 4, !tbaa !5
  %9063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9064 = load i32, ptr %9063, align 4, !tbaa !5
  %9065 = call ptr @s2n_strerror(i32 noundef %9064, ptr noundef @.str.4)
  %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_debug(i32 noundef %9067, ptr noundef @.str.4)
  %9069 = call ptr @__errno_location() #12
  %9070 = load i32, ptr %9069, align 4, !tbaa !5
  %9071 = call ptr @strerror(i32 noundef %9070) #11
  %9072 = call ptr @__errno_location() #12
  %9073 = load i32, ptr %9072, align 4, !tbaa !5
  %9074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9061, ptr noundef @.str.2, i32 noundef %9062, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 337, ptr noundef %9065, ptr noundef %9068, ptr noundef %9071, i32 noundef %9073) #11
  br label %9092

9075:                                             ; preds = %9053, %9046
  %9076 = load i32, ptr %182, align 4, !tbaa !5
  %9077 = call ptr @__errno_location() #12
  store i32 %9076, ptr %9077, align 4, !tbaa !5
  %9078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9079 = load i32, ptr @test_count, align 4, !tbaa !5
  %9080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9081 = load i32, ptr %9080, align 4, !tbaa !5
  %9082 = call ptr @s2n_strerror(i32 noundef %9081, ptr noundef @.str.4)
  %9083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9084 = load i32, ptr %9083, align 4, !tbaa !5
  %9085 = call ptr @s2n_strerror_debug(i32 noundef %9084, ptr noundef @.str.4)
  %9086 = call ptr @__errno_location() #12
  %9087 = load i32, ptr %9086, align 4, !tbaa !5
  %9088 = call ptr @strerror(i32 noundef %9087) #11
  %9089 = call ptr @__errno_location() #12
  %9090 = load i32, ptr %9089, align 4, !tbaa !5
  %9091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9078, ptr noundef @.str.5, i32 noundef %9079, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 337, ptr noundef %9082, ptr noundef %9085, ptr noundef %9088, i32 noundef %9090) #11
  br label %9092

9092:                                             ; preds = %9075, %9058
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %9093

9093:                                             ; preds = %9092
  br label %9094

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

9095:                                             ; No predecessors!
  br label %9096

9096:                                             ; preds = %9095
  br label %9097

9097:                                             ; preds = %9096, %9038
  br label %9098

9098:                                             ; preds = %9097
  br label %9099

9099:                                             ; preds = %9098
  br label %9100

9100:                                             ; preds = %9099
  %9101 = load i32, ptr @test_count, align 4, !tbaa !5
  %9102 = add nsw i32 %9101, 1
  store i32 %9102, ptr @test_count, align 4, !tbaa !5
  %9103 = load ptr, ptr %181, align 8, !tbaa !9
  %9104 = icmp eq ptr %9103, null
  br i1 %9104, label %9105, label %9158

9105:                                             ; preds = %9100
  br label %9106

9106:                                             ; preds = %9105
  br label %9107

9107:                                             ; preds = %9106
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #11
  %9108 = call ptr @__errno_location() #12
  %9109 = load i32, ptr %9108, align 4, !tbaa !5
  store i32 %9109, ptr %183, align 4, !tbaa !5
  %9110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9111 = call i32 @s2n_print_stacktrace(ptr noundef %9110)
  %9112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9113 = trunc i8 %9112 to i1
  br i1 %9113, label %9114, label %9136

9114:                                             ; preds = %9107
  %9115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9116 = call i32 @fileno(ptr noundef %9115) #11
  %9117 = call i32 @isatty(i32 noundef %9116) #11
  %9118 = icmp ne i32 %9117, 0
  br i1 %9118, label %9119, label %9136

9119:                                             ; preds = %9114
  %9120 = load i32, ptr %183, align 4, !tbaa !5
  %9121 = call ptr @__errno_location() #12
  store i32 %9120, ptr %9121, align 4, !tbaa !5
  %9122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9123 = load i32, ptr @test_count, align 4, !tbaa !5
  %9124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9125 = load i32, ptr %9124, align 4, !tbaa !5
  %9126 = call ptr @s2n_strerror(i32 noundef %9125, ptr noundef @.str.4)
  %9127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9128 = load i32, ptr %9127, align 4, !tbaa !5
  %9129 = call ptr @s2n_strerror_debug(i32 noundef %9128, ptr noundef @.str.4)
  %9130 = call ptr @__errno_location() #12
  %9131 = load i32, ptr %9130, align 4, !tbaa !5
  %9132 = call ptr @strerror(i32 noundef %9131) #11
  %9133 = call ptr @__errno_location() #12
  %9134 = load i32, ptr %9133, align 4, !tbaa !5
  %9135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9122, ptr noundef @.str.2, i32 noundef %9123, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 338, ptr noundef %9126, ptr noundef %9129, ptr noundef %9132, i32 noundef %9134) #11
  br label %9153

9136:                                             ; preds = %9114, %9107
  %9137 = load i32, ptr %183, align 4, !tbaa !5
  %9138 = call ptr @__errno_location() #12
  store i32 %9137, ptr %9138, align 4, !tbaa !5
  %9139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9140 = load i32, ptr @test_count, align 4, !tbaa !5
  %9141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9142 = load i32, ptr %9141, align 4, !tbaa !5
  %9143 = call ptr @s2n_strerror(i32 noundef %9142, ptr noundef @.str.4)
  %9144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9145 = load i32, ptr %9144, align 4, !tbaa !5
  %9146 = call ptr @s2n_strerror_debug(i32 noundef %9145, ptr noundef @.str.4)
  %9147 = call ptr @__errno_location() #12
  %9148 = load i32, ptr %9147, align 4, !tbaa !5
  %9149 = call ptr @strerror(i32 noundef %9148) #11
  %9150 = call ptr @__errno_location() #12
  %9151 = load i32, ptr %9150, align 4, !tbaa !5
  %9152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9139, ptr noundef @.str.5, i32 noundef %9140, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 338, ptr noundef %9143, ptr noundef %9146, ptr noundef %9149, i32 noundef %9151) #11
  br label %9153

9153:                                             ; preds = %9136, %9119
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %9154

9154:                                             ; preds = %9153
  br label %9155

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

9156:                                             ; No predecessors!
  br label %9157

9157:                                             ; preds = %9156
  br label %9158

9158:                                             ; preds = %9157, %9100
  br label %9159

9159:                                             ; preds = %9158
  br label %9160

9160:                                             ; preds = %9159
  call void @llvm.lifetime.start.p0(i64 8, ptr %184) #11
  store ptr @.str.56, ptr %184, align 8, !tbaa !9
  br label %9161

9161:                                             ; preds = %9160
  %9162 = load i32, ptr @test_count, align 4, !tbaa !5
  %9163 = add nsw i32 %9162, 1
  store i32 %9163, ptr @test_count, align 4, !tbaa !5
  %9164 = load ptr, ptr %179, align 8, !tbaa !9
  %9165 = getelementptr inbounds %struct.s2n_connection, ptr %9164, i32 0, i32 31
  %9166 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9165, i32 0, i32 1
  %9167 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %9166, i32 0, i32 0
  %9168 = load ptr, ptr %9167, align 8, !tbaa !42
  %9169 = icmp eq ptr %9168, null
  br i1 %9169, label %9223, label %9170

9170:                                             ; preds = %9161
  br label %9171

9171:                                             ; preds = %9170
  br label %9172

9172:                                             ; preds = %9171
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #11
  %9173 = call ptr @__errno_location() #12
  %9174 = load i32, ptr %9173, align 4, !tbaa !5
  store i32 %9174, ptr %185, align 4, !tbaa !5
  %9175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9176 = call i32 @s2n_print_stacktrace(ptr noundef %9175)
  %9177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9178 = trunc i8 %9177 to i1
  br i1 %9178, label %9179, label %9201

9179:                                             ; preds = %9172
  %9180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9181 = call i32 @fileno(ptr noundef %9180) #11
  %9182 = call i32 @isatty(i32 noundef %9181) #11
  %9183 = icmp ne i32 %9182, 0
  br i1 %9183, label %9184, label %9201

9184:                                             ; preds = %9179
  %9185 = load i32, ptr %185, align 4, !tbaa !5
  %9186 = call ptr @__errno_location() #12
  store i32 %9185, ptr %9186, align 4, !tbaa !5
  %9187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9188 = load i32, ptr @test_count, align 4, !tbaa !5
  %9189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9190 = load i32, ptr %9189, align 4, !tbaa !5
  %9191 = call ptr @s2n_strerror(i32 noundef %9190, ptr noundef @.str.4)
  %9192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9193 = load i32, ptr %9192, align 4, !tbaa !5
  %9194 = call ptr @s2n_strerror_debug(i32 noundef %9193, ptr noundef @.str.4)
  %9195 = call ptr @__errno_location() #12
  %9196 = load i32, ptr %9195, align 4, !tbaa !5
  %9197 = call ptr @strerror(i32 noundef %9196) #11
  %9198 = call ptr @__errno_location() #12
  %9199 = load i32, ptr %9198, align 4, !tbaa !5
  %9200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9187, ptr noundef @.str.2, i32 noundef %9188, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 342, ptr noundef %9191, ptr noundef %9194, ptr noundef %9197, i32 noundef %9199) #11
  br label %9218

9201:                                             ; preds = %9179, %9172
  %9202 = load i32, ptr %185, align 4, !tbaa !5
  %9203 = call ptr @__errno_location() #12
  store i32 %9202, ptr %9203, align 4, !tbaa !5
  %9204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9205 = load i32, ptr @test_count, align 4, !tbaa !5
  %9206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9207 = load i32, ptr %9206, align 4, !tbaa !5
  %9208 = call ptr @s2n_strerror(i32 noundef %9207, ptr noundef @.str.4)
  %9209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9210 = load i32, ptr %9209, align 4, !tbaa !5
  %9211 = call ptr @s2n_strerror_debug(i32 noundef %9210, ptr noundef @.str.4)
  %9212 = call ptr @__errno_location() #12
  %9213 = load i32, ptr %9212, align 4, !tbaa !5
  %9214 = call ptr @strerror(i32 noundef %9213) #11
  %9215 = call ptr @__errno_location() #12
  %9216 = load i32, ptr %9215, align 4, !tbaa !5
  %9217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9204, ptr noundef @.str.5, i32 noundef %9205, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 342, ptr noundef %9208, ptr noundef %9211, ptr noundef %9214, i32 noundef %9216) #11
  br label %9218

9218:                                             ; preds = %9201, %9184
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %9219

9219:                                             ; preds = %9218
  br label %9220

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

9221:                                             ; No predecessors!
  br label %9222

9222:                                             ; preds = %9221
  br label %9223

9223:                                             ; preds = %9222, %9161
  br label %9224

9224:                                             ; preds = %9223
  br label %9225

9225:                                             ; preds = %9224
  br label %9226

9226:                                             ; preds = %9225
  %9227 = load i32, ptr @test_count, align 4, !tbaa !5
  %9228 = add nsw i32 %9227, 1
  store i32 %9228, ptr @test_count, align 4, !tbaa !5
  %9229 = load ptr, ptr %184, align 8, !tbaa !9
  %9230 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef %178, ptr noundef %9229)
  %9231 = getelementptr inbounds %struct.s2n_result, ptr %186, i32 0, i32 0
  store i32 %9230, ptr %9231, align 4
  %9232 = getelementptr inbounds %struct.s2n_result, ptr %186, i32 0, i32 0
  %9233 = load i32, ptr %9232, align 4
  %9234 = call zeroext i1 @s2n_result_is_ok(i32 %9233)
  br i1 %9234, label %9288, label %9235

9235:                                             ; preds = %9226
  br label %9236

9236:                                             ; preds = %9235
  br label %9237

9237:                                             ; preds = %9236
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %9238 = call ptr @__errno_location() #12
  %9239 = load i32, ptr %9238, align 4, !tbaa !5
  store i32 %9239, ptr %187, align 4, !tbaa !5
  %9240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9241 = call i32 @s2n_print_stacktrace(ptr noundef %9240)
  %9242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9243 = trunc i8 %9242 to i1
  br i1 %9243, label %9244, label %9266

9244:                                             ; preds = %9237
  %9245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9246 = call i32 @fileno(ptr noundef %9245) #11
  %9247 = call i32 @isatty(i32 noundef %9246) #11
  %9248 = icmp ne i32 %9247, 0
  br i1 %9248, label %9249, label %9266

9249:                                             ; preds = %9244
  %9250 = load i32, ptr %187, align 4, !tbaa !5
  %9251 = call ptr @__errno_location() #12
  store i32 %9250, ptr %9251, align 4, !tbaa !5
  %9252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9253 = load i32, ptr @test_count, align 4, !tbaa !5
  %9254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9255 = load i32, ptr %9254, align 4, !tbaa !5
  %9256 = call ptr @s2n_strerror(i32 noundef %9255, ptr noundef @.str.4)
  %9257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9258 = load i32, ptr %9257, align 4, !tbaa !5
  %9259 = call ptr @s2n_strerror_debug(i32 noundef %9258, ptr noundef @.str.4)
  %9260 = call ptr @__errno_location() #12
  %9261 = load i32, ptr %9260, align 4, !tbaa !5
  %9262 = call ptr @strerror(i32 noundef %9261) #11
  %9263 = call ptr @__errno_location() #12
  %9264 = load i32, ptr %9263, align 4, !tbaa !5
  %9265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9252, ptr noundef @.str.2, i32 noundef %9253, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 343, ptr noundef %9256, ptr noundef %9259, ptr noundef %9262, i32 noundef %9264) #11
  br label %9283

9266:                                             ; preds = %9244, %9237
  %9267 = load i32, ptr %187, align 4, !tbaa !5
  %9268 = call ptr @__errno_location() #12
  store i32 %9267, ptr %9268, align 4, !tbaa !5
  %9269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9270 = load i32, ptr @test_count, align 4, !tbaa !5
  %9271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9272 = load i32, ptr %9271, align 4, !tbaa !5
  %9273 = call ptr @s2n_strerror(i32 noundef %9272, ptr noundef @.str.4)
  %9274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9275 = load i32, ptr %9274, align 4, !tbaa !5
  %9276 = call ptr @s2n_strerror_debug(i32 noundef %9275, ptr noundef @.str.4)
  %9277 = call ptr @__errno_location() #12
  %9278 = load i32, ptr %9277, align 4, !tbaa !5
  %9279 = call ptr @strerror(i32 noundef %9278) #11
  %9280 = call ptr @__errno_location() #12
  %9281 = load i32, ptr %9280, align 4, !tbaa !5
  %9282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9269, ptr noundef @.str.5, i32 noundef %9270, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 343, ptr noundef %9273, ptr noundef %9276, ptr noundef %9279, i32 noundef %9281) #11
  br label %9283

9283:                                             ; preds = %9266, %9249
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %9284

9284:                                             ; preds = %9283
  br label %9285

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

9286:                                             ; No predecessors!
  br label %9287

9287:                                             ; preds = %9286
  br label %9288

9288:                                             ; preds = %9287, %9226
  br label %9289

9289:                                             ; preds = %9288
  br label %9290

9290:                                             ; preds = %9289
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %9291 = call i32 (...) @s2n_is_evp_apis_supported()
  %9292 = icmp ne i32 %9291, 0
  %9293 = zext i1 %9292 to i64
  %9294 = select i1 %9292, i32 2, i32 1
  store i32 %9294, ptr %188, align 4, !tbaa !5
  %9295 = load ptr, ptr %181, align 8, !tbaa !9
  %9296 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %9295, i32 0, i32 1
  %9297 = load ptr, ptr %9296, align 8, !tbaa !43
  %9298 = load i32, ptr %188, align 4, !tbaa !5
  %9299 = sext i32 %9298 to i64
  %9300 = getelementptr inbounds ptr, ptr %9297, i64 %9299
  %9301 = load ptr, ptr %9300, align 8, !tbaa !9
  %9302 = load ptr, ptr %179, align 8, !tbaa !9
  %9303 = getelementptr inbounds %struct.s2n_connection, ptr %9302, i32 0, i32 31
  %9304 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9303, i32 0, i32 3
  %9305 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %9304, i32 0, i32 0
  store ptr %9301, ptr %9305, align 8, !tbaa !45
  br label %9306

9306:                                             ; preds = %9290
  %9307 = load i32, ptr @test_count, align 4, !tbaa !5
  %9308 = add nsw i32 %9307, 1
  store i32 %9308, ptr @test_count, align 4, !tbaa !5
  %9309 = load ptr, ptr %179, align 8, !tbaa !9
  %9310 = getelementptr inbounds %struct.s2n_connection, ptr %9309, i32 0, i32 31
  %9311 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9310, i32 0, i32 3
  %9312 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %9311)
  %9313 = icmp eq i32 %9312, -1
  br i1 %9313, label %9314, label %9367

9314:                                             ; preds = %9306
  br label %9315

9315:                                             ; preds = %9314
  br label %9316

9316:                                             ; preds = %9315
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %9317 = call ptr @__errno_location() #12
  %9318 = load i32, ptr %9317, align 4, !tbaa !5
  store i32 %9318, ptr %189, align 4, !tbaa !5
  %9319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9320 = call i32 @s2n_print_stacktrace(ptr noundef %9319)
  %9321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9322 = trunc i8 %9321 to i1
  br i1 %9322, label %9323, label %9345

9323:                                             ; preds = %9316
  %9324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9325 = call i32 @fileno(ptr noundef %9324) #11
  %9326 = call i32 @isatty(i32 noundef %9325) #11
  %9327 = icmp ne i32 %9326, 0
  br i1 %9327, label %9328, label %9345

9328:                                             ; preds = %9323
  %9329 = load i32, ptr %189, align 4, !tbaa !5
  %9330 = call ptr @__errno_location() #12
  store i32 %9329, ptr %9330, align 4, !tbaa !5
  %9331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9332 = load i32, ptr @test_count, align 4, !tbaa !5
  %9333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9334 = load i32, ptr %9333, align 4, !tbaa !5
  %9335 = call ptr @s2n_strerror(i32 noundef %9334, ptr noundef @.str.4)
  %9336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9337 = load i32, ptr %9336, align 4, !tbaa !5
  %9338 = call ptr @s2n_strerror_debug(i32 noundef %9337, ptr noundef @.str.4)
  %9339 = call ptr @__errno_location() #12
  %9340 = load i32, ptr %9339, align 4, !tbaa !5
  %9341 = call ptr @strerror(i32 noundef %9340) #11
  %9342 = call ptr @__errno_location() #12
  %9343 = load i32, ptr %9342, align 4, !tbaa !5
  %9344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9331, ptr noundef @.str.2, i32 noundef %9332, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 349, ptr noundef %9335, ptr noundef %9338, ptr noundef %9341, i32 noundef %9343) #11
  br label %9362

9345:                                             ; preds = %9323, %9316
  %9346 = load i32, ptr %189, align 4, !tbaa !5
  %9347 = call ptr @__errno_location() #12
  store i32 %9346, ptr %9347, align 4, !tbaa !5
  %9348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9349 = load i32, ptr @test_count, align 4, !tbaa !5
  %9350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9351 = load i32, ptr %9350, align 4, !tbaa !5
  %9352 = call ptr @s2n_strerror(i32 noundef %9351, ptr noundef @.str.4)
  %9353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9354 = load i32, ptr %9353, align 4, !tbaa !5
  %9355 = call ptr @s2n_strerror_debug(i32 noundef %9354, ptr noundef @.str.4)
  %9356 = call ptr @__errno_location() #12
  %9357 = load i32, ptr %9356, align 4, !tbaa !5
  %9358 = call ptr @strerror(i32 noundef %9357) #11
  %9359 = call ptr @__errno_location() #12
  %9360 = load i32, ptr %9359, align 4, !tbaa !5
  %9361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9348, ptr noundef @.str.5, i32 noundef %9349, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 349, ptr noundef %9352, ptr noundef %9355, ptr noundef %9358, i32 noundef %9360) #11
  br label %9362

9362:                                             ; preds = %9345, %9328
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %9363

9363:                                             ; preds = %9362
  br label %9364

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

9365:                                             ; No predecessors!
  br label %9366

9366:                                             ; preds = %9365
  br label %9367

9367:                                             ; preds = %9366, %9306
  br label %9368

9368:                                             ; preds = %9367
  br label %9369

9369:                                             ; preds = %9368
  br label %9370

9370:                                             ; preds = %9369
  br label %9371

9371:                                             ; preds = %9370
  br label %9372

9372:                                             ; preds = %9371
  %9373 = load i32, ptr @test_count, align 4, !tbaa !5
  %9374 = add nsw i32 %9373, 1
  store i32 %9374, ptr @test_count, align 4, !tbaa !5
  %9375 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %9376 = load ptr, ptr %179, align 8, !tbaa !9
  %9377 = call i32 %9375(ptr noundef %9376, ptr noundef %178)
  %9378 = icmp eq i32 %9377, -1
  br i1 %9378, label %9432, label %9379

9379:                                             ; preds = %9372
  br label %9380

9380:                                             ; preds = %9379
  br label %9381

9381:                                             ; preds = %9380
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #11
  %9382 = call ptr @__errno_location() #12
  %9383 = load i32, ptr %9382, align 4, !tbaa !5
  store i32 %9383, ptr %190, align 4, !tbaa !5
  %9384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9385 = call i32 @s2n_print_stacktrace(ptr noundef %9384)
  %9386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9387 = trunc i8 %9386 to i1
  br i1 %9387, label %9388, label %9410

9388:                                             ; preds = %9381
  %9389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9390 = call i32 @fileno(ptr noundef %9389) #11
  %9391 = call i32 @isatty(i32 noundef %9390) #11
  %9392 = icmp ne i32 %9391, 0
  br i1 %9392, label %9393, label %9410

9393:                                             ; preds = %9388
  %9394 = load i32, ptr %190, align 4, !tbaa !5
  %9395 = call ptr @__errno_location() #12
  store i32 %9394, ptr %9395, align 4, !tbaa !5
  %9396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9397 = load i32, ptr @test_count, align 4, !tbaa !5
  %9398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9399 = load i32, ptr %9398, align 4, !tbaa !5
  %9400 = call ptr @s2n_strerror(i32 noundef %9399, ptr noundef @.str.4)
  %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_debug(i32 noundef %9402, ptr noundef @.str.4)
  %9404 = call ptr @__errno_location() #12
  %9405 = load i32, ptr %9404, align 4, !tbaa !5
  %9406 = call ptr @strerror(i32 noundef %9405) #11
  %9407 = call ptr @__errno_location() #12
  %9408 = load i32, ptr %9407, align 4, !tbaa !5
  %9409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9396, ptr noundef @.str.2, i32 noundef %9397, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 351, ptr noundef %9400, ptr noundef %9403, ptr noundef %9406, i32 noundef %9408) #11
  br label %9427

9410:                                             ; preds = %9388, %9381
  %9411 = load i32, ptr %190, align 4, !tbaa !5
  %9412 = call ptr @__errno_location() #12
  store i32 %9411, ptr %9412, align 4, !tbaa !5
  %9413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9414 = load i32, ptr @test_count, align 4, !tbaa !5
  %9415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9416 = load i32, ptr %9415, align 4, !tbaa !5
  %9417 = call ptr @s2n_strerror(i32 noundef %9416, ptr noundef @.str.4)
  %9418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9419 = load i32, ptr %9418, align 4, !tbaa !5
  %9420 = call ptr @s2n_strerror_debug(i32 noundef %9419, ptr noundef @.str.4)
  %9421 = call ptr @__errno_location() #12
  %9422 = load i32, ptr %9421, align 4, !tbaa !5
  %9423 = call ptr @strerror(i32 noundef %9422) #11
  %9424 = call ptr @__errno_location() #12
  %9425 = load i32, ptr %9424, align 4, !tbaa !5
  %9426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9413, ptr noundef @.str.5, i32 noundef %9414, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 351, ptr noundef %9417, ptr noundef %9420, ptr noundef %9423, i32 noundef %9425) #11
  br label %9427

9427:                                             ; preds = %9410, %9393
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #11
  br label %9428

9428:                                             ; preds = %9427
  br label %9429

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

9430:                                             ; No predecessors!
  br label %9431

9431:                                             ; preds = %9430
  br label %9432

9432:                                             ; preds = %9431, %9372
  br label %9433

9433:                                             ; preds = %9432
  br label %9434

9434:                                             ; preds = %9433
  br label %9435

9435:                                             ; preds = %9434
  %9436 = load i32, ptr @test_count, align 4, !tbaa !5
  %9437 = add nsw i32 %9436, 1
  store i32 %9437, ptr @test_count, align 4, !tbaa !5
  %9438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9439 = load i32, ptr %9438, align 4, !tbaa !5
  %9440 = icmp eq i32 %9439, 335544385
  br i1 %9440, label %9494, label %9441

9441:                                             ; preds = %9435
  br label %9442

9442:                                             ; preds = %9441
  br label %9443

9443:                                             ; preds = %9442
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #11
  %9444 = call ptr @__errno_location() #12
  %9445 = load i32, ptr %9444, align 4, !tbaa !5
  store i32 %9445, ptr %191, align 4, !tbaa !5
  %9446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9447 = call i32 @s2n_print_stacktrace(ptr noundef %9446)
  %9448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9449 = trunc i8 %9448 to i1
  br i1 %9449, label %9450, label %9472

9450:                                             ; preds = %9443
  %9451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9452 = call i32 @fileno(ptr noundef %9451) #11
  %9453 = call i32 @isatty(i32 noundef %9452) #11
  %9454 = icmp ne i32 %9453, 0
  br i1 %9454, label %9455, label %9472

9455:                                             ; preds = %9450
  %9456 = load i32, ptr %191, align 4, !tbaa !5
  %9457 = call ptr @__errno_location() #12
  store i32 %9456, ptr %9457, align 4, !tbaa !5
  %9458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9459 = load i32, ptr @test_count, align 4, !tbaa !5
  %9460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9461 = load i32, ptr %9460, align 4, !tbaa !5
  %9462 = call ptr @s2n_strerror(i32 noundef %9461, ptr noundef @.str.4)
  %9463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9464 = load i32, ptr %9463, align 4, !tbaa !5
  %9465 = call ptr @s2n_strerror_debug(i32 noundef %9464, ptr noundef @.str.4)
  %9466 = call ptr @__errno_location() #12
  %9467 = load i32, ptr %9466, align 4, !tbaa !5
  %9468 = call ptr @strerror(i32 noundef %9467) #11
  %9469 = call ptr @__errno_location() #12
  %9470 = load i32, ptr %9469, align 4, !tbaa !5
  %9471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9458, ptr noundef @.str.2, i32 noundef %9459, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 351, ptr noundef %9462, ptr noundef %9465, ptr noundef %9468, i32 noundef %9470) #11
  br label %9489

9472:                                             ; preds = %9450, %9443
  %9473 = load i32, ptr %191, align 4, !tbaa !5
  %9474 = call ptr @__errno_location() #12
  store i32 %9473, ptr %9474, align 4, !tbaa !5
  %9475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9476 = load i32, ptr @test_count, align 4, !tbaa !5
  %9477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9478 = load i32, ptr %9477, align 4, !tbaa !5
  %9479 = call ptr @s2n_strerror(i32 noundef %9478, ptr noundef @.str.4)
  %9480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9481 = load i32, ptr %9480, align 4, !tbaa !5
  %9482 = call ptr @s2n_strerror_debug(i32 noundef %9481, ptr noundef @.str.4)
  %9483 = call ptr @__errno_location() #12
  %9484 = load i32, ptr %9483, align 4, !tbaa !5
  %9485 = call ptr @strerror(i32 noundef %9484) #11
  %9486 = call ptr @__errno_location() #12
  %9487 = load i32, ptr %9486, align 4, !tbaa !5
  %9488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9475, ptr noundef @.str.5, i32 noundef %9476, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 351, ptr noundef %9479, ptr noundef %9482, ptr noundef %9485, i32 noundef %9487) #11
  br label %9489

9489:                                             ; preds = %9472, %9455
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #11
  br label %9490

9490:                                             ; preds = %9489
  br label %9491

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

9492:                                             ; No predecessors!
  br label %9493

9493:                                             ; preds = %9492
  br label %9494

9494:                                             ; preds = %9493, %9435
  br label %9495

9495:                                             ; preds = %9494
  br label %9496

9496:                                             ; preds = %9495
  br label %9497

9497:                                             ; preds = %9496
  %9498 = load i32, ptr @test_count, align 4, !tbaa !5
  %9499 = add nsw i32 %9498, 1
  store i32 %9499, ptr @test_count, align 4, !tbaa !5
  %9500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9501 = load i32, ptr %9500, align 4, !tbaa !5
  %9502 = call ptr @s2n_strerror_debug(i32 noundef %9501, ptr noundef @.str.4)
  %9503 = icmp eq ptr %9502, null
  br i1 %9503, label %9504, label %9557

9504:                                             ; preds = %9497
  br label %9505

9505:                                             ; preds = %9504
  br label %9506

9506:                                             ; preds = %9505
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #11
  %9507 = call ptr @__errno_location() #12
  %9508 = load i32, ptr %9507, align 4, !tbaa !5
  store i32 %9508, ptr %192, align 4, !tbaa !5
  %9509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9510 = call i32 @s2n_print_stacktrace(ptr noundef %9509)
  %9511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9512 = trunc i8 %9511 to i1
  br i1 %9512, label %9513, label %9535

9513:                                             ; preds = %9506
  %9514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9515 = call i32 @fileno(ptr noundef %9514) #11
  %9516 = call i32 @isatty(i32 noundef %9515) #11
  %9517 = icmp ne i32 %9516, 0
  br i1 %9517, label %9518, label %9535

9518:                                             ; preds = %9513
  %9519 = load i32, ptr %192, align 4, !tbaa !5
  %9520 = call ptr @__errno_location() #12
  store i32 %9519, ptr %9520, align 4, !tbaa !5
  %9521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9522 = load i32, ptr @test_count, align 4, !tbaa !5
  %9523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9524 = load i32, ptr %9523, align 4, !tbaa !5
  %9525 = call ptr @s2n_strerror(i32 noundef %9524, ptr noundef @.str.4)
  %9526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9527 = load i32, ptr %9526, align 4, !tbaa !5
  %9528 = call ptr @s2n_strerror_debug(i32 noundef %9527, ptr noundef @.str.4)
  %9529 = call ptr @__errno_location() #12
  %9530 = load i32, ptr %9529, align 4, !tbaa !5
  %9531 = call ptr @strerror(i32 noundef %9530) #11
  %9532 = call ptr @__errno_location() #12
  %9533 = load i32, ptr %9532, align 4, !tbaa !5
  %9534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9521, ptr noundef @.str.2, i32 noundef %9522, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 351, ptr noundef %9525, ptr noundef %9528, ptr noundef %9531, i32 noundef %9533) #11
  br label %9552

9535:                                             ; preds = %9513, %9506
  %9536 = load i32, ptr %192, align 4, !tbaa !5
  %9537 = call ptr @__errno_location() #12
  store i32 %9536, ptr %9537, align 4, !tbaa !5
  %9538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9539 = load i32, ptr @test_count, align 4, !tbaa !5
  %9540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9541 = load i32, ptr %9540, align 4, !tbaa !5
  %9542 = call ptr @s2n_strerror(i32 noundef %9541, ptr noundef @.str.4)
  %9543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9544 = load i32, ptr %9543, align 4, !tbaa !5
  %9545 = call ptr @s2n_strerror_debug(i32 noundef %9544, ptr noundef @.str.4)
  %9546 = call ptr @__errno_location() #12
  %9547 = load i32, ptr %9546, align 4, !tbaa !5
  %9548 = call ptr @strerror(i32 noundef %9547) #11
  %9549 = call ptr @__errno_location() #12
  %9550 = load i32, ptr %9549, align 4, !tbaa !5
  %9551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9538, ptr noundef @.str.5, i32 noundef %9539, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 351, ptr noundef %9542, ptr noundef %9545, ptr noundef %9548, i32 noundef %9550) #11
  br label %9552

9552:                                             ; preds = %9535, %9518
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #11
  br label %9553

9553:                                             ; preds = %9552
  br label %9554

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

9555:                                             ; No predecessors!
  br label %9556

9556:                                             ; preds = %9555
  br label %9557

9557:                                             ; preds = %9556, %9497
  br label %9558

9558:                                             ; preds = %9557
  br label %9559

9559:                                             ; preds = %9558
  br label %9560

9560:                                             ; preds = %9559
  br label %9561

9561:                                             ; preds = %9560
  br label %9562

9562:                                             ; preds = %9561
  %9563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9563, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9564 = call ptr @__errno_location() #12
  store i32 0, ptr %9564, align 4, !tbaa !5
  br label %9565

9565:                                             ; preds = %9562
  br label %9566

9566:                                             ; preds = %9565
  br label %9567

9567:                                             ; preds = %9566
  br label %9568

9568:                                             ; preds = %9567
  br label %9569

9569:                                             ; preds = %9568
  %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 = call i32 @s2n_stuffer_free(ptr noundef %178)
  %9573 = icmp eq i32 %9572, -1
  br i1 %9573, label %9574, label %9627

9574:                                             ; preds = %9569
  br label %9575

9575:                                             ; preds = %9574
  br label %9576

9576:                                             ; preds = %9575
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %9577 = call ptr @__errno_location() #12
  %9578 = load i32, ptr %9577, align 4, !tbaa !5
  store i32 %9578, ptr %193, align 4, !tbaa !5
  %9579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9580 = call i32 @s2n_print_stacktrace(ptr noundef %9579)
  %9581 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9582 = trunc i8 %9581 to i1
  br i1 %9582, label %9583, label %9605

9583:                                             ; preds = %9576
  %9584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9585 = call i32 @fileno(ptr noundef %9584) #11
  %9586 = call i32 @isatty(i32 noundef %9585) #11
  %9587 = icmp ne i32 %9586, 0
  br i1 %9587, label %9588, label %9605

9588:                                             ; preds = %9583
  %9589 = load i32, ptr %193, align 4, !tbaa !5
  %9590 = call ptr @__errno_location() #12
  store i32 %9589, ptr %9590, align 4, !tbaa !5
  %9591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9592 = load i32, ptr @test_count, align 4, !tbaa !5
  %9593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9594 = load i32, ptr %9593, align 4, !tbaa !5
  %9595 = call ptr @s2n_strerror(i32 noundef %9594, ptr noundef @.str.4)
  %9596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9597 = load i32, ptr %9596, align 4, !tbaa !5
  %9598 = call ptr @s2n_strerror_debug(i32 noundef %9597, ptr noundef @.str.4)
  %9599 = call ptr @__errno_location() #12
  %9600 = load i32, ptr %9599, align 4, !tbaa !5
  %9601 = call ptr @strerror(i32 noundef %9600) #11
  %9602 = call ptr @__errno_location() #12
  %9603 = load i32, ptr %9602, align 4, !tbaa !5
  %9604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9591, ptr noundef @.str.2, i32 noundef %9592, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 353, ptr noundef %9595, ptr noundef %9598, ptr noundef %9601, i32 noundef %9603) #11
  br label %9622

9605:                                             ; preds = %9583, %9576
  %9606 = load i32, ptr %193, align 4, !tbaa !5
  %9607 = call ptr @__errno_location() #12
  store i32 %9606, ptr %9607, align 4, !tbaa !5
  %9608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9609 = load i32, ptr @test_count, align 4, !tbaa !5
  %9610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9611 = load i32, ptr %9610, align 4, !tbaa !5
  %9612 = call ptr @s2n_strerror(i32 noundef %9611, ptr noundef @.str.4)
  %9613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9614 = load i32, ptr %9613, align 4, !tbaa !5
  %9615 = call ptr @s2n_strerror_debug(i32 noundef %9614, ptr noundef @.str.4)
  %9616 = call ptr @__errno_location() #12
  %9617 = load i32, ptr %9616, align 4, !tbaa !5
  %9618 = call ptr @strerror(i32 noundef %9617) #11
  %9619 = call ptr @__errno_location() #12
  %9620 = load i32, ptr %9619, align 4, !tbaa !5
  %9621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9608, ptr noundef @.str.5, i32 noundef %9609, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 353, ptr noundef %9612, ptr noundef %9615, ptr noundef %9618, i32 noundef %9620) #11
  br label %9622

9622:                                             ; preds = %9605, %9588
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %9623

9623:                                             ; preds = %9622
  br label %9624

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

9625:                                             ; No predecessors!
  br label %9626

9626:                                             ; preds = %9625
  br label %9627

9627:                                             ; preds = %9626, %9569
  br label %9628

9628:                                             ; preds = %9627
  br label %9629

9629:                                             ; preds = %9628
  br label %9630

9630:                                             ; preds = %9629
  %9631 = load i32, ptr @test_count, align 4, !tbaa !5
  %9632 = add nsw i32 %9631, 1
  store i32 %9632, ptr @test_count, align 4, !tbaa !5
  %9633 = load ptr, ptr %179, align 8, !tbaa !9
  %9634 = call i32 @s2n_connection_free(ptr noundef %9633)
  %9635 = icmp eq i32 %9634, -1
  br i1 %9635, label %9636, label %9689

9636:                                             ; preds = %9630
  br label %9637

9637:                                             ; preds = %9636
  br label %9638

9638:                                             ; preds = %9637
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #11
  %9639 = call ptr @__errno_location() #12
  %9640 = load i32, ptr %9639, align 4, !tbaa !5
  store i32 %9640, ptr %194, align 4, !tbaa !5
  %9641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9642 = call i32 @s2n_print_stacktrace(ptr noundef %9641)
  %9643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9644 = trunc i8 %9643 to i1
  br i1 %9644, label %9645, label %9667

9645:                                             ; preds = %9638
  %9646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9647 = call i32 @fileno(ptr noundef %9646) #11
  %9648 = call i32 @isatty(i32 noundef %9647) #11
  %9649 = icmp ne i32 %9648, 0
  br i1 %9649, label %9650, label %9667

9650:                                             ; preds = %9645
  %9651 = load i32, ptr %194, align 4, !tbaa !5
  %9652 = call ptr @__errno_location() #12
  store i32 %9651, ptr %9652, align 4, !tbaa !5
  %9653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9654 = load i32, ptr @test_count, align 4, !tbaa !5
  %9655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9656 = load i32, ptr %9655, align 4, !tbaa !5
  %9657 = call ptr @s2n_strerror(i32 noundef %9656, ptr noundef @.str.4)
  %9658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9659 = load i32, ptr %9658, align 4, !tbaa !5
  %9660 = call ptr @s2n_strerror_debug(i32 noundef %9659, ptr noundef @.str.4)
  %9661 = call ptr @__errno_location() #12
  %9662 = load i32, ptr %9661, align 4, !tbaa !5
  %9663 = call ptr @strerror(i32 noundef %9662) #11
  %9664 = call ptr @__errno_location() #12
  %9665 = load i32, ptr %9664, align 4, !tbaa !5
  %9666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9653, ptr noundef @.str.2, i32 noundef %9654, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 354, ptr noundef %9657, ptr noundef %9660, ptr noundef %9663, i32 noundef %9665) #11
  br label %9684

9667:                                             ; preds = %9645, %9638
  %9668 = load i32, ptr %194, align 4, !tbaa !5
  %9669 = call ptr @__errno_location() #12
  store i32 %9668, ptr %9669, align 4, !tbaa !5
  %9670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9671 = load i32, ptr @test_count, align 4, !tbaa !5
  %9672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9673 = load i32, ptr %9672, align 4, !tbaa !5
  %9674 = call ptr @s2n_strerror(i32 noundef %9673, ptr noundef @.str.4)
  %9675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9676 = load i32, ptr %9675, align 4, !tbaa !5
  %9677 = call ptr @s2n_strerror_debug(i32 noundef %9676, ptr noundef @.str.4)
  %9678 = call ptr @__errno_location() #12
  %9679 = load i32, ptr %9678, align 4, !tbaa !5
  %9680 = call ptr @strerror(i32 noundef %9679) #11
  %9681 = call ptr @__errno_location() #12
  %9682 = load i32, ptr %9681, align 4, !tbaa !5
  %9683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9670, ptr noundef @.str.5, i32 noundef %9671, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 354, ptr noundef %9674, ptr noundef %9677, ptr noundef %9680, i32 noundef %9682) #11
  br label %9684

9684:                                             ; preds = %9667, %9650
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %9685

9685:                                             ; preds = %9684
  br label %9686

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

9687:                                             ; No predecessors!
  br label %9688

9688:                                             ; preds = %9687
  br label %9689

9689:                                             ; preds = %9688, %9630
  br label %9690

9690:                                             ; preds = %9689
  br label %9691

9691:                                             ; preds = %9690
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %184) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %178) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %195) #11
  store ptr null, ptr %195, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #11
  store ptr null, ptr %196, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %197) #11
  call void @llvm.memset.p0.i64(ptr align 8 %197, i8 0, i64 40, i1 false)
  br label %9692

9692:                                             ; preds = %9691
  %9693 = load i32, ptr @test_count, align 4, !tbaa !5
  %9694 = add nsw i32 %9693, 1
  store i32 %9694, ptr @test_count, align 4, !tbaa !5
  %9695 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9695, ptr %195, align 8, !tbaa !9
  %9696 = icmp eq ptr %9695, null
  br i1 %9696, label %9697, label %9750

9697:                                             ; preds = %9692
  br label %9698

9698:                                             ; preds = %9697
  br label %9699

9699:                                             ; preds = %9698
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #11
  %9700 = call ptr @__errno_location() #12
  %9701 = load i32, ptr %9700, align 4, !tbaa !5
  store i32 %9701, ptr %198, align 4, !tbaa !5
  %9702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9703 = call i32 @s2n_print_stacktrace(ptr noundef %9702)
  %9704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9705 = trunc i8 %9704 to i1
  br i1 %9705, label %9706, label %9728

9706:                                             ; preds = %9699
  %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
  %9710 = icmp ne i32 %9709, 0
  br i1 %9710, label %9711, label %9728

9711:                                             ; preds = %9706
  %9712 = load i32, ptr %198, align 4, !tbaa !5
  %9713 = call ptr @__errno_location() #12
  store i32 %9712, ptr %9713, align 4, !tbaa !5
  %9714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9715 = load i32, ptr @test_count, align 4, !tbaa !5
  %9716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9717 = load i32, ptr %9716, align 4, !tbaa !5
  %9718 = call ptr @s2n_strerror(i32 noundef %9717, ptr noundef @.str.4)
  %9719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9720 = load i32, ptr %9719, align 4, !tbaa !5
  %9721 = call ptr @s2n_strerror_debug(i32 noundef %9720, ptr noundef @.str.4)
  %9722 = call ptr @__errno_location() #12
  %9723 = load i32, ptr %9722, align 4, !tbaa !5
  %9724 = call ptr @strerror(i32 noundef %9723) #11
  %9725 = call ptr @__errno_location() #12
  %9726 = load i32, ptr %9725, align 4, !tbaa !5
  %9727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9714, ptr noundef @.str.2, i32 noundef %9715, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 363, ptr noundef %9718, ptr noundef %9721, ptr noundef %9724, i32 noundef %9726) #11
  br label %9745

9728:                                             ; preds = %9706, %9699
  %9729 = load i32, ptr %198, align 4, !tbaa !5
  %9730 = call ptr @__errno_location() #12
  store i32 %9729, ptr %9730, align 4, !tbaa !5
  %9731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9732 = load i32, ptr @test_count, align 4, !tbaa !5
  %9733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9734 = load i32, ptr %9733, align 4, !tbaa !5
  %9735 = call ptr @s2n_strerror(i32 noundef %9734, ptr noundef @.str.4)
  %9736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9737 = load i32, ptr %9736, align 4, !tbaa !5
  %9738 = call ptr @s2n_strerror_debug(i32 noundef %9737, ptr noundef @.str.4)
  %9739 = call ptr @__errno_location() #12
  %9740 = load i32, ptr %9739, align 4, !tbaa !5
  %9741 = call ptr @strerror(i32 noundef %9740) #11
  %9742 = call ptr @__errno_location() #12
  %9743 = load i32, ptr %9742, align 4, !tbaa !5
  %9744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9731, ptr noundef @.str.5, i32 noundef %9732, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 363, ptr noundef %9735, ptr noundef %9738, ptr noundef %9741, i32 noundef %9743) #11
  br label %9745

9745:                                             ; preds = %9728, %9711
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #11
  br label %9746

9746:                                             ; preds = %9745
  br label %9747

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

9748:                                             ; No predecessors!
  br label %9749

9749:                                             ; preds = %9748
  br label %9750

9750:                                             ; preds = %9749, %9692
  br label %9751

9751:                                             ; preds = %9750
  br label %9752

9752:                                             ; preds = %9751
  br label %9753

9753:                                             ; preds = %9752
  %9754 = load i32, ptr @test_count, align 4, !tbaa !5
  %9755 = add nsw i32 %9754, 1
  store i32 %9755, ptr @test_count, align 4, !tbaa !5
  %9756 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9756, ptr %196, align 8, !tbaa !9
  %9757 = icmp eq ptr %9756, null
  br i1 %9757, label %9758, label %9811

9758:                                             ; preds = %9753
  br label %9759

9759:                                             ; preds = %9758
  br label %9760

9760:                                             ; preds = %9759
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #11
  %9761 = call ptr @__errno_location() #12
  %9762 = load i32, ptr %9761, align 4, !tbaa !5
  store i32 %9762, ptr %199, align 4, !tbaa !5
  %9763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9764 = call i32 @s2n_print_stacktrace(ptr noundef %9763)
  %9765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9766 = trunc i8 %9765 to i1
  br i1 %9766, label %9767, label %9789

9767:                                             ; preds = %9760
  %9768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9769 = call i32 @fileno(ptr noundef %9768) #11
  %9770 = call i32 @isatty(i32 noundef %9769) #11
  %9771 = icmp ne i32 %9770, 0
  br i1 %9771, label %9772, label %9789

9772:                                             ; preds = %9767
  %9773 = load i32, ptr %199, align 4, !tbaa !5
  %9774 = call ptr @__errno_location() #12
  store i32 %9773, ptr %9774, align 4, !tbaa !5
  %9775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9776 = load i32, ptr @test_count, align 4, !tbaa !5
  %9777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9778 = load i32, ptr %9777, align 4, !tbaa !5
  %9779 = call ptr @s2n_strerror(i32 noundef %9778, ptr noundef @.str.4)
  %9780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9781 = load i32, ptr %9780, align 4, !tbaa !5
  %9782 = call ptr @s2n_strerror_debug(i32 noundef %9781, ptr noundef @.str.4)
  %9783 = call ptr @__errno_location() #12
  %9784 = load i32, ptr %9783, align 4, !tbaa !5
  %9785 = call ptr @strerror(i32 noundef %9784) #11
  %9786 = call ptr @__errno_location() #12
  %9787 = load i32, ptr %9786, align 4, !tbaa !5
  %9788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9775, ptr noundef @.str.2, i32 noundef %9776, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 364, ptr noundef %9779, ptr noundef %9782, ptr noundef %9785, i32 noundef %9787) #11
  br label %9806

9789:                                             ; preds = %9767, %9760
  %9790 = load i32, ptr %199, align 4, !tbaa !5
  %9791 = call ptr @__errno_location() #12
  store i32 %9790, ptr %9791, align 4, !tbaa !5
  %9792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9793 = load i32, ptr @test_count, align 4, !tbaa !5
  %9794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9795 = load i32, ptr %9794, align 4, !tbaa !5
  %9796 = call ptr @s2n_strerror(i32 noundef %9795, ptr noundef @.str.4)
  %9797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9798 = load i32, ptr %9797, align 4, !tbaa !5
  %9799 = call ptr @s2n_strerror_debug(i32 noundef %9798, ptr noundef @.str.4)
  %9800 = call ptr @__errno_location() #12
  %9801 = load i32, ptr %9800, align 4, !tbaa !5
  %9802 = call ptr @strerror(i32 noundef %9801) #11
  %9803 = call ptr @__errno_location() #12
  %9804 = load i32, ptr %9803, align 4, !tbaa !5
  %9805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9792, ptr noundef @.str.5, i32 noundef %9793, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 364, ptr noundef %9796, ptr noundef %9799, ptr noundef %9802, i32 noundef %9804) #11
  br label %9806

9806:                                             ; preds = %9789, %9772
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #11
  br label %9807

9807:                                             ; preds = %9806
  br label %9808

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

9809:                                             ; No predecessors!
  br label %9810

9810:                                             ; preds = %9809
  br label %9811

9811:                                             ; preds = %9810, %9753
  br label %9812

9812:                                             ; preds = %9811
  br label %9813

9813:                                             ; preds = %9812
  %9814 = load ptr, ptr %196, align 8, !tbaa !9
  %9815 = getelementptr inbounds %struct.s2n_connection, ptr %9814, i32 0, i32 23
  store i8 34, ptr %9815, align 4, !tbaa !59
  br label %9816

9816:                                             ; preds = %9813
  %9817 = load i32, ptr @test_count, align 4, !tbaa !5
  %9818 = add nsw i32 %9817, 1
  store i32 %9818, ptr @test_count, align 4, !tbaa !5
  %9819 = load ptr, ptr %196, align 8, !tbaa !9
  %9820 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %9819)
  %9821 = getelementptr inbounds %struct.s2n_result, ptr %200, i32 0, i32 0
  store i32 %9820, ptr %9821, align 4
  %9822 = getelementptr inbounds %struct.s2n_result, ptr %200, i32 0, i32 0
  %9823 = load i32, ptr %9822, align 4
  %9824 = call zeroext i1 @s2n_result_is_ok(i32 %9823)
  br i1 %9824, label %9878, label %9825

9825:                                             ; preds = %9816
  br label %9826

9826:                                             ; preds = %9825
  br label %9827

9827:                                             ; preds = %9826
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %9828 = call ptr @__errno_location() #12
  %9829 = load i32, ptr %9828, align 4, !tbaa !5
  store i32 %9829, ptr %201, align 4, !tbaa !5
  %9830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9831 = call i32 @s2n_print_stacktrace(ptr noundef %9830)
  %9832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9833 = trunc i8 %9832 to i1
  br i1 %9833, label %9834, label %9856

9834:                                             ; preds = %9827
  %9835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9836 = call i32 @fileno(ptr noundef %9835) #11
  %9837 = call i32 @isatty(i32 noundef %9836) #11
  %9838 = icmp ne i32 %9837, 0
  br i1 %9838, label %9839, label %9856

9839:                                             ; preds = %9834
  %9840 = load i32, ptr %201, align 4, !tbaa !5
  %9841 = call ptr @__errno_location() #12
  store i32 %9840, ptr %9841, align 4, !tbaa !5
  %9842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9843 = load i32, ptr @test_count, align 4, !tbaa !5
  %9844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9845 = load i32, ptr %9844, align 4, !tbaa !5
  %9846 = call ptr @s2n_strerror(i32 noundef %9845, ptr noundef @.str.4)
  %9847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9848 = load i32, ptr %9847, align 4, !tbaa !5
  %9849 = call ptr @s2n_strerror_debug(i32 noundef %9848, ptr noundef @.str.4)
  %9850 = call ptr @__errno_location() #12
  %9851 = load i32, ptr %9850, align 4, !tbaa !5
  %9852 = call ptr @strerror(i32 noundef %9851) #11
  %9853 = call ptr @__errno_location() #12
  %9854 = load i32, ptr %9853, align 4, !tbaa !5
  %9855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9842, ptr noundef @.str.2, i32 noundef %9843, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 366, ptr noundef %9846, ptr noundef %9849, ptr noundef %9852, i32 noundef %9854) #11
  br label %9873

9856:                                             ; preds = %9834, %9827
  %9857 = load i32, ptr %201, align 4, !tbaa !5
  %9858 = call ptr @__errno_location() #12
  store i32 %9857, ptr %9858, align 4, !tbaa !5
  %9859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9860 = load i32, ptr @test_count, align 4, !tbaa !5
  %9861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9862 = load i32, ptr %9861, align 4, !tbaa !5
  %9863 = call ptr @s2n_strerror(i32 noundef %9862, ptr noundef @.str.4)
  %9864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9865 = load i32, ptr %9864, align 4, !tbaa !5
  %9866 = call ptr @s2n_strerror_debug(i32 noundef %9865, ptr noundef @.str.4)
  %9867 = call ptr @__errno_location() #12
  %9868 = load i32, ptr %9867, align 4, !tbaa !5
  %9869 = call ptr @strerror(i32 noundef %9868) #11
  %9870 = call ptr @__errno_location() #12
  %9871 = load i32, ptr %9870, align 4, !tbaa !5
  %9872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9859, ptr noundef @.str.5, i32 noundef %9860, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 366, ptr noundef %9863, ptr noundef %9866, ptr noundef %9869, i32 noundef %9871) #11
  br label %9873

9873:                                             ; preds = %9856, %9839
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %9874

9874:                                             ; preds = %9873
  br label %9875

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

9876:                                             ; No predecessors!
  br label %9877

9877:                                             ; preds = %9876
  br label %9878

9878:                                             ; preds = %9877, %9816
  br label %9879

9879:                                             ; preds = %9878
  br label %9880

9880:                                             ; preds = %9879
  br label %9881

9881:                                             ; preds = %9880
  %9882 = load i32, ptr @test_count, align 4, !tbaa !5
  %9883 = add nsw i32 %9882, 1
  store i32 %9883, ptr @test_count, align 4, !tbaa !5
  %9884 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %197, i32 noundef 0)
  %9885 = icmp eq i32 %9884, -1
  br i1 %9885, label %9886, label %9939

9886:                                             ; preds = %9881
  br label %9887

9887:                                             ; preds = %9886
  br label %9888

9888:                                             ; preds = %9887
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #11
  %9889 = call ptr @__errno_location() #12
  %9890 = load i32, ptr %9889, align 4, !tbaa !5
  store i32 %9890, ptr %202, align 4, !tbaa !5
  %9891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9892 = call i32 @s2n_print_stacktrace(ptr noundef %9891)
  %9893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9894 = trunc i8 %9893 to i1
  br i1 %9894, label %9895, label %9917

9895:                                             ; preds = %9888
  %9896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9897 = call i32 @fileno(ptr noundef %9896) #11
  %9898 = call i32 @isatty(i32 noundef %9897) #11
  %9899 = icmp ne i32 %9898, 0
  br i1 %9899, label %9900, label %9917

9900:                                             ; preds = %9895
  %9901 = load i32, ptr %202, align 4, !tbaa !5
  %9902 = call ptr @__errno_location() #12
  store i32 %9901, ptr %9902, align 4, !tbaa !5
  %9903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9904 = load i32, ptr @test_count, align 4, !tbaa !5
  %9905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9906 = load i32, ptr %9905, align 4, !tbaa !5
  %9907 = call ptr @s2n_strerror(i32 noundef %9906, ptr noundef @.str.4)
  %9908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9909 = load i32, ptr %9908, align 4, !tbaa !5
  %9910 = call ptr @s2n_strerror_debug(i32 noundef %9909, ptr noundef @.str.4)
  %9911 = call ptr @__errno_location() #12
  %9912 = load i32, ptr %9911, align 4, !tbaa !5
  %9913 = call ptr @strerror(i32 noundef %9912) #11
  %9914 = call ptr @__errno_location() #12
  %9915 = load i32, ptr %9914, align 4, !tbaa !5
  %9916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9903, ptr noundef @.str.2, i32 noundef %9904, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 367, ptr noundef %9907, ptr noundef %9910, ptr noundef %9913, i32 noundef %9915) #11
  br label %9934

9917:                                             ; preds = %9895, %9888
  %9918 = load i32, ptr %202, align 4, !tbaa !5
  %9919 = call ptr @__errno_location() #12
  store i32 %9918, ptr %9919, align 4, !tbaa !5
  %9920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9921 = load i32, ptr @test_count, align 4, !tbaa !5
  %9922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9923 = load i32, ptr %9922, align 4, !tbaa !5
  %9924 = call ptr @s2n_strerror(i32 noundef %9923, ptr noundef @.str.4)
  %9925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9926 = load i32, ptr %9925, align 4, !tbaa !5
  %9927 = call ptr @s2n_strerror_debug(i32 noundef %9926, ptr noundef @.str.4)
  %9928 = call ptr @__errno_location() #12
  %9929 = load i32, ptr %9928, align 4, !tbaa !5
  %9930 = call ptr @strerror(i32 noundef %9929) #11
  %9931 = call ptr @__errno_location() #12
  %9932 = load i32, ptr %9931, align 4, !tbaa !5
  %9933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9920, ptr noundef @.str.5, i32 noundef %9921, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 367, ptr noundef %9924, ptr noundef %9927, ptr noundef %9930, i32 noundef %9932) #11
  br label %9934

9934:                                             ; preds = %9917, %9900
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #11
  br label %9935

9935:                                             ; preds = %9934
  br label %9936

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

9937:                                             ; No predecessors!
  br label %9938

9938:                                             ; preds = %9937
  br label %9939

9939:                                             ; preds = %9938, %9881
  br label %9940

9940:                                             ; preds = %9939
  br label %9941

9941:                                             ; preds = %9940
  call void @llvm.lifetime.start.p0(i64 8, ptr %203) #11
  store ptr null, ptr %203, align 8, !tbaa !9
  br label %9942

9942:                                             ; preds = %9941
  %9943 = load i32, ptr @test_count, align 4, !tbaa !5
  %9944 = add nsw i32 %9943, 1
  store i32 %9944, ptr @test_count, align 4, !tbaa !5
  %9945 = load ptr, ptr %196, align 8, !tbaa !9
  %9946 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %9945, ptr noundef %203)
  %9947 = icmp eq i32 %9946, -1
  br i1 %9947, label %9948, label %10001

9948:                                             ; preds = %9942
  br label %9949

9949:                                             ; preds = %9948
  br label %9950

9950:                                             ; preds = %9949
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %9951 = call ptr @__errno_location() #12
  %9952 = load i32, ptr %9951, align 4, !tbaa !5
  store i32 %9952, ptr %204, align 4, !tbaa !5
  %9953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9954 = call i32 @s2n_print_stacktrace(ptr noundef %9953)
  %9955 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9956 = trunc i8 %9955 to i1
  br i1 %9956, label %9957, label %9979

9957:                                             ; preds = %9950
  %9958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9959 = call i32 @fileno(ptr noundef %9958) #11
  %9960 = call i32 @isatty(i32 noundef %9959) #11
  %9961 = icmp ne i32 %9960, 0
  br i1 %9961, label %9962, label %9979

9962:                                             ; preds = %9957
  %9963 = load i32, ptr %204, align 4, !tbaa !5
  %9964 = call ptr @__errno_location() #12
  store i32 %9963, ptr %9964, align 4, !tbaa !5
  %9965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9966 = load i32, ptr @test_count, align 4, !tbaa !5
  %9967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9968 = load i32, ptr %9967, align 4, !tbaa !5
  %9969 = call ptr @s2n_strerror(i32 noundef %9968, ptr noundef @.str.4)
  %9970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9971 = load i32, ptr %9970, align 4, !tbaa !5
  %9972 = call ptr @s2n_strerror_debug(i32 noundef %9971, ptr noundef @.str.4)
  %9973 = call ptr @__errno_location() #12
  %9974 = load i32, ptr %9973, align 4, !tbaa !5
  %9975 = call ptr @strerror(i32 noundef %9974) #11
  %9976 = call ptr @__errno_location() #12
  %9977 = load i32, ptr %9976, align 4, !tbaa !5
  %9978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9965, ptr noundef @.str.2, i32 noundef %9966, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 370, ptr noundef %9969, ptr noundef %9972, ptr noundef %9975, i32 noundef %9977) #11
  br label %9996

9979:                                             ; preds = %9957, %9950
  %9980 = load i32, ptr %204, align 4, !tbaa !5
  %9981 = call ptr @__errno_location() #12
  store i32 %9980, ptr %9981, align 4, !tbaa !5
  %9982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9983 = load i32, ptr @test_count, align 4, !tbaa !5
  %9984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9985 = load i32, ptr %9984, align 4, !tbaa !5
  %9986 = call ptr @s2n_strerror(i32 noundef %9985, ptr noundef @.str.4)
  %9987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9988 = load i32, ptr %9987, align 4, !tbaa !5
  %9989 = call ptr @s2n_strerror_debug(i32 noundef %9988, ptr noundef @.str.4)
  %9990 = call ptr @__errno_location() #12
  %9991 = load i32, ptr %9990, align 4, !tbaa !5
  %9992 = call ptr @strerror(i32 noundef %9991) #11
  %9993 = call ptr @__errno_location() #12
  %9994 = load i32, ptr %9993, align 4, !tbaa !5
  %9995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9982, ptr noundef @.str.5, i32 noundef %9983, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 370, ptr noundef %9986, ptr noundef %9989, ptr noundef %9992, i32 noundef %9994) #11
  br label %9996

9996:                                             ; preds = %9979, %9962
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %9997

9997:                                             ; preds = %9996
  br label %9998

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

9999:                                             ; No predecessors!
  br label %10000

10000:                                            ; preds = %9999
  br label %10001

10001:                                            ; preds = %10000, %9942
  br label %10002

10002:                                            ; preds = %10001
  br label %10003

10003:                                            ; preds = %10002
  br label %10004

10004:                                            ; preds = %10003
  %10005 = load i32, ptr @test_count, align 4, !tbaa !5
  %10006 = add nsw i32 %10005, 1
  store i32 %10006, ptr @test_count, align 4, !tbaa !5
  %10007 = load ptr, ptr %203, align 8, !tbaa !9
  %10008 = icmp eq ptr %10007, null
  br i1 %10008, label %10009, label %10062

10009:                                            ; preds = %10004
  br label %10010

10010:                                            ; preds = %10009
  br label %10011

10011:                                            ; preds = %10010
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #11
  %10012 = call ptr @__errno_location() #12
  %10013 = load i32, ptr %10012, align 4, !tbaa !5
  store i32 %10013, ptr %205, align 4, !tbaa !5
  %10014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10015 = call i32 @s2n_print_stacktrace(ptr noundef %10014)
  %10016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10017 = trunc i8 %10016 to i1
  br i1 %10017, label %10018, label %10040

10018:                                            ; preds = %10011
  %10019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10020 = call i32 @fileno(ptr noundef %10019) #11
  %10021 = call i32 @isatty(i32 noundef %10020) #11
  %10022 = icmp ne i32 %10021, 0
  br i1 %10022, label %10023, label %10040

10023:                                            ; preds = %10018
  %10024 = load i32, ptr %205, align 4, !tbaa !5
  %10025 = call ptr @__errno_location() #12
  store i32 %10024, ptr %10025, align 4, !tbaa !5
  %10026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10027 = load i32, ptr @test_count, align 4, !tbaa !5
  %10028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10029 = load i32, ptr %10028, align 4, !tbaa !5
  %10030 = call ptr @s2n_strerror(i32 noundef %10029, ptr noundef @.str.4)
  %10031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10032 = load i32, ptr %10031, align 4, !tbaa !5
  %10033 = call ptr @s2n_strerror_debug(i32 noundef %10032, ptr noundef @.str.4)
  %10034 = call ptr @__errno_location() #12
  %10035 = load i32, ptr %10034, align 4, !tbaa !5
  %10036 = call ptr @strerror(i32 noundef %10035) #11
  %10037 = call ptr @__errno_location() #12
  %10038 = load i32, ptr %10037, align 4, !tbaa !5
  %10039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10026, ptr noundef @.str.2, i32 noundef %10027, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 371, ptr noundef %10030, ptr noundef %10033, ptr noundef %10036, i32 noundef %10038) #11
  br label %10057

10040:                                            ; preds = %10018, %10011
  %10041 = load i32, ptr %205, align 4, !tbaa !5
  %10042 = call ptr @__errno_location() #12
  store i32 %10041, ptr %10042, align 4, !tbaa !5
  %10043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10044 = load i32, ptr @test_count, align 4, !tbaa !5
  %10045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10046 = load i32, ptr %10045, align 4, !tbaa !5
  %10047 = call ptr @s2n_strerror(i32 noundef %10046, ptr noundef @.str.4)
  %10048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10049 = load i32, ptr %10048, align 4, !tbaa !5
  %10050 = call ptr @s2n_strerror_debug(i32 noundef %10049, ptr noundef @.str.4)
  %10051 = call ptr @__errno_location() #12
  %10052 = load i32, ptr %10051, align 4, !tbaa !5
  %10053 = call ptr @strerror(i32 noundef %10052) #11
  %10054 = call ptr @__errno_location() #12
  %10055 = load i32, ptr %10054, align 4, !tbaa !5
  %10056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10043, ptr noundef @.str.5, i32 noundef %10044, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 371, ptr noundef %10047, ptr noundef %10050, ptr noundef %10053, i32 noundef %10055) #11
  br label %10057

10057:                                            ; preds = %10040, %10023
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  br label %10058

10058:                                            ; preds = %10057
  br label %10059

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

10060:                                            ; No predecessors!
  br label %10061

10061:                                            ; preds = %10060
  br label %10062

10062:                                            ; preds = %10061, %10004
  br label %10063

10063:                                            ; preds = %10062
  br label %10064

10064:                                            ; preds = %10063
  br label %10065

10065:                                            ; preds = %10064
  %10066 = load i32, ptr @test_count, align 4, !tbaa !5
  %10067 = add nsw i32 %10066, 1
  store i32 %10067, ptr @test_count, align 4, !tbaa !5
  %10068 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %10069 = load ptr, ptr %195, align 8, !tbaa !9
  %10070 = call i32 %10068(ptr noundef %10069, ptr noundef %197)
  %10071 = icmp eq i32 %10070, -1
  br i1 %10071, label %10072, label %10125

10072:                                            ; preds = %10065
  br label %10073

10073:                                            ; preds = %10072
  br label %10074

10074:                                            ; preds = %10073
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  %10075 = call ptr @__errno_location() #12
  %10076 = load i32, ptr %10075, align 4, !tbaa !5
  store i32 %10076, ptr %206, align 4, !tbaa !5
  %10077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10078 = call i32 @s2n_print_stacktrace(ptr noundef %10077)
  %10079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10080 = trunc i8 %10079 to i1
  br i1 %10080, label %10081, label %10103

10081:                                            ; preds = %10074
  %10082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10083 = call i32 @fileno(ptr noundef %10082) #11
  %10084 = call i32 @isatty(i32 noundef %10083) #11
  %10085 = icmp ne i32 %10084, 0
  br i1 %10085, label %10086, label %10103

10086:                                            ; preds = %10081
  %10087 = load i32, ptr %206, align 4, !tbaa !5
  %10088 = call ptr @__errno_location() #12
  store i32 %10087, ptr %10088, align 4, !tbaa !5
  %10089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10090 = load i32, ptr @test_count, align 4, !tbaa !5
  %10091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10092 = load i32, ptr %10091, align 4, !tbaa !5
  %10093 = call ptr @s2n_strerror(i32 noundef %10092, ptr noundef @.str.4)
  %10094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10095 = load i32, ptr %10094, align 4, !tbaa !5
  %10096 = call ptr @s2n_strerror_debug(i32 noundef %10095, ptr noundef @.str.4)
  %10097 = call ptr @__errno_location() #12
  %10098 = load i32, ptr %10097, align 4, !tbaa !5
  %10099 = call ptr @strerror(i32 noundef %10098) #11
  %10100 = call ptr @__errno_location() #12
  %10101 = load i32, ptr %10100, align 4, !tbaa !5
  %10102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10089, ptr noundef @.str.2, i32 noundef %10090, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 373, ptr noundef %10093, ptr noundef %10096, ptr noundef %10099, i32 noundef %10101) #11
  br label %10120

10103:                                            ; preds = %10081, %10074
  %10104 = load i32, ptr %206, align 4, !tbaa !5
  %10105 = call ptr @__errno_location() #12
  store i32 %10104, ptr %10105, align 4, !tbaa !5
  %10106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10107 = load i32, ptr @test_count, align 4, !tbaa !5
  %10108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10109 = load i32, ptr %10108, align 4, !tbaa !5
  %10110 = call ptr @s2n_strerror(i32 noundef %10109, ptr noundef @.str.4)
  %10111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10112 = load i32, ptr %10111, align 4, !tbaa !5
  %10113 = call ptr @s2n_strerror_debug(i32 noundef %10112, ptr noundef @.str.4)
  %10114 = call ptr @__errno_location() #12
  %10115 = load i32, ptr %10114, align 4, !tbaa !5
  %10116 = call ptr @strerror(i32 noundef %10115) #11
  %10117 = call ptr @__errno_location() #12
  %10118 = load i32, ptr %10117, align 4, !tbaa !5
  %10119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10106, ptr noundef @.str.5, i32 noundef %10107, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 373, ptr noundef %10110, ptr noundef %10113, ptr noundef %10116, i32 noundef %10118) #11
  br label %10120

10120:                                            ; preds = %10103, %10086
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %10121

10121:                                            ; preds = %10120
  br label %10122

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

10123:                                            ; No predecessors!
  br label %10124

10124:                                            ; preds = %10123
  br label %10125

10125:                                            ; preds = %10124, %10065
  br label %10126

10126:                                            ; preds = %10125
  br label %10127

10127:                                            ; preds = %10126
  br label %10128

10128:                                            ; preds = %10127
  %10129 = load i32, ptr @test_count, align 4, !tbaa !5
  %10130 = add nsw i32 %10129, 1
  store i32 %10130, ptr @test_count, align 4, !tbaa !5
  %10131 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %10132 = load ptr, ptr %196, align 8, !tbaa !9
  %10133 = call i32 %10131(ptr noundef %10132, ptr noundef %197)
  %10134 = icmp eq i32 %10133, -1
  br i1 %10134, label %10135, label %10188

10135:                                            ; preds = %10128
  br label %10136

10136:                                            ; preds = %10135
  br label %10137

10137:                                            ; preds = %10136
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #11
  %10138 = call ptr @__errno_location() #12
  %10139 = load i32, ptr %10138, align 4, !tbaa !5
  store i32 %10139, ptr %207, align 4, !tbaa !5
  %10140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10141 = call i32 @s2n_print_stacktrace(ptr noundef %10140)
  %10142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10143 = trunc i8 %10142 to i1
  br i1 %10143, label %10144, label %10166

10144:                                            ; preds = %10137
  %10145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10146 = call i32 @fileno(ptr noundef %10145) #11
  %10147 = call i32 @isatty(i32 noundef %10146) #11
  %10148 = icmp ne i32 %10147, 0
  br i1 %10148, label %10149, label %10166

10149:                                            ; preds = %10144
  %10150 = load i32, ptr %207, align 4, !tbaa !5
  %10151 = call ptr @__errno_location() #12
  store i32 %10150, ptr %10151, align 4, !tbaa !5
  %10152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10153 = load i32, ptr @test_count, align 4, !tbaa !5
  %10154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10155 = load i32, ptr %10154, align 4, !tbaa !5
  %10156 = call ptr @s2n_strerror(i32 noundef %10155, ptr noundef @.str.4)
  %10157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10158 = load i32, ptr %10157, align 4, !tbaa !5
  %10159 = call ptr @s2n_strerror_debug(i32 noundef %10158, ptr noundef @.str.4)
  %10160 = call ptr @__errno_location() #12
  %10161 = load i32, ptr %10160, align 4, !tbaa !5
  %10162 = call ptr @strerror(i32 noundef %10161) #11
  %10163 = call ptr @__errno_location() #12
  %10164 = load i32, ptr %10163, align 4, !tbaa !5
  %10165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10152, ptr noundef @.str.2, i32 noundef %10153, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 374, ptr noundef %10156, ptr noundef %10159, ptr noundef %10162, i32 noundef %10164) #11
  br label %10183

10166:                                            ; preds = %10144, %10137
  %10167 = load i32, ptr %207, align 4, !tbaa !5
  %10168 = call ptr @__errno_location() #12
  store i32 %10167, ptr %10168, align 4, !tbaa !5
  %10169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10170 = load i32, ptr @test_count, align 4, !tbaa !5
  %10171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10172 = load i32, ptr %10171, align 4, !tbaa !5
  %10173 = call ptr @s2n_strerror(i32 noundef %10172, ptr noundef @.str.4)
  %10174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10175 = load i32, ptr %10174, align 4, !tbaa !5
  %10176 = call ptr @s2n_strerror_debug(i32 noundef %10175, ptr noundef @.str.4)
  %10177 = call ptr @__errno_location() #12
  %10178 = load i32, ptr %10177, align 4, !tbaa !5
  %10179 = call ptr @strerror(i32 noundef %10178) #11
  %10180 = call ptr @__errno_location() #12
  %10181 = load i32, ptr %10180, align 4, !tbaa !5
  %10182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10169, ptr noundef @.str.5, i32 noundef %10170, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 374, ptr noundef %10173, ptr noundef %10176, ptr noundef %10179, i32 noundef %10181) #11
  br label %10183

10183:                                            ; preds = %10166, %10149
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %10184

10184:                                            ; preds = %10183
  br label %10185

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

10186:                                            ; No predecessors!
  br label %10187

10187:                                            ; preds = %10186
  br label %10188

10188:                                            ; preds = %10187, %10128
  br label %10189

10189:                                            ; preds = %10188
  br label %10190

10190:                                            ; preds = %10189
  br label %10191

10191:                                            ; preds = %10190
  %10192 = load i32, ptr @test_count, align 4, !tbaa !5
  %10193 = add nsw i32 %10192, 1
  store i32 %10193, ptr @test_count, align 4, !tbaa !5
  %10194 = getelementptr inbounds %struct.s2n_stuffer, ptr %197, i32 0, i32 2
  %10195 = load i32, ptr %10194, align 4, !tbaa !55
  %10196 = getelementptr inbounds %struct.s2n_stuffer, ptr %197, i32 0, i32 1
  %10197 = load i32, ptr %10196, align 8, !tbaa !56
  %10198 = sub i32 %10195, %10197
  %10199 = icmp eq i32 %10198, 0
  br i1 %10199, label %10253, label %10200

10200:                                            ; preds = %10191
  br label %10201

10201:                                            ; preds = %10200
  br label %10202

10202:                                            ; preds = %10201
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #11
  %10203 = call ptr @__errno_location() #12
  %10204 = load i32, ptr %10203, align 4, !tbaa !5
  store i32 %10204, ptr %208, align 4, !tbaa !5
  %10205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10206 = call i32 @s2n_print_stacktrace(ptr noundef %10205)
  %10207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10208 = trunc i8 %10207 to i1
  br i1 %10208, label %10209, label %10231

10209:                                            ; preds = %10202
  %10210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10211 = call i32 @fileno(ptr noundef %10210) #11
  %10212 = call i32 @isatty(i32 noundef %10211) #11
  %10213 = icmp ne i32 %10212, 0
  br i1 %10213, label %10214, label %10231

10214:                                            ; preds = %10209
  %10215 = load i32, ptr %208, align 4, !tbaa !5
  %10216 = call ptr @__errno_location() #12
  store i32 %10215, ptr %10216, align 4, !tbaa !5
  %10217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10218 = load i32, ptr @test_count, align 4, !tbaa !5
  %10219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10220 = load i32, ptr %10219, align 4, !tbaa !5
  %10221 = call ptr @s2n_strerror(i32 noundef %10220, ptr noundef @.str.4)
  %10222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10223 = load i32, ptr %10222, align 4, !tbaa !5
  %10224 = call ptr @s2n_strerror_debug(i32 noundef %10223, ptr noundef @.str.4)
  %10225 = call ptr @__errno_location() #12
  %10226 = load i32, ptr %10225, align 4, !tbaa !5
  %10227 = call ptr @strerror(i32 noundef %10226) #11
  %10228 = call ptr @__errno_location() #12
  %10229 = load i32, ptr %10228, align 4, !tbaa !5
  %10230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10217, ptr noundef @.str.2, i32 noundef %10218, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 377, ptr noundef %10221, ptr noundef %10224, ptr noundef %10227, i32 noundef %10229) #11
  br label %10248

10231:                                            ; preds = %10209, %10202
  %10232 = load i32, ptr %208, align 4, !tbaa !5
  %10233 = call ptr @__errno_location() #12
  store i32 %10232, ptr %10233, align 4, !tbaa !5
  %10234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10235 = load i32, ptr @test_count, align 4, !tbaa !5
  %10236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10237 = load i32, ptr %10236, align 4, !tbaa !5
  %10238 = call ptr @s2n_strerror(i32 noundef %10237, ptr noundef @.str.4)
  %10239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10240 = load i32, ptr %10239, align 4, !tbaa !5
  %10241 = call ptr @s2n_strerror_debug(i32 noundef %10240, ptr noundef @.str.4)
  %10242 = call ptr @__errno_location() #12
  %10243 = load i32, ptr %10242, align 4, !tbaa !5
  %10244 = call ptr @strerror(i32 noundef %10243) #11
  %10245 = call ptr @__errno_location() #12
  %10246 = load i32, ptr %10245, align 4, !tbaa !5
  %10247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10234, ptr noundef @.str.5, i32 noundef %10235, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 377, ptr noundef %10238, ptr noundef %10241, ptr noundef %10244, i32 noundef %10246) #11
  br label %10248

10248:                                            ; preds = %10231, %10214
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %10249

10249:                                            ; preds = %10248
  br label %10250

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

10251:                                            ; No predecessors!
  br label %10252

10252:                                            ; preds = %10251
  br label %10253

10253:                                            ; preds = %10252, %10191
  br label %10254

10254:                                            ; preds = %10253
  br label %10255

10255:                                            ; preds = %10254
  %10256 = load ptr, ptr %203, align 8, !tbaa !9
  %10257 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %10256, i32 0, i32 1
  %10258 = load ptr, ptr %10257, align 8, !tbaa !43
  %10259 = getelementptr inbounds ptr, ptr %10258, i64 0
  %10260 = load ptr, ptr %10259, align 8, !tbaa !9
  %10261 = load ptr, ptr %196, align 8, !tbaa !9
  %10262 = getelementptr inbounds %struct.s2n_connection, ptr %10261, i32 0, i32 31
  %10263 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10262, i32 0, i32 1
  %10264 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10263, i32 0, i32 0
  store ptr %10260, ptr %10264, align 8, !tbaa !42
  br label %10265

10265:                                            ; preds = %10255
  %10266 = load i32, ptr @test_count, align 4, !tbaa !5
  %10267 = add nsw i32 %10266, 1
  store i32 %10267, ptr @test_count, align 4, !tbaa !5
  %10268 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %10269 = load ptr, ptr %196, align 8, !tbaa !9
  %10270 = call i32 %10268(ptr noundef %10269, ptr noundef %197)
  %10271 = icmp eq i32 %10270, -1
  br i1 %10271, label %10272, label %10325

10272:                                            ; preds = %10265
  br label %10273

10273:                                            ; preds = %10272
  br label %10274

10274:                                            ; preds = %10273
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #11
  %10275 = call ptr @__errno_location() #12
  %10276 = load i32, ptr %10275, align 4, !tbaa !5
  store i32 %10276, ptr %209, align 4, !tbaa !5
  %10277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10278 = call i32 @s2n_print_stacktrace(ptr noundef %10277)
  %10279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10280 = trunc i8 %10279 to i1
  br i1 %10280, label %10281, label %10303

10281:                                            ; preds = %10274
  %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
  %10285 = icmp ne i32 %10284, 0
  br i1 %10285, label %10286, label %10303

10286:                                            ; preds = %10281
  %10287 = load i32, ptr %209, align 4, !tbaa !5
  %10288 = call ptr @__errno_location() #12
  store i32 %10287, ptr %10288, align 4, !tbaa !5
  %10289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10290 = load i32, ptr @test_count, align 4, !tbaa !5
  %10291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10292 = load i32, ptr %10291, align 4, !tbaa !5
  %10293 = call ptr @s2n_strerror(i32 noundef %10292, ptr noundef @.str.4)
  %10294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10295 = load i32, ptr %10294, align 4, !tbaa !5
  %10296 = call ptr @s2n_strerror_debug(i32 noundef %10295, ptr noundef @.str.4)
  %10297 = call ptr @__errno_location() #12
  %10298 = load i32, ptr %10297, align 4, !tbaa !5
  %10299 = call ptr @strerror(i32 noundef %10298) #11
  %10300 = call ptr @__errno_location() #12
  %10301 = load i32, ptr %10300, align 4, !tbaa !5
  %10302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10289, ptr noundef @.str.2, i32 noundef %10290, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 382, ptr noundef %10293, ptr noundef %10296, ptr noundef %10299, i32 noundef %10301) #11
  br label %10320

10303:                                            ; preds = %10281, %10274
  %10304 = load i32, ptr %209, align 4, !tbaa !5
  %10305 = call ptr @__errno_location() #12
  store i32 %10304, ptr %10305, align 4, !tbaa !5
  %10306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10307 = load i32, ptr @test_count, align 4, !tbaa !5
  %10308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10309 = load i32, ptr %10308, align 4, !tbaa !5
  %10310 = call ptr @s2n_strerror(i32 noundef %10309, ptr noundef @.str.4)
  %10311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10312 = load i32, ptr %10311, align 4, !tbaa !5
  %10313 = call ptr @s2n_strerror_debug(i32 noundef %10312, ptr noundef @.str.4)
  %10314 = call ptr @__errno_location() #12
  %10315 = load i32, ptr %10314, align 4, !tbaa !5
  %10316 = call ptr @strerror(i32 noundef %10315) #11
  %10317 = call ptr @__errno_location() #12
  %10318 = load i32, ptr %10317, align 4, !tbaa !5
  %10319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10306, ptr noundef @.str.5, i32 noundef %10307, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 382, ptr noundef %10310, ptr noundef %10313, ptr noundef %10316, i32 noundef %10318) #11
  br label %10320

10320:                                            ; preds = %10303, %10286
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #11
  br label %10321

10321:                                            ; preds = %10320
  br label %10322

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

10323:                                            ; No predecessors!
  br label %10324

10324:                                            ; preds = %10323
  br label %10325

10325:                                            ; preds = %10324, %10265
  br label %10326

10326:                                            ; preds = %10325
  br label %10327

10327:                                            ; preds = %10326
  br label %10328

10328:                                            ; preds = %10327
  %10329 = load i32, ptr @test_count, align 4, !tbaa !5
  %10330 = add nsw i32 %10329, 1
  store i32 %10330, ptr @test_count, align 4, !tbaa !5
  %10331 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %10332 = load ptr, ptr %195, align 8, !tbaa !9
  %10333 = call i32 %10331(ptr noundef %10332, ptr noundef %197)
  %10334 = icmp eq i32 %10333, -1
  br i1 %10334, label %10335, label %10388

10335:                                            ; preds = %10328
  br label %10336

10336:                                            ; preds = %10335
  br label %10337

10337:                                            ; preds = %10336
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %10338 = call ptr @__errno_location() #12
  %10339 = load i32, ptr %10338, align 4, !tbaa !5
  store i32 %10339, ptr %210, align 4, !tbaa !5
  %10340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10341 = call i32 @s2n_print_stacktrace(ptr noundef %10340)
  %10342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10343 = trunc i8 %10342 to i1
  br i1 %10343, label %10344, label %10366

10344:                                            ; preds = %10337
  %10345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10346 = call i32 @fileno(ptr noundef %10345) #11
  %10347 = call i32 @isatty(i32 noundef %10346) #11
  %10348 = icmp ne i32 %10347, 0
  br i1 %10348, label %10349, label %10366

10349:                                            ; preds = %10344
  %10350 = load i32, ptr %210, align 4, !tbaa !5
  %10351 = call ptr @__errno_location() #12
  store i32 %10350, ptr %10351, align 4, !tbaa !5
  %10352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10353 = load i32, ptr @test_count, align 4, !tbaa !5
  %10354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10355 = load i32, ptr %10354, align 4, !tbaa !5
  %10356 = call ptr @s2n_strerror(i32 noundef %10355, ptr noundef @.str.4)
  %10357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10358 = load i32, ptr %10357, align 4, !tbaa !5
  %10359 = call ptr @s2n_strerror_debug(i32 noundef %10358, ptr noundef @.str.4)
  %10360 = call ptr @__errno_location() #12
  %10361 = load i32, ptr %10360, align 4, !tbaa !5
  %10362 = call ptr @strerror(i32 noundef %10361) #11
  %10363 = call ptr @__errno_location() #12
  %10364 = load i32, ptr %10363, align 4, !tbaa !5
  %10365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10352, ptr noundef @.str.2, i32 noundef %10353, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 383, ptr noundef %10356, ptr noundef %10359, ptr noundef %10362, i32 noundef %10364) #11
  br label %10383

10366:                                            ; preds = %10344, %10337
  %10367 = load i32, ptr %210, align 4, !tbaa !5
  %10368 = call ptr @__errno_location() #12
  store i32 %10367, ptr %10368, align 4, !tbaa !5
  %10369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10370 = load i32, ptr @test_count, align 4, !tbaa !5
  %10371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10372 = load i32, ptr %10371, align 4, !tbaa !5
  %10373 = call ptr @s2n_strerror(i32 noundef %10372, ptr noundef @.str.4)
  %10374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10375 = load i32, ptr %10374, align 4, !tbaa !5
  %10376 = call ptr @s2n_strerror_debug(i32 noundef %10375, ptr noundef @.str.4)
  %10377 = call ptr @__errno_location() #12
  %10378 = load i32, ptr %10377, align 4, !tbaa !5
  %10379 = call ptr @strerror(i32 noundef %10378) #11
  %10380 = call ptr @__errno_location() #12
  %10381 = load i32, ptr %10380, align 4, !tbaa !5
  %10382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10369, ptr noundef @.str.5, i32 noundef %10370, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 383, ptr noundef %10373, ptr noundef %10376, ptr noundef %10379, i32 noundef %10381) #11
  br label %10383

10383:                                            ; preds = %10366, %10349
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %10384

10384:                                            ; preds = %10383
  br label %10385

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

10386:                                            ; No predecessors!
  br label %10387

10387:                                            ; preds = %10386
  br label %10388

10388:                                            ; preds = %10387, %10328
  br label %10389

10389:                                            ; preds = %10388
  br label %10390

10390:                                            ; preds = %10389
  br label %10391

10391:                                            ; preds = %10390
  %10392 = load i32, ptr @test_count, align 4, !tbaa !5
  %10393 = add nsw i32 %10392, 1
  store i32 %10393, ptr @test_count, align 4, !tbaa !5
  %10394 = getelementptr inbounds %struct.s2n_stuffer, ptr %197, i32 0, i32 2
  %10395 = load i32, ptr %10394, align 4, !tbaa !55
  %10396 = getelementptr inbounds %struct.s2n_stuffer, ptr %197, i32 0, i32 1
  %10397 = load i32, ptr %10396, align 8, !tbaa !56
  %10398 = sub i32 %10395, %10397
  %10399 = icmp eq i32 %10398, 0
  br i1 %10399, label %10453, label %10400

10400:                                            ; preds = %10391
  br label %10401

10401:                                            ; preds = %10400
  br label %10402

10402:                                            ; preds = %10401
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %10403 = call ptr @__errno_location() #12
  %10404 = load i32, ptr %10403, align 4, !tbaa !5
  store i32 %10404, ptr %211, align 4, !tbaa !5
  %10405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10406 = call i32 @s2n_print_stacktrace(ptr noundef %10405)
  %10407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10408 = trunc i8 %10407 to i1
  br i1 %10408, label %10409, label %10431

10409:                                            ; preds = %10402
  %10410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10411 = call i32 @fileno(ptr noundef %10410) #11
  %10412 = call i32 @isatty(i32 noundef %10411) #11
  %10413 = icmp ne i32 %10412, 0
  br i1 %10413, label %10414, label %10431

10414:                                            ; preds = %10409
  %10415 = load i32, ptr %211, align 4, !tbaa !5
  %10416 = call ptr @__errno_location() #12
  store i32 %10415, ptr %10416, align 4, !tbaa !5
  %10417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10418 = load i32, ptr @test_count, align 4, !tbaa !5
  %10419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10420 = load i32, ptr %10419, align 4, !tbaa !5
  %10421 = call ptr @s2n_strerror(i32 noundef %10420, ptr noundef @.str.4)
  %10422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10423 = load i32, ptr %10422, align 4, !tbaa !5
  %10424 = call ptr @s2n_strerror_debug(i32 noundef %10423, ptr noundef @.str.4)
  %10425 = call ptr @__errno_location() #12
  %10426 = load i32, ptr %10425, align 4, !tbaa !5
  %10427 = call ptr @strerror(i32 noundef %10426) #11
  %10428 = call ptr @__errno_location() #12
  %10429 = load i32, ptr %10428, align 4, !tbaa !5
  %10430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10417, ptr noundef @.str.2, i32 noundef %10418, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 384, ptr noundef %10421, ptr noundef %10424, ptr noundef %10427, i32 noundef %10429) #11
  br label %10448

10431:                                            ; preds = %10409, %10402
  %10432 = load i32, ptr %211, align 4, !tbaa !5
  %10433 = call ptr @__errno_location() #12
  store i32 %10432, ptr %10433, align 4, !tbaa !5
  %10434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10435 = load i32, ptr @test_count, align 4, !tbaa !5
  %10436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10437 = load i32, ptr %10436, align 4, !tbaa !5
  %10438 = call ptr @s2n_strerror(i32 noundef %10437, ptr noundef @.str.4)
  %10439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10440 = load i32, ptr %10439, align 4, !tbaa !5
  %10441 = call ptr @s2n_strerror_debug(i32 noundef %10440, ptr noundef @.str.4)
  %10442 = call ptr @__errno_location() #12
  %10443 = load i32, ptr %10442, align 4, !tbaa !5
  %10444 = call ptr @strerror(i32 noundef %10443) #11
  %10445 = call ptr @__errno_location() #12
  %10446 = load i32, ptr %10445, align 4, !tbaa !5
  %10447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10434, ptr noundef @.str.5, i32 noundef %10435, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 384, ptr noundef %10438, ptr noundef %10441, ptr noundef %10444, i32 noundef %10446) #11
  br label %10448

10448:                                            ; preds = %10431, %10414
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %10449

10449:                                            ; preds = %10448
  br label %10450

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

10451:                                            ; No predecessors!
  br label %10452

10452:                                            ; preds = %10451
  br label %10453

10453:                                            ; preds = %10452, %10391
  br label %10454

10454:                                            ; preds = %10453
  br label %10455

10455:                                            ; preds = %10454
  br label %10456

10456:                                            ; preds = %10455
  %10457 = load i32, ptr @test_count, align 4, !tbaa !5
  %10458 = add nsw i32 %10457, 1
  store i32 %10458, ptr @test_count, align 4, !tbaa !5
  %10459 = load ptr, ptr %196, align 8, !tbaa !9
  %10460 = getelementptr inbounds %struct.s2n_connection, ptr %10459, i32 0, i32 31
  %10461 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10460, i32 0, i32 1
  %10462 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10461, i32 0, i32 0
  %10463 = load ptr, ptr %10462, align 8, !tbaa !42
  %10464 = load ptr, ptr %195, align 8, !tbaa !9
  %10465 = getelementptr inbounds %struct.s2n_connection, ptr %10464, i32 0, i32 31
  %10466 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10465, i32 0, i32 1
  %10467 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10466, i32 0, i32 0
  %10468 = load ptr, ptr %10467, align 8, !tbaa !42
  %10469 = icmp eq ptr %10463, %10468
  br i1 %10469, label %10523, label %10470

10470:                                            ; preds = %10456
  br label %10471

10471:                                            ; preds = %10470
  br label %10472

10472:                                            ; preds = %10471
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #11
  %10473 = call ptr @__errno_location() #12
  %10474 = load i32, ptr %10473, align 4, !tbaa !5
  store i32 %10474, ptr %212, align 4, !tbaa !5
  %10475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10476 = call i32 @s2n_print_stacktrace(ptr noundef %10475)
  %10477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10478 = trunc i8 %10477 to i1
  br i1 %10478, label %10479, label %10501

10479:                                            ; preds = %10472
  %10480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10481 = call i32 @fileno(ptr noundef %10480) #11
  %10482 = call i32 @isatty(i32 noundef %10481) #11
  %10483 = icmp ne i32 %10482, 0
  br i1 %10483, label %10484, label %10501

10484:                                            ; preds = %10479
  %10485 = load i32, ptr %212, align 4, !tbaa !5
  %10486 = call ptr @__errno_location() #12
  store i32 %10485, ptr %10486, align 4, !tbaa !5
  %10487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10488 = load i32, ptr @test_count, align 4, !tbaa !5
  %10489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10490 = load i32, ptr %10489, align 4, !tbaa !5
  %10491 = call ptr @s2n_strerror(i32 noundef %10490, ptr noundef @.str.4)
  %10492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10493 = load i32, ptr %10492, align 4, !tbaa !5
  %10494 = call ptr @s2n_strerror_debug(i32 noundef %10493, ptr noundef @.str.4)
  %10495 = call ptr @__errno_location() #12
  %10496 = load i32, ptr %10495, align 4, !tbaa !5
  %10497 = call ptr @strerror(i32 noundef %10496) #11
  %10498 = call ptr @__errno_location() #12
  %10499 = load i32, ptr %10498, align 4, !tbaa !5
  %10500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10487, ptr noundef @.str.2, i32 noundef %10488, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 386, ptr noundef %10491, ptr noundef %10494, ptr noundef %10497, i32 noundef %10499) #11
  br label %10518

10501:                                            ; preds = %10479, %10472
  %10502 = load i32, ptr %212, align 4, !tbaa !5
  %10503 = call ptr @__errno_location() #12
  store i32 %10502, ptr %10503, align 4, !tbaa !5
  %10504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10505 = load i32, ptr @test_count, align 4, !tbaa !5
  %10506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10507 = load i32, ptr %10506, align 4, !tbaa !5
  %10508 = call ptr @s2n_strerror(i32 noundef %10507, ptr noundef @.str.4)
  %10509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10510 = load i32, ptr %10509, align 4, !tbaa !5
  %10511 = call ptr @s2n_strerror_debug(i32 noundef %10510, ptr noundef @.str.4)
  %10512 = call ptr @__errno_location() #12
  %10513 = load i32, ptr %10512, align 4, !tbaa !5
  %10514 = call ptr @strerror(i32 noundef %10513) #11
  %10515 = call ptr @__errno_location() #12
  %10516 = load i32, ptr %10515, align 4, !tbaa !5
  %10517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10504, ptr noundef @.str.5, i32 noundef %10505, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 386, ptr noundef %10508, ptr noundef %10511, ptr noundef %10514, i32 noundef %10516) #11
  br label %10518

10518:                                            ; preds = %10501, %10484
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  br label %10519

10519:                                            ; preds = %10518
  br label %10520

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

10521:                                            ; No predecessors!
  br label %10522

10522:                                            ; preds = %10521
  br label %10523

10523:                                            ; preds = %10522, %10456
  br label %10524

10524:                                            ; preds = %10523
  br label %10525

10525:                                            ; preds = %10524
  %10526 = load ptr, ptr %196, align 8, !tbaa !9
  %10527 = getelementptr inbounds %struct.s2n_connection, ptr %10526, i32 0, i32 31
  %10528 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10527, i32 0, i32 1
  %10529 = load ptr, ptr %195, align 8, !tbaa !9
  %10530 = getelementptr inbounds %struct.s2n_connection, ptr %10529, i32 0, i32 31
  %10531 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10530, i32 0, i32 1
  %10532 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef %10528, ptr noundef %10531)
  %10533 = load ptr, ptr %196, align 8, !tbaa !9
  %10534 = getelementptr inbounds %struct.s2n_connection, ptr %10533, i32 0, i32 31
  %10535 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10534, i32 0, i32 3
  %10536 = load ptr, ptr %195, align 8, !tbaa !9
  %10537 = getelementptr inbounds %struct.s2n_connection, ptr %10536, i32 0, i32 31
  %10538 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10537, i32 0, i32 3
  %10539 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef %10535, ptr noundef %10538)
  call void @llvm.lifetime.start.p0(i64 24, ptr %213) #11
  call void @llvm.memset.p0.i64(ptr align 8 %213, i8 0, i64 24, i1 false)
  br label %10540

10540:                                            ; preds = %10525
  %10541 = load i32, ptr @test_count, align 4, !tbaa !5
  %10542 = add nsw i32 %10541, 1
  store i32 %10542, ptr @test_count, align 4, !tbaa !5
  %10543 = load ptr, ptr %196, align 8, !tbaa !9
  %10544 = getelementptr inbounds %struct.s2n_connection, ptr %10543, i32 0, i32 31
  %10545 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10544, i32 0, i32 1
  %10546 = load ptr, ptr %196, align 8, !tbaa !9
  %10547 = getelementptr inbounds %struct.s2n_connection, ptr %10546, i32 0, i32 31
  %10548 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10547, i32 0, i32 3
  %10549 = call i32 @s2n_ecc_evp_compute_shared_secret_from_params(ptr noundef %10545, ptr noundef %10548, ptr noundef %213)
  %10550 = icmp eq i32 %10549, -1
  br i1 %10550, label %10551, label %10604

10551:                                            ; preds = %10540
  br label %10552

10552:                                            ; preds = %10551
  br label %10553

10553:                                            ; preds = %10552
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #11
  %10554 = call ptr @__errno_location() #12
  %10555 = load i32, ptr %10554, align 4, !tbaa !5
  store i32 %10555, ptr %214, align 4, !tbaa !5
  %10556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10557 = call i32 @s2n_print_stacktrace(ptr noundef %10556)
  %10558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10559 = trunc i8 %10558 to i1
  br i1 %10559, label %10560, label %10582

10560:                                            ; preds = %10553
  %10561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10562 = call i32 @fileno(ptr noundef %10561) #11
  %10563 = call i32 @isatty(i32 noundef %10562) #11
  %10564 = icmp ne i32 %10563, 0
  br i1 %10564, label %10565, label %10582

10565:                                            ; preds = %10560
  %10566 = load i32, ptr %214, align 4, !tbaa !5
  %10567 = call ptr @__errno_location() #12
  store i32 %10566, ptr %10567, align 4, !tbaa !5
  %10568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10569 = load i32, ptr @test_count, align 4, !tbaa !5
  %10570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10571 = load i32, ptr %10570, align 4, !tbaa !5
  %10572 = call ptr @s2n_strerror(i32 noundef %10571, ptr noundef @.str.4)
  %10573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10574 = load i32, ptr %10573, align 4, !tbaa !5
  %10575 = call ptr @s2n_strerror_debug(i32 noundef %10574, ptr noundef @.str.4)
  %10576 = call ptr @__errno_location() #12
  %10577 = load i32, ptr %10576, align 4, !tbaa !5
  %10578 = call ptr @strerror(i32 noundef %10577) #11
  %10579 = call ptr @__errno_location() #12
  %10580 = load i32, ptr %10579, align 4, !tbaa !5
  %10581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10568, ptr noundef @.str.2, i32 noundef %10569, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 397, ptr noundef %10572, ptr noundef %10575, ptr noundef %10578, i32 noundef %10580) #11
  br label %10599

10582:                                            ; preds = %10560, %10553
  %10583 = load i32, ptr %214, align 4, !tbaa !5
  %10584 = call ptr @__errno_location() #12
  store i32 %10583, ptr %10584, align 4, !tbaa !5
  %10585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10586 = load i32, ptr @test_count, align 4, !tbaa !5
  %10587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10588 = load i32, ptr %10587, align 4, !tbaa !5
  %10589 = call ptr @s2n_strerror(i32 noundef %10588, ptr noundef @.str.4)
  %10590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10591 = load i32, ptr %10590, align 4, !tbaa !5
  %10592 = call ptr @s2n_strerror_debug(i32 noundef %10591, ptr noundef @.str.4)
  %10593 = call ptr @__errno_location() #12
  %10594 = load i32, ptr %10593, align 4, !tbaa !5
  %10595 = call ptr @strerror(i32 noundef %10594) #11
  %10596 = call ptr @__errno_location() #12
  %10597 = load i32, ptr %10596, align 4, !tbaa !5
  %10598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10585, ptr noundef @.str.5, i32 noundef %10586, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 397, ptr noundef %10589, ptr noundef %10592, ptr noundef %10595, i32 noundef %10597) #11
  br label %10599

10599:                                            ; preds = %10582, %10565
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #11
  br label %10600

10600:                                            ; preds = %10599
  br label %10601

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

10602:                                            ; No predecessors!
  br label %10603

10603:                                            ; preds = %10602
  br label %10604

10604:                                            ; preds = %10603, %10540
  br label %10605

10605:                                            ; preds = %10604
  br label %10606

10606:                                            ; preds = %10605
  call void @llvm.lifetime.start.p0(i64 24, ptr %215) #11
  call void @llvm.memset.p0.i64(ptr align 8 %215, i8 0, i64 24, i1 false)
  br label %10607

10607:                                            ; preds = %10606
  %10608 = load i32, ptr @test_count, align 4, !tbaa !5
  %10609 = add nsw i32 %10608, 1
  store i32 %10609, ptr @test_count, align 4, !tbaa !5
  %10610 = load ptr, ptr %195, align 8, !tbaa !9
  %10611 = getelementptr inbounds %struct.s2n_connection, ptr %10610, i32 0, i32 31
  %10612 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10611, i32 0, i32 3
  %10613 = load ptr, ptr %195, align 8, !tbaa !9
  %10614 = getelementptr inbounds %struct.s2n_connection, ptr %10613, i32 0, i32 31
  %10615 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10614, i32 0, i32 1
  %10616 = call i32 @s2n_ecc_evp_compute_shared_secret_from_params(ptr noundef %10612, ptr noundef %10615, ptr noundef %215)
  %10617 = icmp eq i32 %10616, -1
  br i1 %10617, label %10618, label %10671

10618:                                            ; preds = %10607
  br label %10619

10619:                                            ; preds = %10618
  br label %10620

10620:                                            ; preds = %10619
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %10621 = call ptr @__errno_location() #12
  %10622 = load i32, ptr %10621, align 4, !tbaa !5
  store i32 %10622, ptr %216, align 4, !tbaa !5
  %10623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10624 = call i32 @s2n_print_stacktrace(ptr noundef %10623)
  %10625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10626 = trunc i8 %10625 to i1
  br i1 %10626, label %10627, label %10649

10627:                                            ; preds = %10620
  %10628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10629 = call i32 @fileno(ptr noundef %10628) #11
  %10630 = call i32 @isatty(i32 noundef %10629) #11
  %10631 = icmp ne i32 %10630, 0
  br i1 %10631, label %10632, label %10649

10632:                                            ; preds = %10627
  %10633 = load i32, ptr %216, align 4, !tbaa !5
  %10634 = call ptr @__errno_location() #12
  store i32 %10633, ptr %10634, align 4, !tbaa !5
  %10635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10636 = load i32, ptr @test_count, align 4, !tbaa !5
  %10637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10638 = load i32, ptr %10637, align 4, !tbaa !5
  %10639 = call ptr @s2n_strerror(i32 noundef %10638, ptr noundef @.str.4)
  %10640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10641 = load i32, ptr %10640, align 4, !tbaa !5
  %10642 = call ptr @s2n_strerror_debug(i32 noundef %10641, ptr noundef @.str.4)
  %10643 = call ptr @__errno_location() #12
  %10644 = load i32, ptr %10643, align 4, !tbaa !5
  %10645 = call ptr @strerror(i32 noundef %10644) #11
  %10646 = call ptr @__errno_location() #12
  %10647 = load i32, ptr %10646, align 4, !tbaa !5
  %10648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10635, ptr noundef @.str.2, i32 noundef %10636, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 404, ptr noundef %10639, ptr noundef %10642, ptr noundef %10645, i32 noundef %10647) #11
  br label %10666

10649:                                            ; preds = %10627, %10620
  %10650 = load i32, ptr %216, align 4, !tbaa !5
  %10651 = call ptr @__errno_location() #12
  store i32 %10650, ptr %10651, align 4, !tbaa !5
  %10652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10653 = load i32, ptr @test_count, align 4, !tbaa !5
  %10654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10655 = load i32, ptr %10654, align 4, !tbaa !5
  %10656 = call ptr @s2n_strerror(i32 noundef %10655, ptr noundef @.str.4)
  %10657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10658 = load i32, ptr %10657, align 4, !tbaa !5
  %10659 = call ptr @s2n_strerror_debug(i32 noundef %10658, ptr noundef @.str.4)
  %10660 = call ptr @__errno_location() #12
  %10661 = load i32, ptr %10660, align 4, !tbaa !5
  %10662 = call ptr @strerror(i32 noundef %10661) #11
  %10663 = call ptr @__errno_location() #12
  %10664 = load i32, ptr %10663, align 4, !tbaa !5
  %10665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10652, ptr noundef @.str.5, i32 noundef %10653, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 404, ptr noundef %10656, ptr noundef %10659, ptr noundef %10662, i32 noundef %10664) #11
  br label %10666

10666:                                            ; preds = %10649, %10632
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %10667

10667:                                            ; preds = %10666
  br label %10668

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

10669:                                            ; No predecessors!
  br label %10670

10670:                                            ; preds = %10669
  br label %10671

10671:                                            ; preds = %10670, %10607
  br label %10672

10672:                                            ; preds = %10671
  br label %10673

10673:                                            ; preds = %10672
  %10674 = load ptr, ptr %203, align 8, !tbaa !9
  %10675 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %10674, i32 0, i32 1
  %10676 = load ptr, ptr %10675, align 8, !tbaa !43
  %10677 = getelementptr inbounds ptr, ptr %10676, i64 0
  %10678 = load ptr, ptr %10677, align 8, !tbaa !9
  %10679 = icmp eq ptr %10678, @s2n_ecc_curve_secp256r1
  br i1 %10679, label %10687, label %10680

10680:                                            ; preds = %10673
  %10681 = load ptr, ptr %203, align 8, !tbaa !9
  %10682 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %10681, i32 0, i32 1
  %10683 = load ptr, ptr %10682, align 8, !tbaa !43
  %10684 = getelementptr inbounds ptr, ptr %10683, i64 0
  %10685 = load ptr, ptr %10684, align 8, !tbaa !9
  %10686 = icmp eq ptr %10685, @s2n_ecc_curve_secp384r1
  br i1 %10686, label %10687, label %10762

10687:                                            ; preds = %10680, %10673
  br label %10688

10688:                                            ; preds = %10687
  %10689 = load i32, ptr @test_count, align 4, !tbaa !5
  %10690 = add nsw i32 %10689, 1
  store i32 %10690, ptr @test_count, align 4, !tbaa !5
  %10691 = getelementptr inbounds %struct.s2n_blob, ptr %213, i32 0, i32 1
  %10692 = load i32, ptr %10691, align 8, !tbaa !68
  %10693 = uitofp i32 %10692 to double
  %10694 = load ptr, ptr %203, align 8, !tbaa !9
  %10695 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %10694, i32 0, i32 1
  %10696 = load ptr, ptr %10695, align 8, !tbaa !43
  %10697 = getelementptr inbounds ptr, ptr %10696, i64 0
  %10698 = load ptr, ptr %10697, align 8, !tbaa !9
  %10699 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %10698, i32 0, i32 3
  %10700 = load i8, ptr %10699, align 8, !tbaa !46
  %10701 = zext i8 %10700 to i32
  %10702 = sub nsw i32 %10701, 1
  %10703 = sitofp i32 %10702 to double
  %10704 = fmul double %10703, 5.000000e-01
  %10705 = fcmp oeq double %10693, %10704
  br i1 %10705, label %10759, label %10706

10706:                                            ; preds = %10688
  br label %10707

10707:                                            ; preds = %10706
  br label %10708

10708:                                            ; preds = %10707
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #11
  %10709 = call ptr @__errno_location() #12
  %10710 = load i32, ptr %10709, align 4, !tbaa !5
  store i32 %10710, ptr %217, align 4, !tbaa !5
  %10711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10712 = call i32 @s2n_print_stacktrace(ptr noundef %10711)
  %10713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10714 = trunc i8 %10713 to i1
  br i1 %10714, label %10715, label %10737

10715:                                            ; preds = %10708
  %10716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10717 = call i32 @fileno(ptr noundef %10716) #11
  %10718 = call i32 @isatty(i32 noundef %10717) #11
  %10719 = icmp ne i32 %10718, 0
  br i1 %10719, label %10720, label %10737

10720:                                            ; preds = %10715
  %10721 = load i32, ptr %217, align 4, !tbaa !5
  %10722 = call ptr @__errno_location() #12
  store i32 %10721, ptr %10722, align 4, !tbaa !5
  %10723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10724 = load i32, ptr @test_count, align 4, !tbaa !5
  %10725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10726 = load i32, ptr %10725, align 4, !tbaa !5
  %10727 = call ptr @s2n_strerror(i32 noundef %10726, ptr noundef @.str.4)
  %10728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10729 = load i32, ptr %10728, align 4, !tbaa !5
  %10730 = call ptr @s2n_strerror_debug(i32 noundef %10729, ptr noundef @.str.4)
  %10731 = call ptr @__errno_location() #12
  %10732 = load i32, ptr %10731, align 4, !tbaa !5
  %10733 = call ptr @strerror(i32 noundef %10732) #11
  %10734 = call ptr @__errno_location() #12
  %10735 = load i32, ptr %10734, align 4, !tbaa !5
  %10736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10723, ptr noundef @.str.2, i32 noundef %10724, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 410, ptr noundef %10727, ptr noundef %10730, ptr noundef %10733, i32 noundef %10735) #11
  br label %10754

10737:                                            ; preds = %10715, %10708
  %10738 = load i32, ptr %217, align 4, !tbaa !5
  %10739 = call ptr @__errno_location() #12
  store i32 %10738, ptr %10739, align 4, !tbaa !5
  %10740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10741 = load i32, ptr @test_count, align 4, !tbaa !5
  %10742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10743 = load i32, ptr %10742, align 4, !tbaa !5
  %10744 = call ptr @s2n_strerror(i32 noundef %10743, ptr noundef @.str.4)
  %10745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10746 = load i32, ptr %10745, align 4, !tbaa !5
  %10747 = call ptr @s2n_strerror_debug(i32 noundef %10746, ptr noundef @.str.4)
  %10748 = call ptr @__errno_location() #12
  %10749 = load i32, ptr %10748, align 4, !tbaa !5
  %10750 = call ptr @strerror(i32 noundef %10749) #11
  %10751 = call ptr @__errno_location() #12
  %10752 = load i32, ptr %10751, align 4, !tbaa !5
  %10753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10740, ptr noundef @.str.5, i32 noundef %10741, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 410, ptr noundef %10744, ptr noundef %10747, ptr noundef %10750, i32 noundef %10752) #11
  br label %10754

10754:                                            ; preds = %10737, %10720
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #11
  br label %10755

10755:                                            ; preds = %10754
  br label %10756

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

10757:                                            ; No predecessors!
  br label %10758

10758:                                            ; preds = %10757
  br label %10759

10759:                                            ; preds = %10758, %10688
  br label %10760

10760:                                            ; preds = %10759
  br label %10761

10761:                                            ; preds = %10760
  br label %10833

10762:                                            ; preds = %10680
  br label %10763

10763:                                            ; preds = %10762
  %10764 = load i32, ptr @test_count, align 4, !tbaa !5
  %10765 = add nsw i32 %10764, 1
  store i32 %10765, ptr @test_count, align 4, !tbaa !5
  %10766 = getelementptr inbounds %struct.s2n_blob, ptr %213, i32 0, i32 1
  %10767 = load i32, ptr %10766, align 8, !tbaa !68
  %10768 = load ptr, ptr %203, align 8, !tbaa !9
  %10769 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %10768, i32 0, i32 1
  %10770 = load ptr, ptr %10769, align 8, !tbaa !43
  %10771 = getelementptr inbounds ptr, ptr %10770, i64 0
  %10772 = load ptr, ptr %10771, align 8, !tbaa !9
  %10773 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %10772, i32 0, i32 3
  %10774 = load i8, ptr %10773, align 8, !tbaa !46
  %10775 = zext i8 %10774 to i32
  %10776 = icmp eq i32 %10767, %10775
  br i1 %10776, label %10830, label %10777

10777:                                            ; preds = %10763
  br label %10778

10778:                                            ; preds = %10777
  br label %10779

10779:                                            ; preds = %10778
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #11
  %10780 = call ptr @__errno_location() #12
  %10781 = load i32, ptr %10780, align 4, !tbaa !5
  store i32 %10781, ptr %218, align 4, !tbaa !5
  %10782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10783 = call i32 @s2n_print_stacktrace(ptr noundef %10782)
  %10784 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10785 = trunc i8 %10784 to i1
  br i1 %10785, label %10786, label %10808

10786:                                            ; preds = %10779
  %10787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10788 = call i32 @fileno(ptr noundef %10787) #11
  %10789 = call i32 @isatty(i32 noundef %10788) #11
  %10790 = icmp ne i32 %10789, 0
  br i1 %10790, label %10791, label %10808

10791:                                            ; preds = %10786
  %10792 = load i32, ptr %218, align 4, !tbaa !5
  %10793 = call ptr @__errno_location() #12
  store i32 %10792, ptr %10793, align 4, !tbaa !5
  %10794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10795 = load i32, ptr @test_count, align 4, !tbaa !5
  %10796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10797 = load i32, ptr %10796, align 4, !tbaa !5
  %10798 = call ptr @s2n_strerror(i32 noundef %10797, ptr noundef @.str.4)
  %10799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10800 = load i32, ptr %10799, align 4, !tbaa !5
  %10801 = call ptr @s2n_strerror_debug(i32 noundef %10800, ptr noundef @.str.4)
  %10802 = call ptr @__errno_location() #12
  %10803 = load i32, ptr %10802, align 4, !tbaa !5
  %10804 = call ptr @strerror(i32 noundef %10803) #11
  %10805 = call ptr @__errno_location() #12
  %10806 = load i32, ptr %10805, align 4, !tbaa !5
  %10807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10794, ptr noundef @.str.2, i32 noundef %10795, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 412, ptr noundef %10798, ptr noundef %10801, ptr noundef %10804, i32 noundef %10806) #11
  br label %10825

10808:                                            ; preds = %10786, %10779
  %10809 = load i32, ptr %218, align 4, !tbaa !5
  %10810 = call ptr @__errno_location() #12
  store i32 %10809, ptr %10810, align 4, !tbaa !5
  %10811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10812 = load i32, ptr @test_count, align 4, !tbaa !5
  %10813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10814 = load i32, ptr %10813, align 4, !tbaa !5
  %10815 = call ptr @s2n_strerror(i32 noundef %10814, ptr noundef @.str.4)
  %10816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10817 = load i32, ptr %10816, align 4, !tbaa !5
  %10818 = call ptr @s2n_strerror_debug(i32 noundef %10817, ptr noundef @.str.4)
  %10819 = call ptr @__errno_location() #12
  %10820 = load i32, ptr %10819, align 4, !tbaa !5
  %10821 = call ptr @strerror(i32 noundef %10820) #11
  %10822 = call ptr @__errno_location() #12
  %10823 = load i32, ptr %10822, align 4, !tbaa !5
  %10824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10811, ptr noundef @.str.5, i32 noundef %10812, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 412, ptr noundef %10815, ptr noundef %10818, ptr noundef %10821, i32 noundef %10823) #11
  br label %10825

10825:                                            ; preds = %10808, %10791
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #11
  br label %10826

10826:                                            ; preds = %10825
  br label %10827

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

10828:                                            ; No predecessors!
  br label %10829

10829:                                            ; preds = %10828
  br label %10830

10830:                                            ; preds = %10829, %10763
  br label %10831

10831:                                            ; preds = %10830
  br label %10832

10832:                                            ; preds = %10831
  br label %10833

10833:                                            ; preds = %10832, %10761
  br label %10834

10834:                                            ; preds = %10833
  br label %10835

10835:                                            ; preds = %10834
  %10836 = load i32, ptr @test_count, align 4, !tbaa !5
  %10837 = add nsw i32 %10836, 1
  store i32 %10837, ptr @test_count, align 4, !tbaa !5
  %10838 = getelementptr inbounds %struct.s2n_blob, ptr %213, i32 0, i32 1
  %10839 = load i32, ptr %10838, align 8, !tbaa !68
  %10840 = getelementptr inbounds %struct.s2n_blob, ptr %215, i32 0, i32 1
  %10841 = load i32, ptr %10840, align 8, !tbaa !68
  %10842 = icmp eq i32 %10839, %10841
  br i1 %10842, label %10896, label %10843

10843:                                            ; preds = %10835
  br label %10844

10844:                                            ; preds = %10843
  br label %10845

10845:                                            ; preds = %10844
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #11
  %10846 = call ptr @__errno_location() #12
  %10847 = load i32, ptr %10846, align 4, !tbaa !5
  store i32 %10847, ptr %219, align 4, !tbaa !5
  %10848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10849 = call i32 @s2n_print_stacktrace(ptr noundef %10848)
  %10850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10851 = trunc i8 %10850 to i1
  br i1 %10851, label %10852, label %10874

10852:                                            ; preds = %10845
  %10853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10854 = call i32 @fileno(ptr noundef %10853) #11
  %10855 = call i32 @isatty(i32 noundef %10854) #11
  %10856 = icmp ne i32 %10855, 0
  br i1 %10856, label %10857, label %10874

10857:                                            ; preds = %10852
  %10858 = load i32, ptr %219, align 4, !tbaa !5
  %10859 = call ptr @__errno_location() #12
  store i32 %10858, ptr %10859, align 4, !tbaa !5
  %10860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10861 = load i32, ptr @test_count, align 4, !tbaa !5
  %10862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10863 = load i32, ptr %10862, align 4, !tbaa !5
  %10864 = call ptr @s2n_strerror(i32 noundef %10863, ptr noundef @.str.4)
  %10865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10866 = load i32, ptr %10865, align 4, !tbaa !5
  %10867 = call ptr @s2n_strerror_debug(i32 noundef %10866, ptr noundef @.str.4)
  %10868 = call ptr @__errno_location() #12
  %10869 = load i32, ptr %10868, align 4, !tbaa !5
  %10870 = call ptr @strerror(i32 noundef %10869) #11
  %10871 = call ptr @__errno_location() #12
  %10872 = load i32, ptr %10871, align 4, !tbaa !5
  %10873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10860, ptr noundef @.str.2, i32 noundef %10861, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 415, ptr noundef %10864, ptr noundef %10867, ptr noundef %10870, i32 noundef %10872) #11
  br label %10891

10874:                                            ; preds = %10852, %10845
  %10875 = load i32, ptr %219, align 4, !tbaa !5
  %10876 = call ptr @__errno_location() #12
  store i32 %10875, ptr %10876, align 4, !tbaa !5
  %10877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10878 = load i32, ptr @test_count, align 4, !tbaa !5
  %10879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10880 = load i32, ptr %10879, align 4, !tbaa !5
  %10881 = call ptr @s2n_strerror(i32 noundef %10880, ptr noundef @.str.4)
  %10882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10883 = load i32, ptr %10882, align 4, !tbaa !5
  %10884 = call ptr @s2n_strerror_debug(i32 noundef %10883, ptr noundef @.str.4)
  %10885 = call ptr @__errno_location() #12
  %10886 = load i32, ptr %10885, align 4, !tbaa !5
  %10887 = call ptr @strerror(i32 noundef %10886) #11
  %10888 = call ptr @__errno_location() #12
  %10889 = load i32, ptr %10888, align 4, !tbaa !5
  %10890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10877, ptr noundef @.str.5, i32 noundef %10878, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 415, ptr noundef %10881, ptr noundef %10884, ptr noundef %10887, i32 noundef %10889) #11
  br label %10891

10891:                                            ; preds = %10874, %10857
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #11
  br label %10892

10892:                                            ; preds = %10891
  br label %10893

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

10894:                                            ; No predecessors!
  br label %10895

10895:                                            ; preds = %10894
  br label %10896

10896:                                            ; preds = %10895, %10835
  br label %10897

10897:                                            ; preds = %10896
  br label %10898

10898:                                            ; preds = %10897
  br label %10899

10899:                                            ; preds = %10898
  %10900 = getelementptr inbounds %struct.s2n_blob, ptr %213, i32 0, i32 1
  %10901 = load i32, ptr %10900, align 8, !tbaa !68
  %10902 = icmp ne i32 %10901, 0
  br i1 %10902, label %10903, label %10972

10903:                                            ; preds = %10899
  br label %10904

10904:                                            ; preds = %10903
  %10905 = load i32, ptr @test_count, align 4, !tbaa !5
  %10906 = add nsw i32 %10905, 1
  store i32 %10906, ptr @test_count, align 4, !tbaa !5
  %10907 = getelementptr inbounds %struct.s2n_blob, ptr %213, i32 0, i32 0
  %10908 = load ptr, ptr %10907, align 8, !tbaa !69
  %10909 = getelementptr inbounds %struct.s2n_blob, ptr %215, i32 0, i32 0
  %10910 = load ptr, ptr %10909, align 8, !tbaa !69
  %10911 = getelementptr inbounds %struct.s2n_blob, ptr %213, i32 0, i32 1
  %10912 = load i32, ptr %10911, align 8, !tbaa !68
  %10913 = zext i32 %10912 to i64
  %10914 = call i32 @memcmp(ptr noundef %10908, ptr noundef %10910, i64 noundef %10913) #14
  %10915 = icmp eq i32 %10914, 0
  br i1 %10915, label %10969, label %10916

10916:                                            ; preds = %10904
  br label %10917

10917:                                            ; preds = %10916
  br label %10918

10918:                                            ; preds = %10917
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #11
  %10919 = call ptr @__errno_location() #12
  %10920 = load i32, ptr %10919, align 4, !tbaa !5
  store i32 %10920, ptr %220, 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) #11
  %10928 = call i32 @isatty(i32 noundef %10927) #11
  %10929 = icmp ne i32 %10928, 0
  br i1 %10929, label %10930, label %10947

10930:                                            ; preds = %10925
  %10931 = load i32, ptr %220, align 4, !tbaa !5
  %10932 = call ptr @__errno_location() #12
  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() #12
  %10942 = load i32, ptr %10941, align 4, !tbaa !5
  %10943 = call ptr @strerror(i32 noundef %10942) #11
  %10944 = call ptr @__errno_location() #12
  %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.93, ptr noundef @.str.1, i32 noundef 415, ptr noundef %10937, ptr noundef %10940, ptr noundef %10943, i32 noundef %10945) #11
  br label %10964

10947:                                            ; preds = %10925, %10918
  %10948 = load i32, ptr %220, align 4, !tbaa !5
  %10949 = call ptr @__errno_location() #12
  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() #12
  %10959 = load i32, ptr %10958, align 4, !tbaa !5
  %10960 = call ptr @strerror(i32 noundef %10959) #11
  %10961 = call ptr @__errno_location() #12
  %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.93, ptr noundef @.str.1, i32 noundef 415, ptr noundef %10954, ptr noundef %10957, ptr noundef %10960, i32 noundef %10962) #11
  br label %10964

10964:                                            ; preds = %10947, %10930
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #11
  br label %10965

10965:                                            ; preds = %10964
  br label %10966

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

10967:                                            ; No predecessors!
  br label %10968

10968:                                            ; preds = %10967
  br label %10969

10969:                                            ; preds = %10968, %10904
  br label %10970

10970:                                            ; preds = %10969
  br label %10971

10971:                                            ; preds = %10970
  br label %10972

10972:                                            ; preds = %10971, %10899
  br label %10973

10973:                                            ; preds = %10972
  br label %10974

10974:                                            ; preds = %10973
  br label %10975

10975:                                            ; preds = %10974
  br label %10976

10976:                                            ; preds = %10975
  br label %10977

10977:                                            ; preds = %10976
  %10978 = load i32, ptr @test_count, align 4, !tbaa !5
  %10979 = add nsw i32 %10978, 1
  store i32 %10979, ptr @test_count, align 4, !tbaa !5
  %10980 = call i32 @s2n_free(ptr noundef %215)
  %10981 = icmp eq i32 %10980, -1
  br i1 %10981, label %10982, label %11035

10982:                                            ; preds = %10977
  br label %10983

10983:                                            ; preds = %10982
  br label %10984

10984:                                            ; preds = %10983
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #11
  %10985 = call ptr @__errno_location() #12
  %10986 = load i32, ptr %10985, align 4, !tbaa !5
  store i32 %10986, ptr %221, align 4, !tbaa !5
  %10987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10988 = call i32 @s2n_print_stacktrace(ptr noundef %10987)
  %10989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10990 = trunc i8 %10989 to i1
  br i1 %10990, label %10991, label %11013

10991:                                            ; preds = %10984
  %10992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10993 = call i32 @fileno(ptr noundef %10992) #11
  %10994 = call i32 @isatty(i32 noundef %10993) #11
  %10995 = icmp ne i32 %10994, 0
  br i1 %10995, label %10996, label %11013

10996:                                            ; preds = %10991
  %10997 = load i32, ptr %221, align 4, !tbaa !5
  %10998 = call ptr @__errno_location() #12
  store i32 %10997, ptr %10998, align 4, !tbaa !5
  %10999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11000 = load i32, ptr @test_count, align 4, !tbaa !5
  %11001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11002 = load i32, ptr %11001, align 4, !tbaa !5
  %11003 = call ptr @s2n_strerror(i32 noundef %11002, ptr noundef @.str.4)
  %11004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11005 = load i32, ptr %11004, align 4, !tbaa !5
  %11006 = call ptr @s2n_strerror_debug(i32 noundef %11005, ptr noundef @.str.4)
  %11007 = call ptr @__errno_location() #12
  %11008 = load i32, ptr %11007, align 4, !tbaa !5
  %11009 = call ptr @strerror(i32 noundef %11008) #11
  %11010 = call ptr @__errno_location() #12
  %11011 = load i32, ptr %11010, align 4, !tbaa !5
  %11012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10999, ptr noundef @.str.2, i32 noundef %11000, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 417, ptr noundef %11003, ptr noundef %11006, ptr noundef %11009, i32 noundef %11011) #11
  br label %11030

11013:                                            ; preds = %10991, %10984
  %11014 = load i32, ptr %221, align 4, !tbaa !5
  %11015 = call ptr @__errno_location() #12
  store i32 %11014, ptr %11015, align 4, !tbaa !5
  %11016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11017 = load i32, ptr @test_count, align 4, !tbaa !5
  %11018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11019 = load i32, ptr %11018, align 4, !tbaa !5
  %11020 = call ptr @s2n_strerror(i32 noundef %11019, ptr noundef @.str.4)
  %11021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11022 = load i32, ptr %11021, align 4, !tbaa !5
  %11023 = call ptr @s2n_strerror_debug(i32 noundef %11022, ptr noundef @.str.4)
  %11024 = call ptr @__errno_location() #12
  %11025 = load i32, ptr %11024, align 4, !tbaa !5
  %11026 = call ptr @strerror(i32 noundef %11025) #11
  %11027 = call ptr @__errno_location() #12
  %11028 = load i32, ptr %11027, align 4, !tbaa !5
  %11029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11016, ptr noundef @.str.5, i32 noundef %11017, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 417, ptr noundef %11020, ptr noundef %11023, ptr noundef %11026, i32 noundef %11028) #11
  br label %11030

11030:                                            ; preds = %11013, %10996
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #11
  br label %11031

11031:                                            ; preds = %11030
  br label %11032

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

11033:                                            ; No predecessors!
  br label %11034

11034:                                            ; preds = %11033
  br label %11035

11035:                                            ; preds = %11034, %10977
  br label %11036

11036:                                            ; preds = %11035
  br label %11037

11037:                                            ; preds = %11036
  br label %11038

11038:                                            ; preds = %11037
  %11039 = load i32, ptr @test_count, align 4, !tbaa !5
  %11040 = add nsw i32 %11039, 1
  store i32 %11040, ptr @test_count, align 4, !tbaa !5
  %11041 = call i32 @s2n_free(ptr noundef %213)
  %11042 = icmp eq i32 %11041, -1
  br i1 %11042, label %11043, label %11096

11043:                                            ; preds = %11038
  br label %11044

11044:                                            ; preds = %11043
  br label %11045

11045:                                            ; preds = %11044
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #11
  %11046 = call ptr @__errno_location() #12
  %11047 = load i32, ptr %11046, align 4, !tbaa !5
  store i32 %11047, ptr %222, align 4, !tbaa !5
  %11048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11049 = call i32 @s2n_print_stacktrace(ptr noundef %11048)
  %11050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11051 = trunc i8 %11050 to i1
  br i1 %11051, label %11052, label %11074

11052:                                            ; preds = %11045
  %11053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11054 = call i32 @fileno(ptr noundef %11053) #11
  %11055 = call i32 @isatty(i32 noundef %11054) #11
  %11056 = icmp ne i32 %11055, 0
  br i1 %11056, label %11057, label %11074

11057:                                            ; preds = %11052
  %11058 = load i32, ptr %222, align 4, !tbaa !5
  %11059 = call ptr @__errno_location() #12
  store i32 %11058, ptr %11059, align 4, !tbaa !5
  %11060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11061 = load i32, ptr @test_count, align 4, !tbaa !5
  %11062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11063 = load i32, ptr %11062, align 4, !tbaa !5
  %11064 = call ptr @s2n_strerror(i32 noundef %11063, ptr noundef @.str.4)
  %11065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11066 = load i32, ptr %11065, align 4, !tbaa !5
  %11067 = call ptr @s2n_strerror_debug(i32 noundef %11066, ptr noundef @.str.4)
  %11068 = call ptr @__errno_location() #12
  %11069 = load i32, ptr %11068, align 4, !tbaa !5
  %11070 = call ptr @strerror(i32 noundef %11069) #11
  %11071 = call ptr @__errno_location() #12
  %11072 = load i32, ptr %11071, align 4, !tbaa !5
  %11073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11060, ptr noundef @.str.2, i32 noundef %11061, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 418, ptr noundef %11064, ptr noundef %11067, ptr noundef %11070, i32 noundef %11072) #11
  br label %11091

11074:                                            ; preds = %11052, %11045
  %11075 = load i32, ptr %222, align 4, !tbaa !5
  %11076 = call ptr @__errno_location() #12
  store i32 %11075, ptr %11076, align 4, !tbaa !5
  %11077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11078 = load i32, ptr @test_count, align 4, !tbaa !5
  %11079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11080 = load i32, ptr %11079, align 4, !tbaa !5
  %11081 = call ptr @s2n_strerror(i32 noundef %11080, ptr noundef @.str.4)
  %11082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11083 = load i32, ptr %11082, align 4, !tbaa !5
  %11084 = call ptr @s2n_strerror_debug(i32 noundef %11083, ptr noundef @.str.4)
  %11085 = call ptr @__errno_location() #12
  %11086 = load i32, ptr %11085, align 4, !tbaa !5
  %11087 = call ptr @strerror(i32 noundef %11086) #11
  %11088 = call ptr @__errno_location() #12
  %11089 = load i32, ptr %11088, align 4, !tbaa !5
  %11090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11077, ptr noundef @.str.5, i32 noundef %11078, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 418, ptr noundef %11081, ptr noundef %11084, ptr noundef %11087, i32 noundef %11089) #11
  br label %11091

11091:                                            ; preds = %11074, %11057
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #11
  br label %11092

11092:                                            ; preds = %11091
  br label %11093

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

11094:                                            ; No predecessors!
  br label %11095

11095:                                            ; preds = %11094
  br label %11096

11096:                                            ; preds = %11095, %11038
  br label %11097

11097:                                            ; preds = %11096
  br label %11098

11098:                                            ; preds = %11097
  br label %11099

11099:                                            ; preds = %11098
  %11100 = load i32, ptr @test_count, align 4, !tbaa !5
  %11101 = add nsw i32 %11100, 1
  store i32 %11101, ptr @test_count, align 4, !tbaa !5
  %11102 = call i32 @s2n_stuffer_free(ptr noundef %197)
  %11103 = icmp eq i32 %11102, -1
  br i1 %11103, label %11104, label %11157

11104:                                            ; preds = %11099
  br label %11105

11105:                                            ; preds = %11104
  br label %11106

11106:                                            ; preds = %11105
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #11
  %11107 = call ptr @__errno_location() #12
  %11108 = load i32, ptr %11107, align 4, !tbaa !5
  store i32 %11108, ptr %223, align 4, !tbaa !5
  %11109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11110 = call i32 @s2n_print_stacktrace(ptr noundef %11109)
  %11111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11112 = trunc i8 %11111 to i1
  br i1 %11112, label %11113, label %11135

11113:                                            ; preds = %11106
  %11114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11115 = call i32 @fileno(ptr noundef %11114) #11
  %11116 = call i32 @isatty(i32 noundef %11115) #11
  %11117 = icmp ne i32 %11116, 0
  br i1 %11117, label %11118, label %11135

11118:                                            ; preds = %11113
  %11119 = load i32, ptr %223, align 4, !tbaa !5
  %11120 = call ptr @__errno_location() #12
  store i32 %11119, ptr %11120, align 4, !tbaa !5
  %11121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11122 = load i32, ptr @test_count, align 4, !tbaa !5
  %11123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11124 = load i32, ptr %11123, align 4, !tbaa !5
  %11125 = call ptr @s2n_strerror(i32 noundef %11124, ptr noundef @.str.4)
  %11126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11127 = load i32, ptr %11126, align 4, !tbaa !5
  %11128 = call ptr @s2n_strerror_debug(i32 noundef %11127, ptr noundef @.str.4)
  %11129 = call ptr @__errno_location() #12
  %11130 = load i32, ptr %11129, align 4, !tbaa !5
  %11131 = call ptr @strerror(i32 noundef %11130) #11
  %11132 = call ptr @__errno_location() #12
  %11133 = load i32, ptr %11132, align 4, !tbaa !5
  %11134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11121, ptr noundef @.str.2, i32 noundef %11122, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 421, ptr noundef %11125, ptr noundef %11128, ptr noundef %11131, i32 noundef %11133) #11
  br label %11152

11135:                                            ; preds = %11113, %11106
  %11136 = load i32, ptr %223, align 4, !tbaa !5
  %11137 = call ptr @__errno_location() #12
  store i32 %11136, ptr %11137, align 4, !tbaa !5
  %11138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11139 = load i32, ptr @test_count, align 4, !tbaa !5
  %11140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11141 = load i32, ptr %11140, align 4, !tbaa !5
  %11142 = call ptr @s2n_strerror(i32 noundef %11141, ptr noundef @.str.4)
  %11143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11144 = load i32, ptr %11143, align 4, !tbaa !5
  %11145 = call ptr @s2n_strerror_debug(i32 noundef %11144, ptr noundef @.str.4)
  %11146 = call ptr @__errno_location() #12
  %11147 = load i32, ptr %11146, align 4, !tbaa !5
  %11148 = call ptr @strerror(i32 noundef %11147) #11
  %11149 = call ptr @__errno_location() #12
  %11150 = load i32, ptr %11149, align 4, !tbaa !5
  %11151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11138, ptr noundef @.str.5, i32 noundef %11139, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 421, ptr noundef %11142, ptr noundef %11145, ptr noundef %11148, i32 noundef %11150) #11
  br label %11152

11152:                                            ; preds = %11135, %11118
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #11
  br label %11153

11153:                                            ; preds = %11152
  br label %11154

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

11155:                                            ; No predecessors!
  br label %11156

11156:                                            ; preds = %11155
  br label %11157

11157:                                            ; preds = %11156, %11099
  br label %11158

11158:                                            ; preds = %11157
  br label %11159

11159:                                            ; preds = %11158
  br label %11160

11160:                                            ; preds = %11159
  %11161 = load i32, ptr @test_count, align 4, !tbaa !5
  %11162 = add nsw i32 %11161, 1
  store i32 %11162, ptr @test_count, align 4, !tbaa !5
  %11163 = load ptr, ptr %195, align 8, !tbaa !9
  %11164 = call i32 @s2n_connection_free(ptr noundef %11163)
  %11165 = icmp eq i32 %11164, -1
  br i1 %11165, label %11166, label %11219

11166:                                            ; preds = %11160
  br label %11167

11167:                                            ; preds = %11166
  br label %11168

11168:                                            ; preds = %11167
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #11
  %11169 = call ptr @__errno_location() #12
  %11170 = load i32, ptr %11169, align 4, !tbaa !5
  store i32 %11170, ptr %224, align 4, !tbaa !5
  %11171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11172 = call i32 @s2n_print_stacktrace(ptr noundef %11171)
  %11173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11174 = trunc i8 %11173 to i1
  br i1 %11174, label %11175, label %11197

11175:                                            ; preds = %11168
  %11176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11177 = call i32 @fileno(ptr noundef %11176) #11
  %11178 = call i32 @isatty(i32 noundef %11177) #11
  %11179 = icmp ne i32 %11178, 0
  br i1 %11179, label %11180, label %11197

11180:                                            ; preds = %11175
  %11181 = load i32, ptr %224, align 4, !tbaa !5
  %11182 = call ptr @__errno_location() #12
  store i32 %11181, ptr %11182, align 4, !tbaa !5
  %11183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11184 = load i32, ptr @test_count, align 4, !tbaa !5
  %11185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11186 = load i32, ptr %11185, align 4, !tbaa !5
  %11187 = call ptr @s2n_strerror(i32 noundef %11186, ptr noundef @.str.4)
  %11188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11189 = load i32, ptr %11188, align 4, !tbaa !5
  %11190 = call ptr @s2n_strerror_debug(i32 noundef %11189, ptr noundef @.str.4)
  %11191 = call ptr @__errno_location() #12
  %11192 = load i32, ptr %11191, align 4, !tbaa !5
  %11193 = call ptr @strerror(i32 noundef %11192) #11
  %11194 = call ptr @__errno_location() #12
  %11195 = load i32, ptr %11194, align 4, !tbaa !5
  %11196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11183, ptr noundef @.str.2, i32 noundef %11184, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 422, ptr noundef %11187, ptr noundef %11190, ptr noundef %11193, i32 noundef %11195) #11
  br label %11214

11197:                                            ; preds = %11175, %11168
  %11198 = load i32, ptr %224, align 4, !tbaa !5
  %11199 = call ptr @__errno_location() #12
  store i32 %11198, ptr %11199, align 4, !tbaa !5
  %11200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11201 = load i32, ptr @test_count, align 4, !tbaa !5
  %11202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11203 = load i32, ptr %11202, align 4, !tbaa !5
  %11204 = call ptr @s2n_strerror(i32 noundef %11203, ptr noundef @.str.4)
  %11205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11206 = load i32, ptr %11205, align 4, !tbaa !5
  %11207 = call ptr @s2n_strerror_debug(i32 noundef %11206, ptr noundef @.str.4)
  %11208 = call ptr @__errno_location() #12
  %11209 = load i32, ptr %11208, align 4, !tbaa !5
  %11210 = call ptr @strerror(i32 noundef %11209) #11
  %11211 = call ptr @__errno_location() #12
  %11212 = load i32, ptr %11211, align 4, !tbaa !5
  %11213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11200, ptr noundef @.str.5, i32 noundef %11201, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 422, ptr noundef %11204, ptr noundef %11207, ptr noundef %11210, i32 noundef %11212) #11
  br label %11214

11214:                                            ; preds = %11197, %11180
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #11
  br label %11215

11215:                                            ; preds = %11214
  br label %11216

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

11217:                                            ; No predecessors!
  br label %11218

11218:                                            ; preds = %11217
  br label %11219

11219:                                            ; preds = %11218, %11160
  br label %11220

11220:                                            ; preds = %11219
  br label %11221

11221:                                            ; preds = %11220
  br label %11222

11222:                                            ; preds = %11221
  %11223 = load i32, ptr @test_count, align 4, !tbaa !5
  %11224 = add nsw i32 %11223, 1
  store i32 %11224, ptr @test_count, align 4, !tbaa !5
  %11225 = load ptr, ptr %196, align 8, !tbaa !9
  %11226 = call i32 @s2n_connection_free(ptr noundef %11225)
  %11227 = icmp eq i32 %11226, -1
  br i1 %11227, label %11228, label %11281

11228:                                            ; preds = %11222
  br label %11229

11229:                                            ; preds = %11228
  br label %11230

11230:                                            ; preds = %11229
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #11
  %11231 = call ptr @__errno_location() #12
  %11232 = load i32, ptr %11231, align 4, !tbaa !5
  store i32 %11232, ptr %225, align 4, !tbaa !5
  %11233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11234 = call i32 @s2n_print_stacktrace(ptr noundef %11233)
  %11235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11236 = trunc i8 %11235 to i1
  br i1 %11236, label %11237, label %11259

11237:                                            ; preds = %11230
  %11238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11239 = call i32 @fileno(ptr noundef %11238) #11
  %11240 = call i32 @isatty(i32 noundef %11239) #11
  %11241 = icmp ne i32 %11240, 0
  br i1 %11241, label %11242, label %11259

11242:                                            ; preds = %11237
  %11243 = load i32, ptr %225, align 4, !tbaa !5
  %11244 = call ptr @__errno_location() #12
  store i32 %11243, ptr %11244, align 4, !tbaa !5
  %11245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11246 = load i32, ptr @test_count, align 4, !tbaa !5
  %11247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11248 = load i32, ptr %11247, align 4, !tbaa !5
  %11249 = call ptr @s2n_strerror(i32 noundef %11248, ptr noundef @.str.4)
  %11250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11251 = load i32, ptr %11250, align 4, !tbaa !5
  %11252 = call ptr @s2n_strerror_debug(i32 noundef %11251, ptr noundef @.str.4)
  %11253 = call ptr @__errno_location() #12
  %11254 = load i32, ptr %11253, align 4, !tbaa !5
  %11255 = call ptr @strerror(i32 noundef %11254) #11
  %11256 = call ptr @__errno_location() #12
  %11257 = load i32, ptr %11256, align 4, !tbaa !5
  %11258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11245, ptr noundef @.str.2, i32 noundef %11246, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 423, ptr noundef %11249, ptr noundef %11252, ptr noundef %11255, i32 noundef %11257) #11
  br label %11276

11259:                                            ; preds = %11237, %11230
  %11260 = load i32, ptr %225, align 4, !tbaa !5
  %11261 = call ptr @__errno_location() #12
  store i32 %11260, ptr %11261, align 4, !tbaa !5
  %11262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11263 = load i32, ptr @test_count, align 4, !tbaa !5
  %11264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11265 = load i32, ptr %11264, align 4, !tbaa !5
  %11266 = call ptr @s2n_strerror(i32 noundef %11265, ptr noundef @.str.4)
  %11267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11268 = load i32, ptr %11267, align 4, !tbaa !5
  %11269 = call ptr @s2n_strerror_debug(i32 noundef %11268, ptr noundef @.str.4)
  %11270 = call ptr @__errno_location() #12
  %11271 = load i32, ptr %11270, align 4, !tbaa !5
  %11272 = call ptr @strerror(i32 noundef %11271) #11
  %11273 = call ptr @__errno_location() #12
  %11274 = load i32, ptr %11273, align 4, !tbaa !5
  %11275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11262, ptr noundef @.str.5, i32 noundef %11263, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 423, ptr noundef %11266, ptr noundef %11269, ptr noundef %11272, i32 noundef %11274) #11
  br label %11276

11276:                                            ; preds = %11259, %11242
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #11
  br label %11277

11277:                                            ; preds = %11276
  br label %11278

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

11279:                                            ; No predecessors!
  br label %11280

11280:                                            ; preds = %11279
  br label %11281

11281:                                            ; preds = %11280, %11222
  br label %11282

11282:                                            ; preds = %11281
  br label %11283

11283:                                            ; preds = %11282
  call void @llvm.lifetime.end.p0(i64 24, ptr %215) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %213) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %197) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #11
  %11284 = call i32 (...) @s2n_is_evp_apis_supported()
  %11285 = icmp ne i32 %11284, 0
  br i1 %11285, label %11286, label %11746

11286:                                            ; preds = %11283
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #11
  store ptr null, ptr %226, align 8, !tbaa !9
  br label %11287

11287:                                            ; preds = %11286
  %11288 = load i32, ptr @test_count, align 4, !tbaa !5
  %11289 = add nsw i32 %11288, 1
  store i32 %11289, ptr @test_count, align 4, !tbaa !5
  %11290 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11290, ptr %226, align 8, !tbaa !9
  %11291 = icmp eq ptr %11290, null
  br i1 %11291, label %11292, label %11345

11292:                                            ; preds = %11287
  br label %11293

11293:                                            ; preds = %11292
  br label %11294

11294:                                            ; preds = %11293
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #11
  %11295 = call ptr @__errno_location() #12
  %11296 = load i32, ptr %11295, align 4, !tbaa !5
  store i32 %11296, ptr %227, align 4, !tbaa !5
  %11297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11298 = call i32 @s2n_print_stacktrace(ptr noundef %11297)
  %11299 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11300 = trunc i8 %11299 to i1
  br i1 %11300, label %11301, label %11323

11301:                                            ; preds = %11294
  %11302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11303 = call i32 @fileno(ptr noundef %11302) #11
  %11304 = call i32 @isatty(i32 noundef %11303) #11
  %11305 = icmp ne i32 %11304, 0
  br i1 %11305, label %11306, label %11323

11306:                                            ; preds = %11301
  %11307 = load i32, ptr %227, align 4, !tbaa !5
  %11308 = call ptr @__errno_location() #12
  store i32 %11307, ptr %11308, align 4, !tbaa !5
  %11309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11310 = load i32, ptr @test_count, align 4, !tbaa !5
  %11311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11312 = load i32, ptr %11311, align 4, !tbaa !5
  %11313 = call ptr @s2n_strerror(i32 noundef %11312, ptr noundef @.str.4)
  %11314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11315 = load i32, ptr %11314, align 4, !tbaa !5
  %11316 = call ptr @s2n_strerror_debug(i32 noundef %11315, ptr noundef @.str.4)
  %11317 = call ptr @__errno_location() #12
  %11318 = load i32, ptr %11317, align 4, !tbaa !5
  %11319 = call ptr @strerror(i32 noundef %11318) #11
  %11320 = call ptr @__errno_location() #12
  %11321 = load i32, ptr %11320, align 4, !tbaa !5
  %11322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11309, ptr noundef @.str.2, i32 noundef %11310, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 429, ptr noundef %11313, ptr noundef %11316, ptr noundef %11319, i32 noundef %11321) #11
  br label %11340

11323:                                            ; preds = %11301, %11294
  %11324 = load i32, ptr %227, align 4, !tbaa !5
  %11325 = call ptr @__errno_location() #12
  store i32 %11324, ptr %11325, align 4, !tbaa !5
  %11326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11327 = load i32, ptr @test_count, align 4, !tbaa !5
  %11328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11329 = load i32, ptr %11328, align 4, !tbaa !5
  %11330 = call ptr @s2n_strerror(i32 noundef %11329, ptr noundef @.str.4)
  %11331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11332 = load i32, ptr %11331, align 4, !tbaa !5
  %11333 = call ptr @s2n_strerror_debug(i32 noundef %11332, ptr noundef @.str.4)
  %11334 = call ptr @__errno_location() #12
  %11335 = load i32, ptr %11334, align 4, !tbaa !5
  %11336 = call ptr @strerror(i32 noundef %11335) #11
  %11337 = call ptr @__errno_location() #12
  %11338 = load i32, ptr %11337, align 4, !tbaa !5
  %11339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11326, ptr noundef @.str.5, i32 noundef %11327, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 429, ptr noundef %11330, ptr noundef %11333, ptr noundef %11336, i32 noundef %11338) #11
  br label %11340

11340:                                            ; preds = %11323, %11306
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #11
  br label %11341

11341:                                            ; preds = %11340
  br label %11342

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

11343:                                            ; No predecessors!
  br label %11344

11344:                                            ; preds = %11343
  br label %11345

11345:                                            ; preds = %11344, %11287
  br label %11346

11346:                                            ; preds = %11345
  br label %11347

11347:                                            ; preds = %11346
  br label %11348

11348:                                            ; preds = %11347
  %11349 = load i32, ptr @test_count, align 4, !tbaa !5
  %11350 = add nsw i32 %11349, 1
  store i32 %11350, ptr @test_count, align 4, !tbaa !5
  %11351 = load ptr, ptr %226, align 8, !tbaa !9
  %11352 = getelementptr inbounds %struct.s2n_connection, ptr %11351, i32 0, i32 1
  %11353 = load ptr, ptr %11352, align 8, !tbaa !70
  %11354 = icmp eq ptr %11353, null
  br i1 %11354, label %11355, label %11408

11355:                                            ; preds = %11348
  br label %11356

11356:                                            ; preds = %11355
  br label %11357

11357:                                            ; preds = %11356
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #11
  %11358 = call ptr @__errno_location() #12
  %11359 = load i32, ptr %11358, align 4, !tbaa !5
  store i32 %11359, ptr %228, align 4, !tbaa !5
  %11360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11361 = call i32 @s2n_print_stacktrace(ptr noundef %11360)
  %11362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11363 = trunc i8 %11362 to i1
  br i1 %11363, label %11364, label %11386

11364:                                            ; preds = %11357
  %11365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11366 = call i32 @fileno(ptr noundef %11365) #11
  %11367 = call i32 @isatty(i32 noundef %11366) #11
  %11368 = icmp ne i32 %11367, 0
  br i1 %11368, label %11369, label %11386

11369:                                            ; preds = %11364
  %11370 = load i32, ptr %228, align 4, !tbaa !5
  %11371 = call ptr @__errno_location() #12
  store i32 %11370, ptr %11371, align 4, !tbaa !5
  %11372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11373 = load i32, ptr @test_count, align 4, !tbaa !5
  %11374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11375 = load i32, ptr %11374, align 4, !tbaa !5
  %11376 = call ptr @s2n_strerror(i32 noundef %11375, ptr noundef @.str.4)
  %11377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11378 = load i32, ptr %11377, align 4, !tbaa !5
  %11379 = call ptr @s2n_strerror_debug(i32 noundef %11378, ptr noundef @.str.4)
  %11380 = call ptr @__errno_location() #12
  %11381 = load i32, ptr %11380, align 4, !tbaa !5
  %11382 = call ptr @strerror(i32 noundef %11381) #11
  %11383 = call ptr @__errno_location() #12
  %11384 = load i32, ptr %11383, align 4, !tbaa !5
  %11385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11372, ptr noundef @.str.2, i32 noundef %11373, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 430, ptr noundef %11376, ptr noundef %11379, ptr noundef %11382, i32 noundef %11384) #11
  br label %11403

11386:                                            ; preds = %11364, %11357
  %11387 = load i32, ptr %228, align 4, !tbaa !5
  %11388 = call ptr @__errno_location() #12
  store i32 %11387, ptr %11388, align 4, !tbaa !5
  %11389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11390 = load i32, ptr @test_count, align 4, !tbaa !5
  %11391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11392 = load i32, ptr %11391, align 4, !tbaa !5
  %11393 = call ptr @s2n_strerror(i32 noundef %11392, ptr noundef @.str.4)
  %11394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11395 = load i32, ptr %11394, align 4, !tbaa !5
  %11396 = call ptr @s2n_strerror_debug(i32 noundef %11395, ptr noundef @.str.4)
  %11397 = call ptr @__errno_location() #12
  %11398 = load i32, ptr %11397, align 4, !tbaa !5
  %11399 = call ptr @strerror(i32 noundef %11398) #11
  %11400 = call ptr @__errno_location() #12
  %11401 = load i32, ptr %11400, align 4, !tbaa !5
  %11402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11389, ptr noundef @.str.5, i32 noundef %11390, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 430, ptr noundef %11393, ptr noundef %11396, ptr noundef %11399, i32 noundef %11401) #11
  br label %11403

11403:                                            ; preds = %11386, %11369
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #11
  br label %11404

11404:                                            ; preds = %11403
  br label %11405

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

11406:                                            ; No predecessors!
  br label %11407

11407:                                            ; preds = %11406
  br label %11408

11408:                                            ; preds = %11407, %11348
  br label %11409

11409:                                            ; preds = %11408
  br label %11410

11410:                                            ; preds = %11409
  call void @llvm.lifetime.start.p0(i64 8, ptr %229) #11
  store ptr @s2n_ecc_curve_x25519, ptr %229, align 8, !tbaa !9
  br label %11411

11411:                                            ; preds = %11410
  %11412 = load i32, ptr @test_count, align 4, !tbaa !5
  %11413 = add nsw i32 %11412, 1
  store i32 %11413, ptr @test_count, align 4, !tbaa !5
  %11414 = load ptr, ptr %226, align 8, !tbaa !9
  %11415 = getelementptr inbounds %struct.s2n_connection, ptr %11414, i32 0, i32 1
  %11416 = load ptr, ptr %11415, align 8, !tbaa !70
  %11417 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %11416, ptr noundef @.str.99)
  %11418 = icmp eq i32 %11417, -1
  br i1 %11418, label %11419, label %11472

11419:                                            ; preds = %11411
  br label %11420

11420:                                            ; preds = %11419
  br label %11421

11421:                                            ; preds = %11420
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #11
  %11422 = call ptr @__errno_location() #12
  %11423 = load i32, ptr %11422, align 4, !tbaa !5
  store i32 %11423, ptr %230, align 4, !tbaa !5
  %11424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11425 = call i32 @s2n_print_stacktrace(ptr noundef %11424)
  %11426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11427 = trunc i8 %11426 to i1
  br i1 %11427, label %11428, label %11450

11428:                                            ; preds = %11421
  %11429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11430 = call i32 @fileno(ptr noundef %11429) #11
  %11431 = call i32 @isatty(i32 noundef %11430) #11
  %11432 = icmp ne i32 %11431, 0
  br i1 %11432, label %11433, label %11450

11433:                                            ; preds = %11428
  %11434 = load i32, ptr %230, align 4, !tbaa !5
  %11435 = call ptr @__errno_location() #12
  store i32 %11434, ptr %11435, align 4, !tbaa !5
  %11436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11437 = load i32, ptr @test_count, align 4, !tbaa !5
  %11438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11439 = load i32, ptr %11438, align 4, !tbaa !5
  %11440 = call ptr @s2n_strerror(i32 noundef %11439, ptr noundef @.str.4)
  %11441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11442 = load i32, ptr %11441, align 4, !tbaa !5
  %11443 = call ptr @s2n_strerror_debug(i32 noundef %11442, ptr noundef @.str.4)
  %11444 = call ptr @__errno_location() #12
  %11445 = load i32, ptr %11444, align 4, !tbaa !5
  %11446 = call ptr @strerror(i32 noundef %11445) #11
  %11447 = call ptr @__errno_location() #12
  %11448 = load i32, ptr %11447, align 4, !tbaa !5
  %11449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11436, ptr noundef @.str.2, i32 noundef %11437, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 434, ptr noundef %11440, ptr noundef %11443, ptr noundef %11446, i32 noundef %11448) #11
  br label %11467

11450:                                            ; preds = %11428, %11421
  %11451 = load i32, ptr %230, align 4, !tbaa !5
  %11452 = call ptr @__errno_location() #12
  store i32 %11451, ptr %11452, align 4, !tbaa !5
  %11453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11454 = load i32, ptr @test_count, align 4, !tbaa !5
  %11455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11456 = load i32, ptr %11455, align 4, !tbaa !5
  %11457 = call ptr @s2n_strerror(i32 noundef %11456, ptr noundef @.str.4)
  %11458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11459 = load i32, ptr %11458, align 4, !tbaa !5
  %11460 = call ptr @s2n_strerror_debug(i32 noundef %11459, ptr noundef @.str.4)
  %11461 = call ptr @__errno_location() #12
  %11462 = load i32, ptr %11461, align 4, !tbaa !5
  %11463 = call ptr @strerror(i32 noundef %11462) #11
  %11464 = call ptr @__errno_location() #12
  %11465 = load i32, ptr %11464, align 4, !tbaa !5
  %11466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11453, ptr noundef @.str.5, i32 noundef %11454, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 434, ptr noundef %11457, ptr noundef %11460, ptr noundef %11463, i32 noundef %11465) #11
  br label %11467

11467:                                            ; preds = %11450, %11433
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #11
  br label %11468

11468:                                            ; preds = %11467
  br label %11469

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

11470:                                            ; No predecessors!
  br label %11471

11471:                                            ; preds = %11470
  br label %11472

11472:                                            ; preds = %11471, %11411
  br label %11473

11473:                                            ; preds = %11472
  br label %11474

11474:                                            ; preds = %11473
  %11475 = load ptr, ptr %229, align 8, !tbaa !9
  %11476 = load ptr, ptr %226, align 8, !tbaa !9
  %11477 = getelementptr inbounds %struct.s2n_connection, ptr %11476, i32 0, i32 31
  %11478 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11477, i32 0, i32 1
  %11479 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11478, i32 0, i32 0
  store ptr %11475, ptr %11479, align 8, !tbaa !42
  %11480 = load ptr, ptr %229, align 8, !tbaa !9
  %11481 = load ptr, ptr %226, align 8, !tbaa !9
  %11482 = getelementptr inbounds %struct.s2n_connection, ptr %11481, i32 0, i32 31
  %11483 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11482, i32 0, i32 3
  %11484 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11483, i32 0, i32 0
  store ptr %11480, ptr %11484, align 8, !tbaa !45
  br label %11485

11485:                                            ; preds = %11474
  br label %11486

11486:                                            ; preds = %11485
  %11487 = load i32, ptr @test_count, align 4, !tbaa !5
  %11488 = add nsw i32 %11487, 1
  store i32 %11488, ptr @test_count, align 4, !tbaa !5
  %11489 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %11490 = load ptr, ptr %226, align 8, !tbaa !9
  %11491 = load ptr, ptr %226, align 8, !tbaa !9
  %11492 = getelementptr inbounds %struct.s2n_connection, ptr %11491, i32 0, i32 52
  %11493 = getelementptr inbounds %struct.s2n_handshake, ptr %11492, i32 0, i32 0
  %11494 = call i32 %11489(ptr noundef %11490, ptr noundef %11493)
  %11495 = icmp eq i32 %11494, -1
  br i1 %11495, label %11549, label %11496

11496:                                            ; preds = %11486
  br label %11497

11497:                                            ; preds = %11496
  br label %11498

11498:                                            ; preds = %11497
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #11
  %11499 = call ptr @__errno_location() #12
  %11500 = load i32, ptr %11499, align 4, !tbaa !5
  store i32 %11500, ptr %231, align 4, !tbaa !5
  %11501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11502 = call i32 @s2n_print_stacktrace(ptr noundef %11501)
  %11503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11504 = trunc i8 %11503 to i1
  br i1 %11504, label %11505, label %11527

11505:                                            ; preds = %11498
  %11506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11507 = call i32 @fileno(ptr noundef %11506) #11
  %11508 = call i32 @isatty(i32 noundef %11507) #11
  %11509 = icmp ne i32 %11508, 0
  br i1 %11509, label %11510, label %11527

11510:                                            ; preds = %11505
  %11511 = load i32, ptr %231, align 4, !tbaa !5
  %11512 = call ptr @__errno_location() #12
  store i32 %11511, ptr %11512, align 4, !tbaa !5
  %11513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11514 = load i32, ptr @test_count, align 4, !tbaa !5
  %11515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11516 = load i32, ptr %11515, align 4, !tbaa !5
  %11517 = call ptr @s2n_strerror(i32 noundef %11516, ptr noundef @.str.4)
  %11518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11519 = load i32, ptr %11518, align 4, !tbaa !5
  %11520 = call ptr @s2n_strerror_debug(i32 noundef %11519, ptr noundef @.str.4)
  %11521 = call ptr @__errno_location() #12
  %11522 = load i32, ptr %11521, align 4, !tbaa !5
  %11523 = call ptr @strerror(i32 noundef %11522) #11
  %11524 = call ptr @__errno_location() #12
  %11525 = load i32, ptr %11524, align 4, !tbaa !5
  %11526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11513, ptr noundef @.str.2, i32 noundef %11514, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 438, ptr noundef %11517, ptr noundef %11520, ptr noundef %11523, i32 noundef %11525) #11
  br label %11544

11527:                                            ; preds = %11505, %11498
  %11528 = load i32, ptr %231, align 4, !tbaa !5
  %11529 = call ptr @__errno_location() #12
  store i32 %11528, ptr %11529, align 4, !tbaa !5
  %11530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11531 = load i32, ptr @test_count, align 4, !tbaa !5
  %11532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11533 = load i32, ptr %11532, align 4, !tbaa !5
  %11534 = call ptr @s2n_strerror(i32 noundef %11533, ptr noundef @.str.4)
  %11535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11536 = load i32, ptr %11535, align 4, !tbaa !5
  %11537 = call ptr @s2n_strerror_debug(i32 noundef %11536, ptr noundef @.str.4)
  %11538 = call ptr @__errno_location() #12
  %11539 = load i32, ptr %11538, align 4, !tbaa !5
  %11540 = call ptr @strerror(i32 noundef %11539) #11
  %11541 = call ptr @__errno_location() #12
  %11542 = load i32, ptr %11541, align 4, !tbaa !5
  %11543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11530, ptr noundef @.str.5, i32 noundef %11531, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 438, ptr noundef %11534, ptr noundef %11537, ptr noundef %11540, i32 noundef %11542) #11
  br label %11544

11544:                                            ; preds = %11527, %11510
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #11
  br label %11545

11545:                                            ; preds = %11544
  br label %11546

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

11547:                                            ; No predecessors!
  br label %11548

11548:                                            ; preds = %11547
  br label %11549

11549:                                            ; preds = %11548, %11486
  br label %11550

11550:                                            ; preds = %11549
  br label %11551

11551:                                            ; preds = %11550
  br label %11552

11552:                                            ; preds = %11551
  %11553 = load i32, ptr @test_count, align 4, !tbaa !5
  %11554 = add nsw i32 %11553, 1
  store i32 %11554, ptr @test_count, align 4, !tbaa !5
  %11555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11556 = load i32, ptr %11555, align 4, !tbaa !5
  %11557 = icmp eq i32 %11556, 0
  br i1 %11557, label %11558, label %11611

11558:                                            ; preds = %11552
  br label %11559

11559:                                            ; preds = %11558
  br label %11560

11560:                                            ; preds = %11559
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #11
  %11561 = call ptr @__errno_location() #12
  %11562 = load i32, ptr %11561, align 4, !tbaa !5
  store i32 %11562, ptr %232, align 4, !tbaa !5
  %11563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11564 = call i32 @s2n_print_stacktrace(ptr noundef %11563)
  %11565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11566 = trunc i8 %11565 to i1
  br i1 %11566, label %11567, label %11589

11567:                                            ; preds = %11560
  %11568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11569 = call i32 @fileno(ptr noundef %11568) #11
  %11570 = call i32 @isatty(i32 noundef %11569) #11
  %11571 = icmp ne i32 %11570, 0
  br i1 %11571, label %11572, label %11589

11572:                                            ; preds = %11567
  %11573 = load i32, ptr %232, align 4, !tbaa !5
  %11574 = call ptr @__errno_location() #12
  store i32 %11573, ptr %11574, align 4, !tbaa !5
  %11575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11576 = load i32, ptr @test_count, align 4, !tbaa !5
  %11577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11578 = load i32, ptr %11577, align 4, !tbaa !5
  %11579 = call ptr @s2n_strerror(i32 noundef %11578, ptr noundef @.str.4)
  %11580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11581 = load i32, ptr %11580, align 4, !tbaa !5
  %11582 = call ptr @s2n_strerror_debug(i32 noundef %11581, ptr noundef @.str.4)
  %11583 = call ptr @__errno_location() #12
  %11584 = load i32, ptr %11583, align 4, !tbaa !5
  %11585 = call ptr @strerror(i32 noundef %11584) #11
  %11586 = call ptr @__errno_location() #12
  %11587 = load i32, ptr %11586, align 4, !tbaa !5
  %11588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11575, ptr noundef @.str.2, i32 noundef %11576, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 438, ptr noundef %11579, ptr noundef %11582, ptr noundef %11585, i32 noundef %11587) #11
  br label %11606

11589:                                            ; preds = %11567, %11560
  %11590 = load i32, ptr %232, align 4, !tbaa !5
  %11591 = call ptr @__errno_location() #12
  store i32 %11590, ptr %11591, align 4, !tbaa !5
  %11592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11593 = load i32, ptr @test_count, align 4, !tbaa !5
  %11594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11595 = load i32, ptr %11594, align 4, !tbaa !5
  %11596 = call ptr @s2n_strerror(i32 noundef %11595, ptr noundef @.str.4)
  %11597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11598 = load i32, ptr %11597, align 4, !tbaa !5
  %11599 = call ptr @s2n_strerror_debug(i32 noundef %11598, ptr noundef @.str.4)
  %11600 = call ptr @__errno_location() #12
  %11601 = load i32, ptr %11600, align 4, !tbaa !5
  %11602 = call ptr @strerror(i32 noundef %11601) #11
  %11603 = call ptr @__errno_location() #12
  %11604 = load i32, ptr %11603, align 4, !tbaa !5
  %11605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11592, ptr noundef @.str.5, i32 noundef %11593, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 438, ptr noundef %11596, ptr noundef %11599, ptr noundef %11602, i32 noundef %11604) #11
  br label %11606

11606:                                            ; preds = %11589, %11572
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #11
  br label %11607

11607:                                            ; preds = %11606
  br label %11608

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

11609:                                            ; No predecessors!
  br label %11610

11610:                                            ; preds = %11609
  br label %11611

11611:                                            ; preds = %11610, %11552
  br label %11612

11612:                                            ; preds = %11611
  br label %11613

11613:                                            ; preds = %11612
  br label %11614

11614:                                            ; preds = %11613
  %11615 = load i32, ptr @test_count, align 4, !tbaa !5
  %11616 = add nsw i32 %11615, 1
  store i32 %11616, ptr @test_count, align 4, !tbaa !5
  %11617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11618 = load i32, ptr %11617, align 4, !tbaa !5
  %11619 = call ptr @s2n_strerror_debug(i32 noundef %11618, ptr noundef @.str.4)
  %11620 = icmp eq ptr %11619, null
  br i1 %11620, label %11621, label %11674

11621:                                            ; preds = %11614
  br label %11622

11622:                                            ; preds = %11621
  br label %11623

11623:                                            ; preds = %11622
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #11
  %11624 = call ptr @__errno_location() #12
  %11625 = load i32, ptr %11624, align 4, !tbaa !5
  store i32 %11625, ptr %233, align 4, !tbaa !5
  %11626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11627 = call i32 @s2n_print_stacktrace(ptr noundef %11626)
  %11628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11629 = trunc i8 %11628 to i1
  br i1 %11629, label %11630, label %11652

11630:                                            ; preds = %11623
  %11631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11632 = call i32 @fileno(ptr noundef %11631) #11
  %11633 = call i32 @isatty(i32 noundef %11632) #11
  %11634 = icmp ne i32 %11633, 0
  br i1 %11634, label %11635, label %11652

11635:                                            ; preds = %11630
  %11636 = load i32, ptr %233, align 4, !tbaa !5
  %11637 = call ptr @__errno_location() #12
  store i32 %11636, ptr %11637, align 4, !tbaa !5
  %11638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11639 = load i32, ptr @test_count, align 4, !tbaa !5
  %11640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11641 = load i32, ptr %11640, align 4, !tbaa !5
  %11642 = call ptr @s2n_strerror(i32 noundef %11641, ptr noundef @.str.4)
  %11643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11644 = load i32, ptr %11643, align 4, !tbaa !5
  %11645 = call ptr @s2n_strerror_debug(i32 noundef %11644, ptr noundef @.str.4)
  %11646 = call ptr @__errno_location() #12
  %11647 = load i32, ptr %11646, align 4, !tbaa !5
  %11648 = call ptr @strerror(i32 noundef %11647) #11
  %11649 = call ptr @__errno_location() #12
  %11650 = load i32, ptr %11649, align 4, !tbaa !5
  %11651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11638, ptr noundef @.str.2, i32 noundef %11639, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 438, ptr noundef %11642, ptr noundef %11645, ptr noundef %11648, i32 noundef %11650) #11
  br label %11669

11652:                                            ; preds = %11630, %11623
  %11653 = load i32, ptr %233, align 4, !tbaa !5
  %11654 = call ptr @__errno_location() #12
  store i32 %11653, ptr %11654, align 4, !tbaa !5
  %11655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11656 = load i32, ptr @test_count, align 4, !tbaa !5
  %11657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11658 = load i32, ptr %11657, align 4, !tbaa !5
  %11659 = call ptr @s2n_strerror(i32 noundef %11658, ptr noundef @.str.4)
  %11660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11661 = load i32, ptr %11660, align 4, !tbaa !5
  %11662 = call ptr @s2n_strerror_debug(i32 noundef %11661, ptr noundef @.str.4)
  %11663 = call ptr @__errno_location() #12
  %11664 = load i32, ptr %11663, align 4, !tbaa !5
  %11665 = call ptr @strerror(i32 noundef %11664) #11
  %11666 = call ptr @__errno_location() #12
  %11667 = load i32, ptr %11666, align 4, !tbaa !5
  %11668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11655, ptr noundef @.str.5, i32 noundef %11656, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 438, ptr noundef %11659, ptr noundef %11662, ptr noundef %11665, i32 noundef %11667) #11
  br label %11669

11669:                                            ; preds = %11652, %11635
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #11
  br label %11670

11670:                                            ; preds = %11669
  br label %11671

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

11672:                                            ; No predecessors!
  br label %11673

11673:                                            ; preds = %11672
  br label %11674

11674:                                            ; preds = %11673, %11614
  br label %11675

11675:                                            ; preds = %11674
  br label %11676

11676:                                            ; preds = %11675
  br label %11677

11677:                                            ; preds = %11676
  %11678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11678, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11679 = call ptr @__errno_location() #12
  store i32 0, ptr %11679, align 4, !tbaa !5
  br label %11680

11680:                                            ; preds = %11677
  br label %11681

11681:                                            ; preds = %11680
  br label %11682

11682:                                            ; preds = %11681
  br label %11683

11683:                                            ; preds = %11682
  br label %11684

11684:                                            ; preds = %11683
  %11685 = load i32, ptr @test_count, align 4, !tbaa !5
  %11686 = add nsw i32 %11685, 1
  store i32 %11686, ptr @test_count, align 4, !tbaa !5
  %11687 = load ptr, ptr %226, align 8, !tbaa !9
  %11688 = call i32 @s2n_connection_free(ptr noundef %11687)
  %11689 = icmp eq i32 %11688, -1
  br i1 %11689, label %11690, label %11743

11690:                                            ; preds = %11684
  br label %11691

11691:                                            ; preds = %11690
  br label %11692

11692:                                            ; preds = %11691
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #11
  %11693 = call ptr @__errno_location() #12
  %11694 = load i32, ptr %11693, align 4, !tbaa !5
  store i32 %11694, ptr %234, align 4, !tbaa !5
  %11695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11696 = call i32 @s2n_print_stacktrace(ptr noundef %11695)
  %11697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11698 = trunc i8 %11697 to i1
  br i1 %11698, label %11699, label %11721

11699:                                            ; preds = %11692
  %11700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11701 = call i32 @fileno(ptr noundef %11700) #11
  %11702 = call i32 @isatty(i32 noundef %11701) #11
  %11703 = icmp ne i32 %11702, 0
  br i1 %11703, label %11704, label %11721

11704:                                            ; preds = %11699
  %11705 = load i32, ptr %234, align 4, !tbaa !5
  %11706 = call ptr @__errno_location() #12
  store i32 %11705, ptr %11706, align 4, !tbaa !5
  %11707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11708 = load i32, ptr @test_count, align 4, !tbaa !5
  %11709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11710 = load i32, ptr %11709, align 4, !tbaa !5
  %11711 = call ptr @s2n_strerror(i32 noundef %11710, ptr noundef @.str.4)
  %11712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11713 = load i32, ptr %11712, align 4, !tbaa !5
  %11714 = call ptr @s2n_strerror_debug(i32 noundef %11713, ptr noundef @.str.4)
  %11715 = call ptr @__errno_location() #12
  %11716 = load i32, ptr %11715, align 4, !tbaa !5
  %11717 = call ptr @strerror(i32 noundef %11716) #11
  %11718 = call ptr @__errno_location() #12
  %11719 = load i32, ptr %11718, align 4, !tbaa !5
  %11720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11707, ptr noundef @.str.2, i32 noundef %11708, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 440, ptr noundef %11711, ptr noundef %11714, ptr noundef %11717, i32 noundef %11719) #11
  br label %11738

11721:                                            ; preds = %11699, %11692
  %11722 = load i32, ptr %234, align 4, !tbaa !5
  %11723 = call ptr @__errno_location() #12
  store i32 %11722, ptr %11723, align 4, !tbaa !5
  %11724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11725 = load i32, ptr @test_count, align 4, !tbaa !5
  %11726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11727 = load i32, ptr %11726, align 4, !tbaa !5
  %11728 = call ptr @s2n_strerror(i32 noundef %11727, ptr noundef @.str.4)
  %11729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11730 = load i32, ptr %11729, align 4, !tbaa !5
  %11731 = call ptr @s2n_strerror_debug(i32 noundef %11730, ptr noundef @.str.4)
  %11732 = call ptr @__errno_location() #12
  %11733 = load i32, ptr %11732, align 4, !tbaa !5
  %11734 = call ptr @strerror(i32 noundef %11733) #11
  %11735 = call ptr @__errno_location() #12
  %11736 = load i32, ptr %11735, align 4, !tbaa !5
  %11737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11724, ptr noundef @.str.5, i32 noundef %11725, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 440, ptr noundef %11728, ptr noundef %11731, ptr noundef %11734, i32 noundef %11736) #11
  br label %11738

11738:                                            ; preds = %11721, %11704
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #11
  br label %11739

11739:                                            ; preds = %11738
  br label %11740

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

11741:                                            ; No predecessors!
  br label %11742

11742:                                            ; preds = %11741
  br label %11743

11743:                                            ; preds = %11742, %11684
  br label %11744

11744:                                            ; preds = %11743
  br label %11745

11745:                                            ; preds = %11744
  call void @llvm.lifetime.end.p0(i64 8, ptr %229) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #11
  br label %11746

11746:                                            ; preds = %11745, %11283
  %11747 = call i32 (...) @s2n_is_evp_apis_supported()
  %11748 = icmp ne i32 %11747, 0
  br i1 %11748, label %11749, label %12205

11749:                                            ; preds = %11746
  call void @llvm.lifetime.start.p0(i64 8, ptr %235) #11
  store ptr null, ptr %235, align 8, !tbaa !9
  br label %11750

11750:                                            ; preds = %11749
  %11751 = load i32, ptr @test_count, align 4, !tbaa !5
  %11752 = add nsw i32 %11751, 1
  store i32 %11752, ptr @test_count, align 4, !tbaa !5
  %11753 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11753, ptr %235, align 8, !tbaa !9
  %11754 = icmp eq ptr %11753, null
  br i1 %11754, label %11755, label %11808

11755:                                            ; preds = %11750
  br label %11756

11756:                                            ; preds = %11755
  br label %11757

11757:                                            ; preds = %11756
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #11
  %11758 = call ptr @__errno_location() #12
  %11759 = load i32, ptr %11758, align 4, !tbaa !5
  store i32 %11759, ptr %236, align 4, !tbaa !5
  %11760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11761 = call i32 @s2n_print_stacktrace(ptr noundef %11760)
  %11762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11763 = trunc i8 %11762 to i1
  br i1 %11763, label %11764, label %11786

11764:                                            ; preds = %11757
  %11765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11766 = call i32 @fileno(ptr noundef %11765) #11
  %11767 = call i32 @isatty(i32 noundef %11766) #11
  %11768 = icmp ne i32 %11767, 0
  br i1 %11768, label %11769, label %11786

11769:                                            ; preds = %11764
  %11770 = load i32, ptr %236, align 4, !tbaa !5
  %11771 = call ptr @__errno_location() #12
  store i32 %11770, ptr %11771, align 4, !tbaa !5
  %11772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11773 = load i32, ptr @test_count, align 4, !tbaa !5
  %11774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11775 = load i32, ptr %11774, align 4, !tbaa !5
  %11776 = call ptr @s2n_strerror(i32 noundef %11775, ptr noundef @.str.4)
  %11777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11778 = load i32, ptr %11777, align 4, !tbaa !5
  %11779 = call ptr @s2n_strerror_debug(i32 noundef %11778, ptr noundef @.str.4)
  %11780 = call ptr @__errno_location() #12
  %11781 = load i32, ptr %11780, align 4, !tbaa !5
  %11782 = call ptr @strerror(i32 noundef %11781) #11
  %11783 = call ptr @__errno_location() #12
  %11784 = load i32, ptr %11783, align 4, !tbaa !5
  %11785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11772, ptr noundef @.str.2, i32 noundef %11773, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 446, ptr noundef %11776, ptr noundef %11779, ptr noundef %11782, i32 noundef %11784) #11
  br label %11803

11786:                                            ; preds = %11764, %11757
  %11787 = load i32, ptr %236, align 4, !tbaa !5
  %11788 = call ptr @__errno_location() #12
  store i32 %11787, ptr %11788, align 4, !tbaa !5
  %11789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11790 = load i32, ptr @test_count, align 4, !tbaa !5
  %11791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11792 = load i32, ptr %11791, align 4, !tbaa !5
  %11793 = call ptr @s2n_strerror(i32 noundef %11792, ptr noundef @.str.4)
  %11794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11795 = load i32, ptr %11794, align 4, !tbaa !5
  %11796 = call ptr @s2n_strerror_debug(i32 noundef %11795, ptr noundef @.str.4)
  %11797 = call ptr @__errno_location() #12
  %11798 = load i32, ptr %11797, align 4, !tbaa !5
  %11799 = call ptr @strerror(i32 noundef %11798) #11
  %11800 = call ptr @__errno_location() #12
  %11801 = load i32, ptr %11800, align 4, !tbaa !5
  %11802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11789, ptr noundef @.str.5, i32 noundef %11790, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 446, ptr noundef %11793, ptr noundef %11796, ptr noundef %11799, i32 noundef %11801) #11
  br label %11803

11803:                                            ; preds = %11786, %11769
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #11
  br label %11804

11804:                                            ; preds = %11803
  br label %11805

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

11806:                                            ; No predecessors!
  br label %11807

11807:                                            ; preds = %11806
  br label %11808

11808:                                            ; preds = %11807, %11750
  br label %11809

11809:                                            ; preds = %11808
  br label %11810

11810:                                            ; preds = %11809
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #11
  %11811 = load ptr, ptr %235, align 8, !tbaa !9
  %11812 = getelementptr inbounds %struct.s2n_connection, ptr %11811, i32 0, i32 52
  %11813 = getelementptr inbounds %struct.s2n_handshake, ptr %11812, i32 0, i32 0
  store ptr %11813, ptr %237, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %238) #11
  store ptr @s2n_ecc_curve_x25519, ptr %238, align 8, !tbaa !9
  br label %11814

11814:                                            ; preds = %11810
  %11815 = load i32, ptr @test_count, align 4, !tbaa !5
  %11816 = add nsw i32 %11815, 1
  store i32 %11816, ptr @test_count, align 4, !tbaa !5
  %11817 = load ptr, ptr %235, align 8, !tbaa !9
  %11818 = getelementptr inbounds %struct.s2n_connection, ptr %11817, i32 0, i32 1
  %11819 = load ptr, ptr %11818, align 8, !tbaa !70
  %11820 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %11819, ptr noundef @.str.99)
  %11821 = icmp eq i32 %11820, -1
  br i1 %11821, label %11822, label %11875

11822:                                            ; preds = %11814
  br label %11823

11823:                                            ; preds = %11822
  br label %11824

11824:                                            ; preds = %11823
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #11
  %11825 = call ptr @__errno_location() #12
  %11826 = load i32, ptr %11825, align 4, !tbaa !5
  store i32 %11826, ptr %239, align 4, !tbaa !5
  %11827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11828 = call i32 @s2n_print_stacktrace(ptr noundef %11827)
  %11829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11830 = trunc i8 %11829 to i1
  br i1 %11830, label %11831, label %11853

11831:                                            ; preds = %11824
  %11832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11833 = call i32 @fileno(ptr noundef %11832) #11
  %11834 = call i32 @isatty(i32 noundef %11833) #11
  %11835 = icmp ne i32 %11834, 0
  br i1 %11835, label %11836, label %11853

11836:                                            ; preds = %11831
  %11837 = load i32, ptr %239, align 4, !tbaa !5
  %11838 = call ptr @__errno_location() #12
  store i32 %11837, ptr %11838, align 4, !tbaa !5
  %11839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11840 = load i32, ptr @test_count, align 4, !tbaa !5
  %11841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11842 = load i32, ptr %11841, align 4, !tbaa !5
  %11843 = call ptr @s2n_strerror(i32 noundef %11842, ptr noundef @.str.4)
  %11844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11845 = load i32, ptr %11844, align 4, !tbaa !5
  %11846 = call ptr @s2n_strerror_debug(i32 noundef %11845, ptr noundef @.str.4)
  %11847 = call ptr @__errno_location() #12
  %11848 = load i32, ptr %11847, align 4, !tbaa !5
  %11849 = call ptr @strerror(i32 noundef %11848) #11
  %11850 = call ptr @__errno_location() #12
  %11851 = load i32, ptr %11850, align 4, !tbaa !5
  %11852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11839, ptr noundef @.str.2, i32 noundef %11840, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 451, ptr noundef %11843, ptr noundef %11846, ptr noundef %11849, i32 noundef %11851) #11
  br label %11870

11853:                                            ; preds = %11831, %11824
  %11854 = load i32, ptr %239, align 4, !tbaa !5
  %11855 = call ptr @__errno_location() #12
  store i32 %11854, ptr %11855, align 4, !tbaa !5
  %11856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11857 = load i32, ptr @test_count, align 4, !tbaa !5
  %11858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11859 = load i32, ptr %11858, align 4, !tbaa !5
  %11860 = call ptr @s2n_strerror(i32 noundef %11859, ptr noundef @.str.4)
  %11861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11862 = load i32, ptr %11861, align 4, !tbaa !5
  %11863 = call ptr @s2n_strerror_debug(i32 noundef %11862, ptr noundef @.str.4)
  %11864 = call ptr @__errno_location() #12
  %11865 = load i32, ptr %11864, align 4, !tbaa !5
  %11866 = call ptr @strerror(i32 noundef %11865) #11
  %11867 = call ptr @__errno_location() #12
  %11868 = load i32, ptr %11867, align 4, !tbaa !5
  %11869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11856, ptr noundef @.str.5, i32 noundef %11857, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 451, ptr noundef %11860, ptr noundef %11863, ptr noundef %11866, i32 noundef %11868) #11
  br label %11870

11870:                                            ; preds = %11853, %11836
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #11
  br label %11871

11871:                                            ; preds = %11870
  br label %11872

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

11873:                                            ; No predecessors!
  br label %11874

11874:                                            ; preds = %11873
  br label %11875

11875:                                            ; preds = %11874, %11814
  br label %11876

11876:                                            ; preds = %11875
  br label %11877

11877:                                            ; preds = %11876
  br label %11878

11878:                                            ; preds = %11877
  %11879 = load i32, ptr @test_count, align 4, !tbaa !5
  %11880 = add nsw i32 %11879, 1
  store i32 %11880, ptr @test_count, align 4, !tbaa !5
  %11881 = load ptr, ptr %237, align 8, !tbaa !9
  %11882 = load ptr, ptr %238, align 8, !tbaa !9
  %11883 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %11882, i32 0, i32 0
  %11884 = load i16, ptr %11883, align 8, !tbaa !54
  %11885 = call i32 @s2n_stuffer_write_uint16(ptr noundef %11881, i16 noundef zeroext %11884)
  %11886 = icmp eq i32 %11885, -1
  br i1 %11886, label %11887, label %11940

11887:                                            ; preds = %11878
  br label %11888

11888:                                            ; preds = %11887
  br label %11889

11889:                                            ; preds = %11888
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #11
  %11890 = call ptr @__errno_location() #12
  %11891 = load i32, ptr %11890, align 4, !tbaa !5
  store i32 %11891, ptr %240, align 4, !tbaa !5
  %11892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11893 = call i32 @s2n_print_stacktrace(ptr noundef %11892)
  %11894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11895 = trunc i8 %11894 to i1
  br i1 %11895, label %11896, label %11918

11896:                                            ; preds = %11889
  %11897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11898 = call i32 @fileno(ptr noundef %11897) #11
  %11899 = call i32 @isatty(i32 noundef %11898) #11
  %11900 = icmp ne i32 %11899, 0
  br i1 %11900, label %11901, label %11918

11901:                                            ; preds = %11896
  %11902 = load i32, ptr %240, align 4, !tbaa !5
  %11903 = call ptr @__errno_location() #12
  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() #12
  %11913 = load i32, ptr %11912, align 4, !tbaa !5
  %11914 = call ptr @strerror(i32 noundef %11913) #11
  %11915 = call ptr @__errno_location() #12
  %11916 = load i32, ptr %11915, align 4, !tbaa !5
  %11917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11904, ptr noundef @.str.2, i32 noundef %11905, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 454, ptr noundef %11908, ptr noundef %11911, ptr noundef %11914, i32 noundef %11916) #11
  br label %11935

11918:                                            ; preds = %11896, %11889
  %11919 = load i32, ptr %240, align 4, !tbaa !5
  %11920 = call ptr @__errno_location() #12
  store i32 %11919, ptr %11920, align 4, !tbaa !5
  %11921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11922 = load i32, ptr @test_count, align 4, !tbaa !5
  %11923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11924 = load i32, ptr %11923, align 4, !tbaa !5
  %11925 = call ptr @s2n_strerror(i32 noundef %11924, ptr noundef @.str.4)
  %11926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11927 = load i32, ptr %11926, align 4, !tbaa !5
  %11928 = call ptr @s2n_strerror_debug(i32 noundef %11927, ptr noundef @.str.4)
  %11929 = call ptr @__errno_location() #12
  %11930 = load i32, ptr %11929, align 4, !tbaa !5
  %11931 = call ptr @strerror(i32 noundef %11930) #11
  %11932 = call ptr @__errno_location() #12
  %11933 = load i32, ptr %11932, align 4, !tbaa !5
  %11934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11921, ptr noundef @.str.5, i32 noundef %11922, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 454, ptr noundef %11925, ptr noundef %11928, ptr noundef %11931, i32 noundef %11933) #11
  br label %11935

11935:                                            ; preds = %11918, %11901
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #11
  br label %11936

11936:                                            ; preds = %11935
  br label %11937

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

11938:                                            ; No predecessors!
  br label %11939

11939:                                            ; preds = %11938
  br label %11940

11940:                                            ; preds = %11939, %11878
  br label %11941

11941:                                            ; preds = %11940
  br label %11942

11942:                                            ; preds = %11941
  br label %11943

11943:                                            ; preds = %11942
  br label %11944

11944:                                            ; preds = %11943
  br label %11945

11945:                                            ; preds = %11944
  %11946 = load i32, ptr @test_count, align 4, !tbaa !5
  %11947 = add nsw i32 %11946, 1
  store i32 %11947, ptr @test_count, align 4, !tbaa !5
  %11948 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %11949 = load ptr, ptr %235, align 8, !tbaa !9
  %11950 = load ptr, ptr %237, align 8, !tbaa !9
  %11951 = call i32 %11948(ptr noundef %11949, ptr noundef %11950)
  %11952 = icmp eq i32 %11951, -1
  br i1 %11952, label %12006, label %11953

11953:                                            ; preds = %11945
  br label %11954

11954:                                            ; preds = %11953
  br label %11955

11955:                                            ; preds = %11954
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #11
  %11956 = call ptr @__errno_location() #12
  %11957 = load i32, ptr %11956, align 4, !tbaa !5
  store i32 %11957, ptr %241, align 4, !tbaa !5
  %11958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11959 = call i32 @s2n_print_stacktrace(ptr noundef %11958)
  %11960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11961 = trunc i8 %11960 to i1
  br i1 %11961, label %11962, label %11984

11962:                                            ; preds = %11955
  %11963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11964 = call i32 @fileno(ptr noundef %11963) #11
  %11965 = call i32 @isatty(i32 noundef %11964) #11
  %11966 = icmp ne i32 %11965, 0
  br i1 %11966, label %11967, label %11984

11967:                                            ; preds = %11962
  %11968 = load i32, ptr %241, align 4, !tbaa !5
  %11969 = call ptr @__errno_location() #12
  store i32 %11968, ptr %11969, align 4, !tbaa !5
  %11970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11971 = load i32, ptr @test_count, align 4, !tbaa !5
  %11972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11973 = load i32, ptr %11972, align 4, !tbaa !5
  %11974 = call ptr @s2n_strerror(i32 noundef %11973, ptr noundef @.str.4)
  %11975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11976 = load i32, ptr %11975, align 4, !tbaa !5
  %11977 = call ptr @s2n_strerror_debug(i32 noundef %11976, ptr noundef @.str.4)
  %11978 = call ptr @__errno_location() #12
  %11979 = load i32, ptr %11978, align 4, !tbaa !5
  %11980 = call ptr @strerror(i32 noundef %11979) #11
  %11981 = call ptr @__errno_location() #12
  %11982 = load i32, ptr %11981, align 4, !tbaa !5
  %11983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11970, ptr noundef @.str.2, i32 noundef %11971, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 457, ptr noundef %11974, ptr noundef %11977, ptr noundef %11980, i32 noundef %11982) #11
  br label %12001

11984:                                            ; preds = %11962, %11955
  %11985 = load i32, ptr %241, align 4, !tbaa !5
  %11986 = call ptr @__errno_location() #12
  store i32 %11985, ptr %11986, align 4, !tbaa !5
  %11987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11988 = load i32, ptr @test_count, align 4, !tbaa !5
  %11989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11990 = load i32, ptr %11989, align 4, !tbaa !5
  %11991 = call ptr @s2n_strerror(i32 noundef %11990, ptr noundef @.str.4)
  %11992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11993 = load i32, ptr %11992, align 4, !tbaa !5
  %11994 = call ptr @s2n_strerror_debug(i32 noundef %11993, ptr noundef @.str.4)
  %11995 = call ptr @__errno_location() #12
  %11996 = load i32, ptr %11995, align 4, !tbaa !5
  %11997 = call ptr @strerror(i32 noundef %11996) #11
  %11998 = call ptr @__errno_location() #12
  %11999 = load i32, ptr %11998, align 4, !tbaa !5
  %12000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11987, ptr noundef @.str.5, i32 noundef %11988, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 457, ptr noundef %11991, ptr noundef %11994, ptr noundef %11997, i32 noundef %11999) #11
  br label %12001

12001:                                            ; preds = %11984, %11967
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #11
  br label %12002

12002:                                            ; preds = %12001
  br label %12003

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

12004:                                            ; No predecessors!
  br label %12005

12005:                                            ; preds = %12004
  br label %12006

12006:                                            ; preds = %12005, %11945
  br label %12007

12007:                                            ; preds = %12006
  br label %12008

12008:                                            ; preds = %12007
  br label %12009

12009:                                            ; preds = %12008
  %12010 = load i32, ptr @test_count, align 4, !tbaa !5
  %12011 = add nsw i32 %12010, 1
  store i32 %12011, ptr @test_count, align 4, !tbaa !5
  %12012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12013 = load i32, ptr %12012, align 4, !tbaa !5
  %12014 = icmp eq i32 %12013, 335544356
  br i1 %12014, label %12068, label %12015

12015:                                            ; preds = %12009
  br label %12016

12016:                                            ; preds = %12015
  br label %12017

12017:                                            ; preds = %12016
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #11
  %12018 = call ptr @__errno_location() #12
  %12019 = load i32, ptr %12018, align 4, !tbaa !5
  store i32 %12019, ptr %242, align 4, !tbaa !5
  %12020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12021 = call i32 @s2n_print_stacktrace(ptr noundef %12020)
  %12022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12023 = trunc i8 %12022 to i1
  br i1 %12023, label %12024, label %12046

12024:                                            ; preds = %12017
  %12025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12026 = call i32 @fileno(ptr noundef %12025) #11
  %12027 = call i32 @isatty(i32 noundef %12026) #11
  %12028 = icmp ne i32 %12027, 0
  br i1 %12028, label %12029, label %12046

12029:                                            ; preds = %12024
  %12030 = load i32, ptr %242, align 4, !tbaa !5
  %12031 = call ptr @__errno_location() #12
  store i32 %12030, ptr %12031, align 4, !tbaa !5
  %12032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12033 = load i32, ptr @test_count, align 4, !tbaa !5
  %12034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12035 = load i32, ptr %12034, align 4, !tbaa !5
  %12036 = call ptr @s2n_strerror(i32 noundef %12035, ptr noundef @.str.4)
  %12037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12038 = load i32, ptr %12037, align 4, !tbaa !5
  %12039 = call ptr @s2n_strerror_debug(i32 noundef %12038, ptr noundef @.str.4)
  %12040 = call ptr @__errno_location() #12
  %12041 = load i32, ptr %12040, align 4, !tbaa !5
  %12042 = call ptr @strerror(i32 noundef %12041) #11
  %12043 = call ptr @__errno_location() #12
  %12044 = load i32, ptr %12043, align 4, !tbaa !5
  %12045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12032, ptr noundef @.str.2, i32 noundef %12033, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 457, ptr noundef %12036, ptr noundef %12039, ptr noundef %12042, i32 noundef %12044) #11
  br label %12063

12046:                                            ; preds = %12024, %12017
  %12047 = load i32, ptr %242, align 4, !tbaa !5
  %12048 = call ptr @__errno_location() #12
  store i32 %12047, ptr %12048, align 4, !tbaa !5
  %12049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12050 = load i32, ptr @test_count, align 4, !tbaa !5
  %12051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12052 = load i32, ptr %12051, align 4, !tbaa !5
  %12053 = call ptr @s2n_strerror(i32 noundef %12052, ptr noundef @.str.4)
  %12054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12055 = load i32, ptr %12054, align 4, !tbaa !5
  %12056 = call ptr @s2n_strerror_debug(i32 noundef %12055, ptr noundef @.str.4)
  %12057 = call ptr @__errno_location() #12
  %12058 = load i32, ptr %12057, align 4, !tbaa !5
  %12059 = call ptr @strerror(i32 noundef %12058) #11
  %12060 = call ptr @__errno_location() #12
  %12061 = load i32, ptr %12060, align 4, !tbaa !5
  %12062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12049, ptr noundef @.str.5, i32 noundef %12050, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 457, ptr noundef %12053, ptr noundef %12056, ptr noundef %12059, i32 noundef %12061) #11
  br label %12063

12063:                                            ; preds = %12046, %12029
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #11
  br label %12064

12064:                                            ; preds = %12063
  br label %12065

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

12066:                                            ; No predecessors!
  br label %12067

12067:                                            ; preds = %12066
  br label %12068

12068:                                            ; preds = %12067, %12009
  br label %12069

12069:                                            ; preds = %12068
  br label %12070

12070:                                            ; preds = %12069
  br label %12071

12071:                                            ; preds = %12070
  %12072 = load i32, ptr @test_count, align 4, !tbaa !5
  %12073 = add nsw i32 %12072, 1
  store i32 %12073, ptr @test_count, align 4, !tbaa !5
  %12074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12075 = load i32, ptr %12074, align 4, !tbaa !5
  %12076 = call ptr @s2n_strerror_debug(i32 noundef %12075, ptr noundef @.str.4)
  %12077 = icmp eq ptr %12076, null
  br i1 %12077, label %12078, label %12131

12078:                                            ; preds = %12071
  br label %12079

12079:                                            ; preds = %12078
  br label %12080

12080:                                            ; preds = %12079
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #11
  %12081 = call ptr @__errno_location() #12
  %12082 = load i32, ptr %12081, align 4, !tbaa !5
  store i32 %12082, ptr %243, align 4, !tbaa !5
  %12083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12084 = call i32 @s2n_print_stacktrace(ptr noundef %12083)
  %12085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12086 = trunc i8 %12085 to i1
  br i1 %12086, label %12087, label %12109

12087:                                            ; preds = %12080
  %12088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12089 = call i32 @fileno(ptr noundef %12088) #11
  %12090 = call i32 @isatty(i32 noundef %12089) #11
  %12091 = icmp ne i32 %12090, 0
  br i1 %12091, label %12092, label %12109

12092:                                            ; preds = %12087
  %12093 = load i32, ptr %243, align 4, !tbaa !5
  %12094 = call ptr @__errno_location() #12
  store i32 %12093, ptr %12094, align 4, !tbaa !5
  %12095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12096 = load i32, ptr @test_count, align 4, !tbaa !5
  %12097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12098 = load i32, ptr %12097, align 4, !tbaa !5
  %12099 = call ptr @s2n_strerror(i32 noundef %12098, ptr noundef @.str.4)
  %12100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12101 = load i32, ptr %12100, align 4, !tbaa !5
  %12102 = call ptr @s2n_strerror_debug(i32 noundef %12101, ptr noundef @.str.4)
  %12103 = call ptr @__errno_location() #12
  %12104 = load i32, ptr %12103, align 4, !tbaa !5
  %12105 = call ptr @strerror(i32 noundef %12104) #11
  %12106 = call ptr @__errno_location() #12
  %12107 = load i32, ptr %12106, align 4, !tbaa !5
  %12108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12095, ptr noundef @.str.2, i32 noundef %12096, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 457, ptr noundef %12099, ptr noundef %12102, ptr noundef %12105, i32 noundef %12107) #11
  br label %12126

12109:                                            ; preds = %12087, %12080
  %12110 = load i32, ptr %243, align 4, !tbaa !5
  %12111 = call ptr @__errno_location() #12
  store i32 %12110, ptr %12111, align 4, !tbaa !5
  %12112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12113 = load i32, ptr @test_count, align 4, !tbaa !5
  %12114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12115 = load i32, ptr %12114, align 4, !tbaa !5
  %12116 = call ptr @s2n_strerror(i32 noundef %12115, ptr noundef @.str.4)
  %12117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12118 = load i32, ptr %12117, align 4, !tbaa !5
  %12119 = call ptr @s2n_strerror_debug(i32 noundef %12118, ptr noundef @.str.4)
  %12120 = call ptr @__errno_location() #12
  %12121 = load i32, ptr %12120, align 4, !tbaa !5
  %12122 = call ptr @strerror(i32 noundef %12121) #11
  %12123 = call ptr @__errno_location() #12
  %12124 = load i32, ptr %12123, align 4, !tbaa !5
  %12125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12112, ptr noundef @.str.5, i32 noundef %12113, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 457, ptr noundef %12116, ptr noundef %12119, ptr noundef %12122, i32 noundef %12124) #11
  br label %12126

12126:                                            ; preds = %12109, %12092
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #11
  br label %12127

12127:                                            ; preds = %12126
  br label %12128

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

12129:                                            ; No predecessors!
  br label %12130

12130:                                            ; preds = %12129
  br label %12131

12131:                                            ; preds = %12130, %12071
  br label %12132

12132:                                            ; preds = %12131
  br label %12133

12133:                                            ; preds = %12132
  br label %12134

12134:                                            ; preds = %12133
  br label %12135

12135:                                            ; preds = %12134
  br label %12136

12136:                                            ; preds = %12135
  %12137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %12137, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %12138 = call ptr @__errno_location() #12
  store i32 0, ptr %12138, align 4, !tbaa !5
  br label %12139

12139:                                            ; preds = %12136
  br label %12140

12140:                                            ; preds = %12139
  br label %12141

12141:                                            ; preds = %12140
  br label %12142

12142:                                            ; preds = %12141
  br label %12143

12143:                                            ; preds = %12142
  %12144 = load i32, ptr @test_count, align 4, !tbaa !5
  %12145 = add nsw i32 %12144, 1
  store i32 %12145, ptr @test_count, align 4, !tbaa !5
  %12146 = load ptr, ptr %235, align 8, !tbaa !9
  %12147 = call i32 @s2n_connection_free(ptr noundef %12146)
  %12148 = icmp eq i32 %12147, -1
  br i1 %12148, label %12149, label %12202

12149:                                            ; preds = %12143
  br label %12150

12150:                                            ; preds = %12149
  br label %12151

12151:                                            ; preds = %12150
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #11
  %12152 = call ptr @__errno_location() #12
  %12153 = load i32, ptr %12152, align 4, !tbaa !5
  store i32 %12153, ptr %244, align 4, !tbaa !5
  %12154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12155 = call i32 @s2n_print_stacktrace(ptr noundef %12154)
  %12156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12157 = trunc i8 %12156 to i1
  br i1 %12157, label %12158, label %12180

12158:                                            ; preds = %12151
  %12159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12160 = call i32 @fileno(ptr noundef %12159) #11
  %12161 = call i32 @isatty(i32 noundef %12160) #11
  %12162 = icmp ne i32 %12161, 0
  br i1 %12162, label %12163, label %12180

12163:                                            ; preds = %12158
  %12164 = load i32, ptr %244, align 4, !tbaa !5
  %12165 = call ptr @__errno_location() #12
  store i32 %12164, ptr %12165, align 4, !tbaa !5
  %12166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12167 = load i32, ptr @test_count, align 4, !tbaa !5
  %12168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12169 = load i32, ptr %12168, align 4, !tbaa !5
  %12170 = call ptr @s2n_strerror(i32 noundef %12169, ptr noundef @.str.4)
  %12171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12172 = load i32, ptr %12171, align 4, !tbaa !5
  %12173 = call ptr @s2n_strerror_debug(i32 noundef %12172, ptr noundef @.str.4)
  %12174 = call ptr @__errno_location() #12
  %12175 = load i32, ptr %12174, align 4, !tbaa !5
  %12176 = call ptr @strerror(i32 noundef %12175) #11
  %12177 = call ptr @__errno_location() #12
  %12178 = load i32, ptr %12177, align 4, !tbaa !5
  %12179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12166, ptr noundef @.str.2, i32 noundef %12167, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 459, ptr noundef %12170, ptr noundef %12173, ptr noundef %12176, i32 noundef %12178) #11
  br label %12197

12180:                                            ; preds = %12158, %12151
  %12181 = load i32, ptr %244, align 4, !tbaa !5
  %12182 = call ptr @__errno_location() #12
  store i32 %12181, ptr %12182, align 4, !tbaa !5
  %12183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12184 = load i32, ptr @test_count, align 4, !tbaa !5
  %12185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12186 = load i32, ptr %12185, align 4, !tbaa !5
  %12187 = call ptr @s2n_strerror(i32 noundef %12186, ptr noundef @.str.4)
  %12188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12189 = load i32, ptr %12188, align 4, !tbaa !5
  %12190 = call ptr @s2n_strerror_debug(i32 noundef %12189, ptr noundef @.str.4)
  %12191 = call ptr @__errno_location() #12
  %12192 = load i32, ptr %12191, align 4, !tbaa !5
  %12193 = call ptr @strerror(i32 noundef %12192) #11
  %12194 = call ptr @__errno_location() #12
  %12195 = load i32, ptr %12194, align 4, !tbaa !5
  %12196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12183, ptr noundef @.str.5, i32 noundef %12184, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 459, ptr noundef %12187, ptr noundef %12190, ptr noundef %12193, i32 noundef %12195) #11
  br label %12197

12197:                                            ; preds = %12180, %12163
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #11
  br label %12198

12198:                                            ; preds = %12197
  br label %12199

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

12200:                                            ; No predecessors!
  br label %12201

12201:                                            ; preds = %12200
  br label %12202

12202:                                            ; preds = %12201, %12143
  br label %12203

12203:                                            ; preds = %12202
  br label %12204

12204:                                            ; preds = %12203
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #11
  br label %12205

12205:                                            ; preds = %12204, %11746
  br label %12206

12206:                                            ; preds = %12205
  %12207 = load i32, ptr @test_count, align 4, !tbaa !5
  %12208 = add nsw i32 %12207, 1
  store i32 %12208, ptr @test_count, align 4, !tbaa !5
  %12209 = call i32 (...) @s2n_enable_tls13_in_test()
  %12210 = icmp eq i32 %12209, -1
  br i1 %12210, label %12211, label %12262

12211:                                            ; preds = %12206
  br label %12212

12212:                                            ; preds = %12211
  br label %12213

12213:                                            ; preds = %12212
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #11
  %12214 = call ptr @__errno_location() #12
  %12215 = load i32, ptr %12214, align 4, !tbaa !5
  store i32 %12215, ptr %245, align 4, !tbaa !5
  %12216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12217 = call i32 @s2n_print_stacktrace(ptr noundef %12216)
  %12218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12219 = trunc i8 %12218 to i1
  br i1 %12219, label %12220, label %12242

12220:                                            ; preds = %12213
  %12221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12222 = call i32 @fileno(ptr noundef %12221) #11
  %12223 = call i32 @isatty(i32 noundef %12222) #11
  %12224 = icmp ne i32 %12223, 0
  br i1 %12224, label %12225, label %12242

12225:                                            ; preds = %12220
  %12226 = load i32, ptr %245, align 4, !tbaa !5
  %12227 = call ptr @__errno_location() #12
  store i32 %12226, ptr %12227, align 4, !tbaa !5
  %12228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12229 = load i32, ptr @test_count, align 4, !tbaa !5
  %12230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12231 = load i32, ptr %12230, align 4, !tbaa !5
  %12232 = call ptr @s2n_strerror(i32 noundef %12231, ptr noundef @.str.4)
  %12233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12234 = load i32, ptr %12233, align 4, !tbaa !5
  %12235 = call ptr @s2n_strerror_debug(i32 noundef %12234, ptr noundef @.str.4)
  %12236 = call ptr @__errno_location() #12
  %12237 = load i32, ptr %12236, align 4, !tbaa !5
  %12238 = call ptr @strerror(i32 noundef %12237) #11
  %12239 = call ptr @__errno_location() #12
  %12240 = load i32, ptr %12239, align 4, !tbaa !5
  %12241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12228, ptr noundef @.str.2, i32 noundef %12229, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 464, ptr noundef %12232, ptr noundef %12235, ptr noundef %12238, i32 noundef %12240) #11
  br label %12259

12242:                                            ; preds = %12220, %12213
  %12243 = load i32, ptr %245, align 4, !tbaa !5
  %12244 = call ptr @__errno_location() #12
  store i32 %12243, ptr %12244, align 4, !tbaa !5
  %12245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12246 = load i32, ptr @test_count, align 4, !tbaa !5
  %12247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12248 = load i32, ptr %12247, align 4, !tbaa !5
  %12249 = call ptr @s2n_strerror(i32 noundef %12248, ptr noundef @.str.4)
  %12250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12251 = load i32, ptr %12250, align 4, !tbaa !5
  %12252 = call ptr @s2n_strerror_debug(i32 noundef %12251, ptr noundef @.str.4)
  %12253 = call ptr @__errno_location() #12
  %12254 = load i32, ptr %12253, align 4, !tbaa !5
  %12255 = call ptr @strerror(i32 noundef %12254) #11
  %12256 = call ptr @__errno_location() #12
  %12257 = load i32, ptr %12256, align 4, !tbaa !5
  %12258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12245, ptr noundef @.str.5, i32 noundef %12246, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 464, ptr noundef %12249, ptr noundef %12252, ptr noundef %12255, i32 noundef %12257) #11
  br label %12259

12259:                                            ; preds = %12242, %12225
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #11
  br label %12260

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

12261:                                            ; No predecessors!
  br label %12262

12262:                                            ; preds = %12261, %12206
  br label %12263

12263:                                            ; preds = %12262
  call void @llvm.lifetime.start.p0(i64 8, ptr %246) #11
  store ptr null, ptr %246, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %247) #11
  store ptr null, ptr %247, align 8, !tbaa !9
  br label %12264

12264:                                            ; preds = %12263
  %12265 = load i32, ptr @test_count, align 4, !tbaa !5
  %12266 = add nsw i32 %12265, 1
  store i32 %12266, ptr @test_count, align 4, !tbaa !5
  %12267 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %12267, ptr %247, align 8, !tbaa !9
  %12268 = icmp eq ptr %12267, null
  br i1 %12268, label %12269, label %12322

12269:                                            ; preds = %12264
  br label %12270

12270:                                            ; preds = %12269
  br label %12271

12271:                                            ; preds = %12270
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #11
  %12272 = call ptr @__errno_location() #12
  %12273 = load i32, ptr %12272, align 4, !tbaa !5
  store i32 %12273, ptr %248, align 4, !tbaa !5
  %12274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12275 = call i32 @s2n_print_stacktrace(ptr noundef %12274)
  %12276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12277 = trunc i8 %12276 to i1
  br i1 %12277, label %12278, label %12300

12278:                                            ; preds = %12271
  %12279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12280 = call i32 @fileno(ptr noundef %12279) #11
  %12281 = call i32 @isatty(i32 noundef %12280) #11
  %12282 = icmp ne i32 %12281, 0
  br i1 %12282, label %12283, label %12300

12283:                                            ; preds = %12278
  %12284 = load i32, ptr %248, align 4, !tbaa !5
  %12285 = call ptr @__errno_location() #12
  store i32 %12284, ptr %12285, align 4, !tbaa !5
  %12286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12287 = load i32, ptr @test_count, align 4, !tbaa !5
  %12288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12289 = load i32, ptr %12288, align 4, !tbaa !5
  %12290 = call ptr @s2n_strerror(i32 noundef %12289, ptr noundef @.str.4)
  %12291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12292 = load i32, ptr %12291, align 4, !tbaa !5
  %12293 = call ptr @s2n_strerror_debug(i32 noundef %12292, ptr noundef @.str.4)
  %12294 = call ptr @__errno_location() #12
  %12295 = load i32, ptr %12294, align 4, !tbaa !5
  %12296 = call ptr @strerror(i32 noundef %12295) #11
  %12297 = call ptr @__errno_location() #12
  %12298 = load i32, ptr %12297, align 4, !tbaa !5
  %12299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12286, ptr noundef @.str.2, i32 noundef %12287, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 471, ptr noundef %12290, ptr noundef %12293, ptr noundef %12296, i32 noundef %12298) #11
  br label %12317

12300:                                            ; preds = %12278, %12271
  %12301 = load i32, ptr %248, align 4, !tbaa !5
  %12302 = call ptr @__errno_location() #12
  store i32 %12301, ptr %12302, align 4, !tbaa !5
  %12303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12304 = load i32, ptr @test_count, align 4, !tbaa !5
  %12305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12306 = load i32, ptr %12305, align 4, !tbaa !5
  %12307 = call ptr @s2n_strerror(i32 noundef %12306, ptr noundef @.str.4)
  %12308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12309 = load i32, ptr %12308, align 4, !tbaa !5
  %12310 = call ptr @s2n_strerror_debug(i32 noundef %12309, ptr noundef @.str.4)
  %12311 = call ptr @__errno_location() #12
  %12312 = load i32, ptr %12311, align 4, !tbaa !5
  %12313 = call ptr @strerror(i32 noundef %12312) #11
  %12314 = call ptr @__errno_location() #12
  %12315 = load i32, ptr %12314, align 4, !tbaa !5
  %12316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12303, ptr noundef @.str.5, i32 noundef %12304, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 471, ptr noundef %12307, ptr noundef %12310, ptr noundef %12313, i32 noundef %12315) #11
  br label %12317

12317:                                            ; preds = %12300, %12283
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #11
  br label %12318

12318:                                            ; preds = %12317
  br label %12319

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

12320:                                            ; No predecessors!
  br label %12321

12321:                                            ; preds = %12320
  br label %12322

12322:                                            ; preds = %12321, %12264
  br label %12323

12323:                                            ; preds = %12322
  br label %12324

12324:                                            ; preds = %12323
  br label %12325

12325:                                            ; preds = %12324
  %12326 = load i32, ptr @test_count, align 4, !tbaa !5
  %12327 = add nsw i32 %12326, 1
  store i32 %12327, ptr @test_count, align 4, !tbaa !5
  %12328 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %12328, ptr %246, align 8, !tbaa !9
  %12329 = icmp eq ptr %12328, null
  br i1 %12329, label %12330, label %12383

12330:                                            ; preds = %12325
  br label %12331

12331:                                            ; preds = %12330
  br label %12332

12332:                                            ; preds = %12331
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #11
  %12333 = call ptr @__errno_location() #12
  %12334 = load i32, ptr %12333, align 4, !tbaa !5
  store i32 %12334, ptr %249, align 4, !tbaa !5
  %12335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12336 = call i32 @s2n_print_stacktrace(ptr noundef %12335)
  %12337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12338 = trunc i8 %12337 to i1
  br i1 %12338, label %12339, label %12361

12339:                                            ; preds = %12332
  %12340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12341 = call i32 @fileno(ptr noundef %12340) #11
  %12342 = call i32 @isatty(i32 noundef %12341) #11
  %12343 = icmp ne i32 %12342, 0
  br i1 %12343, label %12344, label %12361

12344:                                            ; preds = %12339
  %12345 = load i32, ptr %249, align 4, !tbaa !5
  %12346 = call ptr @__errno_location() #12
  store i32 %12345, ptr %12346, align 4, !tbaa !5
  %12347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12348 = load i32, ptr @test_count, align 4, !tbaa !5
  %12349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12350 = load i32, ptr %12349, align 4, !tbaa !5
  %12351 = call ptr @s2n_strerror(i32 noundef %12350, ptr noundef @.str.4)
  %12352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12353 = load i32, ptr %12352, align 4, !tbaa !5
  %12354 = call ptr @s2n_strerror_debug(i32 noundef %12353, ptr noundef @.str.4)
  %12355 = call ptr @__errno_location() #12
  %12356 = load i32, ptr %12355, align 4, !tbaa !5
  %12357 = call ptr @strerror(i32 noundef %12356) #11
  %12358 = call ptr @__errno_location() #12
  %12359 = load i32, ptr %12358, align 4, !tbaa !5
  %12360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12347, ptr noundef @.str.2, i32 noundef %12348, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 472, ptr noundef %12351, ptr noundef %12354, ptr noundef %12357, i32 noundef %12359) #11
  br label %12378

12361:                                            ; preds = %12339, %12332
  %12362 = load i32, ptr %249, align 4, !tbaa !5
  %12363 = call ptr @__errno_location() #12
  store i32 %12362, ptr %12363, align 4, !tbaa !5
  %12364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12365 = load i32, ptr @test_count, align 4, !tbaa !5
  %12366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12367 = load i32, ptr %12366, align 4, !tbaa !5
  %12368 = call ptr @s2n_strerror(i32 noundef %12367, ptr noundef @.str.4)
  %12369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12370 = load i32, ptr %12369, align 4, !tbaa !5
  %12371 = call ptr @s2n_strerror_debug(i32 noundef %12370, ptr noundef @.str.4)
  %12372 = call ptr @__errno_location() #12
  %12373 = load i32, ptr %12372, align 4, !tbaa !5
  %12374 = call ptr @strerror(i32 noundef %12373) #11
  %12375 = call ptr @__errno_location() #12
  %12376 = load i32, ptr %12375, align 4, !tbaa !5
  %12377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12364, ptr noundef @.str.5, i32 noundef %12365, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 472, ptr noundef %12368, ptr noundef %12371, ptr noundef %12374, i32 noundef %12376) #11
  br label %12378

12378:                                            ; preds = %12361, %12344
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #11
  br label %12379

12379:                                            ; preds = %12378
  br label %12380

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

12381:                                            ; No predecessors!
  br label %12382

12382:                                            ; preds = %12381
  br label %12383

12383:                                            ; preds = %12382, %12325
  br label %12384

12384:                                            ; preds = %12383
  br label %12385

12385:                                            ; preds = %12384
  call void @llvm.lifetime.start.p0(i64 8, ptr %250) #11
  %12386 = load ptr, ptr %247, align 8, !tbaa !9
  %12387 = getelementptr inbounds %struct.s2n_connection, ptr %12386, i32 0, i32 52
  %12388 = getelementptr inbounds %struct.s2n_handshake, ptr %12387, i32 0, i32 0
  store ptr %12388, ptr %250, align 8, !tbaa !9
  br label %12389

12389:                                            ; preds = %12385
  %12390 = load i32, ptr @test_count, align 4, !tbaa !5
  %12391 = add nsw i32 %12390, 1
  store i32 %12391, ptr @test_count, align 4, !tbaa !5
  %12392 = load ptr, ptr %247, align 8, !tbaa !9
  %12393 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %12392, i8 noundef zeroext 34)
  %12394 = icmp eq i32 %12393, -1
  br i1 %12394, label %12395, label %12448

12395:                                            ; preds = %12389
  br label %12396

12396:                                            ; preds = %12395
  br label %12397

12397:                                            ; preds = %12396
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #11
  %12398 = call ptr @__errno_location() #12
  %12399 = load i32, ptr %12398, align 4, !tbaa !5
  store i32 %12399, ptr %251, align 4, !tbaa !5
  %12400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12401 = call i32 @s2n_print_stacktrace(ptr noundef %12400)
  %12402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12403 = trunc i8 %12402 to i1
  br i1 %12403, label %12404, label %12426

12404:                                            ; preds = %12397
  %12405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12406 = call i32 @fileno(ptr noundef %12405) #11
  %12407 = call i32 @isatty(i32 noundef %12406) #11
  %12408 = icmp ne i32 %12407, 0
  br i1 %12408, label %12409, label %12426

12409:                                            ; preds = %12404
  %12410 = load i32, ptr %251, align 4, !tbaa !5
  %12411 = call ptr @__errno_location() #12
  store i32 %12410, ptr %12411, align 4, !tbaa !5
  %12412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12413 = load i32, ptr @test_count, align 4, !tbaa !5
  %12414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12415 = load i32, ptr %12414, align 4, !tbaa !5
  %12416 = call ptr @s2n_strerror(i32 noundef %12415, ptr noundef @.str.4)
  %12417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12418 = load i32, ptr %12417, align 4, !tbaa !5
  %12419 = call ptr @s2n_strerror_debug(i32 noundef %12418, ptr noundef @.str.4)
  %12420 = call ptr @__errno_location() #12
  %12421 = load i32, ptr %12420, align 4, !tbaa !5
  %12422 = call ptr @strerror(i32 noundef %12421) #11
  %12423 = call ptr @__errno_location() #12
  %12424 = load i32, ptr %12423, align 4, !tbaa !5
  %12425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12412, ptr noundef @.str.2, i32 noundef %12413, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 476, ptr noundef %12416, ptr noundef %12419, ptr noundef %12422, i32 noundef %12424) #11
  br label %12443

12426:                                            ; preds = %12404, %12397
  %12427 = load i32, ptr %251, align 4, !tbaa !5
  %12428 = call ptr @__errno_location() #12
  store i32 %12427, ptr %12428, align 4, !tbaa !5
  %12429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12430 = load i32, ptr @test_count, align 4, !tbaa !5
  %12431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12432 = load i32, ptr %12431, align 4, !tbaa !5
  %12433 = call ptr @s2n_strerror(i32 noundef %12432, ptr noundef @.str.4)
  %12434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12435 = load i32, ptr %12434, align 4, !tbaa !5
  %12436 = call ptr @s2n_strerror_debug(i32 noundef %12435, ptr noundef @.str.4)
  %12437 = call ptr @__errno_location() #12
  %12438 = load i32, ptr %12437, align 4, !tbaa !5
  %12439 = call ptr @strerror(i32 noundef %12438) #11
  %12440 = call ptr @__errno_location() #12
  %12441 = load i32, ptr %12440, align 4, !tbaa !5
  %12442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12429, ptr noundef @.str.5, i32 noundef %12430, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 476, ptr noundef %12433, ptr noundef %12436, ptr noundef %12439, i32 noundef %12441) #11
  br label %12443

12443:                                            ; preds = %12426, %12409
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #11
  br label %12444

12444:                                            ; preds = %12443
  br label %12445

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

12446:                                            ; No predecessors!
  br label %12447

12447:                                            ; preds = %12446
  br label %12448

12448:                                            ; preds = %12447, %12389
  br label %12449

12449:                                            ; preds = %12448
  br label %12450

12450:                                            ; preds = %12449
  br label %12451

12451:                                            ; preds = %12450
  %12452 = load i32, ptr @test_count, align 4, !tbaa !5
  %12453 = add nsw i32 %12452, 1
  store i32 %12453, ptr @test_count, align 4, !tbaa !5
  %12454 = load ptr, ptr %247, align 8, !tbaa !9
  %12455 = call i32 @s2n_conn_choose_state_machine(ptr noundef %12454, i8 noundef zeroext 34)
  %12456 = getelementptr inbounds %struct.s2n_result, ptr %252, i32 0, i32 0
  store i32 %12455, ptr %12456, align 4
  %12457 = getelementptr inbounds %struct.s2n_result, ptr %252, i32 0, i32 0
  %12458 = load i32, ptr %12457, align 4
  %12459 = call zeroext i1 @s2n_result_is_ok(i32 %12458)
  br i1 %12459, label %12513, label %12460

12460:                                            ; preds = %12451
  br label %12461

12461:                                            ; preds = %12460
  br label %12462

12462:                                            ; preds = %12461
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #11
  %12463 = call ptr @__errno_location() #12
  %12464 = load i32, ptr %12463, align 4, !tbaa !5
  store i32 %12464, ptr %253, align 4, !tbaa !5
  %12465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12466 = call i32 @s2n_print_stacktrace(ptr noundef %12465)
  %12467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12468 = trunc i8 %12467 to i1
  br i1 %12468, label %12469, label %12491

12469:                                            ; preds = %12462
  %12470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12471 = call i32 @fileno(ptr noundef %12470) #11
  %12472 = call i32 @isatty(i32 noundef %12471) #11
  %12473 = icmp ne i32 %12472, 0
  br i1 %12473, label %12474, label %12491

12474:                                            ; preds = %12469
  %12475 = load i32, ptr %253, align 4, !tbaa !5
  %12476 = call ptr @__errno_location() #12
  store i32 %12475, ptr %12476, align 4, !tbaa !5
  %12477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12478 = load i32, ptr @test_count, align 4, !tbaa !5
  %12479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12480 = load i32, ptr %12479, align 4, !tbaa !5
  %12481 = call ptr @s2n_strerror(i32 noundef %12480, ptr noundef @.str.4)
  %12482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12483 = load i32, ptr %12482, align 4, !tbaa !5
  %12484 = call ptr @s2n_strerror_debug(i32 noundef %12483, ptr noundef @.str.4)
  %12485 = call ptr @__errno_location() #12
  %12486 = load i32, ptr %12485, align 4, !tbaa !5
  %12487 = call ptr @strerror(i32 noundef %12486) #11
  %12488 = call ptr @__errno_location() #12
  %12489 = load i32, ptr %12488, align 4, !tbaa !5
  %12490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12477, ptr noundef @.str.2, i32 noundef %12478, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 477, ptr noundef %12481, ptr noundef %12484, ptr noundef %12487, i32 noundef %12489) #11
  br label %12508

12491:                                            ; preds = %12469, %12462
  %12492 = load i32, ptr %253, align 4, !tbaa !5
  %12493 = call ptr @__errno_location() #12
  store i32 %12492, ptr %12493, align 4, !tbaa !5
  %12494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12495 = load i32, ptr @test_count, align 4, !tbaa !5
  %12496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12497 = load i32, ptr %12496, align 4, !tbaa !5
  %12498 = call ptr @s2n_strerror(i32 noundef %12497, ptr noundef @.str.4)
  %12499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12500 = load i32, ptr %12499, align 4, !tbaa !5
  %12501 = call ptr @s2n_strerror_debug(i32 noundef %12500, ptr noundef @.str.4)
  %12502 = call ptr @__errno_location() #12
  %12503 = load i32, ptr %12502, align 4, !tbaa !5
  %12504 = call ptr @strerror(i32 noundef %12503) #11
  %12505 = call ptr @__errno_location() #12
  %12506 = load i32, ptr %12505, align 4, !tbaa !5
  %12507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12494, ptr noundef @.str.5, i32 noundef %12495, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 477, ptr noundef %12498, ptr noundef %12501, ptr noundef %12504, i32 noundef %12506) #11
  br label %12508

12508:                                            ; preds = %12491, %12474
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #11
  br label %12509

12509:                                            ; preds = %12508
  br label %12510

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

12511:                                            ; No predecessors!
  br label %12512

12512:                                            ; preds = %12511
  br label %12513

12513:                                            ; preds = %12512, %12451
  br label %12514

12514:                                            ; preds = %12513
  br label %12515

12515:                                            ; preds = %12514
  %12516 = load ptr, ptr %246, align 8, !tbaa !9
  %12517 = getelementptr inbounds %struct.s2n_connection, ptr %12516, i32 0, i32 2
  store ptr @security_policy_test_tls13_retry, ptr %12517, align 8, !tbaa !15
  %12518 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %12519 = load ptr, ptr %247, align 8, !tbaa !9
  %12520 = getelementptr inbounds %struct.s2n_connection, ptr %12519, i32 0, i32 31
  %12521 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %12520, i32 0, i32 1
  %12522 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %12521, i32 0, i32 0
  store ptr %12518, ptr %12522, align 8, !tbaa !42
  br label %12523

12523:                                            ; preds = %12515
  %12524 = load i32, ptr @test_count, align 4, !tbaa !5
  %12525 = add nsw i32 %12524, 1
  store i32 %12525, ptr @test_count, align 4, !tbaa !5
  %12526 = load ptr, ptr %247, align 8, !tbaa !9
  %12527 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %12526)
  %12528 = icmp eq i32 %12527, -1
  br i1 %12528, label %12529, label %12582

12529:                                            ; preds = %12523
  br label %12530

12530:                                            ; preds = %12529
  br label %12531

12531:                                            ; preds = %12530
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #11
  %12532 = call ptr @__errno_location() #12
  %12533 = load i32, ptr %12532, align 4, !tbaa !5
  store i32 %12533, ptr %254, align 4, !tbaa !5
  %12534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12535 = call i32 @s2n_print_stacktrace(ptr noundef %12534)
  %12536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12537 = trunc i8 %12536 to i1
  br i1 %12537, label %12538, label %12560

12538:                                            ; preds = %12531
  %12539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12540 = call i32 @fileno(ptr noundef %12539) #11
  %12541 = call i32 @isatty(i32 noundef %12540) #11
  %12542 = icmp ne i32 %12541, 0
  br i1 %12542, label %12543, label %12560

12543:                                            ; preds = %12538
  %12544 = load i32, ptr %254, align 4, !tbaa !5
  %12545 = call ptr @__errno_location() #12
  store i32 %12544, ptr %12545, align 4, !tbaa !5
  %12546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12547 = load i32, ptr @test_count, align 4, !tbaa !5
  %12548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12549 = load i32, ptr %12548, align 4, !tbaa !5
  %12550 = call ptr @s2n_strerror(i32 noundef %12549, ptr noundef @.str.4)
  %12551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12552 = load i32, ptr %12551, align 4, !tbaa !5
  %12553 = call ptr @s2n_strerror_debug(i32 noundef %12552, ptr noundef @.str.4)
  %12554 = call ptr @__errno_location() #12
  %12555 = load i32, ptr %12554, align 4, !tbaa !5
  %12556 = call ptr @strerror(i32 noundef %12555) #11
  %12557 = call ptr @__errno_location() #12
  %12558 = load i32, ptr %12557, align 4, !tbaa !5
  %12559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12546, ptr noundef @.str.2, i32 noundef %12547, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 481, ptr noundef %12550, ptr noundef %12553, ptr noundef %12556, i32 noundef %12558) #11
  br label %12577

12560:                                            ; preds = %12538, %12531
  %12561 = load i32, ptr %254, align 4, !tbaa !5
  %12562 = call ptr @__errno_location() #12
  store i32 %12561, ptr %12562, align 4, !tbaa !5
  %12563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12564 = load i32, ptr @test_count, align 4, !tbaa !5
  %12565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12566 = load i32, ptr %12565, align 4, !tbaa !5
  %12567 = call ptr @s2n_strerror(i32 noundef %12566, ptr noundef @.str.4)
  %12568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12569 = load i32, ptr %12568, align 4, !tbaa !5
  %12570 = call ptr @s2n_strerror_debug(i32 noundef %12569, ptr noundef @.str.4)
  %12571 = call ptr @__errno_location() #12
  %12572 = load i32, ptr %12571, align 4, !tbaa !5
  %12573 = call ptr @strerror(i32 noundef %12572) #11
  %12574 = call ptr @__errno_location() #12
  %12575 = load i32, ptr %12574, align 4, !tbaa !5
  %12576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12563, ptr noundef @.str.5, i32 noundef %12564, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 481, ptr noundef %12567, ptr noundef %12570, ptr noundef %12573, i32 noundef %12575) #11
  br label %12577

12577:                                            ; preds = %12560, %12543
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #11
  br label %12578

12578:                                            ; preds = %12577
  br label %12579

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

12580:                                            ; No predecessors!
  br label %12581

12581:                                            ; preds = %12580
  br label %12582

12582:                                            ; preds = %12581, %12523
  br label %12583

12583:                                            ; preds = %12582
  br label %12584

12584:                                            ; preds = %12583
  br label %12585

12585:                                            ; preds = %12584
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #11
  store i32 32, ptr %255, align 4, !tbaa !5
  %12586 = load i32, ptr %255, align 4, !tbaa !5
  %12587 = icmp ne i32 %12586, 0
  br i1 %12587, label %12588, label %12650

12588:                                            ; preds = %12585
  %12589 = load ptr, ptr %247, align 8, !tbaa !9
  %12590 = getelementptr inbounds %struct.s2n_connection, ptr %12589, i32 0, i32 32
  %12591 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %12590, i32 0, i32 13
  %12592 = getelementptr inbounds [32 x i8], ptr %12591, i64 0, i64 0
  %12593 = load i32, ptr %255, align 4, !tbaa !5
  %12594 = sext i32 %12593 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %12592, ptr align 16 @hello_retry_req_random, i64 %12594, i1 false)
  %12595 = icmp eq ptr %12592, null
  br i1 %12595, label %12596, label %12649

12596:                                            ; preds = %12588
  br label %12597

12597:                                            ; preds = %12596
  br label %12598

12598:                                            ; preds = %12597
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #11
  %12599 = call ptr @__errno_location() #12
  %12600 = load i32, ptr %12599, align 4, !tbaa !5
  store i32 %12600, ptr %256, align 4, !tbaa !5
  %12601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12602 = call i32 @s2n_print_stacktrace(ptr noundef %12601)
  %12603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12604 = trunc i8 %12603 to i1
  br i1 %12604, label %12605, label %12627

12605:                                            ; preds = %12598
  %12606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12607 = call i32 @fileno(ptr noundef %12606) #11
  %12608 = call i32 @isatty(i32 noundef %12607) #11
  %12609 = icmp ne i32 %12608, 0
  br i1 %12609, label %12610, label %12627

12610:                                            ; preds = %12605
  %12611 = load i32, ptr %256, align 4, !tbaa !5
  %12612 = call ptr @__errno_location() #12
  store i32 %12611, ptr %12612, align 4, !tbaa !5
  %12613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12614 = load i32, ptr @test_count, align 4, !tbaa !5
  %12615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12616 = load i32, ptr %12615, align 4, !tbaa !5
  %12617 = call ptr @s2n_strerror(i32 noundef %12616, ptr noundef @.str.4)
  %12618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12619 = load i32, ptr %12618, align 4, !tbaa !5
  %12620 = call ptr @s2n_strerror_debug(i32 noundef %12619, ptr noundef @.str.4)
  %12621 = call ptr @__errno_location() #12
  %12622 = load i32, ptr %12621, align 4, !tbaa !5
  %12623 = call ptr @strerror(i32 noundef %12622) #11
  %12624 = call ptr @__errno_location() #12
  %12625 = load i32, ptr %12624, align 4, !tbaa !5
  %12626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12613, ptr noundef @.str.2, i32 noundef %12614, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 482, ptr noundef %12617, ptr noundef %12620, ptr noundef %12623, i32 noundef %12625) #11
  br label %12644

12627:                                            ; preds = %12605, %12598
  %12628 = load i32, ptr %256, align 4, !tbaa !5
  %12629 = call ptr @__errno_location() #12
  store i32 %12628, ptr %12629, align 4, !tbaa !5
  %12630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12631 = load i32, ptr @test_count, align 4, !tbaa !5
  %12632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12633 = load i32, ptr %12632, align 4, !tbaa !5
  %12634 = call ptr @s2n_strerror(i32 noundef %12633, ptr noundef @.str.4)
  %12635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12636 = load i32, ptr %12635, align 4, !tbaa !5
  %12637 = call ptr @s2n_strerror_debug(i32 noundef %12636, ptr noundef @.str.4)
  %12638 = call ptr @__errno_location() #12
  %12639 = load i32, ptr %12638, align 4, !tbaa !5
  %12640 = call ptr @strerror(i32 noundef %12639) #11
  %12641 = call ptr @__errno_location() #12
  %12642 = load i32, ptr %12641, align 4, !tbaa !5
  %12643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12630, ptr noundef @.str.5, i32 noundef %12631, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 482, ptr noundef %12634, ptr noundef %12637, ptr noundef %12640, i32 noundef %12642) #11
  br label %12644

12644:                                            ; preds = %12627, %12610
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #11
  br label %12645

12645:                                            ; preds = %12644
  br label %12646

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

12647:                                            ; No predecessors!
  br label %12648

12648:                                            ; preds = %12647
  br label %12649

12649:                                            ; preds = %12648, %12588
  br label %12650

12650:                                            ; preds = %12649, %12585
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #11
  br label %12651

12651:                                            ; preds = %12650
  br label %12652

12652:                                            ; preds = %12651
  br label %12653

12653:                                            ; preds = %12652
  %12654 = load i32, ptr @test_count, align 4, !tbaa !5
  %12655 = add nsw i32 %12654, 1
  store i32 %12655, ptr @test_count, align 4, !tbaa !5
  %12656 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %12657 = load ptr, ptr %247, align 8, !tbaa !9
  %12658 = load ptr, ptr %250, align 8, !tbaa !9
  %12659 = call i32 %12656(ptr noundef %12657, ptr noundef %12658)
  %12660 = icmp eq i32 %12659, -1
  br i1 %12660, label %12661, label %12714

12661:                                            ; preds = %12653
  br label %12662

12662:                                            ; preds = %12661
  br label %12663

12663:                                            ; preds = %12662
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #11
  %12664 = call ptr @__errno_location() #12
  %12665 = load i32, ptr %12664, align 4, !tbaa !5
  store i32 %12665, ptr %257, align 4, !tbaa !5
  %12666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12667 = call i32 @s2n_print_stacktrace(ptr noundef %12666)
  %12668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12669 = trunc i8 %12668 to i1
  br i1 %12669, label %12670, label %12692

12670:                                            ; preds = %12663
  %12671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12672 = call i32 @fileno(ptr noundef %12671) #11
  %12673 = call i32 @isatty(i32 noundef %12672) #11
  %12674 = icmp ne i32 %12673, 0
  br i1 %12674, label %12675, label %12692

12675:                                            ; preds = %12670
  %12676 = load i32, ptr %257, align 4, !tbaa !5
  %12677 = call ptr @__errno_location() #12
  store i32 %12676, ptr %12677, align 4, !tbaa !5
  %12678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12679 = load i32, ptr @test_count, align 4, !tbaa !5
  %12680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12681 = load i32, ptr %12680, align 4, !tbaa !5
  %12682 = call ptr @s2n_strerror(i32 noundef %12681, ptr noundef @.str.4)
  %12683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12684 = load i32, ptr %12683, align 4, !tbaa !5
  %12685 = call ptr @s2n_strerror_debug(i32 noundef %12684, ptr noundef @.str.4)
  %12686 = call ptr @__errno_location() #12
  %12687 = load i32, ptr %12686, align 4, !tbaa !5
  %12688 = call ptr @strerror(i32 noundef %12687) #11
  %12689 = call ptr @__errno_location() #12
  %12690 = load i32, ptr %12689, align 4, !tbaa !5
  %12691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12678, ptr noundef @.str.2, i32 noundef %12679, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 483, ptr noundef %12682, ptr noundef %12685, ptr noundef %12688, i32 noundef %12690) #11
  br label %12709

12692:                                            ; preds = %12670, %12663
  %12693 = load i32, ptr %257, align 4, !tbaa !5
  %12694 = call ptr @__errno_location() #12
  store i32 %12693, ptr %12694, align 4, !tbaa !5
  %12695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12696 = load i32, ptr @test_count, align 4, !tbaa !5
  %12697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12698 = load i32, ptr %12697, align 4, !tbaa !5
  %12699 = call ptr @s2n_strerror(i32 noundef %12698, ptr noundef @.str.4)
  %12700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12701 = load i32, ptr %12700, align 4, !tbaa !5
  %12702 = call ptr @s2n_strerror_debug(i32 noundef %12701, ptr noundef @.str.4)
  %12703 = call ptr @__errno_location() #12
  %12704 = load i32, ptr %12703, align 4, !tbaa !5
  %12705 = call ptr @strerror(i32 noundef %12704) #11
  %12706 = call ptr @__errno_location() #12
  %12707 = load i32, ptr %12706, align 4, !tbaa !5
  %12708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12695, ptr noundef @.str.5, i32 noundef %12696, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 483, ptr noundef %12699, ptr noundef %12702, ptr noundef %12705, i32 noundef %12707) #11
  br label %12709

12709:                                            ; preds = %12692, %12675
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #11
  br label %12710

12710:                                            ; preds = %12709
  br label %12711

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

12712:                                            ; No predecessors!
  br label %12713

12713:                                            ; preds = %12712
  br label %12714

12714:                                            ; preds = %12713, %12653
  br label %12715

12715:                                            ; preds = %12714
  br label %12716

12716:                                            ; preds = %12715
  call void @llvm.lifetime.start.p0(i64 8, ptr %258) #11
  store ptr null, ptr %258, align 8, !tbaa !9
  br label %12717

12717:                                            ; preds = %12716
  %12718 = load i32, ptr @test_count, align 4, !tbaa !5
  %12719 = add nsw i32 %12718, 1
  store i32 %12719, ptr @test_count, align 4, !tbaa !5
  %12720 = load ptr, ptr %247, align 8, !tbaa !9
  %12721 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %12720, ptr noundef %258)
  %12722 = icmp eq i32 %12721, -1
  br i1 %12722, label %12723, label %12776

12723:                                            ; preds = %12717
  br label %12724

12724:                                            ; preds = %12723
  br label %12725

12725:                                            ; preds = %12724
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #11
  %12726 = call ptr @__errno_location() #12
  %12727 = load i32, ptr %12726, align 4, !tbaa !5
  store i32 %12727, ptr %259, align 4, !tbaa !5
  %12728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12729 = call i32 @s2n_print_stacktrace(ptr noundef %12728)
  %12730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12731 = trunc i8 %12730 to i1
  br i1 %12731, label %12732, label %12754

12732:                                            ; preds = %12725
  %12733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12734 = call i32 @fileno(ptr noundef %12733) #11
  %12735 = call i32 @isatty(i32 noundef %12734) #11
  %12736 = icmp ne i32 %12735, 0
  br i1 %12736, label %12737, label %12754

12737:                                            ; preds = %12732
  %12738 = load i32, ptr %259, align 4, !tbaa !5
  %12739 = call ptr @__errno_location() #12
  store i32 %12738, ptr %12739, align 4, !tbaa !5
  %12740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12741 = load i32, ptr @test_count, align 4, !tbaa !5
  %12742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12743 = load i32, ptr %12742, align 4, !tbaa !5
  %12744 = call ptr @s2n_strerror(i32 noundef %12743, ptr noundef @.str.4)
  %12745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12746 = load i32, ptr %12745, align 4, !tbaa !5
  %12747 = call ptr @s2n_strerror_debug(i32 noundef %12746, ptr noundef @.str.4)
  %12748 = call ptr @__errno_location() #12
  %12749 = load i32, ptr %12748, align 4, !tbaa !5
  %12750 = call ptr @strerror(i32 noundef %12749) #11
  %12751 = call ptr @__errno_location() #12
  %12752 = load i32, ptr %12751, align 4, !tbaa !5
  %12753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12740, ptr noundef @.str.2, i32 noundef %12741, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 486, ptr noundef %12744, ptr noundef %12747, ptr noundef %12750, i32 noundef %12752) #11
  br label %12771

12754:                                            ; preds = %12732, %12725
  %12755 = load i32, ptr %259, align 4, !tbaa !5
  %12756 = call ptr @__errno_location() #12
  store i32 %12755, ptr %12756, align 4, !tbaa !5
  %12757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12758 = load i32, ptr @test_count, align 4, !tbaa !5
  %12759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12760 = load i32, ptr %12759, align 4, !tbaa !5
  %12761 = call ptr @s2n_strerror(i32 noundef %12760, ptr noundef @.str.4)
  %12762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12763 = load i32, ptr %12762, align 4, !tbaa !5
  %12764 = call ptr @s2n_strerror_debug(i32 noundef %12763, ptr noundef @.str.4)
  %12765 = call ptr @__errno_location() #12
  %12766 = load i32, ptr %12765, align 4, !tbaa !5
  %12767 = call ptr @strerror(i32 noundef %12766) #11
  %12768 = call ptr @__errno_location() #12
  %12769 = load i32, ptr %12768, align 4, !tbaa !5
  %12770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12757, ptr noundef @.str.5, i32 noundef %12758, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 486, ptr noundef %12761, ptr noundef %12764, ptr noundef %12767, i32 noundef %12769) #11
  br label %12771

12771:                                            ; preds = %12754, %12737
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #11
  br label %12772

12772:                                            ; preds = %12771
  br label %12773

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

12774:                                            ; No predecessors!
  br label %12775

12775:                                            ; preds = %12774
  br label %12776

12776:                                            ; preds = %12775, %12717
  br label %12777

12777:                                            ; preds = %12776
  br label %12778

12778:                                            ; preds = %12777
  br label %12779

12779:                                            ; preds = %12778
  %12780 = load i32, ptr @test_count, align 4, !tbaa !5
  %12781 = add nsw i32 %12780, 1
  store i32 %12781, ptr @test_count, align 4, !tbaa !5
  %12782 = load ptr, ptr %258, align 8, !tbaa !9
  %12783 = icmp eq ptr %12782, null
  br i1 %12783, label %12784, label %12837

12784:                                            ; preds = %12779
  br label %12785

12785:                                            ; preds = %12784
  br label %12786

12786:                                            ; preds = %12785
  call void @llvm.lifetime.start.p0(i64 4, ptr %260) #11
  %12787 = call ptr @__errno_location() #12
  %12788 = load i32, ptr %12787, align 4, !tbaa !5
  store i32 %12788, ptr %260, align 4, !tbaa !5
  %12789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12790 = call i32 @s2n_print_stacktrace(ptr noundef %12789)
  %12791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12792 = trunc i8 %12791 to i1
  br i1 %12792, label %12793, label %12815

12793:                                            ; preds = %12786
  %12794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12795 = call i32 @fileno(ptr noundef %12794) #11
  %12796 = call i32 @isatty(i32 noundef %12795) #11
  %12797 = icmp ne i32 %12796, 0
  br i1 %12797, label %12798, label %12815

12798:                                            ; preds = %12793
  %12799 = load i32, ptr %260, align 4, !tbaa !5
  %12800 = call ptr @__errno_location() #12
  store i32 %12799, ptr %12800, align 4, !tbaa !5
  %12801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12802 = load i32, ptr @test_count, align 4, !tbaa !5
  %12803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12804 = load i32, ptr %12803, align 4, !tbaa !5
  %12805 = call ptr @s2n_strerror(i32 noundef %12804, ptr noundef @.str.4)
  %12806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12807 = load i32, ptr %12806, align 4, !tbaa !5
  %12808 = call ptr @s2n_strerror_debug(i32 noundef %12807, ptr noundef @.str.4)
  %12809 = call ptr @__errno_location() #12
  %12810 = load i32, ptr %12809, align 4, !tbaa !5
  %12811 = call ptr @strerror(i32 noundef %12810) #11
  %12812 = call ptr @__errno_location() #12
  %12813 = load i32, ptr %12812, align 4, !tbaa !5
  %12814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12801, ptr noundef @.str.2, i32 noundef %12802, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 487, ptr noundef %12805, ptr noundef %12808, ptr noundef %12811, i32 noundef %12813) #11
  br label %12832

12815:                                            ; preds = %12793, %12786
  %12816 = load i32, ptr %260, align 4, !tbaa !5
  %12817 = call ptr @__errno_location() #12
  store i32 %12816, ptr %12817, align 4, !tbaa !5
  %12818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12819 = load i32, ptr @test_count, align 4, !tbaa !5
  %12820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12821 = load i32, ptr %12820, align 4, !tbaa !5
  %12822 = call ptr @s2n_strerror(i32 noundef %12821, ptr noundef @.str.4)
  %12823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12824 = load i32, ptr %12823, align 4, !tbaa !5
  %12825 = call ptr @s2n_strerror_debug(i32 noundef %12824, ptr noundef @.str.4)
  %12826 = call ptr @__errno_location() #12
  %12827 = load i32, ptr %12826, align 4, !tbaa !5
  %12828 = call ptr @strerror(i32 noundef %12827) #11
  %12829 = call ptr @__errno_location() #12
  %12830 = load i32, ptr %12829, align 4, !tbaa !5
  %12831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12818, ptr noundef @.str.5, i32 noundef %12819, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 487, ptr noundef %12822, ptr noundef %12825, ptr noundef %12828, i32 noundef %12830) #11
  br label %12832

12832:                                            ; preds = %12815, %12798
  call void @llvm.lifetime.end.p0(i64 4, ptr %260) #11
  br label %12833

12833:                                            ; preds = %12832
  br label %12834

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

12835:                                            ; No predecessors!
  br label %12836

12836:                                            ; preds = %12835
  br label %12837

12837:                                            ; preds = %12836, %12779
  br label %12838

12838:                                            ; preds = %12837
  br label %12839

12839:                                            ; preds = %12838
  call void @llvm.lifetime.start.p0(i64 8, ptr %261) #11
  %12840 = load ptr, ptr %247, align 8, !tbaa !9
  %12841 = getelementptr inbounds %struct.s2n_connection, ptr %12840, i32 0, i32 31
  %12842 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %12841, i32 0, i32 3
  store ptr %12842, ptr %261, align 8, !tbaa !9
  br label %12843

12843:                                            ; preds = %12839
  %12844 = load i32, ptr @test_count, align 4, !tbaa !5
  %12845 = add nsw i32 %12844, 1
  store i32 %12845, ptr @test_count, align 4, !tbaa !5
  %12846 = load ptr, ptr %261, align 8, !tbaa !9
  %12847 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %12846, i32 0, i32 0
  %12848 = load ptr, ptr %12847, align 8, !tbaa !71
  %12849 = icmp eq ptr %12848, null
  br i1 %12849, label %12903, label %12850

12850:                                            ; preds = %12843
  br label %12851

12851:                                            ; preds = %12850
  br label %12852

12852:                                            ; preds = %12851
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #11
  %12853 = call ptr @__errno_location() #12
  %12854 = load i32, ptr %12853, align 4, !tbaa !5
  store i32 %12854, ptr %262, align 4, !tbaa !5
  %12855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12856 = call i32 @s2n_print_stacktrace(ptr noundef %12855)
  %12857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12858 = trunc i8 %12857 to i1
  br i1 %12858, label %12859, label %12881

12859:                                            ; preds = %12852
  %12860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12861 = call i32 @fileno(ptr noundef %12860) #11
  %12862 = call i32 @isatty(i32 noundef %12861) #11
  %12863 = icmp ne i32 %12862, 0
  br i1 %12863, label %12864, label %12881

12864:                                            ; preds = %12859
  %12865 = load i32, ptr %262, align 4, !tbaa !5
  %12866 = call ptr @__errno_location() #12
  store i32 %12865, ptr %12866, align 4, !tbaa !5
  %12867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12868 = load i32, ptr @test_count, align 4, !tbaa !5
  %12869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12870 = load i32, ptr %12869, align 4, !tbaa !5
  %12871 = call ptr @s2n_strerror(i32 noundef %12870, ptr noundef @.str.4)
  %12872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12873 = load i32, ptr %12872, align 4, !tbaa !5
  %12874 = call ptr @s2n_strerror_debug(i32 noundef %12873, ptr noundef @.str.4)
  %12875 = call ptr @__errno_location() #12
  %12876 = load i32, ptr %12875, align 4, !tbaa !5
  %12877 = call ptr @strerror(i32 noundef %12876) #11
  %12878 = call ptr @__errno_location() #12
  %12879 = load i32, ptr %12878, align 4, !tbaa !5
  %12880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12867, ptr noundef @.str.2, i32 noundef %12868, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 491, ptr noundef %12871, ptr noundef %12874, ptr noundef %12877, i32 noundef %12879) #11
  br label %12898

12881:                                            ; preds = %12859, %12852
  %12882 = load i32, ptr %262, align 4, !tbaa !5
  %12883 = call ptr @__errno_location() #12
  store i32 %12882, ptr %12883, align 4, !tbaa !5
  %12884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12885 = load i32, ptr @test_count, align 4, !tbaa !5
  %12886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12887 = load i32, ptr %12886, align 4, !tbaa !5
  %12888 = call ptr @s2n_strerror(i32 noundef %12887, ptr noundef @.str.4)
  %12889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12890 = load i32, ptr %12889, align 4, !tbaa !5
  %12891 = call ptr @s2n_strerror_debug(i32 noundef %12890, ptr noundef @.str.4)
  %12892 = call ptr @__errno_location() #12
  %12893 = load i32, ptr %12892, align 4, !tbaa !5
  %12894 = call ptr @strerror(i32 noundef %12893) #11
  %12895 = call ptr @__errno_location() #12
  %12896 = load i32, ptr %12895, align 4, !tbaa !5
  %12897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12884, ptr noundef @.str.5, i32 noundef %12885, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 491, ptr noundef %12888, ptr noundef %12891, ptr noundef %12894, i32 noundef %12896) #11
  br label %12898

12898:                                            ; preds = %12881, %12864
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #11
  br label %12899

12899:                                            ; preds = %12898
  br label %12900

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

12901:                                            ; No predecessors!
  br label %12902

12902:                                            ; preds = %12901
  br label %12903

12903:                                            ; preds = %12902, %12843
  br label %12904

12904:                                            ; preds = %12903
  br label %12905

12905:                                            ; preds = %12904
  br label %12906

12906:                                            ; preds = %12905
  %12907 = load i32, ptr @test_count, align 4, !tbaa !5
  %12908 = add nsw i32 %12907, 1
  store i32 %12908, ptr @test_count, align 4, !tbaa !5
  %12909 = load ptr, ptr %261, align 8, !tbaa !9
  %12910 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %12909, i32 0, i32 1
  %12911 = load ptr, ptr %12910, align 8, !tbaa !72
  %12912 = icmp eq ptr %12911, null
  br i1 %12912, label %12966, label %12913

12913:                                            ; preds = %12906
  br label %12914

12914:                                            ; preds = %12913
  br label %12915

12915:                                            ; preds = %12914
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #11
  %12916 = call ptr @__errno_location() #12
  %12917 = load i32, ptr %12916, align 4, !tbaa !5
  store i32 %12917, ptr %263, align 4, !tbaa !5
  %12918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12919 = call i32 @s2n_print_stacktrace(ptr noundef %12918)
  %12920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12921 = trunc i8 %12920 to i1
  br i1 %12921, label %12922, label %12944

12922:                                            ; preds = %12915
  %12923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12924 = call i32 @fileno(ptr noundef %12923) #11
  %12925 = call i32 @isatty(i32 noundef %12924) #11
  %12926 = icmp ne i32 %12925, 0
  br i1 %12926, label %12927, label %12944

12927:                                            ; preds = %12922
  %12928 = load i32, ptr %263, align 4, !tbaa !5
  %12929 = call ptr @__errno_location() #12
  store i32 %12928, ptr %12929, align 4, !tbaa !5
  %12930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12931 = load i32, ptr @test_count, align 4, !tbaa !5
  %12932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12933 = load i32, ptr %12932, align 4, !tbaa !5
  %12934 = call ptr @s2n_strerror(i32 noundef %12933, ptr noundef @.str.4)
  %12935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12936 = load i32, ptr %12935, align 4, !tbaa !5
  %12937 = call ptr @s2n_strerror_debug(i32 noundef %12936, ptr noundef @.str.4)
  %12938 = call ptr @__errno_location() #12
  %12939 = load i32, ptr %12938, align 4, !tbaa !5
  %12940 = call ptr @strerror(i32 noundef %12939) #11
  %12941 = call ptr @__errno_location() #12
  %12942 = load i32, ptr %12941, align 4, !tbaa !5
  %12943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12930, ptr noundef @.str.2, i32 noundef %12931, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 492, ptr noundef %12934, ptr noundef %12937, ptr noundef %12940, i32 noundef %12942) #11
  br label %12961

12944:                                            ; preds = %12922, %12915
  %12945 = load i32, ptr %263, align 4, !tbaa !5
  %12946 = call ptr @__errno_location() #12
  store i32 %12945, ptr %12946, align 4, !tbaa !5
  %12947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12948 = load i32, ptr @test_count, align 4, !tbaa !5
  %12949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12950 = load i32, ptr %12949, align 4, !tbaa !5
  %12951 = call ptr @s2n_strerror(i32 noundef %12950, ptr noundef @.str.4)
  %12952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12953 = load i32, ptr %12952, align 4, !tbaa !5
  %12954 = call ptr @s2n_strerror_debug(i32 noundef %12953, ptr noundef @.str.4)
  %12955 = call ptr @__errno_location() #12
  %12956 = load i32, ptr %12955, align 4, !tbaa !5
  %12957 = call ptr @strerror(i32 noundef %12956) #11
  %12958 = call ptr @__errno_location() #12
  %12959 = load i32, ptr %12958, align 4, !tbaa !5
  %12960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12947, ptr noundef @.str.5, i32 noundef %12948, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 492, ptr noundef %12951, ptr noundef %12954, ptr noundef %12957, i32 noundef %12959) #11
  br label %12961

12961:                                            ; preds = %12944, %12927
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #11
  br label %12962

12962:                                            ; preds = %12961
  br label %12963

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

12964:                                            ; No predecessors!
  br label %12965

12965:                                            ; preds = %12964
  br label %12966

12966:                                            ; preds = %12965, %12906
  br label %12967

12967:                                            ; preds = %12966
  br label %12968

12968:                                            ; preds = %12967
  br label %12969

12969:                                            ; preds = %12968
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #11
  store i32 32, ptr %264, align 4, !tbaa !5
  %12970 = load i32, ptr %264, align 4, !tbaa !5
  %12971 = icmp ne i32 %12970, 0
  br i1 %12971, label %12972, label %13034

12972:                                            ; preds = %12969
  %12973 = load ptr, ptr %246, align 8, !tbaa !9
  %12974 = getelementptr inbounds %struct.s2n_connection, ptr %12973, i32 0, i32 32
  %12975 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %12974, i32 0, i32 13
  %12976 = getelementptr inbounds [32 x i8], ptr %12975, i64 0, i64 0
  %12977 = load i32, ptr %264, align 4, !tbaa !5
  %12978 = sext i32 %12977 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %12976, ptr align 16 @hello_retry_req_random, i64 %12978, i1 false)
  %12979 = icmp eq ptr %12976, null
  br i1 %12979, label %12980, label %13033

12980:                                            ; preds = %12972
  br label %12981

12981:                                            ; preds = %12980
  br label %12982

12982:                                            ; preds = %12981
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #11
  %12983 = call ptr @__errno_location() #12
  %12984 = load i32, ptr %12983, align 4, !tbaa !5
  store i32 %12984, ptr %265, align 4, !tbaa !5
  %12985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12986 = call i32 @s2n_print_stacktrace(ptr noundef %12985)
  %12987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12988 = trunc i8 %12987 to i1
  br i1 %12988, label %12989, label %13011

12989:                                            ; preds = %12982
  %12990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12991 = call i32 @fileno(ptr noundef %12990) #11
  %12992 = call i32 @isatty(i32 noundef %12991) #11
  %12993 = icmp ne i32 %12992, 0
  br i1 %12993, label %12994, label %13011

12994:                                            ; preds = %12989
  %12995 = load i32, ptr %265, align 4, !tbaa !5
  %12996 = call ptr @__errno_location() #12
  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() #12
  %13006 = load i32, ptr %13005, align 4, !tbaa !5
  %13007 = call ptr @strerror(i32 noundef %13006) #11
  %13008 = call ptr @__errno_location() #12
  %13009 = load i32, ptr %13008, align 4, !tbaa !5
  %13010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12997, ptr noundef @.str.2, i32 noundef %12998, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 495, ptr noundef %13001, ptr noundef %13004, ptr noundef %13007, i32 noundef %13009) #11
  br label %13028

13011:                                            ; preds = %12989, %12982
  %13012 = load i32, ptr %265, align 4, !tbaa !5
  %13013 = call ptr @__errno_location() #12
  store i32 %13012, ptr %13013, align 4, !tbaa !5
  %13014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13015 = load i32, ptr @test_count, align 4, !tbaa !5
  %13016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13017 = load i32, ptr %13016, align 4, !tbaa !5
  %13018 = call ptr @s2n_strerror(i32 noundef %13017, ptr noundef @.str.4)
  %13019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13020 = load i32, ptr %13019, align 4, !tbaa !5
  %13021 = call ptr @s2n_strerror_debug(i32 noundef %13020, ptr noundef @.str.4)
  %13022 = call ptr @__errno_location() #12
  %13023 = load i32, ptr %13022, align 4, !tbaa !5
  %13024 = call ptr @strerror(i32 noundef %13023) #11
  %13025 = call ptr @__errno_location() #12
  %13026 = load i32, ptr %13025, align 4, !tbaa !5
  %13027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13014, ptr noundef @.str.5, i32 noundef %13015, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 495, ptr noundef %13018, ptr noundef %13021, ptr noundef %13024, i32 noundef %13026) #11
  br label %13028

13028:                                            ; preds = %13011, %12994
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #11
  br label %13029

13029:                                            ; preds = %13028
  br label %13030

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

13031:                                            ; No predecessors!
  br label %13032

13032:                                            ; preds = %13031
  br label %13033

13033:                                            ; preds = %13032, %12972
  br label %13034

13034:                                            ; preds = %13033, %12969
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #11
  br label %13035

13035:                                            ; preds = %13034
  br label %13036

13036:                                            ; preds = %13035
  br label %13037

13037:                                            ; preds = %13036
  %13038 = load i32, ptr @test_count, align 4, !tbaa !5
  %13039 = add nsw i32 %13038, 1
  store i32 %13039, ptr @test_count, align 4, !tbaa !5
  %13040 = load ptr, ptr %246, align 8, !tbaa !9
  %13041 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %13040, i8 noundef zeroext 34)
  %13042 = icmp eq i32 %13041, -1
  br i1 %13042, label %13043, label %13096

13043:                                            ; preds = %13037
  br label %13044

13044:                                            ; preds = %13043
  br label %13045

13045:                                            ; preds = %13044
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #11
  %13046 = call ptr @__errno_location() #12
  %13047 = load i32, ptr %13046, align 4, !tbaa !5
  store i32 %13047, ptr %266, align 4, !tbaa !5
  %13048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13049 = call i32 @s2n_print_stacktrace(ptr noundef %13048)
  %13050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13051 = trunc i8 %13050 to i1
  br i1 %13051, label %13052, label %13074

13052:                                            ; preds = %13045
  %13053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13054 = call i32 @fileno(ptr noundef %13053) #11
  %13055 = call i32 @isatty(i32 noundef %13054) #11
  %13056 = icmp ne i32 %13055, 0
  br i1 %13056, label %13057, label %13074

13057:                                            ; preds = %13052
  %13058 = load i32, ptr %266, align 4, !tbaa !5
  %13059 = call ptr @__errno_location() #12
  store i32 %13058, ptr %13059, align 4, !tbaa !5
  %13060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13061 = load i32, ptr @test_count, align 4, !tbaa !5
  %13062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13063 = load i32, ptr %13062, align 4, !tbaa !5
  %13064 = call ptr @s2n_strerror(i32 noundef %13063, ptr noundef @.str.4)
  %13065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13066 = load i32, ptr %13065, align 4, !tbaa !5
  %13067 = call ptr @s2n_strerror_debug(i32 noundef %13066, ptr noundef @.str.4)
  %13068 = call ptr @__errno_location() #12
  %13069 = load i32, ptr %13068, align 4, !tbaa !5
  %13070 = call ptr @strerror(i32 noundef %13069) #11
  %13071 = call ptr @__errno_location() #12
  %13072 = load i32, ptr %13071, align 4, !tbaa !5
  %13073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13060, ptr noundef @.str.2, i32 noundef %13061, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 496, ptr noundef %13064, ptr noundef %13067, ptr noundef %13070, i32 noundef %13072) #11
  br label %13091

13074:                                            ; preds = %13052, %13045
  %13075 = load i32, ptr %266, align 4, !tbaa !5
  %13076 = call ptr @__errno_location() #12
  store i32 %13075, ptr %13076, align 4, !tbaa !5
  %13077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13078 = load i32, ptr @test_count, align 4, !tbaa !5
  %13079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13080 = load i32, ptr %13079, align 4, !tbaa !5
  %13081 = call ptr @s2n_strerror(i32 noundef %13080, ptr noundef @.str.4)
  %13082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13083 = load i32, ptr %13082, align 4, !tbaa !5
  %13084 = call ptr @s2n_strerror_debug(i32 noundef %13083, ptr noundef @.str.4)
  %13085 = call ptr @__errno_location() #12
  %13086 = load i32, ptr %13085, align 4, !tbaa !5
  %13087 = call ptr @strerror(i32 noundef %13086) #11
  %13088 = call ptr @__errno_location() #12
  %13089 = load i32, ptr %13088, align 4, !tbaa !5
  %13090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13077, ptr noundef @.str.5, i32 noundef %13078, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 496, ptr noundef %13081, ptr noundef %13084, ptr noundef %13087, i32 noundef %13089) #11
  br label %13091

13091:                                            ; preds = %13074, %13057
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #11
  br label %13092

13092:                                            ; preds = %13091
  br label %13093

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

13094:                                            ; No predecessors!
  br label %13095

13095:                                            ; preds = %13094
  br label %13096

13096:                                            ; preds = %13095, %13037
  br label %13097

13097:                                            ; preds = %13096
  br label %13098

13098:                                            ; preds = %13097
  br label %13099

13099:                                            ; preds = %13098
  %13100 = load i32, ptr @test_count, align 4, !tbaa !5
  %13101 = add nsw i32 %13100, 1
  store i32 %13101, ptr @test_count, align 4, !tbaa !5
  %13102 = load ptr, ptr %246, align 8, !tbaa !9
  %13103 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %13102)
  %13104 = icmp eq i32 %13103, -1
  br i1 %13104, label %13105, label %13158

13105:                                            ; preds = %13099
  br label %13106

13106:                                            ; preds = %13105
  br label %13107

13107:                                            ; preds = %13106
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #11
  %13108 = call ptr @__errno_location() #12
  %13109 = load i32, ptr %13108, align 4, !tbaa !5
  store i32 %13109, ptr %267, align 4, !tbaa !5
  %13110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13111 = call i32 @s2n_print_stacktrace(ptr noundef %13110)
  %13112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13113 = trunc i8 %13112 to i1
  br i1 %13113, label %13114, label %13136

13114:                                            ; preds = %13107
  %13115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13116 = call i32 @fileno(ptr noundef %13115) #11
  %13117 = call i32 @isatty(i32 noundef %13116) #11
  %13118 = icmp ne i32 %13117, 0
  br i1 %13118, label %13119, label %13136

13119:                                            ; preds = %13114
  %13120 = load i32, ptr %267, align 4, !tbaa !5
  %13121 = call ptr @__errno_location() #12
  store i32 %13120, ptr %13121, align 4, !tbaa !5
  %13122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13123 = load i32, ptr @test_count, align 4, !tbaa !5
  %13124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13125 = load i32, ptr %13124, align 4, !tbaa !5
  %13126 = call ptr @s2n_strerror(i32 noundef %13125, ptr noundef @.str.4)
  %13127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13128 = load i32, ptr %13127, align 4, !tbaa !5
  %13129 = call ptr @s2n_strerror_debug(i32 noundef %13128, ptr noundef @.str.4)
  %13130 = call ptr @__errno_location() #12
  %13131 = load i32, ptr %13130, align 4, !tbaa !5
  %13132 = call ptr @strerror(i32 noundef %13131) #11
  %13133 = call ptr @__errno_location() #12
  %13134 = load i32, ptr %13133, align 4, !tbaa !5
  %13135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13122, ptr noundef @.str.2, i32 noundef %13123, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 497, ptr noundef %13126, ptr noundef %13129, ptr noundef %13132, i32 noundef %13134) #11
  br label %13153

13136:                                            ; preds = %13114, %13107
  %13137 = load i32, ptr %267, align 4, !tbaa !5
  %13138 = call ptr @__errno_location() #12
  store i32 %13137, ptr %13138, align 4, !tbaa !5
  %13139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13140 = load i32, ptr @test_count, align 4, !tbaa !5
  %13141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13142 = load i32, ptr %13141, align 4, !tbaa !5
  %13143 = call ptr @s2n_strerror(i32 noundef %13142, ptr noundef @.str.4)
  %13144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13145 = load i32, ptr %13144, align 4, !tbaa !5
  %13146 = call ptr @s2n_strerror_debug(i32 noundef %13145, ptr noundef @.str.4)
  %13147 = call ptr @__errno_location() #12
  %13148 = load i32, ptr %13147, align 4, !tbaa !5
  %13149 = call ptr @strerror(i32 noundef %13148) #11
  %13150 = call ptr @__errno_location() #12
  %13151 = load i32, ptr %13150, align 4, !tbaa !5
  %13152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13139, ptr noundef @.str.5, i32 noundef %13140, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 497, ptr noundef %13143, ptr noundef %13146, ptr noundef %13149, i32 noundef %13151) #11
  br label %13153

13153:                                            ; preds = %13136, %13119
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #11
  br label %13154

13154:                                            ; preds = %13153
  br label %13155

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

13156:                                            ; No predecessors!
  br label %13157

13157:                                            ; preds = %13156
  br label %13158

13158:                                            ; preds = %13157, %13099
  br label %13159

13159:                                            ; preds = %13158
  br label %13160

13160:                                            ; preds = %13159
  br label %13161

13161:                                            ; preds = %13160
  %13162 = load i32, ptr @test_count, align 4, !tbaa !5
  %13163 = add nsw i32 %13162, 1
  store i32 %13163, ptr @test_count, align 4, !tbaa !5
  %13164 = load ptr, ptr %246, align 8, !tbaa !9
  %13165 = call i32 @s2n_set_hello_retry_required(ptr noundef %13164)
  %13166 = icmp eq i32 %13165, -1
  br i1 %13166, label %13167, label %13220

13167:                                            ; preds = %13161
  br label %13168

13168:                                            ; preds = %13167
  br label %13169

13169:                                            ; preds = %13168
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #11
  %13170 = call ptr @__errno_location() #12
  %13171 = load i32, ptr %13170, align 4, !tbaa !5
  store i32 %13171, ptr %268, align 4, !tbaa !5
  %13172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13173 = call i32 @s2n_print_stacktrace(ptr noundef %13172)
  %13174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13175 = trunc i8 %13174 to i1
  br i1 %13175, label %13176, label %13198

13176:                                            ; preds = %13169
  %13177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13178 = call i32 @fileno(ptr noundef %13177) #11
  %13179 = call i32 @isatty(i32 noundef %13178) #11
  %13180 = icmp ne i32 %13179, 0
  br i1 %13180, label %13181, label %13198

13181:                                            ; preds = %13176
  %13182 = load i32, ptr %268, align 4, !tbaa !5
  %13183 = call ptr @__errno_location() #12
  store i32 %13182, ptr %13183, align 4, !tbaa !5
  %13184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13185 = load i32, ptr @test_count, align 4, !tbaa !5
  %13186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13187 = load i32, ptr %13186, align 4, !tbaa !5
  %13188 = call ptr @s2n_strerror(i32 noundef %13187, ptr noundef @.str.4)
  %13189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13190 = load i32, ptr %13189, align 4, !tbaa !5
  %13191 = call ptr @s2n_strerror_debug(i32 noundef %13190, ptr noundef @.str.4)
  %13192 = call ptr @__errno_location() #12
  %13193 = load i32, ptr %13192, align 4, !tbaa !5
  %13194 = call ptr @strerror(i32 noundef %13193) #11
  %13195 = call ptr @__errno_location() #12
  %13196 = load i32, ptr %13195, align 4, !tbaa !5
  %13197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13184, ptr noundef @.str.2, i32 noundef %13185, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 498, ptr noundef %13188, ptr noundef %13191, ptr noundef %13194, i32 noundef %13196) #11
  br label %13215

13198:                                            ; preds = %13176, %13169
  %13199 = load i32, ptr %268, align 4, !tbaa !5
  %13200 = call ptr @__errno_location() #12
  store i32 %13199, ptr %13200, align 4, !tbaa !5
  %13201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13202 = load i32, ptr @test_count, align 4, !tbaa !5
  %13203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13204 = load i32, ptr %13203, align 4, !tbaa !5
  %13205 = call ptr @s2n_strerror(i32 noundef %13204, ptr noundef @.str.4)
  %13206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13207 = load i32, ptr %13206, align 4, !tbaa !5
  %13208 = call ptr @s2n_strerror_debug(i32 noundef %13207, ptr noundef @.str.4)
  %13209 = call ptr @__errno_location() #12
  %13210 = load i32, ptr %13209, align 4, !tbaa !5
  %13211 = call ptr @strerror(i32 noundef %13210) #11
  %13212 = call ptr @__errno_location() #12
  %13213 = load i32, ptr %13212, align 4, !tbaa !5
  %13214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13201, ptr noundef @.str.5, i32 noundef %13202, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 498, ptr noundef %13205, ptr noundef %13208, ptr noundef %13211, i32 noundef %13213) #11
  br label %13215

13215:                                            ; preds = %13198, %13181
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #11
  br label %13216

13216:                                            ; preds = %13215
  br label %13217

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

13218:                                            ; No predecessors!
  br label %13219

13219:                                            ; preds = %13218
  br label %13220

13220:                                            ; preds = %13219, %13161
  br label %13221

13221:                                            ; preds = %13220
  br label %13222

13222:                                            ; preds = %13221
  br label %13223

13223:                                            ; preds = %13222
  %13224 = load i32, ptr @test_count, align 4, !tbaa !5
  %13225 = add nsw i32 %13224, 1
  store i32 %13225, ptr @test_count, align 4, !tbaa !5
  %13226 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %13227 = load ptr, ptr %246, align 8, !tbaa !9
  %13228 = load ptr, ptr %250, align 8, !tbaa !9
  %13229 = call i32 %13226(ptr noundef %13227, ptr noundef %13228)
  %13230 = icmp eq i32 %13229, -1
  br i1 %13230, label %13231, label %13284

13231:                                            ; preds = %13223
  br label %13232

13232:                                            ; preds = %13231
  br label %13233

13233:                                            ; preds = %13232
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #11
  %13234 = call ptr @__errno_location() #12
  %13235 = load i32, ptr %13234, align 4, !tbaa !5
  store i32 %13235, ptr %269, align 4, !tbaa !5
  %13236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13237 = call i32 @s2n_print_stacktrace(ptr noundef %13236)
  %13238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13239 = trunc i8 %13238 to i1
  br i1 %13239, label %13240, label %13262

13240:                                            ; preds = %13233
  %13241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13242 = call i32 @fileno(ptr noundef %13241) #11
  %13243 = call i32 @isatty(i32 noundef %13242) #11
  %13244 = icmp ne i32 %13243, 0
  br i1 %13244, label %13245, label %13262

13245:                                            ; preds = %13240
  %13246 = load i32, ptr %269, align 4, !tbaa !5
  %13247 = call ptr @__errno_location() #12
  store i32 %13246, ptr %13247, align 4, !tbaa !5
  %13248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13249 = load i32, ptr @test_count, align 4, !tbaa !5
  %13250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13251 = load i32, ptr %13250, align 4, !tbaa !5
  %13252 = call ptr @s2n_strerror(i32 noundef %13251, ptr noundef @.str.4)
  %13253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13254 = load i32, ptr %13253, align 4, !tbaa !5
  %13255 = call ptr @s2n_strerror_debug(i32 noundef %13254, ptr noundef @.str.4)
  %13256 = call ptr @__errno_location() #12
  %13257 = load i32, ptr %13256, align 4, !tbaa !5
  %13258 = call ptr @strerror(i32 noundef %13257) #11
  %13259 = call ptr @__errno_location() #12
  %13260 = load i32, ptr %13259, align 4, !tbaa !5
  %13261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13248, ptr noundef @.str.2, i32 noundef %13249, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 501, ptr noundef %13252, ptr noundef %13255, ptr noundef %13258, i32 noundef %13260) #11
  br label %13279

13262:                                            ; preds = %13240, %13233
  %13263 = load i32, ptr %269, align 4, !tbaa !5
  %13264 = call ptr @__errno_location() #12
  store i32 %13263, ptr %13264, align 4, !tbaa !5
  %13265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13266 = load i32, ptr @test_count, align 4, !tbaa !5
  %13267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13268 = load i32, ptr %13267, align 4, !tbaa !5
  %13269 = call ptr @s2n_strerror(i32 noundef %13268, ptr noundef @.str.4)
  %13270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13271 = load i32, ptr %13270, align 4, !tbaa !5
  %13272 = call ptr @s2n_strerror_debug(i32 noundef %13271, ptr noundef @.str.4)
  %13273 = call ptr @__errno_location() #12
  %13274 = load i32, ptr %13273, align 4, !tbaa !5
  %13275 = call ptr @strerror(i32 noundef %13274) #11
  %13276 = call ptr @__errno_location() #12
  %13277 = load i32, ptr %13276, align 4, !tbaa !5
  %13278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13265, ptr noundef @.str.5, i32 noundef %13266, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 501, ptr noundef %13269, ptr noundef %13272, ptr noundef %13275, i32 noundef %13277) #11
  br label %13279

13279:                                            ; preds = %13262, %13245
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #11
  br label %13280

13280:                                            ; preds = %13279
  br label %13281

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

13282:                                            ; No predecessors!
  br label %13283

13283:                                            ; preds = %13282
  br label %13284

13284:                                            ; preds = %13283, %13223
  br label %13285

13285:                                            ; preds = %13284
  br label %13286

13286:                                            ; preds = %13285
  br label %13287

13287:                                            ; preds = %13286
  %13288 = load i32, ptr @test_count, align 4, !tbaa !5
  %13289 = add nsw i32 %13288, 1
  store i32 %13289, ptr @test_count, align 4, !tbaa !5
  %13290 = load ptr, ptr %250, align 8, !tbaa !9
  %13291 = getelementptr inbounds %struct.s2n_stuffer, ptr %13290, i32 0, i32 2
  %13292 = load i32, ptr %13291, align 4, !tbaa !55
  %13293 = load ptr, ptr %250, align 8, !tbaa !9
  %13294 = getelementptr inbounds %struct.s2n_stuffer, ptr %13293, i32 0, i32 1
  %13295 = load i32, ptr %13294, align 8, !tbaa !56
  %13296 = sub i32 %13292, %13295
  %13297 = icmp eq i32 %13296, 0
  br i1 %13297, label %13351, label %13298

13298:                                            ; preds = %13287
  br label %13299

13299:                                            ; preds = %13298
  br label %13300

13300:                                            ; preds = %13299
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #11
  %13301 = call ptr @__errno_location() #12
  %13302 = load i32, ptr %13301, align 4, !tbaa !5
  store i32 %13302, ptr %270, align 4, !tbaa !5
  %13303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13304 = call i32 @s2n_print_stacktrace(ptr noundef %13303)
  %13305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13306 = trunc i8 %13305 to i1
  br i1 %13306, label %13307, label %13329

13307:                                            ; preds = %13300
  %13308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13309 = call i32 @fileno(ptr noundef %13308) #11
  %13310 = call i32 @isatty(i32 noundef %13309) #11
  %13311 = icmp ne i32 %13310, 0
  br i1 %13311, label %13312, label %13329

13312:                                            ; preds = %13307
  %13313 = load i32, ptr %270, align 4, !tbaa !5
  %13314 = call ptr @__errno_location() #12
  store i32 %13313, ptr %13314, align 4, !tbaa !5
  %13315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13316 = load i32, ptr @test_count, align 4, !tbaa !5
  %13317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13318 = load i32, ptr %13317, align 4, !tbaa !5
  %13319 = call ptr @s2n_strerror(i32 noundef %13318, ptr noundef @.str.4)
  %13320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13321 = load i32, ptr %13320, align 4, !tbaa !5
  %13322 = call ptr @s2n_strerror_debug(i32 noundef %13321, ptr noundef @.str.4)
  %13323 = call ptr @__errno_location() #12
  %13324 = load i32, ptr %13323, align 4, !tbaa !5
  %13325 = call ptr @strerror(i32 noundef %13324) #11
  %13326 = call ptr @__errno_location() #12
  %13327 = load i32, ptr %13326, align 4, !tbaa !5
  %13328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13315, ptr noundef @.str.2, i32 noundef %13316, ptr noundef @.str.119, ptr noundef @.str.1, i32 noundef 502, ptr noundef %13319, ptr noundef %13322, ptr noundef %13325, i32 noundef %13327) #11
  br label %13346

13329:                                            ; preds = %13307, %13300
  %13330 = load i32, ptr %270, align 4, !tbaa !5
  %13331 = call ptr @__errno_location() #12
  store i32 %13330, ptr %13331, align 4, !tbaa !5
  %13332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13333 = load i32, ptr @test_count, align 4, !tbaa !5
  %13334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13335 = load i32, ptr %13334, align 4, !tbaa !5
  %13336 = call ptr @s2n_strerror(i32 noundef %13335, ptr noundef @.str.4)
  %13337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13338 = load i32, ptr %13337, align 4, !tbaa !5
  %13339 = call ptr @s2n_strerror_debug(i32 noundef %13338, ptr noundef @.str.4)
  %13340 = call ptr @__errno_location() #12
  %13341 = load i32, ptr %13340, align 4, !tbaa !5
  %13342 = call ptr @strerror(i32 noundef %13341) #11
  %13343 = call ptr @__errno_location() #12
  %13344 = load i32, ptr %13343, align 4, !tbaa !5
  %13345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13332, ptr noundef @.str.5, i32 noundef %13333, ptr noundef @.str.119, ptr noundef @.str.1, i32 noundef 502, ptr noundef %13336, ptr noundef %13339, ptr noundef %13342, i32 noundef %13344) #11
  br label %13346

13346:                                            ; preds = %13329, %13312
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #11
  br label %13347

13347:                                            ; preds = %13346
  br label %13348

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

13349:                                            ; No predecessors!
  br label %13350

13350:                                            ; preds = %13349
  br label %13351

13351:                                            ; preds = %13350, %13287
  br label %13352

13352:                                            ; preds = %13351
  br label %13353

13353:                                            ; preds = %13352
  br label %13354

13354:                                            ; preds = %13353
  %13355 = load i32, ptr @test_count, align 4, !tbaa !5
  %13356 = add nsw i32 %13355, 1
  store i32 %13356, ptr @test_count, align 4, !tbaa !5
  %13357 = load ptr, ptr %247, align 8, !tbaa !9
  %13358 = getelementptr inbounds %struct.s2n_connection, ptr %13357, i32 0, i32 31
  %13359 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13358, i32 0, i32 1
  %13360 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13359, i32 0, i32 0
  %13361 = load ptr, ptr %13360, align 8, !tbaa !42
  %13362 = load ptr, ptr %246, align 8, !tbaa !9
  %13363 = getelementptr inbounds %struct.s2n_connection, ptr %13362, i32 0, i32 31
  %13364 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13363, i32 0, i32 1
  %13365 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13364, i32 0, i32 0
  %13366 = load ptr, ptr %13365, align 8, !tbaa !42
  %13367 = icmp eq ptr %13361, %13366
  br i1 %13367, label %13421, label %13368

13368:                                            ; preds = %13354
  br label %13369

13369:                                            ; preds = %13368
  br label %13370

13370:                                            ; preds = %13369
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #11
  %13371 = call ptr @__errno_location() #12
  %13372 = load i32, ptr %13371, align 4, !tbaa !5
  store i32 %13372, ptr %271, align 4, !tbaa !5
  %13373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13374 = call i32 @s2n_print_stacktrace(ptr noundef %13373)
  %13375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13376 = trunc i8 %13375 to i1
  br i1 %13376, label %13377, label %13399

13377:                                            ; preds = %13370
  %13378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13379 = call i32 @fileno(ptr noundef %13378) #11
  %13380 = call i32 @isatty(i32 noundef %13379) #11
  %13381 = icmp ne i32 %13380, 0
  br i1 %13381, label %13382, label %13399

13382:                                            ; preds = %13377
  %13383 = load i32, ptr %271, align 4, !tbaa !5
  %13384 = call ptr @__errno_location() #12
  store i32 %13383, ptr %13384, align 4, !tbaa !5
  %13385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13386 = load i32, ptr @test_count, align 4, !tbaa !5
  %13387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13388 = load i32, ptr %13387, align 4, !tbaa !5
  %13389 = call ptr @s2n_strerror(i32 noundef %13388, ptr noundef @.str.4)
  %13390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13391 = load i32, ptr %13390, align 4, !tbaa !5
  %13392 = call ptr @s2n_strerror_debug(i32 noundef %13391, ptr noundef @.str.4)
  %13393 = call ptr @__errno_location() #12
  %13394 = load i32, ptr %13393, align 4, !tbaa !5
  %13395 = call ptr @strerror(i32 noundef %13394) #11
  %13396 = call ptr @__errno_location() #12
  %13397 = load i32, ptr %13396, align 4, !tbaa !5
  %13398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13385, ptr noundef @.str.2, i32 noundef %13386, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 504, ptr noundef %13389, ptr noundef %13392, ptr noundef %13395, i32 noundef %13397) #11
  br label %13416

13399:                                            ; preds = %13377, %13370
  %13400 = load i32, ptr %271, align 4, !tbaa !5
  %13401 = call ptr @__errno_location() #12
  store i32 %13400, ptr %13401, align 4, !tbaa !5
  %13402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13403 = load i32, ptr @test_count, align 4, !tbaa !5
  %13404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13405 = load i32, ptr %13404, align 4, !tbaa !5
  %13406 = call ptr @s2n_strerror(i32 noundef %13405, ptr noundef @.str.4)
  %13407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13408 = load i32, ptr %13407, align 4, !tbaa !5
  %13409 = call ptr @s2n_strerror_debug(i32 noundef %13408, ptr noundef @.str.4)
  %13410 = call ptr @__errno_location() #12
  %13411 = load i32, ptr %13410, align 4, !tbaa !5
  %13412 = call ptr @strerror(i32 noundef %13411) #11
  %13413 = call ptr @__errno_location() #12
  %13414 = load i32, ptr %13413, align 4, !tbaa !5
  %13415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13402, ptr noundef @.str.5, i32 noundef %13403, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 504, ptr noundef %13406, ptr noundef %13409, ptr noundef %13412, i32 noundef %13414) #11
  br label %13416

13416:                                            ; preds = %13399, %13382
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #11
  br label %13417

13417:                                            ; preds = %13416
  br label %13418

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

13419:                                            ; No predecessors!
  br label %13420

13420:                                            ; preds = %13419
  br label %13421

13421:                                            ; preds = %13420, %13354
  br label %13422

13422:                                            ; preds = %13421
  br label %13423

13423:                                            ; preds = %13422
  br label %13424

13424:                                            ; preds = %13423
  %13425 = load i32, ptr @test_count, align 4, !tbaa !5
  %13426 = add nsw i32 %13425, 1
  store i32 %13426, ptr @test_count, align 4, !tbaa !5
  %13427 = load ptr, ptr %246, align 8, !tbaa !9
  %13428 = getelementptr inbounds %struct.s2n_connection, ptr %13427, i32 0, i32 31
  %13429 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13428, i32 0, i32 1
  %13430 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13429, i32 0, i32 1
  %13431 = load ptr, ptr %13430, align 8, !tbaa !62
  %13432 = icmp eq ptr %13431, null
  br i1 %13432, label %13486, label %13433

13433:                                            ; preds = %13424
  br label %13434

13434:                                            ; preds = %13433
  br label %13435

13435:                                            ; preds = %13434
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #11
  %13436 = call ptr @__errno_location() #12
  %13437 = load i32, ptr %13436, align 4, !tbaa !5
  store i32 %13437, ptr %272, align 4, !tbaa !5
  %13438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13439 = call i32 @s2n_print_stacktrace(ptr noundef %13438)
  %13440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13441 = trunc i8 %13440 to i1
  br i1 %13441, label %13442, label %13464

13442:                                            ; preds = %13435
  %13443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13444 = call i32 @fileno(ptr noundef %13443) #11
  %13445 = call i32 @isatty(i32 noundef %13444) #11
  %13446 = icmp ne i32 %13445, 0
  br i1 %13446, label %13447, label %13464

13447:                                            ; preds = %13442
  %13448 = load i32, ptr %272, align 4, !tbaa !5
  %13449 = call ptr @__errno_location() #12
  store i32 %13448, ptr %13449, align 4, !tbaa !5
  %13450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13451 = load i32, ptr @test_count, align 4, !tbaa !5
  %13452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13453 = load i32, ptr %13452, align 4, !tbaa !5
  %13454 = call ptr @s2n_strerror(i32 noundef %13453, ptr noundef @.str.4)
  %13455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13456 = load i32, ptr %13455, align 4, !tbaa !5
  %13457 = call ptr @s2n_strerror_debug(i32 noundef %13456, ptr noundef @.str.4)
  %13458 = call ptr @__errno_location() #12
  %13459 = load i32, ptr %13458, align 4, !tbaa !5
  %13460 = call ptr @strerror(i32 noundef %13459) #11
  %13461 = call ptr @__errno_location() #12
  %13462 = load i32, ptr %13461, align 4, !tbaa !5
  %13463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13450, ptr noundef @.str.2, i32 noundef %13451, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 505, ptr noundef %13454, ptr noundef %13457, ptr noundef %13460, i32 noundef %13462) #11
  br label %13481

13464:                                            ; preds = %13442, %13435
  %13465 = load i32, ptr %272, align 4, !tbaa !5
  %13466 = call ptr @__errno_location() #12
  store i32 %13465, ptr %13466, align 4, !tbaa !5
  %13467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13468 = load i32, ptr @test_count, align 4, !tbaa !5
  %13469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13470 = load i32, ptr %13469, align 4, !tbaa !5
  %13471 = call ptr @s2n_strerror(i32 noundef %13470, ptr noundef @.str.4)
  %13472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13473 = load i32, ptr %13472, align 4, !tbaa !5
  %13474 = call ptr @s2n_strerror_debug(i32 noundef %13473, ptr noundef @.str.4)
  %13475 = call ptr @__errno_location() #12
  %13476 = load i32, ptr %13475, align 4, !tbaa !5
  %13477 = call ptr @strerror(i32 noundef %13476) #11
  %13478 = call ptr @__errno_location() #12
  %13479 = load i32, ptr %13478, align 4, !tbaa !5
  %13480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13467, ptr noundef @.str.5, i32 noundef %13468, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 505, ptr noundef %13471, ptr noundef %13474, ptr noundef %13477, i32 noundef %13479) #11
  br label %13481

13481:                                            ; preds = %13464, %13447
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #11
  br label %13482

13482:                                            ; preds = %13481
  br label %13483

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

13484:                                            ; No predecessors!
  br label %13485

13485:                                            ; preds = %13484
  br label %13486

13486:                                            ; preds = %13485, %13424
  br label %13487

13487:                                            ; preds = %13486
  br label %13488

13488:                                            ; preds = %13487
  br label %13489

13489:                                            ; preds = %13488
  %13490 = load i32, ptr @test_count, align 4, !tbaa !5
  %13491 = add nsw i32 %13490, 1
  store i32 %13491, ptr @test_count, align 4, !tbaa !5
  %13492 = load ptr, ptr %250, align 8, !tbaa !9
  %13493 = call i32 @s2n_stuffer_free(ptr noundef %13492)
  %13494 = icmp eq i32 %13493, -1
  br i1 %13494, label %13495, label %13548

13495:                                            ; preds = %13489
  br label %13496

13496:                                            ; preds = %13495
  br label %13497

13497:                                            ; preds = %13496
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #11
  %13498 = call ptr @__errno_location() #12
  %13499 = load i32, ptr %13498, align 4, !tbaa !5
  store i32 %13499, ptr %273, align 4, !tbaa !5
  %13500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13501 = call i32 @s2n_print_stacktrace(ptr noundef %13500)
  %13502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13503 = trunc i8 %13502 to i1
  br i1 %13503, label %13504, label %13526

13504:                                            ; preds = %13497
  %13505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13506 = call i32 @fileno(ptr noundef %13505) #11
  %13507 = call i32 @isatty(i32 noundef %13506) #11
  %13508 = icmp ne i32 %13507, 0
  br i1 %13508, label %13509, label %13526

13509:                                            ; preds = %13504
  %13510 = load i32, ptr %273, align 4, !tbaa !5
  %13511 = call ptr @__errno_location() #12
  store i32 %13510, ptr %13511, align 4, !tbaa !5
  %13512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13513 = load i32, ptr @test_count, align 4, !tbaa !5
  %13514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13515 = load i32, ptr %13514, align 4, !tbaa !5
  %13516 = call ptr @s2n_strerror(i32 noundef %13515, ptr noundef @.str.4)
  %13517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13518 = load i32, ptr %13517, align 4, !tbaa !5
  %13519 = call ptr @s2n_strerror_debug(i32 noundef %13518, ptr noundef @.str.4)
  %13520 = call ptr @__errno_location() #12
  %13521 = load i32, ptr %13520, align 4, !tbaa !5
  %13522 = call ptr @strerror(i32 noundef %13521) #11
  %13523 = call ptr @__errno_location() #12
  %13524 = load i32, ptr %13523, align 4, !tbaa !5
  %13525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13512, ptr noundef @.str.2, i32 noundef %13513, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 507, ptr noundef %13516, ptr noundef %13519, ptr noundef %13522, i32 noundef %13524) #11
  br label %13543

13526:                                            ; preds = %13504, %13497
  %13527 = load i32, ptr %273, align 4, !tbaa !5
  %13528 = call ptr @__errno_location() #12
  store i32 %13527, ptr %13528, align 4, !tbaa !5
  %13529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13530 = load i32, ptr @test_count, align 4, !tbaa !5
  %13531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13532 = load i32, ptr %13531, align 4, !tbaa !5
  %13533 = call ptr @s2n_strerror(i32 noundef %13532, ptr noundef @.str.4)
  %13534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13535 = load i32, ptr %13534, align 4, !tbaa !5
  %13536 = call ptr @s2n_strerror_debug(i32 noundef %13535, ptr noundef @.str.4)
  %13537 = call ptr @__errno_location() #12
  %13538 = load i32, ptr %13537, align 4, !tbaa !5
  %13539 = call ptr @strerror(i32 noundef %13538) #11
  %13540 = call ptr @__errno_location() #12
  %13541 = load i32, ptr %13540, align 4, !tbaa !5
  %13542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13529, ptr noundef @.str.5, i32 noundef %13530, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 507, ptr noundef %13533, ptr noundef %13536, ptr noundef %13539, i32 noundef %13541) #11
  br label %13543

13543:                                            ; preds = %13526, %13509
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #11
  br label %13544

13544:                                            ; preds = %13543
  br label %13545

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

13546:                                            ; No predecessors!
  br label %13547

13547:                                            ; preds = %13546
  br label %13548

13548:                                            ; preds = %13547, %13489
  br label %13549

13549:                                            ; preds = %13548
  br label %13550

13550:                                            ; preds = %13549
  br label %13551

13551:                                            ; preds = %13550
  %13552 = load i32, ptr @test_count, align 4, !tbaa !5
  %13553 = add nsw i32 %13552, 1
  store i32 %13553, ptr @test_count, align 4, !tbaa !5
  %13554 = load ptr, ptr %247, align 8, !tbaa !9
  %13555 = call i32 @s2n_connection_free(ptr noundef %13554)
  %13556 = icmp eq i32 %13555, -1
  br i1 %13556, label %13557, label %13610

13557:                                            ; preds = %13551
  br label %13558

13558:                                            ; preds = %13557
  br label %13559

13559:                                            ; preds = %13558
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #11
  %13560 = call ptr @__errno_location() #12
  %13561 = load i32, ptr %13560, align 4, !tbaa !5
  store i32 %13561, ptr %274, align 4, !tbaa !5
  %13562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13563 = call i32 @s2n_print_stacktrace(ptr noundef %13562)
  %13564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13565 = trunc i8 %13564 to i1
  br i1 %13565, label %13566, label %13588

13566:                                            ; preds = %13559
  %13567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13568 = call i32 @fileno(ptr noundef %13567) #11
  %13569 = call i32 @isatty(i32 noundef %13568) #11
  %13570 = icmp ne i32 %13569, 0
  br i1 %13570, label %13571, label %13588

13571:                                            ; preds = %13566
  %13572 = load i32, ptr %274, align 4, !tbaa !5
  %13573 = call ptr @__errno_location() #12
  store i32 %13572, ptr %13573, align 4, !tbaa !5
  %13574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13575 = load i32, ptr @test_count, align 4, !tbaa !5
  %13576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13577 = load i32, ptr %13576, align 4, !tbaa !5
  %13578 = call ptr @s2n_strerror(i32 noundef %13577, ptr noundef @.str.4)
  %13579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13580 = load i32, ptr %13579, align 4, !tbaa !5
  %13581 = call ptr @s2n_strerror_debug(i32 noundef %13580, ptr noundef @.str.4)
  %13582 = call ptr @__errno_location() #12
  %13583 = load i32, ptr %13582, align 4, !tbaa !5
  %13584 = call ptr @strerror(i32 noundef %13583) #11
  %13585 = call ptr @__errno_location() #12
  %13586 = load i32, ptr %13585, align 4, !tbaa !5
  %13587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13574, ptr noundef @.str.2, i32 noundef %13575, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 508, ptr noundef %13578, ptr noundef %13581, ptr noundef %13584, i32 noundef %13586) #11
  br label %13605

13588:                                            ; preds = %13566, %13559
  %13589 = load i32, ptr %274, align 4, !tbaa !5
  %13590 = call ptr @__errno_location() #12
  store i32 %13589, ptr %13590, align 4, !tbaa !5
  %13591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13592 = load i32, ptr @test_count, align 4, !tbaa !5
  %13593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13594 = load i32, ptr %13593, align 4, !tbaa !5
  %13595 = call ptr @s2n_strerror(i32 noundef %13594, ptr noundef @.str.4)
  %13596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13597 = load i32, ptr %13596, align 4, !tbaa !5
  %13598 = call ptr @s2n_strerror_debug(i32 noundef %13597, ptr noundef @.str.4)
  %13599 = call ptr @__errno_location() #12
  %13600 = load i32, ptr %13599, align 4, !tbaa !5
  %13601 = call ptr @strerror(i32 noundef %13600) #11
  %13602 = call ptr @__errno_location() #12
  %13603 = load i32, ptr %13602, align 4, !tbaa !5
  %13604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13591, ptr noundef @.str.5, i32 noundef %13592, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 508, ptr noundef %13595, ptr noundef %13598, ptr noundef %13601, i32 noundef %13603) #11
  br label %13605

13605:                                            ; preds = %13588, %13571
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #11
  br label %13606

13606:                                            ; preds = %13605
  br label %13607

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

13608:                                            ; No predecessors!
  br label %13609

13609:                                            ; preds = %13608
  br label %13610

13610:                                            ; preds = %13609, %13551
  br label %13611

13611:                                            ; preds = %13610
  br label %13612

13612:                                            ; preds = %13611
  br label %13613

13613:                                            ; preds = %13612
  %13614 = load i32, ptr @test_count, align 4, !tbaa !5
  %13615 = add nsw i32 %13614, 1
  store i32 %13615, ptr @test_count, align 4, !tbaa !5
  %13616 = load ptr, ptr %246, align 8, !tbaa !9
  %13617 = call i32 @s2n_connection_free(ptr noundef %13616)
  %13618 = icmp eq i32 %13617, -1
  br i1 %13618, label %13619, label %13672

13619:                                            ; preds = %13613
  br label %13620

13620:                                            ; preds = %13619
  br label %13621

13621:                                            ; preds = %13620
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #11
  %13622 = call ptr @__errno_location() #12
  %13623 = load i32, ptr %13622, align 4, !tbaa !5
  store i32 %13623, ptr %275, align 4, !tbaa !5
  %13624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13625 = call i32 @s2n_print_stacktrace(ptr noundef %13624)
  %13626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13627 = trunc i8 %13626 to i1
  br i1 %13627, label %13628, label %13650

13628:                                            ; preds = %13621
  %13629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13630 = call i32 @fileno(ptr noundef %13629) #11
  %13631 = call i32 @isatty(i32 noundef %13630) #11
  %13632 = icmp ne i32 %13631, 0
  br i1 %13632, label %13633, label %13650

13633:                                            ; preds = %13628
  %13634 = load i32, ptr %275, align 4, !tbaa !5
  %13635 = call ptr @__errno_location() #12
  store i32 %13634, ptr %13635, align 4, !tbaa !5
  %13636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13637 = load i32, ptr @test_count, align 4, !tbaa !5
  %13638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13639 = load i32, ptr %13638, align 4, !tbaa !5
  %13640 = call ptr @s2n_strerror(i32 noundef %13639, ptr noundef @.str.4)
  %13641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13642 = load i32, ptr %13641, align 4, !tbaa !5
  %13643 = call ptr @s2n_strerror_debug(i32 noundef %13642, ptr noundef @.str.4)
  %13644 = call ptr @__errno_location() #12
  %13645 = load i32, ptr %13644, align 4, !tbaa !5
  %13646 = call ptr @strerror(i32 noundef %13645) #11
  %13647 = call ptr @__errno_location() #12
  %13648 = load i32, ptr %13647, align 4, !tbaa !5
  %13649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13636, ptr noundef @.str.2, i32 noundef %13637, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 509, ptr noundef %13640, ptr noundef %13643, ptr noundef %13646, i32 noundef %13648) #11
  br label %13667

13650:                                            ; preds = %13628, %13621
  %13651 = load i32, ptr %275, align 4, !tbaa !5
  %13652 = call ptr @__errno_location() #12
  store i32 %13651, ptr %13652, align 4, !tbaa !5
  %13653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13654 = load i32, ptr @test_count, align 4, !tbaa !5
  %13655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13656 = load i32, ptr %13655, align 4, !tbaa !5
  %13657 = call ptr @s2n_strerror(i32 noundef %13656, ptr noundef @.str.4)
  %13658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13659 = load i32, ptr %13658, align 4, !tbaa !5
  %13660 = call ptr @s2n_strerror_debug(i32 noundef %13659, ptr noundef @.str.4)
  %13661 = call ptr @__errno_location() #12
  %13662 = load i32, ptr %13661, align 4, !tbaa !5
  %13663 = call ptr @strerror(i32 noundef %13662) #11
  %13664 = call ptr @__errno_location() #12
  %13665 = load i32, ptr %13664, align 4, !tbaa !5
  %13666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13653, ptr noundef @.str.5, i32 noundef %13654, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 509, ptr noundef %13657, ptr noundef %13660, ptr noundef %13663, i32 noundef %13665) #11
  br label %13667

13667:                                            ; preds = %13650, %13633
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #11
  br label %13668

13668:                                            ; preds = %13667
  br label %13669

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

13670:                                            ; No predecessors!
  br label %13671

13671:                                            ; preds = %13670
  br label %13672

13672:                                            ; preds = %13671, %13613
  br label %13673

13673:                                            ; preds = %13672
  br label %13674

13674:                                            ; preds = %13673
  call void @llvm.lifetime.end.p0(i64 8, ptr %261) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %258) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %247) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %246) #11
  br label %13675

13675:                                            ; preds = %13674
  %13676 = load i32, ptr @test_count, align 4, !tbaa !5
  %13677 = add nsw i32 %13676, 1
  store i32 %13677, ptr @test_count, align 4, !tbaa !5
  %13678 = call i32 (...) @s2n_disable_tls13_in_test()
  %13679 = icmp eq i32 %13678, -1
  br i1 %13679, label %13680, label %13731

13680:                                            ; preds = %13675
  br label %13681

13681:                                            ; preds = %13680
  br label %13682

13682:                                            ; preds = %13681
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #11
  %13683 = call ptr @__errno_location() #12
  %13684 = load i32, ptr %13683, align 4, !tbaa !5
  store i32 %13684, ptr %276, align 4, !tbaa !5
  %13685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13686 = call i32 @s2n_print_stacktrace(ptr noundef %13685)
  %13687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13688 = trunc i8 %13687 to i1
  br i1 %13688, label %13689, label %13711

13689:                                            ; preds = %13682
  %13690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13691 = call i32 @fileno(ptr noundef %13690) #11
  %13692 = call i32 @isatty(i32 noundef %13691) #11
  %13693 = icmp ne i32 %13692, 0
  br i1 %13693, label %13694, label %13711

13694:                                            ; preds = %13689
  %13695 = load i32, ptr %276, align 4, !tbaa !5
  %13696 = call ptr @__errno_location() #12
  store i32 %13695, ptr %13696, align 4, !tbaa !5
  %13697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13698 = load i32, ptr @test_count, align 4, !tbaa !5
  %13699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13700 = load i32, ptr %13699, align 4, !tbaa !5
  %13701 = call ptr @s2n_strerror(i32 noundef %13700, ptr noundef @.str.4)
  %13702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13703 = load i32, ptr %13702, align 4, !tbaa !5
  %13704 = call ptr @s2n_strerror_debug(i32 noundef %13703, ptr noundef @.str.4)
  %13705 = call ptr @__errno_location() #12
  %13706 = load i32, ptr %13705, align 4, !tbaa !5
  %13707 = call ptr @strerror(i32 noundef %13706) #11
  %13708 = call ptr @__errno_location() #12
  %13709 = load i32, ptr %13708, align 4, !tbaa !5
  %13710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13697, ptr noundef @.str.2, i32 noundef %13698, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 511, ptr noundef %13701, ptr noundef %13704, ptr noundef %13707, i32 noundef %13709) #11
  br label %13728

13711:                                            ; preds = %13689, %13682
  %13712 = load i32, ptr %276, align 4, !tbaa !5
  %13713 = call ptr @__errno_location() #12
  store i32 %13712, ptr %13713, align 4, !tbaa !5
  %13714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13715 = load i32, ptr @test_count, align 4, !tbaa !5
  %13716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13717 = load i32, ptr %13716, align 4, !tbaa !5
  %13718 = call ptr @s2n_strerror(i32 noundef %13717, ptr noundef @.str.4)
  %13719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13720 = load i32, ptr %13719, align 4, !tbaa !5
  %13721 = call ptr @s2n_strerror_debug(i32 noundef %13720, ptr noundef @.str.4)
  %13722 = call ptr @__errno_location() #12
  %13723 = load i32, ptr %13722, align 4, !tbaa !5
  %13724 = call ptr @strerror(i32 noundef %13723) #11
  %13725 = call ptr @__errno_location() #12
  %13726 = load i32, ptr %13725, align 4, !tbaa !5
  %13727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13714, ptr noundef @.str.5, i32 noundef %13715, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 511, ptr noundef %13718, ptr noundef %13721, ptr noundef %13724, i32 noundef %13726) #11
  br label %13728

13728:                                            ; preds = %13711, %13694
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #11
  br label %13729

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

13730:                                            ; No predecessors!
  br label %13731

13731:                                            ; preds = %13730, %13675
  br label %13732

13732:                                            ; preds = %13731
  call void @llvm.lifetime.start.p0(i64 16, ptr %277) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %277, ptr align 16 @__const.main.test_kem_groups, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %278) #11
  call void @llvm.memset.p0.i64(ptr align 8 %278, i8 0, i64 40, i1 false)
  %13733 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %278, i32 0, i32 0
  %13734 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %278, i32 0, i32 1
  %13735 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %278, i32 0, i32 2
  store i8 2, ptr %13735, align 8, !tbaa !73
  %13736 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %278, i32 0, i32 3
  %13737 = getelementptr inbounds [2 x ptr], ptr %277, i64 0, i64 0
  store ptr %13737, ptr %13736, align 8, !tbaa !75
  %13738 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %278, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 64, ptr %279) #11
  %13739 = getelementptr inbounds %struct.s2n_security_policy, ptr %279, i32 0, i32 0
  store i8 30, ptr %13739, align 8, !tbaa !76
  %13740 = getelementptr inbounds %struct.s2n_security_policy, ptr %279, i32 0, i32 1
  store ptr @cipher_preferences_test_all_tls13, ptr %13740, align 8, !tbaa !78
  %13741 = getelementptr inbounds %struct.s2n_security_policy, ptr %279, i32 0, i32 2
  store ptr %278, ptr %13741, align 8, !tbaa !79
  %13742 = getelementptr inbounds %struct.s2n_security_policy, ptr %279, i32 0, i32 3
  store ptr @s2n_signature_preferences_20200207, ptr %13742, align 8, !tbaa !80
  %13743 = getelementptr inbounds %struct.s2n_security_policy, ptr %279, i32 0, i32 4
  store ptr null, ptr %13743, align 8, !tbaa !81
  %13744 = getelementptr inbounds %struct.s2n_security_policy, ptr %279, i32 0, i32 5
  store ptr @s2n_ecc_preferences_20200310, ptr %13744, align 8, !tbaa !82
  %13745 = getelementptr inbounds %struct.s2n_security_policy, ptr %279, i32 0, i32 6
  store ptr null, ptr %13745, align 8, !tbaa !83
  %13746 = getelementptr inbounds %struct.s2n_security_policy, ptr %279, i32 0, i32 7
  store i8 0, ptr %13746, align 8, !tbaa !84
  %13747 = getelementptr inbounds %struct.s2n_security_policy, ptr %279, i32 0, i32 8
  call void @llvm.memset.p0.i64(ptr align 1 %13747, i8 0, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %280) #11
  call void @llvm.memset.p0.i64(ptr align 8 %280, i8 0, i64 40, i1 false)
  %13748 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %280, i32 0, i32 0
  %13749 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %280, i32 0, i32 1
  %13750 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %280, i32 0, i32 2
  %13751 = load i8, ptr getelementptr inbounds (%struct.s2n_kem_preferences, ptr @kem_preferences_all, i32 0, i32 2), align 8, !tbaa !73
  store i8 %13751, ptr %13750, align 8, !tbaa !73
  %13752 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %280, i32 0, i32 3
  %13753 = load ptr, ptr getelementptr inbounds (%struct.s2n_kem_preferences, ptr @kem_preferences_all, i32 0, i32 3), align 8, !tbaa !75
  store ptr %13753, ptr %13752, align 8, !tbaa !75
  %13754 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %280, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 64, ptr %281) #11
  %13755 = getelementptr inbounds %struct.s2n_security_policy, ptr %281, i32 0, i32 0
  store i8 30, ptr %13755, align 8, !tbaa !76
  %13756 = getelementptr inbounds %struct.s2n_security_policy, ptr %281, i32 0, i32 1
  store ptr @cipher_preferences_test_all_tls13, ptr %13756, align 8, !tbaa !78
  %13757 = getelementptr inbounds %struct.s2n_security_policy, ptr %281, i32 0, i32 2
  store ptr %280, ptr %13757, align 8, !tbaa !79
  %13758 = getelementptr inbounds %struct.s2n_security_policy, ptr %281, i32 0, i32 3
  store ptr @s2n_signature_preferences_20200207, ptr %13758, align 8, !tbaa !80
  %13759 = getelementptr inbounds %struct.s2n_security_policy, ptr %281, i32 0, i32 4
  store ptr null, ptr %13759, align 8, !tbaa !81
  %13760 = getelementptr inbounds %struct.s2n_security_policy, ptr %281, i32 0, i32 5
  store ptr @s2n_ecc_preferences_20200310, ptr %13760, align 8, !tbaa !82
  %13761 = getelementptr inbounds %struct.s2n_security_policy, ptr %281, i32 0, i32 6
  store ptr null, ptr %13761, align 8, !tbaa !83
  %13762 = getelementptr inbounds %struct.s2n_security_policy, ptr %281, i32 0, i32 7
  store i8 0, ptr %13762, align 8, !tbaa !84
  %13763 = getelementptr inbounds %struct.s2n_security_policy, ptr %281, i32 0, i32 8
  call void @llvm.memset.p0.i64(ptr align 1 %13763, i8 0, i64 2, i1 false)
  br label %13764

13764:                                            ; preds = %13732
  %13765 = load i32, ptr @test_count, align 4, !tbaa !5
  %13766 = add nsw i32 %13765, 1
  store i32 %13766, ptr @test_count, align 4, !tbaa !5
  %13767 = call i32 (...) @s2n_enable_tls13_in_test()
  %13768 = icmp eq i32 %13767, -1
  br i1 %13768, label %13769, label %13822

13769:                                            ; preds = %13764
  br label %13770

13770:                                            ; preds = %13769
  br label %13771

13771:                                            ; preds = %13770
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #11
  %13772 = call ptr @__errno_location() #12
  %13773 = load i32, ptr %13772, align 4, !tbaa !5
  store i32 %13773, ptr %282, align 4, !tbaa !5
  %13774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13775 = call i32 @s2n_print_stacktrace(ptr noundef %13774)
  %13776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13777 = trunc i8 %13776 to i1
  br i1 %13777, label %13778, label %13800

13778:                                            ; preds = %13771
  %13779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13780 = call i32 @fileno(ptr noundef %13779) #11
  %13781 = call i32 @isatty(i32 noundef %13780) #11
  %13782 = icmp ne i32 %13781, 0
  br i1 %13782, label %13783, label %13800

13783:                                            ; preds = %13778
  %13784 = load i32, ptr %282, align 4, !tbaa !5
  %13785 = call ptr @__errno_location() #12
  store i32 %13784, ptr %13785, align 4, !tbaa !5
  %13786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13787 = load i32, ptr @test_count, align 4, !tbaa !5
  %13788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13789 = load i32, ptr %13788, align 4, !tbaa !5
  %13790 = call ptr @s2n_strerror(i32 noundef %13789, ptr noundef @.str.4)
  %13791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13792 = load i32, ptr %13791, align 4, !tbaa !5
  %13793 = call ptr @s2n_strerror_debug(i32 noundef %13792, ptr noundef @.str.4)
  %13794 = call ptr @__errno_location() #12
  %13795 = load i32, ptr %13794, align 4, !tbaa !5
  %13796 = call ptr @strerror(i32 noundef %13795) #11
  %13797 = call ptr @__errno_location() #12
  %13798 = load i32, ptr %13797, align 4, !tbaa !5
  %13799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13786, ptr noundef @.str.2, i32 noundef %13787, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 555, ptr noundef %13790, ptr noundef %13793, ptr noundef %13796, i32 noundef %13798) #11
  br label %13817

13800:                                            ; preds = %13778, %13771
  %13801 = load i32, ptr %282, align 4, !tbaa !5
  %13802 = call ptr @__errno_location() #12
  store i32 %13801, ptr %13802, align 4, !tbaa !5
  %13803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13804 = load i32, ptr @test_count, align 4, !tbaa !5
  %13805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13806 = load i32, ptr %13805, align 4, !tbaa !5
  %13807 = call ptr @s2n_strerror(i32 noundef %13806, ptr noundef @.str.4)
  %13808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13809 = load i32, ptr %13808, align 4, !tbaa !5
  %13810 = call ptr @s2n_strerror_debug(i32 noundef %13809, ptr noundef @.str.4)
  %13811 = call ptr @__errno_location() #12
  %13812 = load i32, ptr %13811, align 4, !tbaa !5
  %13813 = call ptr @strerror(i32 noundef %13812) #11
  %13814 = call ptr @__errno_location() #12
  %13815 = load i32, ptr %13814, align 4, !tbaa !5
  %13816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13803, ptr noundef @.str.5, i32 noundef %13804, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 555, ptr noundef %13807, ptr noundef %13810, ptr noundef %13813, i32 noundef %13815) #11
  br label %13817

13817:                                            ; preds = %13800, %13783
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #11
  br label %13818

13818:                                            ; preds = %13817
  br label %13819

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

13820:                                            ; No predecessors!
  br label %13821

13821:                                            ; preds = %13820
  br label %13822

13822:                                            ; preds = %13821, %13764
  br label %13823

13823:                                            ; preds = %13822
  br label %13824

13824:                                            ; preds = %13823
  call void @llvm.lifetime.start.p0(i64 8, ptr %283) #11
  %13825 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %13825, ptr %283, align 8, !tbaa !9
  br label %13826

13826:                                            ; preds = %13824
  %13827 = load i32, ptr @test_count, align 4, !tbaa !5
  %13828 = add nsw i32 %13827, 1
  store i32 %13828, ptr @test_count, align 4, !tbaa !5
  %13829 = load ptr, ptr %283, align 8, !tbaa !9
  %13830 = icmp eq ptr %13829, null
  br i1 %13830, label %13831, label %13884

13831:                                            ; preds = %13826
  br label %13832

13832:                                            ; preds = %13831
  br label %13833

13833:                                            ; preds = %13832
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #11
  %13834 = call ptr @__errno_location() #12
  %13835 = load i32, ptr %13834, align 4, !tbaa !5
  store i32 %13835, ptr %284, align 4, !tbaa !5
  %13836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13837 = call i32 @s2n_print_stacktrace(ptr noundef %13836)
  %13838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13839 = trunc i8 %13838 to i1
  br i1 %13839, label %13840, label %13862

13840:                                            ; preds = %13833
  %13841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13842 = call i32 @fileno(ptr noundef %13841) #11
  %13843 = call i32 @isatty(i32 noundef %13842) #11
  %13844 = icmp ne i32 %13843, 0
  br i1 %13844, label %13845, label %13862

13845:                                            ; preds = %13840
  %13846 = load i32, ptr %284, align 4, !tbaa !5
  %13847 = call ptr @__errno_location() #12
  store i32 %13846, ptr %13847, align 4, !tbaa !5
  %13848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13849 = load i32, ptr @test_count, align 4, !tbaa !5
  %13850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13851 = load i32, ptr %13850, align 4, !tbaa !5
  %13852 = call ptr @s2n_strerror(i32 noundef %13851, ptr noundef @.str.4)
  %13853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13854 = load i32, ptr %13853, align 4, !tbaa !5
  %13855 = call ptr @s2n_strerror_debug(i32 noundef %13854, ptr noundef @.str.4)
  %13856 = call ptr @__errno_location() #12
  %13857 = load i32, ptr %13856, align 4, !tbaa !5
  %13858 = call ptr @strerror(i32 noundef %13857) #11
  %13859 = call ptr @__errno_location() #12
  %13860 = load i32, ptr %13859, align 4, !tbaa !5
  %13861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13848, ptr noundef @.str.2, i32 noundef %13849, ptr noundef @.str.123, ptr noundef @.str.1, i32 noundef 562, ptr noundef %13852, ptr noundef %13855, ptr noundef %13858, i32 noundef %13860) #11
  br label %13879

13862:                                            ; preds = %13840, %13833
  %13863 = load i32, ptr %284, align 4, !tbaa !5
  %13864 = call ptr @__errno_location() #12
  store i32 %13863, ptr %13864, align 4, !tbaa !5
  %13865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13866 = load i32, ptr @test_count, align 4, !tbaa !5
  %13867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13868 = load i32, ptr %13867, align 4, !tbaa !5
  %13869 = call ptr @s2n_strerror(i32 noundef %13868, ptr noundef @.str.4)
  %13870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13871 = load i32, ptr %13870, align 4, !tbaa !5
  %13872 = call ptr @s2n_strerror_debug(i32 noundef %13871, ptr noundef @.str.4)
  %13873 = call ptr @__errno_location() #12
  %13874 = load i32, ptr %13873, align 4, !tbaa !5
  %13875 = call ptr @strerror(i32 noundef %13874) #11
  %13876 = call ptr @__errno_location() #12
  %13877 = load i32, ptr %13876, align 4, !tbaa !5
  %13878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13865, ptr noundef @.str.5, i32 noundef %13866, ptr noundef @.str.123, ptr noundef @.str.1, i32 noundef 562, ptr noundef %13869, ptr noundef %13872, ptr noundef %13875, i32 noundef %13877) #11
  br label %13879

13879:                                            ; preds = %13862, %13845
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #11
  br label %13880

13880:                                            ; preds = %13879
  br label %13881

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

13882:                                            ; No predecessors!
  br label %13883

13883:                                            ; preds = %13882
  br label %13884

13884:                                            ; preds = %13883, %13826
  br label %13885

13885:                                            ; preds = %13884
  br label %13886

13886:                                            ; preds = %13885
  %13887 = load ptr, ptr %283, align 8, !tbaa !9
  %13888 = getelementptr inbounds %struct.s2n_connection, ptr %13887, i32 0, i32 2
  store ptr %279, ptr %13888, align 8, !tbaa !15
  %13889 = load ptr, ptr %283, align 8, !tbaa !9
  %13890 = getelementptr inbounds %struct.s2n_connection, ptr %13889, i32 0, i32 52
  %13891 = getelementptr inbounds %struct.s2n_handshake, ptr %13890, i32 0, i32 12
  store i32 2, ptr %13891, align 4, !tbaa !85
  br label %13892

13892:                                            ; preds = %13886
  %13893 = load i32, ptr @test_count, align 4, !tbaa !5
  %13894 = add nsw i32 %13893, 1
  store i32 %13894, ptr @test_count, align 4, !tbaa !5
  %13895 = load ptr, ptr %283, align 8, !tbaa !9
  %13896 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %13895)
  %13897 = icmp eq i32 %13896, -1
  br i1 %13897, label %13898, label %13951

13898:                                            ; preds = %13892
  br label %13899

13899:                                            ; preds = %13898
  br label %13900

13900:                                            ; preds = %13899
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #11
  %13901 = call ptr @__errno_location() #12
  %13902 = load i32, ptr %13901, align 4, !tbaa !5
  store i32 %13902, ptr %285, align 4, !tbaa !5
  %13903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13904 = call i32 @s2n_print_stacktrace(ptr noundef %13903)
  %13905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13906 = trunc i8 %13905 to i1
  br i1 %13906, label %13907, label %13929

13907:                                            ; preds = %13900
  %13908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13909 = call i32 @fileno(ptr noundef %13908) #11
  %13910 = call i32 @isatty(i32 noundef %13909) #11
  %13911 = icmp ne i32 %13910, 0
  br i1 %13911, label %13912, label %13929

13912:                                            ; preds = %13907
  %13913 = load i32, ptr %285, align 4, !tbaa !5
  %13914 = call ptr @__errno_location() #12
  store i32 %13913, ptr %13914, align 4, !tbaa !5
  %13915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13916 = load i32, ptr @test_count, align 4, !tbaa !5
  %13917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13918 = load i32, ptr %13917, align 4, !tbaa !5
  %13919 = call ptr @s2n_strerror(i32 noundef %13918, ptr noundef @.str.4)
  %13920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13921 = load i32, ptr %13920, align 4, !tbaa !5
  %13922 = call ptr @s2n_strerror_debug(i32 noundef %13921, ptr noundef @.str.4)
  %13923 = call ptr @__errno_location() #12
  %13924 = load i32, ptr %13923, align 4, !tbaa !5
  %13925 = call ptr @strerror(i32 noundef %13924) #11
  %13926 = call ptr @__errno_location() #12
  %13927 = load i32, ptr %13926, align 4, !tbaa !5
  %13928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13915, ptr noundef @.str.2, i32 noundef %13916, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 569, ptr noundef %13919, ptr noundef %13922, ptr noundef %13925, i32 noundef %13927) #11
  br label %13946

13929:                                            ; preds = %13907, %13900
  %13930 = load i32, ptr %285, align 4, !tbaa !5
  %13931 = call ptr @__errno_location() #12
  store i32 %13930, ptr %13931, align 4, !tbaa !5
  %13932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13933 = load i32, ptr @test_count, align 4, !tbaa !5
  %13934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13935 = load i32, ptr %13934, align 4, !tbaa !5
  %13936 = call ptr @s2n_strerror(i32 noundef %13935, ptr noundef @.str.4)
  %13937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13938 = load i32, ptr %13937, align 4, !tbaa !5
  %13939 = call ptr @s2n_strerror_debug(i32 noundef %13938, ptr noundef @.str.4)
  %13940 = call ptr @__errno_location() #12
  %13941 = load i32, ptr %13940, align 4, !tbaa !5
  %13942 = call ptr @strerror(i32 noundef %13941) #11
  %13943 = call ptr @__errno_location() #12
  %13944 = load i32, ptr %13943, align 4, !tbaa !5
  %13945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13932, ptr noundef @.str.5, i32 noundef %13933, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 569, ptr noundef %13936, ptr noundef %13939, ptr noundef %13942, i32 noundef %13944) #11
  br label %13946

13946:                                            ; preds = %13929, %13912
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #11
  br label %13947

13947:                                            ; preds = %13946
  br label %13948

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

13949:                                            ; No predecessors!
  br label %13950

13950:                                            ; preds = %13949
  br label %13951

13951:                                            ; preds = %13950, %13892
  br label %13952

13952:                                            ; preds = %13951
  br label %13953

13953:                                            ; preds = %13952
  br label %13954

13954:                                            ; preds = %13953
  %13955 = load i32, ptr @test_count, align 4, !tbaa !5
  %13956 = add nsw i32 %13955, 1
  store i32 %13956, ptr @test_count, align 4, !tbaa !5
  %13957 = load ptr, ptr %283, align 8, !tbaa !9
  %13958 = call zeroext i1 @s2n_is_hello_retry_message(ptr noundef %13957)
  br i1 %13958, label %14012, label %13959

13959:                                            ; preds = %13954
  br label %13960

13960:                                            ; preds = %13959
  br label %13961

13961:                                            ; preds = %13960
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #11
  %13962 = call ptr @__errno_location() #12
  %13963 = load i32, ptr %13962, align 4, !tbaa !5
  store i32 %13963, ptr %286, align 4, !tbaa !5
  %13964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13965 = call i32 @s2n_print_stacktrace(ptr noundef %13964)
  %13966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13967 = trunc i8 %13966 to i1
  br i1 %13967, label %13968, label %13990

13968:                                            ; preds = %13961
  %13969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13970 = call i32 @fileno(ptr noundef %13969) #11
  %13971 = call i32 @isatty(i32 noundef %13970) #11
  %13972 = icmp ne i32 %13971, 0
  br i1 %13972, label %13973, label %13990

13973:                                            ; preds = %13968
  %13974 = load i32, ptr %286, align 4, !tbaa !5
  %13975 = call ptr @__errno_location() #12
  store i32 %13974, ptr %13975, align 4, !tbaa !5
  %13976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13977 = load i32, ptr @test_count, align 4, !tbaa !5
  %13978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13979 = load i32, ptr %13978, align 4, !tbaa !5
  %13980 = call ptr @s2n_strerror(i32 noundef %13979, ptr noundef @.str.4)
  %13981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13982 = load i32, ptr %13981, align 4, !tbaa !5
  %13983 = call ptr @s2n_strerror_debug(i32 noundef %13982, ptr noundef @.str.4)
  %13984 = call ptr @__errno_location() #12
  %13985 = load i32, ptr %13984, align 4, !tbaa !5
  %13986 = call ptr @strerror(i32 noundef %13985) #11
  %13987 = call ptr @__errno_location() #12
  %13988 = load i32, ptr %13987, align 4, !tbaa !5
  %13989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13976, ptr noundef @.str.2, i32 noundef %13977, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 570, ptr noundef %13980, ptr noundef %13983, ptr noundef %13986, i32 noundef %13988) #11
  br label %14007

13990:                                            ; preds = %13968, %13961
  %13991 = load i32, ptr %286, align 4, !tbaa !5
  %13992 = call ptr @__errno_location() #12
  store i32 %13991, ptr %13992, align 4, !tbaa !5
  %13993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13994 = load i32, ptr @test_count, align 4, !tbaa !5
  %13995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13996 = load i32, ptr %13995, align 4, !tbaa !5
  %13997 = call ptr @s2n_strerror(i32 noundef %13996, ptr noundef @.str.4)
  %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_debug(i32 noundef %13999, ptr noundef @.str.4)
  %14001 = call ptr @__errno_location() #12
  %14002 = load i32, ptr %14001, align 4, !tbaa !5
  %14003 = call ptr @strerror(i32 noundef %14002) #11
  %14004 = call ptr @__errno_location() #12
  %14005 = load i32, ptr %14004, align 4, !tbaa !5
  %14006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13993, ptr noundef @.str.5, i32 noundef %13994, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 570, ptr noundef %13997, ptr noundef %14000, ptr noundef %14003, i32 noundef %14005) #11
  br label %14007

14007:                                            ; preds = %13990, %13973
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #11
  br label %14008

14008:                                            ; preds = %14007
  br label %14009

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

14010:                                            ; No predecessors!
  br label %14011

14011:                                            ; preds = %14010
  br label %14012

14012:                                            ; preds = %14011, %13954
  br label %14013

14013:                                            ; preds = %14012
  br label %14014

14014:                                            ; preds = %14013
  call void @llvm.lifetime.start.p0(i64 2, ptr %287) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %288) #11
  call void @llvm.memset.p0.i64(ptr align 8 %288, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %289) #11
  call void @llvm.memset.p0.i64(ptr align 8 %289, i8 0, i64 40, i1 false)
  br label %14015

14015:                                            ; preds = %14014
  %14016 = load i32, ptr @test_count, align 4, !tbaa !5
  %14017 = add nsw i32 %14016, 1
  store i32 %14017, ptr @test_count, align 4, !tbaa !5
  %14018 = getelementptr inbounds [2 x i8], ptr %287, i64 0, i64 0
  %14019 = call i32 @s2n_blob_init(ptr noundef %288, ptr noundef %14018, i32 noundef 2)
  %14020 = icmp eq i32 %14019, -1
  br i1 %14020, label %14021, label %14074

14021:                                            ; preds = %14015
  br label %14022

14022:                                            ; preds = %14021
  br label %14023

14023:                                            ; preds = %14022
  call void @llvm.lifetime.start.p0(i64 4, ptr %290) #11
  %14024 = call ptr @__errno_location() #12
  %14025 = load i32, ptr %14024, align 4, !tbaa !5
  store i32 %14025, ptr %290, align 4, !tbaa !5
  %14026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14027 = call i32 @s2n_print_stacktrace(ptr noundef %14026)
  %14028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14029 = trunc i8 %14028 to i1
  br i1 %14029, label %14030, label %14052

14030:                                            ; preds = %14023
  %14031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14032 = call i32 @fileno(ptr noundef %14031) #11
  %14033 = call i32 @isatty(i32 noundef %14032) #11
  %14034 = icmp ne i32 %14033, 0
  br i1 %14034, label %14035, label %14052

14035:                                            ; preds = %14030
  %14036 = load i32, ptr %290, align 4, !tbaa !5
  %14037 = call ptr @__errno_location() #12
  store i32 %14036, ptr %14037, align 4, !tbaa !5
  %14038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14039 = load i32, ptr @test_count, align 4, !tbaa !5
  %14040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14041 = load i32, ptr %14040, align 4, !tbaa !5
  %14042 = call ptr @s2n_strerror(i32 noundef %14041, ptr noundef @.str.4)
  %14043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14044 = load i32, ptr %14043, align 4, !tbaa !5
  %14045 = call ptr @s2n_strerror_debug(i32 noundef %14044, ptr noundef @.str.4)
  %14046 = call ptr @__errno_location() #12
  %14047 = load i32, ptr %14046, align 4, !tbaa !5
  %14048 = call ptr @strerror(i32 noundef %14047) #11
  %14049 = call ptr @__errno_location() #12
  %14050 = load i32, ptr %14049, align 4, !tbaa !5
  %14051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14038, ptr noundef @.str.2, i32 noundef %14039, ptr noundef @.str.125, ptr noundef @.str.1, i32 noundef 575, ptr noundef %14042, ptr noundef %14045, ptr noundef %14048, i32 noundef %14050) #11
  br label %14069

14052:                                            ; preds = %14030, %14023
  %14053 = load i32, ptr %290, align 4, !tbaa !5
  %14054 = call ptr @__errno_location() #12
  store i32 %14053, ptr %14054, align 4, !tbaa !5
  %14055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14056 = load i32, ptr @test_count, align 4, !tbaa !5
  %14057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14058 = load i32, ptr %14057, align 4, !tbaa !5
  %14059 = call ptr @s2n_strerror(i32 noundef %14058, ptr noundef @.str.4)
  %14060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14061 = load i32, ptr %14060, align 4, !tbaa !5
  %14062 = call ptr @s2n_strerror_debug(i32 noundef %14061, ptr noundef @.str.4)
  %14063 = call ptr @__errno_location() #12
  %14064 = load i32, ptr %14063, align 4, !tbaa !5
  %14065 = call ptr @strerror(i32 noundef %14064) #11
  %14066 = call ptr @__errno_location() #12
  %14067 = load i32, ptr %14066, align 4, !tbaa !5
  %14068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14055, ptr noundef @.str.5, i32 noundef %14056, ptr noundef @.str.125, ptr noundef @.str.1, i32 noundef 575, ptr noundef %14059, ptr noundef %14062, ptr noundef %14065, i32 noundef %14067) #11
  br label %14069

14069:                                            ; preds = %14052, %14035
  call void @llvm.lifetime.end.p0(i64 4, ptr %290) #11
  br label %14070

14070:                                            ; preds = %14069
  br label %14071

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

14072:                                            ; No predecessors!
  br label %14073

14073:                                            ; preds = %14072
  br label %14074

14074:                                            ; preds = %14073, %14015
  br label %14075

14075:                                            ; preds = %14074
  br label %14076

14076:                                            ; preds = %14075
  br label %14077

14077:                                            ; preds = %14076
  %14078 = load i32, ptr @test_count, align 4, !tbaa !5
  %14079 = add nsw i32 %14078, 1
  store i32 %14079, ptr @test_count, align 4, !tbaa !5
  %14080 = call i32 @s2n_stuffer_init(ptr noundef %289, ptr noundef %288)
  %14081 = icmp eq i32 %14080, -1
  br i1 %14081, label %14082, label %14135

14082:                                            ; preds = %14077
  br label %14083

14083:                                            ; preds = %14082
  br label %14084

14084:                                            ; preds = %14083
  call void @llvm.lifetime.start.p0(i64 4, ptr %291) #11
  %14085 = call ptr @__errno_location() #12
  %14086 = load i32, ptr %14085, align 4, !tbaa !5
  store i32 %14086, ptr %291, align 4, !tbaa !5
  %14087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14088 = call i32 @s2n_print_stacktrace(ptr noundef %14087)
  %14089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14090 = trunc i8 %14089 to i1
  br i1 %14090, label %14091, label %14113

14091:                                            ; preds = %14084
  %14092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14093 = call i32 @fileno(ptr noundef %14092) #11
  %14094 = call i32 @isatty(i32 noundef %14093) #11
  %14095 = icmp ne i32 %14094, 0
  br i1 %14095, label %14096, label %14113

14096:                                            ; preds = %14091
  %14097 = load i32, ptr %291, align 4, !tbaa !5
  %14098 = call ptr @__errno_location() #12
  store i32 %14097, ptr %14098, align 4, !tbaa !5
  %14099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14100 = load i32, ptr @test_count, align 4, !tbaa !5
  %14101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14102 = load i32, ptr %14101, align 4, !tbaa !5
  %14103 = call ptr @s2n_strerror(i32 noundef %14102, ptr noundef @.str.4)
  %14104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14105 = load i32, ptr %14104, align 4, !tbaa !5
  %14106 = call ptr @s2n_strerror_debug(i32 noundef %14105, ptr noundef @.str.4)
  %14107 = call ptr @__errno_location() #12
  %14108 = load i32, ptr %14107, align 4, !tbaa !5
  %14109 = call ptr @strerror(i32 noundef %14108) #11
  %14110 = call ptr @__errno_location() #12
  %14111 = load i32, ptr %14110, align 4, !tbaa !5
  %14112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14099, ptr noundef @.str.2, i32 noundef %14100, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 576, ptr noundef %14103, ptr noundef %14106, ptr noundef %14109, i32 noundef %14111) #11
  br label %14130

14113:                                            ; preds = %14091, %14084
  %14114 = load i32, ptr %291, align 4, !tbaa !5
  %14115 = call ptr @__errno_location() #12
  store i32 %14114, ptr %14115, align 4, !tbaa !5
  %14116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14117 = load i32, ptr @test_count, align 4, !tbaa !5
  %14118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14119 = load i32, ptr %14118, align 4, !tbaa !5
  %14120 = call ptr @s2n_strerror(i32 noundef %14119, ptr noundef @.str.4)
  %14121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14122 = load i32, ptr %14121, align 4, !tbaa !5
  %14123 = call ptr @s2n_strerror_debug(i32 noundef %14122, ptr noundef @.str.4)
  %14124 = call ptr @__errno_location() #12
  %14125 = load i32, ptr %14124, align 4, !tbaa !5
  %14126 = call ptr @strerror(i32 noundef %14125) #11
  %14127 = call ptr @__errno_location() #12
  %14128 = load i32, ptr %14127, align 4, !tbaa !5
  %14129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14116, ptr noundef @.str.5, i32 noundef %14117, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 576, ptr noundef %14120, ptr noundef %14123, ptr noundef %14126, i32 noundef %14128) #11
  br label %14130

14130:                                            ; preds = %14113, %14096
  call void @llvm.lifetime.end.p0(i64 4, ptr %291) #11
  br label %14131

14131:                                            ; preds = %14130
  br label %14132

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

14133:                                            ; No predecessors!
  br label %14134

14134:                                            ; preds = %14133
  br label %14135

14135:                                            ; preds = %14134, %14077
  br label %14136

14136:                                            ; preds = %14135
  br label %14137

14137:                                            ; preds = %14136
  br label %14138

14138:                                            ; preds = %14137
  %14139 = load i32, ptr @test_count, align 4, !tbaa !5
  %14140 = add nsw i32 %14139, 1
  store i32 %14140, ptr @test_count, align 4, !tbaa !5
  %14141 = getelementptr inbounds %struct.s2n_security_policy, ptr %279, i32 0, i32 2
  %14142 = load ptr, ptr %14141, align 8, !tbaa !79
  %14143 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14142, i32 0, i32 3
  %14144 = load ptr, ptr %14143, align 8, !tbaa !75
  %14145 = getelementptr inbounds ptr, ptr %14144, i64 0
  %14146 = load ptr, ptr %14145, align 8, !tbaa !9
  %14147 = getelementptr inbounds %struct.s2n_kem_group, ptr %14146, i32 0, i32 1
  %14148 = load i16, ptr %14147, align 8, !tbaa !86
  %14149 = call i32 @s2n_stuffer_write_uint16(ptr noundef %289, i16 noundef zeroext %14148)
  %14150 = icmp eq i32 %14149, -1
  br i1 %14150, label %14151, label %14204

14151:                                            ; preds = %14138
  br label %14152

14152:                                            ; preds = %14151
  br label %14153

14153:                                            ; preds = %14152
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #11
  %14154 = call ptr @__errno_location() #12
  %14155 = load i32, ptr %14154, align 4, !tbaa !5
  store i32 %14155, ptr %292, align 4, !tbaa !5
  %14156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14157 = call i32 @s2n_print_stacktrace(ptr noundef %14156)
  %14158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14159 = trunc i8 %14158 to i1
  br i1 %14159, label %14160, label %14182

14160:                                            ; preds = %14153
  %14161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14162 = call i32 @fileno(ptr noundef %14161) #11
  %14163 = call i32 @isatty(i32 noundef %14162) #11
  %14164 = icmp ne i32 %14163, 0
  br i1 %14164, label %14165, label %14182

14165:                                            ; preds = %14160
  %14166 = load i32, ptr %292, align 4, !tbaa !5
  %14167 = call ptr @__errno_location() #12
  store i32 %14166, ptr %14167, align 4, !tbaa !5
  %14168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14169 = load i32, ptr @test_count, align 4, !tbaa !5
  %14170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14171 = load i32, ptr %14170, align 4, !tbaa !5
  %14172 = call ptr @s2n_strerror(i32 noundef %14171, ptr noundef @.str.4)
  %14173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14174 = load i32, ptr %14173, align 4, !tbaa !5
  %14175 = call ptr @s2n_strerror_debug(i32 noundef %14174, ptr noundef @.str.4)
  %14176 = call ptr @__errno_location() #12
  %14177 = load i32, ptr %14176, align 4, !tbaa !5
  %14178 = call ptr @strerror(i32 noundef %14177) #11
  %14179 = call ptr @__errno_location() #12
  %14180 = load i32, ptr %14179, align 4, !tbaa !5
  %14181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14168, ptr noundef @.str.2, i32 noundef %14169, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 577, ptr noundef %14172, ptr noundef %14175, ptr noundef %14178, i32 noundef %14180) #11
  br label %14199

14182:                                            ; preds = %14160, %14153
  %14183 = load i32, ptr %292, align 4, !tbaa !5
  %14184 = call ptr @__errno_location() #12
  store i32 %14183, ptr %14184, align 4, !tbaa !5
  %14185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14186 = load i32, ptr @test_count, align 4, !tbaa !5
  %14187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14188 = load i32, ptr %14187, align 4, !tbaa !5
  %14189 = call ptr @s2n_strerror(i32 noundef %14188, ptr noundef @.str.4)
  %14190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14191 = load i32, ptr %14190, align 4, !tbaa !5
  %14192 = call ptr @s2n_strerror_debug(i32 noundef %14191, ptr noundef @.str.4)
  %14193 = call ptr @__errno_location() #12
  %14194 = load i32, ptr %14193, align 4, !tbaa !5
  %14195 = call ptr @strerror(i32 noundef %14194) #11
  %14196 = call ptr @__errno_location() #12
  %14197 = load i32, ptr %14196, align 4, !tbaa !5
  %14198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14185, ptr noundef @.str.5, i32 noundef %14186, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 577, ptr noundef %14189, ptr noundef %14192, ptr noundef %14195, i32 noundef %14197) #11
  br label %14199

14199:                                            ; preds = %14182, %14165
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #11
  br label %14200

14200:                                            ; preds = %14199
  br label %14201

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

14202:                                            ; No predecessors!
  br label %14203

14203:                                            ; preds = %14202
  br label %14204

14204:                                            ; preds = %14203, %14138
  br label %14205

14205:                                            ; preds = %14204
  br label %14206

14206:                                            ; preds = %14205
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #11
  %14207 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %14208 = load ptr, ptr %283, align 8, !tbaa !9
  %14209 = call i32 %14207(ptr noundef %14208, ptr noundef %289)
  store i32 %14209, ptr %293, align 4, !tbaa !5
  %14210 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %14210, label %14211, label %14273

14211:                                            ; preds = %14206
  br label %14212

14212:                                            ; preds = %14211
  %14213 = load i32, ptr @test_count, align 4, !tbaa !5
  %14214 = add nsw i32 %14213, 1
  store i32 %14214, ptr @test_count, align 4, !tbaa !5
  %14215 = load i32, ptr %293, align 4, !tbaa !5
  %14216 = icmp eq i32 %14215, -1
  br i1 %14216, label %14217, label %14270

14217:                                            ; preds = %14212
  br label %14218

14218:                                            ; preds = %14217
  br label %14219

14219:                                            ; preds = %14218
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #11
  %14220 = call ptr @__errno_location() #12
  %14221 = load i32, ptr %14220, align 4, !tbaa !5
  store i32 %14221, ptr %294, align 4, !tbaa !5
  %14222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14223 = call i32 @s2n_print_stacktrace(ptr noundef %14222)
  %14224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14225 = trunc i8 %14224 to i1
  br i1 %14225, label %14226, label %14248

14226:                                            ; preds = %14219
  %14227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14228 = call i32 @fileno(ptr noundef %14227) #11
  %14229 = call i32 @isatty(i32 noundef %14228) #11
  %14230 = icmp ne i32 %14229, 0
  br i1 %14230, label %14231, label %14248

14231:                                            ; preds = %14226
  %14232 = load i32, ptr %294, align 4, !tbaa !5
  %14233 = call ptr @__errno_location() #12
  store i32 %14232, ptr %14233, align 4, !tbaa !5
  %14234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14235 = load i32, ptr @test_count, align 4, !tbaa !5
  %14236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14237 = load i32, ptr %14236, align 4, !tbaa !5
  %14238 = call ptr @s2n_strerror(i32 noundef %14237, ptr noundef @.str.4)
  %14239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14240 = load i32, ptr %14239, align 4, !tbaa !5
  %14241 = call ptr @s2n_strerror_debug(i32 noundef %14240, ptr noundef @.str.4)
  %14242 = call ptr @__errno_location() #12
  %14243 = load i32, ptr %14242, align 4, !tbaa !5
  %14244 = call ptr @strerror(i32 noundef %14243) #11
  %14245 = call ptr @__errno_location() #12
  %14246 = load i32, ptr %14245, align 4, !tbaa !5
  %14247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14234, ptr noundef @.str.2, i32 noundef %14235, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 581, ptr noundef %14238, ptr noundef %14241, ptr noundef %14244, i32 noundef %14246) #11
  br label %14265

14248:                                            ; preds = %14226, %14219
  %14249 = load i32, ptr %294, align 4, !tbaa !5
  %14250 = call ptr @__errno_location() #12
  store i32 %14249, ptr %14250, align 4, !tbaa !5
  %14251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14252 = load i32, ptr @test_count, align 4, !tbaa !5
  %14253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14254 = load i32, ptr %14253, align 4, !tbaa !5
  %14255 = call ptr @s2n_strerror(i32 noundef %14254, ptr noundef @.str.4)
  %14256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14257 = load i32, ptr %14256, align 4, !tbaa !5
  %14258 = call ptr @s2n_strerror_debug(i32 noundef %14257, ptr noundef @.str.4)
  %14259 = call ptr @__errno_location() #12
  %14260 = load i32, ptr %14259, align 4, !tbaa !5
  %14261 = call ptr @strerror(i32 noundef %14260) #11
  %14262 = call ptr @__errno_location() #12
  %14263 = load i32, ptr %14262, align 4, !tbaa !5
  %14264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14251, ptr noundef @.str.5, i32 noundef %14252, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 581, ptr noundef %14255, ptr noundef %14258, ptr noundef %14261, i32 noundef %14263) #11
  br label %14265

14265:                                            ; preds = %14248, %14231
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #11
  br label %14266

14266:                                            ; preds = %14265
  br label %14267

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

14268:                                            ; No predecessors!
  br label %14269

14269:                                            ; preds = %14268
  br label %14270

14270:                                            ; preds = %14269, %14212
  br label %14271

14271:                                            ; preds = %14270
  br label %14272

14272:                                            ; preds = %14271
  br label %14471

14273:                                            ; preds = %14206
  br label %14274

14274:                                            ; preds = %14273
  br label %14275

14275:                                            ; preds = %14274
  br label %14276

14276:                                            ; preds = %14275
  %14277 = load i32, ptr @test_count, align 4, !tbaa !5
  %14278 = add nsw i32 %14277, 1
  store i32 %14278, ptr @test_count, align 4, !tbaa !5
  %14279 = load i32, ptr %293, align 4, !tbaa !5
  %14280 = icmp eq i32 %14279, -1
  br i1 %14280, label %14334, label %14281

14281:                                            ; preds = %14276
  br label %14282

14282:                                            ; preds = %14281
  br label %14283

14283:                                            ; preds = %14282
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #11
  %14284 = call ptr @__errno_location() #12
  %14285 = load i32, ptr %14284, align 4, !tbaa !5
  store i32 %14285, ptr %295, align 4, !tbaa !5
  %14286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14287 = call i32 @s2n_print_stacktrace(ptr noundef %14286)
  %14288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14289 = trunc i8 %14288 to i1
  br i1 %14289, label %14290, label %14312

14290:                                            ; preds = %14283
  %14291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14292 = call i32 @fileno(ptr noundef %14291) #11
  %14293 = call i32 @isatty(i32 noundef %14292) #11
  %14294 = icmp ne i32 %14293, 0
  br i1 %14294, label %14295, label %14312

14295:                                            ; preds = %14290
  %14296 = load i32, ptr %295, align 4, !tbaa !5
  %14297 = call ptr @__errno_location() #12
  store i32 %14296, ptr %14297, align 4, !tbaa !5
  %14298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14299 = load i32, ptr @test_count, align 4, !tbaa !5
  %14300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14301 = load i32, ptr %14300, align 4, !tbaa !5
  %14302 = call ptr @s2n_strerror(i32 noundef %14301, ptr noundef @.str.4)
  %14303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14304 = load i32, ptr %14303, align 4, !tbaa !5
  %14305 = call ptr @s2n_strerror_debug(i32 noundef %14304, ptr noundef @.str.4)
  %14306 = call ptr @__errno_location() #12
  %14307 = load i32, ptr %14306, align 4, !tbaa !5
  %14308 = call ptr @strerror(i32 noundef %14307) #11
  %14309 = call ptr @__errno_location() #12
  %14310 = load i32, ptr %14309, align 4, !tbaa !5
  %14311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14298, ptr noundef @.str.2, i32 noundef %14299, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 583, ptr noundef %14302, ptr noundef %14305, ptr noundef %14308, i32 noundef %14310) #11
  br label %14329

14312:                                            ; preds = %14290, %14283
  %14313 = load i32, ptr %295, align 4, !tbaa !5
  %14314 = call ptr @__errno_location() #12
  store i32 %14313, ptr %14314, align 4, !tbaa !5
  %14315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14316 = load i32, ptr @test_count, align 4, !tbaa !5
  %14317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14318 = load i32, ptr %14317, align 4, !tbaa !5
  %14319 = call ptr @s2n_strerror(i32 noundef %14318, ptr noundef @.str.4)
  %14320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14321 = load i32, ptr %14320, align 4, !tbaa !5
  %14322 = call ptr @s2n_strerror_debug(i32 noundef %14321, ptr noundef @.str.4)
  %14323 = call ptr @__errno_location() #12
  %14324 = load i32, ptr %14323, align 4, !tbaa !5
  %14325 = call ptr @strerror(i32 noundef %14324) #11
  %14326 = call ptr @__errno_location() #12
  %14327 = load i32, ptr %14326, align 4, !tbaa !5
  %14328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14315, ptr noundef @.str.5, i32 noundef %14316, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 583, ptr noundef %14319, ptr noundef %14322, ptr noundef %14325, i32 noundef %14327) #11
  br label %14329

14329:                                            ; preds = %14312, %14295
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #11
  br label %14330

14330:                                            ; preds = %14329
  br label %14331

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

14332:                                            ; No predecessors!
  br label %14333

14333:                                            ; preds = %14332
  br label %14334

14334:                                            ; preds = %14333, %14276
  br label %14335

14335:                                            ; preds = %14334
  br label %14336

14336:                                            ; preds = %14335
  br label %14337

14337:                                            ; preds = %14336
  %14338 = load i32, ptr @test_count, align 4, !tbaa !5
  %14339 = add nsw i32 %14338, 1
  store i32 %14339, ptr @test_count, align 4, !tbaa !5
  %14340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14341 = load i32, ptr %14340, align 4, !tbaa !5
  %14342 = icmp eq i32 %14341, 335544356
  br i1 %14342, label %14396, label %14343

14343:                                            ; preds = %14337
  br label %14344

14344:                                            ; preds = %14343
  br label %14345

14345:                                            ; preds = %14344
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #11
  %14346 = call ptr @__errno_location() #12
  %14347 = load i32, ptr %14346, align 4, !tbaa !5
  store i32 %14347, ptr %296, align 4, !tbaa !5
  %14348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14349 = call i32 @s2n_print_stacktrace(ptr noundef %14348)
  %14350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14351 = trunc i8 %14350 to i1
  br i1 %14351, label %14352, label %14374

14352:                                            ; preds = %14345
  %14353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14354 = call i32 @fileno(ptr noundef %14353) #11
  %14355 = call i32 @isatty(i32 noundef %14354) #11
  %14356 = icmp ne i32 %14355, 0
  br i1 %14356, label %14357, label %14374

14357:                                            ; preds = %14352
  %14358 = load i32, ptr %296, align 4, !tbaa !5
  %14359 = call ptr @__errno_location() #12
  store i32 %14358, ptr %14359, align 4, !tbaa !5
  %14360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14361 = load i32, ptr @test_count, align 4, !tbaa !5
  %14362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14363 = load i32, ptr %14362, align 4, !tbaa !5
  %14364 = call ptr @s2n_strerror(i32 noundef %14363, ptr noundef @.str.4)
  %14365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14366 = load i32, ptr %14365, align 4, !tbaa !5
  %14367 = call ptr @s2n_strerror_debug(i32 noundef %14366, ptr noundef @.str.4)
  %14368 = call ptr @__errno_location() #12
  %14369 = load i32, ptr %14368, align 4, !tbaa !5
  %14370 = call ptr @strerror(i32 noundef %14369) #11
  %14371 = call ptr @__errno_location() #12
  %14372 = load i32, ptr %14371, align 4, !tbaa !5
  %14373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14360, ptr noundef @.str.2, i32 noundef %14361, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 583, ptr noundef %14364, ptr noundef %14367, ptr noundef %14370, i32 noundef %14372) #11
  br label %14391

14374:                                            ; preds = %14352, %14345
  %14375 = load i32, ptr %296, align 4, !tbaa !5
  %14376 = call ptr @__errno_location() #12
  store i32 %14375, ptr %14376, align 4, !tbaa !5
  %14377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14378 = load i32, ptr @test_count, align 4, !tbaa !5
  %14379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14380 = load i32, ptr %14379, align 4, !tbaa !5
  %14381 = call ptr @s2n_strerror(i32 noundef %14380, ptr noundef @.str.4)
  %14382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14383 = load i32, ptr %14382, align 4, !tbaa !5
  %14384 = call ptr @s2n_strerror_debug(i32 noundef %14383, ptr noundef @.str.4)
  %14385 = call ptr @__errno_location() #12
  %14386 = load i32, ptr %14385, align 4, !tbaa !5
  %14387 = call ptr @strerror(i32 noundef %14386) #11
  %14388 = call ptr @__errno_location() #12
  %14389 = load i32, ptr %14388, align 4, !tbaa !5
  %14390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14377, ptr noundef @.str.5, i32 noundef %14378, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 583, ptr noundef %14381, ptr noundef %14384, ptr noundef %14387, i32 noundef %14389) #11
  br label %14391

14391:                                            ; preds = %14374, %14357
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #11
  br label %14392

14392:                                            ; preds = %14391
  br label %14393

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

14394:                                            ; No predecessors!
  br label %14395

14395:                                            ; preds = %14394
  br label %14396

14396:                                            ; preds = %14395, %14337
  br label %14397

14397:                                            ; preds = %14396
  br label %14398

14398:                                            ; preds = %14397
  br label %14399

14399:                                            ; preds = %14398
  %14400 = load i32, ptr @test_count, align 4, !tbaa !5
  %14401 = add nsw i32 %14400, 1
  store i32 %14401, ptr @test_count, align 4, !tbaa !5
  %14402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14403 = load i32, ptr %14402, align 4, !tbaa !5
  %14404 = call ptr @s2n_strerror_debug(i32 noundef %14403, ptr noundef @.str.4)
  %14405 = icmp eq ptr %14404, null
  br i1 %14405, label %14406, label %14459

14406:                                            ; preds = %14399
  br label %14407

14407:                                            ; preds = %14406
  br label %14408

14408:                                            ; preds = %14407
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #11
  %14409 = call ptr @__errno_location() #12
  %14410 = load i32, ptr %14409, align 4, !tbaa !5
  store i32 %14410, ptr %297, align 4, !tbaa !5
  %14411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14412 = call i32 @s2n_print_stacktrace(ptr noundef %14411)
  %14413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14414 = trunc i8 %14413 to i1
  br i1 %14414, label %14415, label %14437

14415:                                            ; preds = %14408
  %14416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14417 = call i32 @fileno(ptr noundef %14416) #11
  %14418 = call i32 @isatty(i32 noundef %14417) #11
  %14419 = icmp ne i32 %14418, 0
  br i1 %14419, label %14420, label %14437

14420:                                            ; preds = %14415
  %14421 = load i32, ptr %297, align 4, !tbaa !5
  %14422 = call ptr @__errno_location() #12
  store i32 %14421, ptr %14422, align 4, !tbaa !5
  %14423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14424 = load i32, ptr @test_count, align 4, !tbaa !5
  %14425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14426 = load i32, ptr %14425, align 4, !tbaa !5
  %14427 = call ptr @s2n_strerror(i32 noundef %14426, ptr noundef @.str.4)
  %14428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14429 = load i32, ptr %14428, align 4, !tbaa !5
  %14430 = call ptr @s2n_strerror_debug(i32 noundef %14429, ptr noundef @.str.4)
  %14431 = call ptr @__errno_location() #12
  %14432 = load i32, ptr %14431, align 4, !tbaa !5
  %14433 = call ptr @strerror(i32 noundef %14432) #11
  %14434 = call ptr @__errno_location() #12
  %14435 = load i32, ptr %14434, align 4, !tbaa !5
  %14436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14423, ptr noundef @.str.2, i32 noundef %14424, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 583, ptr noundef %14427, ptr noundef %14430, ptr noundef %14433, i32 noundef %14435) #11
  br label %14454

14437:                                            ; preds = %14415, %14408
  %14438 = load i32, ptr %297, align 4, !tbaa !5
  %14439 = call ptr @__errno_location() #12
  store i32 %14438, ptr %14439, align 4, !tbaa !5
  %14440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14441 = load i32, ptr @test_count, align 4, !tbaa !5
  %14442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14443 = load i32, ptr %14442, align 4, !tbaa !5
  %14444 = call ptr @s2n_strerror(i32 noundef %14443, ptr noundef @.str.4)
  %14445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14446 = load i32, ptr %14445, align 4, !tbaa !5
  %14447 = call ptr @s2n_strerror_debug(i32 noundef %14446, ptr noundef @.str.4)
  %14448 = call ptr @__errno_location() #12
  %14449 = load i32, ptr %14448, align 4, !tbaa !5
  %14450 = call ptr @strerror(i32 noundef %14449) #11
  %14451 = call ptr @__errno_location() #12
  %14452 = load i32, ptr %14451, align 4, !tbaa !5
  %14453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14440, ptr noundef @.str.5, i32 noundef %14441, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 583, ptr noundef %14444, ptr noundef %14447, ptr noundef %14450, i32 noundef %14452) #11
  br label %14454

14454:                                            ; preds = %14437, %14420
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #11
  br label %14455

14455:                                            ; preds = %14454
  br label %14456

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

14457:                                            ; No predecessors!
  br label %14458

14458:                                            ; preds = %14457
  br label %14459

14459:                                            ; preds = %14458, %14399
  br label %14460

14460:                                            ; preds = %14459
  br label %14461

14461:                                            ; preds = %14460
  br label %14462

14462:                                            ; preds = %14461
  br label %14463

14463:                                            ; preds = %14462
  br label %14464

14464:                                            ; preds = %14463
  %14465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14465, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14466 = call ptr @__errno_location() #12
  store i32 0, ptr %14466, align 4, !tbaa !5
  br label %14467

14467:                                            ; preds = %14464
  br label %14468

14468:                                            ; preds = %14467
  br label %14469

14469:                                            ; preds = %14468
  br label %14470

14470:                                            ; preds = %14469
  br label %14471

14471:                                            ; preds = %14470, %14272
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %289) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %288) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %287) #11
  %14472 = call i32 @s2n_connection_ptr_free(ptr noundef %283)
  %14473 = getelementptr inbounds %struct.s2n_result, ptr %298, i32 0, i32 0
  store i32 %14472, ptr %14473, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #11
  %14474 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %14474, label %14475, label %19634

14475:                                            ; preds = %14471
  call void @llvm.lifetime.start.p0(i64 8, ptr %299) #11
  store i64 0, ptr %299, align 8, !tbaa !49
  br label %14476

14476:                                            ; preds = %16059, %14475
  %14477 = load i64, ptr %299, align 8, !tbaa !49
  %14478 = icmp ult i64 %14477, 2
  br i1 %14478, label %14480, label %14479

14479:                                            ; preds = %14476
  store i32 1373, ptr %300, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %299) #11
  br label %16062

14480:                                            ; preds = %14476
  call void @llvm.lifetime.start.p0(i64 8, ptr %301) #11
  %14481 = load i64, ptr %299, align 8, !tbaa !49
  %14482 = getelementptr inbounds [2 x ptr], ptr %277, i64 0, i64 %14481
  %14483 = load ptr, ptr %14482, align 8, !tbaa !9
  store ptr %14483, ptr %301, align 8, !tbaa !9
  %14484 = load ptr, ptr %301, align 8, !tbaa !9
  %14485 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %14484)
  br i1 %14485, label %14487, label %14486

14486:                                            ; preds = %14480
  store i32 1375, ptr %300, align 4
  br label %16056

14487:                                            ; preds = %14480
  call void @llvm.lifetime.start.p0(i64 8, ptr %302) #11
  store ptr null, ptr %302, align 8, !tbaa !9
  br label %14488

14488:                                            ; preds = %14487
  %14489 = load i32, ptr @test_count, align 4, !tbaa !5
  %14490 = add nsw i32 %14489, 1
  store i32 %14490, ptr @test_count, align 4, !tbaa !5
  %14491 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %14491, ptr %302, align 8, !tbaa !9
  %14492 = icmp eq ptr %14491, null
  br i1 %14492, label %14493, label %14546

14493:                                            ; preds = %14488
  br label %14494

14494:                                            ; preds = %14493
  br label %14495

14495:                                            ; preds = %14494
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #11
  %14496 = call ptr @__errno_location() #12
  %14497 = load i32, ptr %14496, align 4, !tbaa !5
  store i32 %14497, ptr %303, align 4, !tbaa !5
  %14498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14499 = call i32 @s2n_print_stacktrace(ptr noundef %14498)
  %14500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14501 = trunc i8 %14500 to i1
  br i1 %14501, label %14502, label %14524

14502:                                            ; preds = %14495
  %14503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14504 = call i32 @fileno(ptr noundef %14503) #11
  %14505 = call i32 @isatty(i32 noundef %14504) #11
  %14506 = icmp ne i32 %14505, 0
  br i1 %14506, label %14507, label %14524

14507:                                            ; preds = %14502
  %14508 = load i32, ptr %303, align 4, !tbaa !5
  %14509 = call ptr @__errno_location() #12
  store i32 %14508, ptr %14509, align 4, !tbaa !5
  %14510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14511 = load i32, ptr @test_count, align 4, !tbaa !5
  %14512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14513 = load i32, ptr %14512, align 4, !tbaa !5
  %14514 = call ptr @s2n_strerror(i32 noundef %14513, ptr noundef @.str.4)
  %14515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14516 = load i32, ptr %14515, align 4, !tbaa !5
  %14517 = call ptr @s2n_strerror_debug(i32 noundef %14516, ptr noundef @.str.4)
  %14518 = call ptr @__errno_location() #12
  %14519 = load i32, ptr %14518, align 4, !tbaa !5
  %14520 = call ptr @strerror(i32 noundef %14519) #11
  %14521 = call ptr @__errno_location() #12
  %14522 = load i32, ptr %14521, align 4, !tbaa !5
  %14523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14510, ptr noundef @.str.2, i32 noundef %14511, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 596, ptr noundef %14514, ptr noundef %14517, ptr noundef %14520, i32 noundef %14522) #11
  br label %14541

14524:                                            ; preds = %14502, %14495
  %14525 = load i32, ptr %303, align 4, !tbaa !5
  %14526 = call ptr @__errno_location() #12
  store i32 %14525, ptr %14526, align 4, !tbaa !5
  %14527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14528 = load i32, ptr @test_count, align 4, !tbaa !5
  %14529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14530 = load i32, ptr %14529, align 4, !tbaa !5
  %14531 = call ptr @s2n_strerror(i32 noundef %14530, ptr noundef @.str.4)
  %14532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14533 = load i32, ptr %14532, align 4, !tbaa !5
  %14534 = call ptr @s2n_strerror_debug(i32 noundef %14533, ptr noundef @.str.4)
  %14535 = call ptr @__errno_location() #12
  %14536 = load i32, ptr %14535, align 4, !tbaa !5
  %14537 = call ptr @strerror(i32 noundef %14536) #11
  %14538 = call ptr @__errno_location() #12
  %14539 = load i32, ptr %14538, align 4, !tbaa !5
  %14540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14527, ptr noundef @.str.5, i32 noundef %14528, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 596, ptr noundef %14531, ptr noundef %14534, ptr noundef %14537, i32 noundef %14539) #11
  br label %14541

14541:                                            ; preds = %14524, %14507
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #11
  br label %14542

14542:                                            ; preds = %14541
  br label %14543

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

14544:                                            ; No predecessors!
  br label %14545

14545:                                            ; preds = %14544
  br label %14546

14546:                                            ; preds = %14545, %14488
  br label %14547

14547:                                            ; preds = %14546
  br label %14548

14548:                                            ; preds = %14547
  %14549 = load ptr, ptr %302, align 8, !tbaa !9
  %14550 = getelementptr inbounds %struct.s2n_connection, ptr %14549, i32 0, i32 2
  store ptr %279, ptr %14550, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %304) #11
  %14551 = load ptr, ptr %302, align 8, !tbaa !9
  %14552 = getelementptr inbounds %struct.s2n_connection, ptr %14551, i32 0, i32 31
  %14553 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14552, i32 0, i32 5
  %14554 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %14553, i32 0, i32 1
  %14555 = getelementptr inbounds %struct.s2n_kem_params, ptr %14554, i32 0, i32 2
  store ptr %14555, ptr %304, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %305) #11
  call void @llvm.memset.p0.i64(ptr align 8 %305, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %306) #11
  call void @llvm.memset.p0.i64(ptr align 8 %306, i8 0, i64 40, i1 false)
  br label %14556

14556:                                            ; preds = %14548
  %14557 = load i32, ptr @test_count, align 4, !tbaa !5
  %14558 = add nsw i32 %14557, 1
  store i32 %14558, ptr @test_count, align 4, !tbaa !5
  %14559 = load ptr, ptr %301, align 8, !tbaa !9
  %14560 = load ptr, ptr %304, align 8, !tbaa !9
  %14561 = call i32 @s2n_read_server_key_share_hybrid_test_vectors(ptr noundef %14559, ptr noundef %14560, ptr noundef %305, ptr noundef %306)
  %14562 = icmp eq i32 %14561, -1
  br i1 %14562, label %14563, label %14616

14563:                                            ; preds = %14556
  br label %14564

14564:                                            ; preds = %14563
  br label %14565

14565:                                            ; preds = %14564
  call void @llvm.lifetime.start.p0(i64 4, ptr %307) #11
  %14566 = call ptr @__errno_location() #12
  %14567 = load i32, ptr %14566, align 4, !tbaa !5
  store i32 %14567, ptr %307, align 4, !tbaa !5
  %14568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14569 = call i32 @s2n_print_stacktrace(ptr noundef %14568)
  %14570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14571 = trunc i8 %14570 to i1
  br i1 %14571, label %14572, label %14594

14572:                                            ; preds = %14565
  %14573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14574 = call i32 @fileno(ptr noundef %14573) #11
  %14575 = call i32 @isatty(i32 noundef %14574) #11
  %14576 = icmp ne i32 %14575, 0
  br i1 %14576, label %14577, label %14594

14577:                                            ; preds = %14572
  %14578 = load i32, ptr %307, align 4, !tbaa !5
  %14579 = call ptr @__errno_location() #12
  store i32 %14578, ptr %14579, align 4, !tbaa !5
  %14580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14581 = load i32, ptr @test_count, align 4, !tbaa !5
  %14582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14583 = load i32, ptr %14582, align 4, !tbaa !5
  %14584 = call ptr @s2n_strerror(i32 noundef %14583, ptr noundef @.str.4)
  %14585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14586 = load i32, ptr %14585, align 4, !tbaa !5
  %14587 = call ptr @s2n_strerror_debug(i32 noundef %14586, ptr noundef @.str.4)
  %14588 = call ptr @__errno_location() #12
  %14589 = load i32, ptr %14588, align 4, !tbaa !5
  %14590 = call ptr @strerror(i32 noundef %14589) #11
  %14591 = call ptr @__errno_location() #12
  %14592 = load i32, ptr %14591, align 4, !tbaa !5
  %14593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14580, ptr noundef @.str.2, i32 noundef %14581, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 605, ptr noundef %14584, ptr noundef %14587, ptr noundef %14590, i32 noundef %14592) #11
  br label %14611

14594:                                            ; preds = %14572, %14565
  %14595 = load i32, ptr %307, align 4, !tbaa !5
  %14596 = call ptr @__errno_location() #12
  store i32 %14595, ptr %14596, align 4, !tbaa !5
  %14597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14598 = load i32, ptr @test_count, align 4, !tbaa !5
  %14599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14600 = load i32, ptr %14599, align 4, !tbaa !5
  %14601 = call ptr @s2n_strerror(i32 noundef %14600, ptr noundef @.str.4)
  %14602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14603 = load i32, ptr %14602, align 4, !tbaa !5
  %14604 = call ptr @s2n_strerror_debug(i32 noundef %14603, ptr noundef @.str.4)
  %14605 = call ptr @__errno_location() #12
  %14606 = load i32, ptr %14605, align 4, !tbaa !5
  %14607 = call ptr @strerror(i32 noundef %14606) #11
  %14608 = call ptr @__errno_location() #12
  %14609 = load i32, ptr %14608, align 4, !tbaa !5
  %14610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14597, ptr noundef @.str.5, i32 noundef %14598, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 605, ptr noundef %14601, ptr noundef %14604, ptr noundef %14607, i32 noundef %14609) #11
  br label %14611

14611:                                            ; preds = %14594, %14577
  call void @llvm.lifetime.end.p0(i64 4, ptr %307) #11
  br label %14612

14612:                                            ; preds = %14611
  br label %14613

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

14614:                                            ; No predecessors!
  br label %14615

14615:                                            ; preds = %14614
  br label %14616

14616:                                            ; preds = %14615, %14556
  br label %14617

14617:                                            ; preds = %14616
  br label %14618

14618:                                            ; preds = %14617
  br label %14619

14619:                                            ; preds = %14618
  %14620 = load i32, ptr @test_count, align 4, !tbaa !5
  %14621 = add nsw i32 %14620, 1
  store i32 %14621, ptr @test_count, align 4, !tbaa !5
  %14622 = load ptr, ptr %302, align 8, !tbaa !9
  %14623 = getelementptr inbounds %struct.s2n_connection, ptr %14622, i32 0, i32 31
  %14624 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14623, i32 0, i32 4
  %14625 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %14624, i32 0, i32 0
  %14626 = load ptr, ptr %14625, align 8, !tbaa !48
  %14627 = icmp eq ptr %14626, null
  br i1 %14627, label %14681, label %14628

14628:                                            ; preds = %14619
  br label %14629

14629:                                            ; preds = %14628
  br label %14630

14630:                                            ; preds = %14629
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #11
  %14631 = call ptr @__errno_location() #12
  %14632 = load i32, ptr %14631, align 4, !tbaa !5
  store i32 %14632, ptr %308, align 4, !tbaa !5
  %14633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14634 = call i32 @s2n_print_stacktrace(ptr noundef %14633)
  %14635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14636 = trunc i8 %14635 to i1
  br i1 %14636, label %14637, label %14659

14637:                                            ; preds = %14630
  %14638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14639 = call i32 @fileno(ptr noundef %14638) #11
  %14640 = call i32 @isatty(i32 noundef %14639) #11
  %14641 = icmp ne i32 %14640, 0
  br i1 %14641, label %14642, label %14659

14642:                                            ; preds = %14637
  %14643 = load i32, ptr %308, align 4, !tbaa !5
  %14644 = call ptr @__errno_location() #12
  store i32 %14643, ptr %14644, align 4, !tbaa !5
  %14645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14646 = load i32, ptr @test_count, align 4, !tbaa !5
  %14647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14648 = load i32, ptr %14647, align 4, !tbaa !5
  %14649 = call ptr @s2n_strerror(i32 noundef %14648, ptr noundef @.str.4)
  %14650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14651 = load i32, ptr %14650, align 4, !tbaa !5
  %14652 = call ptr @s2n_strerror_debug(i32 noundef %14651, ptr noundef @.str.4)
  %14653 = call ptr @__errno_location() #12
  %14654 = load i32, ptr %14653, align 4, !tbaa !5
  %14655 = call ptr @strerror(i32 noundef %14654) #11
  %14656 = call ptr @__errno_location() #12
  %14657 = load i32, ptr %14656, align 4, !tbaa !5
  %14658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14645, ptr noundef @.str.2, i32 noundef %14646, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 608, ptr noundef %14649, ptr noundef %14652, ptr noundef %14655, i32 noundef %14657) #11
  br label %14676

14659:                                            ; preds = %14637, %14630
  %14660 = load i32, ptr %308, align 4, !tbaa !5
  %14661 = call ptr @__errno_location() #12
  store i32 %14660, ptr %14661, align 4, !tbaa !5
  %14662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14663 = load i32, ptr @test_count, align 4, !tbaa !5
  %14664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14665 = load i32, ptr %14664, align 4, !tbaa !5
  %14666 = call ptr @s2n_strerror(i32 noundef %14665, ptr noundef @.str.4)
  %14667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14668 = load i32, ptr %14667, align 4, !tbaa !5
  %14669 = call ptr @s2n_strerror_debug(i32 noundef %14668, ptr noundef @.str.4)
  %14670 = call ptr @__errno_location() #12
  %14671 = load i32, ptr %14670, align 4, !tbaa !5
  %14672 = call ptr @strerror(i32 noundef %14671) #11
  %14673 = call ptr @__errno_location() #12
  %14674 = load i32, ptr %14673, align 4, !tbaa !5
  %14675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14662, ptr noundef @.str.5, i32 noundef %14663, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 608, ptr noundef %14666, ptr noundef %14669, ptr noundef %14672, i32 noundef %14674) #11
  br label %14676

14676:                                            ; preds = %14659, %14642
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #11
  br label %14677

14677:                                            ; preds = %14676
  br label %14678

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

14679:                                            ; No predecessors!
  br label %14680

14680:                                            ; preds = %14679
  br label %14681

14681:                                            ; preds = %14680, %14619
  br label %14682

14682:                                            ; preds = %14681
  br label %14683

14683:                                            ; preds = %14682
  br label %14684

14684:                                            ; preds = %14683
  %14685 = load i32, ptr @test_count, align 4, !tbaa !5
  %14686 = add nsw i32 %14685, 1
  store i32 %14686, ptr @test_count, align 4, !tbaa !5
  %14687 = load ptr, ptr %302, align 8, !tbaa !9
  %14688 = getelementptr inbounds %struct.s2n_connection, ptr %14687, i32 0, i32 31
  %14689 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14688, i32 0, i32 5
  %14690 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %14689, i32 0, i32 0
  %14691 = load ptr, ptr %14690, align 8, !tbaa !88
  %14692 = icmp eq ptr %14691, null
  br i1 %14692, label %14746, label %14693

14693:                                            ; preds = %14684
  br label %14694

14694:                                            ; preds = %14693
  br label %14695

14695:                                            ; preds = %14694
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #11
  %14696 = call ptr @__errno_location() #12
  %14697 = load i32, ptr %14696, align 4, !tbaa !5
  store i32 %14697, ptr %309, align 4, !tbaa !5
  %14698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14699 = call i32 @s2n_print_stacktrace(ptr noundef %14698)
  %14700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14701 = trunc i8 %14700 to i1
  br i1 %14701, label %14702, label %14724

14702:                                            ; preds = %14695
  %14703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14704 = call i32 @fileno(ptr noundef %14703) #11
  %14705 = call i32 @isatty(i32 noundef %14704) #11
  %14706 = icmp ne i32 %14705, 0
  br i1 %14706, label %14707, label %14724

14707:                                            ; preds = %14702
  %14708 = load i32, ptr %309, align 4, !tbaa !5
  %14709 = call ptr @__errno_location() #12
  store i32 %14708, ptr %14709, align 4, !tbaa !5
  %14710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14711 = load i32, ptr @test_count, align 4, !tbaa !5
  %14712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14713 = load i32, ptr %14712, align 4, !tbaa !5
  %14714 = call ptr @s2n_strerror(i32 noundef %14713, ptr noundef @.str.4)
  %14715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14716 = load i32, ptr %14715, align 4, !tbaa !5
  %14717 = call ptr @s2n_strerror_debug(i32 noundef %14716, ptr noundef @.str.4)
  %14718 = call ptr @__errno_location() #12
  %14719 = load i32, ptr %14718, align 4, !tbaa !5
  %14720 = call ptr @strerror(i32 noundef %14719) #11
  %14721 = call ptr @__errno_location() #12
  %14722 = load i32, ptr %14721, align 4, !tbaa !5
  %14723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14710, ptr noundef @.str.2, i32 noundef %14711, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 609, ptr noundef %14714, ptr noundef %14717, ptr noundef %14720, i32 noundef %14722) #11
  br label %14741

14724:                                            ; preds = %14702, %14695
  %14725 = load i32, ptr %309, align 4, !tbaa !5
  %14726 = call ptr @__errno_location() #12
  store i32 %14725, ptr %14726, align 4, !tbaa !5
  %14727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14728 = load i32, ptr @test_count, align 4, !tbaa !5
  %14729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14730 = load i32, ptr %14729, align 4, !tbaa !5
  %14731 = call ptr @s2n_strerror(i32 noundef %14730, ptr noundef @.str.4)
  %14732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14733 = load i32, ptr %14732, align 4, !tbaa !5
  %14734 = call ptr @s2n_strerror_debug(i32 noundef %14733, ptr noundef @.str.4)
  %14735 = call ptr @__errno_location() #12
  %14736 = load i32, ptr %14735, align 4, !tbaa !5
  %14737 = call ptr @strerror(i32 noundef %14736) #11
  %14738 = call ptr @__errno_location() #12
  %14739 = load i32, ptr %14738, align 4, !tbaa !5
  %14740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14727, ptr noundef @.str.5, i32 noundef %14728, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 609, ptr noundef %14731, ptr noundef %14734, ptr noundef %14737, i32 noundef %14739) #11
  br label %14741

14741:                                            ; preds = %14724, %14707
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #11
  br label %14742

14742:                                            ; preds = %14741
  br label %14743

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

14744:                                            ; No predecessors!
  br label %14745

14745:                                            ; preds = %14744
  br label %14746

14746:                                            ; preds = %14745, %14684
  br label %14747

14747:                                            ; preds = %14746
  br label %14748

14748:                                            ; preds = %14747
  call void @llvm.lifetime.start.p0(i64 8, ptr %310) #11
  store ptr null, ptr %310, align 8, !tbaa !9
  br label %14749

14749:                                            ; preds = %14748
  %14750 = load i32, ptr @test_count, align 4, !tbaa !5
  %14751 = add nsw i32 %14750, 1
  store i32 %14751, ptr @test_count, align 4, !tbaa !5
  %14752 = load ptr, ptr %302, align 8, !tbaa !9
  %14753 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %14752, ptr noundef %310)
  %14754 = icmp eq i32 %14753, -1
  br i1 %14754, label %14755, label %14808

14755:                                            ; preds = %14749
  br label %14756

14756:                                            ; preds = %14755
  br label %14757

14757:                                            ; preds = %14756
  call void @llvm.lifetime.start.p0(i64 4, ptr %311) #11
  %14758 = call ptr @__errno_location() #12
  %14759 = load i32, ptr %14758, align 4, !tbaa !5
  store i32 %14759, ptr %311, align 4, !tbaa !5
  %14760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14761 = call i32 @s2n_print_stacktrace(ptr noundef %14760)
  %14762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14763 = trunc i8 %14762 to i1
  br i1 %14763, label %14764, label %14786

14764:                                            ; preds = %14757
  %14765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14766 = call i32 @fileno(ptr noundef %14765) #11
  %14767 = call i32 @isatty(i32 noundef %14766) #11
  %14768 = icmp ne i32 %14767, 0
  br i1 %14768, label %14769, label %14786

14769:                                            ; preds = %14764
  %14770 = load i32, ptr %311, align 4, !tbaa !5
  %14771 = call ptr @__errno_location() #12
  store i32 %14770, ptr %14771, align 4, !tbaa !5
  %14772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14773 = load i32, ptr @test_count, align 4, !tbaa !5
  %14774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14775 = load i32, ptr %14774, align 4, !tbaa !5
  %14776 = call ptr @s2n_strerror(i32 noundef %14775, ptr noundef @.str.4)
  %14777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14778 = load i32, ptr %14777, align 4, !tbaa !5
  %14779 = call ptr @s2n_strerror_debug(i32 noundef %14778, ptr noundef @.str.4)
  %14780 = call ptr @__errno_location() #12
  %14781 = load i32, ptr %14780, align 4, !tbaa !5
  %14782 = call ptr @strerror(i32 noundef %14781) #11
  %14783 = call ptr @__errno_location() #12
  %14784 = load i32, ptr %14783, align 4, !tbaa !5
  %14785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14772, ptr noundef @.str.2, i32 noundef %14773, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 612, ptr noundef %14776, ptr noundef %14779, ptr noundef %14782, i32 noundef %14784) #11
  br label %14803

14786:                                            ; preds = %14764, %14757
  %14787 = load i32, ptr %311, align 4, !tbaa !5
  %14788 = call ptr @__errno_location() #12
  store i32 %14787, ptr %14788, align 4, !tbaa !5
  %14789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14790 = load i32, ptr @test_count, align 4, !tbaa !5
  %14791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14792 = load i32, ptr %14791, align 4, !tbaa !5
  %14793 = call ptr @s2n_strerror(i32 noundef %14792, ptr noundef @.str.4)
  %14794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14795 = load i32, ptr %14794, align 4, !tbaa !5
  %14796 = call ptr @s2n_strerror_debug(i32 noundef %14795, ptr noundef @.str.4)
  %14797 = call ptr @__errno_location() #12
  %14798 = load i32, ptr %14797, align 4, !tbaa !5
  %14799 = call ptr @strerror(i32 noundef %14798) #11
  %14800 = call ptr @__errno_location() #12
  %14801 = load i32, ptr %14800, align 4, !tbaa !5
  %14802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14789, ptr noundef @.str.5, i32 noundef %14790, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 612, ptr noundef %14793, ptr noundef %14796, ptr noundef %14799, i32 noundef %14801) #11
  br label %14803

14803:                                            ; preds = %14786, %14769
  call void @llvm.lifetime.end.p0(i64 4, ptr %311) #11
  br label %14804

14804:                                            ; preds = %14803
  br label %14805

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

14806:                                            ; No predecessors!
  br label %14807

14807:                                            ; preds = %14806
  br label %14808

14808:                                            ; preds = %14807, %14749
  br label %14809

14809:                                            ; preds = %14808
  br label %14810

14810:                                            ; preds = %14809
  br label %14811

14811:                                            ; preds = %14810
  %14812 = load i32, ptr @test_count, align 4, !tbaa !5
  %14813 = add nsw i32 %14812, 1
  store i32 %14813, ptr @test_count, align 4, !tbaa !5
  %14814 = load ptr, ptr %310, align 8, !tbaa !9
  %14815 = icmp eq ptr %14814, null
  br i1 %14815, label %14816, label %14869

14816:                                            ; preds = %14811
  br label %14817

14817:                                            ; preds = %14816
  br label %14818

14818:                                            ; preds = %14817
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #11
  %14819 = call ptr @__errno_location() #12
  %14820 = load i32, ptr %14819, align 4, !tbaa !5
  store i32 %14820, ptr %312, align 4, !tbaa !5
  %14821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14822 = call i32 @s2n_print_stacktrace(ptr noundef %14821)
  %14823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14824 = trunc i8 %14823 to i1
  br i1 %14824, label %14825, label %14847

14825:                                            ; preds = %14818
  %14826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14827 = call i32 @fileno(ptr noundef %14826) #11
  %14828 = call i32 @isatty(i32 noundef %14827) #11
  %14829 = icmp ne i32 %14828, 0
  br i1 %14829, label %14830, label %14847

14830:                                            ; preds = %14825
  %14831 = load i32, ptr %312, align 4, !tbaa !5
  %14832 = call ptr @__errno_location() #12
  store i32 %14831, ptr %14832, align 4, !tbaa !5
  %14833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14834 = load i32, ptr @test_count, align 4, !tbaa !5
  %14835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14836 = load i32, ptr %14835, align 4, !tbaa !5
  %14837 = call ptr @s2n_strerror(i32 noundef %14836, ptr noundef @.str.4)
  %14838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14839 = load i32, ptr %14838, align 4, !tbaa !5
  %14840 = call ptr @s2n_strerror_debug(i32 noundef %14839, ptr noundef @.str.4)
  %14841 = call ptr @__errno_location() #12
  %14842 = load i32, ptr %14841, align 4, !tbaa !5
  %14843 = call ptr @strerror(i32 noundef %14842) #11
  %14844 = call ptr @__errno_location() #12
  %14845 = load i32, ptr %14844, align 4, !tbaa !5
  %14846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14833, ptr noundef @.str.2, i32 noundef %14834, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 613, ptr noundef %14837, ptr noundef %14840, ptr noundef %14843, i32 noundef %14845) #11
  br label %14864

14847:                                            ; preds = %14825, %14818
  %14848 = load i32, ptr %312, align 4, !tbaa !5
  %14849 = call ptr @__errno_location() #12
  store i32 %14848, ptr %14849, align 4, !tbaa !5
  %14850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14851 = load i32, ptr @test_count, align 4, !tbaa !5
  %14852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14853 = load i32, ptr %14852, align 4, !tbaa !5
  %14854 = call ptr @s2n_strerror(i32 noundef %14853, ptr noundef @.str.4)
  %14855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14856 = load i32, ptr %14855, align 4, !tbaa !5
  %14857 = call ptr @s2n_strerror_debug(i32 noundef %14856, ptr noundef @.str.4)
  %14858 = call ptr @__errno_location() #12
  %14859 = load i32, ptr %14858, align 4, !tbaa !5
  %14860 = call ptr @strerror(i32 noundef %14859) #11
  %14861 = call ptr @__errno_location() #12
  %14862 = load i32, ptr %14861, align 4, !tbaa !5
  %14863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14850, ptr noundef @.str.5, i32 noundef %14851, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 613, ptr noundef %14854, ptr noundef %14857, ptr noundef %14860, i32 noundef %14862) #11
  br label %14864

14864:                                            ; preds = %14847, %14830
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #11
  br label %14865

14865:                                            ; preds = %14864
  br label %14866

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

14867:                                            ; No predecessors!
  br label %14868

14868:                                            ; preds = %14867
  br label %14869

14869:                                            ; preds = %14868, %14811
  br label %14870

14870:                                            ; preds = %14869
  br label %14871

14871:                                            ; preds = %14870
  br label %14872

14872:                                            ; preds = %14871
  %14873 = load i32, ptr @test_count, align 4, !tbaa !5
  %14874 = add nsw i32 %14873, 1
  store i32 %14874, ptr @test_count, align 4, !tbaa !5
  %14875 = load ptr, ptr %301, align 8, !tbaa !9
  %14876 = load ptr, ptr %310, align 8, !tbaa !9
  %14877 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14876, i32 0, i32 3
  %14878 = load ptr, ptr %14877, align 8, !tbaa !75
  %14879 = load i64, ptr %299, align 8, !tbaa !49
  %14880 = getelementptr inbounds ptr, ptr %14878, i64 %14879
  %14881 = load ptr, ptr %14880, align 8, !tbaa !9
  %14882 = icmp eq ptr %14875, %14881
  br i1 %14882, label %14936, label %14883

14883:                                            ; preds = %14872
  br label %14884

14884:                                            ; preds = %14883
  br label %14885

14885:                                            ; preds = %14884
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #11
  %14886 = call ptr @__errno_location() #12
  %14887 = load i32, ptr %14886, align 4, !tbaa !5
  store i32 %14887, ptr %313, align 4, !tbaa !5
  %14888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14889 = call i32 @s2n_print_stacktrace(ptr noundef %14888)
  %14890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14891 = trunc i8 %14890 to i1
  br i1 %14891, label %14892, label %14914

14892:                                            ; preds = %14885
  %14893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14894 = call i32 @fileno(ptr noundef %14893) #11
  %14895 = call i32 @isatty(i32 noundef %14894) #11
  %14896 = icmp ne i32 %14895, 0
  br i1 %14896, label %14897, label %14914

14897:                                            ; preds = %14892
  %14898 = load i32, ptr %313, align 4, !tbaa !5
  %14899 = call ptr @__errno_location() #12
  store i32 %14898, ptr %14899, align 4, !tbaa !5
  %14900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14901 = load i32, ptr @test_count, align 4, !tbaa !5
  %14902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14903 = load i32, ptr %14902, align 4, !tbaa !5
  %14904 = call ptr @s2n_strerror(i32 noundef %14903, ptr noundef @.str.4)
  %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_debug(i32 noundef %14906, ptr noundef @.str.4)
  %14908 = call ptr @__errno_location() #12
  %14909 = load i32, ptr %14908, align 4, !tbaa !5
  %14910 = call ptr @strerror(i32 noundef %14909) #11
  %14911 = call ptr @__errno_location() #12
  %14912 = load i32, ptr %14911, align 4, !tbaa !5
  %14913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14900, ptr noundef @.str.2, i32 noundef %14901, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 614, ptr noundef %14904, ptr noundef %14907, ptr noundef %14910, i32 noundef %14912) #11
  br label %14931

14914:                                            ; preds = %14892, %14885
  %14915 = load i32, ptr %313, align 4, !tbaa !5
  %14916 = call ptr @__errno_location() #12
  store i32 %14915, ptr %14916, align 4, !tbaa !5
  %14917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14918 = load i32, ptr @test_count, align 4, !tbaa !5
  %14919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14920 = load i32, ptr %14919, align 4, !tbaa !5
  %14921 = call ptr @s2n_strerror(i32 noundef %14920, ptr noundef @.str.4)
  %14922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14923 = load i32, ptr %14922, align 4, !tbaa !5
  %14924 = call ptr @s2n_strerror_debug(i32 noundef %14923, ptr noundef @.str.4)
  %14925 = call ptr @__errno_location() #12
  %14926 = load i32, ptr %14925, align 4, !tbaa !5
  %14927 = call ptr @strerror(i32 noundef %14926) #11
  %14928 = call ptr @__errno_location() #12
  %14929 = load i32, ptr %14928, align 4, !tbaa !5
  %14930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14917, ptr noundef @.str.5, i32 noundef %14918, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 614, ptr noundef %14921, ptr noundef %14924, ptr noundef %14927, i32 noundef %14929) #11
  br label %14931

14931:                                            ; preds = %14914, %14897
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #11
  br label %14932

14932:                                            ; preds = %14931
  br label %14933

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

14934:                                            ; No predecessors!
  br label %14935

14935:                                            ; preds = %14934
  br label %14936

14936:                                            ; preds = %14935, %14872
  br label %14937

14937:                                            ; preds = %14936
  br label %14938

14938:                                            ; preds = %14937
  %14939 = load ptr, ptr %301, align 8, !tbaa !9
  %14940 = load ptr, ptr %302, align 8, !tbaa !9
  %14941 = getelementptr inbounds %struct.s2n_connection, ptr %14940, i32 0, i32 31
  %14942 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14941, i32 0, i32 5
  %14943 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %14942, i32 0, i32 0
  store ptr %14939, ptr %14943, align 8, !tbaa !88
  %14944 = load ptr, ptr %301, align 8, !tbaa !9
  %14945 = getelementptr inbounds %struct.s2n_kem_group, ptr %14944, i32 0, i32 2
  %14946 = load ptr, ptr %14945, align 8, !tbaa !89
  %14947 = load ptr, ptr %302, align 8, !tbaa !9
  %14948 = getelementptr inbounds %struct.s2n_connection, ptr %14947, i32 0, i32 31
  %14949 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14948, i32 0, i32 5
  %14950 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %14949, i32 0, i32 2
  %14951 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %14950, i32 0, i32 0
  store ptr %14946, ptr %14951, align 8, !tbaa !90
  %14952 = load ptr, ptr %301, align 8, !tbaa !9
  %14953 = getelementptr inbounds %struct.s2n_kem_group, ptr %14952, i32 0, i32 3
  %14954 = load ptr, ptr %14953, align 8, !tbaa !91
  %14955 = load ptr, ptr %302, align 8, !tbaa !9
  %14956 = getelementptr inbounds %struct.s2n_connection, ptr %14955, i32 0, i32 31
  %14957 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14956, i32 0, i32 5
  %14958 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %14957, i32 0, i32 1
  %14959 = getelementptr inbounds %struct.s2n_kem_params, ptr %14958, i32 0, i32 0
  store ptr %14954, ptr %14959, align 8, !tbaa !92
  %14960 = load ptr, ptr %302, align 8, !tbaa !9
  %14961 = getelementptr inbounds %struct.s2n_connection, ptr %14960, i32 0, i32 31
  %14962 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14961, i32 0, i32 5
  %14963 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %14962, i32 0, i32 1
  %14964 = getelementptr inbounds %struct.s2n_kem_params, ptr %14963, i32 0, i32 4
  store i8 1, ptr %14964, align 8, !tbaa !93
  br label %14965

14965:                                            ; preds = %14938
  %14966 = load i32, ptr @test_count, align 4, !tbaa !5
  %14967 = add nsw i32 %14966, 1
  store i32 %14967, ptr @test_count, align 4, !tbaa !5
  %14968 = load ptr, ptr %302, align 8, !tbaa !9
  %14969 = getelementptr inbounds %struct.s2n_connection, ptr %14968, i32 0, i32 31
  %14970 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14969, i32 0, i32 5
  %14971 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %14970, i32 0, i32 2
  %14972 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %14971)
  %14973 = icmp eq i32 %14972, -1
  br i1 %14973, label %14974, label %15027

14974:                                            ; preds = %14965
  br label %14975

14975:                                            ; preds = %14974
  br label %14976

14976:                                            ; preds = %14975
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #11
  %14977 = call ptr @__errno_location() #12
  %14978 = load i32, ptr %14977, align 4, !tbaa !5
  store i32 %14978, ptr %314, align 4, !tbaa !5
  %14979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14980 = call i32 @s2n_print_stacktrace(ptr noundef %14979)
  %14981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14982 = trunc i8 %14981 to i1
  br i1 %14982, label %14983, label %15005

14983:                                            ; preds = %14976
  %14984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14985 = call i32 @fileno(ptr noundef %14984) #11
  %14986 = call i32 @isatty(i32 noundef %14985) #11
  %14987 = icmp ne i32 %14986, 0
  br i1 %14987, label %14988, label %15005

14988:                                            ; preds = %14983
  %14989 = load i32, ptr %314, align 4, !tbaa !5
  %14990 = call ptr @__errno_location() #12
  store i32 %14989, ptr %14990, align 4, !tbaa !5
  %14991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14992 = load i32, ptr @test_count, align 4, !tbaa !5
  %14993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14994 = load i32, ptr %14993, align 4, !tbaa !5
  %14995 = call ptr @s2n_strerror(i32 noundef %14994, ptr noundef @.str.4)
  %14996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14997 = load i32, ptr %14996, align 4, !tbaa !5
  %14998 = call ptr @s2n_strerror_debug(i32 noundef %14997, ptr noundef @.str.4)
  %14999 = call ptr @__errno_location() #12
  %15000 = load i32, ptr %14999, align 4, !tbaa !5
  %15001 = call ptr @strerror(i32 noundef %15000) #11
  %15002 = call ptr @__errno_location() #12
  %15003 = load i32, ptr %15002, align 4, !tbaa !5
  %15004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14991, ptr noundef @.str.2, i32 noundef %14992, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 621, ptr noundef %14995, ptr noundef %14998, ptr noundef %15001, i32 noundef %15003) #11
  br label %15022

15005:                                            ; preds = %14983, %14976
  %15006 = load i32, ptr %314, align 4, !tbaa !5
  %15007 = call ptr @__errno_location() #12
  store i32 %15006, ptr %15007, align 4, !tbaa !5
  %15008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15009 = load i32, ptr @test_count, align 4, !tbaa !5
  %15010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15011 = load i32, ptr %15010, align 4, !tbaa !5
  %15012 = call ptr @s2n_strerror(i32 noundef %15011, ptr noundef @.str.4)
  %15013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15014 = load i32, ptr %15013, align 4, !tbaa !5
  %15015 = call ptr @s2n_strerror_debug(i32 noundef %15014, ptr noundef @.str.4)
  %15016 = call ptr @__errno_location() #12
  %15017 = load i32, ptr %15016, align 4, !tbaa !5
  %15018 = call ptr @strerror(i32 noundef %15017) #11
  %15019 = call ptr @__errno_location() #12
  %15020 = load i32, ptr %15019, align 4, !tbaa !5
  %15021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15008, ptr noundef @.str.5, i32 noundef %15009, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 621, ptr noundef %15012, ptr noundef %15015, ptr noundef %15018, i32 noundef %15020) #11
  br label %15022

15022:                                            ; preds = %15005, %14988
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #11
  br label %15023

15023:                                            ; preds = %15022
  br label %15024

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

15025:                                            ; No predecessors!
  br label %15026

15026:                                            ; preds = %15025
  br label %15027

15027:                                            ; preds = %15026, %14965
  br label %15028

15028:                                            ; preds = %15027
  br label %15029

15029:                                            ; preds = %15028
  br label %15030

15030:                                            ; preds = %15029
  %15031 = load i32, ptr @test_count, align 4, !tbaa !5
  %15032 = add nsw i32 %15031, 1
  store i32 %15032, ptr @test_count, align 4, !tbaa !5
  %15033 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %15034 = load ptr, ptr %302, align 8, !tbaa !9
  %15035 = call i32 %15033(ptr noundef %15034, ptr noundef %306)
  %15036 = icmp eq i32 %15035, -1
  br i1 %15036, label %15037, label %15090

15037:                                            ; preds = %15030
  br label %15038

15038:                                            ; preds = %15037
  br label %15039

15039:                                            ; preds = %15038
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #11
  %15040 = call ptr @__errno_location() #12
  %15041 = load i32, ptr %15040, align 4, !tbaa !5
  store i32 %15041, ptr %315, align 4, !tbaa !5
  %15042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15043 = call i32 @s2n_print_stacktrace(ptr noundef %15042)
  %15044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15045 = trunc i8 %15044 to i1
  br i1 %15045, label %15046, label %15068

15046:                                            ; preds = %15039
  %15047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15048 = call i32 @fileno(ptr noundef %15047) #11
  %15049 = call i32 @isatty(i32 noundef %15048) #11
  %15050 = icmp ne i32 %15049, 0
  br i1 %15050, label %15051, label %15068

15051:                                            ; preds = %15046
  %15052 = load i32, ptr %315, align 4, !tbaa !5
  %15053 = call ptr @__errno_location() #12
  store i32 %15052, ptr %15053, align 4, !tbaa !5
  %15054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15055 = load i32, ptr @test_count, align 4, !tbaa !5
  %15056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15057 = load i32, ptr %15056, align 4, !tbaa !5
  %15058 = call ptr @s2n_strerror(i32 noundef %15057, ptr noundef @.str.4)
  %15059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15060 = load i32, ptr %15059, align 4, !tbaa !5
  %15061 = call ptr @s2n_strerror_debug(i32 noundef %15060, ptr noundef @.str.4)
  %15062 = call ptr @__errno_location() #12
  %15063 = load i32, ptr %15062, align 4, !tbaa !5
  %15064 = call ptr @strerror(i32 noundef %15063) #11
  %15065 = call ptr @__errno_location() #12
  %15066 = load i32, ptr %15065, align 4, !tbaa !5
  %15067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15054, ptr noundef @.str.2, i32 noundef %15055, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 624, ptr noundef %15058, ptr noundef %15061, ptr noundef %15064, i32 noundef %15066) #11
  br label %15085

15068:                                            ; preds = %15046, %15039
  %15069 = load i32, ptr %315, align 4, !tbaa !5
  %15070 = call ptr @__errno_location() #12
  store i32 %15069, ptr %15070, align 4, !tbaa !5
  %15071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15072 = load i32, ptr @test_count, align 4, !tbaa !5
  %15073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15074 = load i32, ptr %15073, align 4, !tbaa !5
  %15075 = call ptr @s2n_strerror(i32 noundef %15074, ptr noundef @.str.4)
  %15076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15077 = load i32, ptr %15076, align 4, !tbaa !5
  %15078 = call ptr @s2n_strerror_debug(i32 noundef %15077, ptr noundef @.str.4)
  %15079 = call ptr @__errno_location() #12
  %15080 = load i32, ptr %15079, align 4, !tbaa !5
  %15081 = call ptr @strerror(i32 noundef %15080) #11
  %15082 = call ptr @__errno_location() #12
  %15083 = load i32, ptr %15082, align 4, !tbaa !5
  %15084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15071, ptr noundef @.str.5, i32 noundef %15072, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 624, ptr noundef %15075, ptr noundef %15078, ptr noundef %15081, i32 noundef %15083) #11
  br label %15085

15085:                                            ; preds = %15068, %15051
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #11
  br label %15086

15086:                                            ; preds = %15085
  br label %15087

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

15088:                                            ; No predecessors!
  br label %15089

15089:                                            ; preds = %15088
  br label %15090

15090:                                            ; preds = %15089, %15030
  br label %15091

15091:                                            ; preds = %15090
  br label %15092

15092:                                            ; preds = %15091
  br label %15093

15093:                                            ; preds = %15092
  %15094 = load i32, ptr @test_count, align 4, !tbaa !5
  %15095 = add nsw i32 %15094, 1
  store i32 %15095, ptr @test_count, align 4, !tbaa !5
  %15096 = load ptr, ptr %302, align 8, !tbaa !9
  %15097 = getelementptr inbounds %struct.s2n_connection, ptr %15096, i32 0, i32 31
  %15098 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15097, i32 0, i32 4
  %15099 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15098, i32 0, i32 0
  %15100 = load ptr, ptr %15099, align 8, !tbaa !48
  %15101 = icmp eq ptr %15100, null
  br i1 %15101, label %15102, label %15155

15102:                                            ; preds = %15093
  br label %15103

15103:                                            ; preds = %15102
  br label %15104

15104:                                            ; preds = %15103
  call void @llvm.lifetime.start.p0(i64 4, ptr %316) #11
  %15105 = call ptr @__errno_location() #12
  %15106 = load i32, ptr %15105, align 4, !tbaa !5
  store i32 %15106, ptr %316, align 4, !tbaa !5
  %15107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15108 = call i32 @s2n_print_stacktrace(ptr noundef %15107)
  %15109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15110 = trunc i8 %15109 to i1
  br i1 %15110, label %15111, label %15133

15111:                                            ; preds = %15104
  %15112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15113 = call i32 @fileno(ptr noundef %15112) #11
  %15114 = call i32 @isatty(i32 noundef %15113) #11
  %15115 = icmp ne i32 %15114, 0
  br i1 %15115, label %15116, label %15133

15116:                                            ; preds = %15111
  %15117 = load i32, ptr %316, align 4, !tbaa !5
  %15118 = call ptr @__errno_location() #12
  store i32 %15117, ptr %15118, align 4, !tbaa !5
  %15119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15120 = load i32, ptr @test_count, align 4, !tbaa !5
  %15121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15122 = load i32, ptr %15121, align 4, !tbaa !5
  %15123 = call ptr @s2n_strerror(i32 noundef %15122, ptr noundef @.str.4)
  %15124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15125 = load i32, ptr %15124, align 4, !tbaa !5
  %15126 = call ptr @s2n_strerror_debug(i32 noundef %15125, ptr noundef @.str.4)
  %15127 = call ptr @__errno_location() #12
  %15128 = load i32, ptr %15127, align 4, !tbaa !5
  %15129 = call ptr @strerror(i32 noundef %15128) #11
  %15130 = call ptr @__errno_location() #12
  %15131 = load i32, ptr %15130, align 4, !tbaa !5
  %15132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15119, ptr noundef @.str.2, i32 noundef %15120, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 626, ptr noundef %15123, ptr noundef %15126, ptr noundef %15129, i32 noundef %15131) #11
  br label %15150

15133:                                            ; preds = %15111, %15104
  %15134 = load i32, ptr %316, align 4, !tbaa !5
  %15135 = call ptr @__errno_location() #12
  store i32 %15134, ptr %15135, align 4, !tbaa !5
  %15136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15137 = load i32, ptr @test_count, align 4, !tbaa !5
  %15138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15139 = load i32, ptr %15138, align 4, !tbaa !5
  %15140 = call ptr @s2n_strerror(i32 noundef %15139, ptr noundef @.str.4)
  %15141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15142 = load i32, ptr %15141, align 4, !tbaa !5
  %15143 = call ptr @s2n_strerror_debug(i32 noundef %15142, ptr noundef @.str.4)
  %15144 = call ptr @__errno_location() #12
  %15145 = load i32, ptr %15144, align 4, !tbaa !5
  %15146 = call ptr @strerror(i32 noundef %15145) #11
  %15147 = call ptr @__errno_location() #12
  %15148 = load i32, ptr %15147, align 4, !tbaa !5
  %15149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15136, ptr noundef @.str.5, i32 noundef %15137, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 626, ptr noundef %15140, ptr noundef %15143, ptr noundef %15146, i32 noundef %15148) #11
  br label %15150

15150:                                            ; preds = %15133, %15116
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #11
  br label %15151

15151:                                            ; preds = %15150
  br label %15152

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

15153:                                            ; No predecessors!
  br label %15154

15154:                                            ; preds = %15153
  br label %15155

15155:                                            ; preds = %15154, %15093
  br label %15156

15156:                                            ; preds = %15155
  br label %15157

15157:                                            ; preds = %15156
  br label %15158

15158:                                            ; preds = %15157
  %15159 = load i32, ptr @test_count, align 4, !tbaa !5
  %15160 = add nsw i32 %15159, 1
  store i32 %15160, ptr @test_count, align 4, !tbaa !5
  %15161 = load ptr, ptr %302, align 8, !tbaa !9
  %15162 = getelementptr inbounds %struct.s2n_connection, ptr %15161, i32 0, i32 31
  %15163 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15162, i32 0, i32 4
  %15164 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15163, i32 0, i32 0
  %15165 = load ptr, ptr %15164, align 8, !tbaa !48
  %15166 = load ptr, ptr %301, align 8, !tbaa !9
  %15167 = icmp eq ptr %15165, %15166
  br i1 %15167, label %15221, label %15168

15168:                                            ; preds = %15158
  br label %15169

15169:                                            ; preds = %15168
  br label %15170

15170:                                            ; preds = %15169
  call void @llvm.lifetime.start.p0(i64 4, ptr %317) #11
  %15171 = call ptr @__errno_location() #12
  %15172 = load i32, ptr %15171, align 4, !tbaa !5
  store i32 %15172, ptr %317, align 4, !tbaa !5
  %15173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15174 = call i32 @s2n_print_stacktrace(ptr noundef %15173)
  %15175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15176 = trunc i8 %15175 to i1
  br i1 %15176, label %15177, label %15199

15177:                                            ; preds = %15170
  %15178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15179 = call i32 @fileno(ptr noundef %15178) #11
  %15180 = call i32 @isatty(i32 noundef %15179) #11
  %15181 = icmp ne i32 %15180, 0
  br i1 %15181, label %15182, label %15199

15182:                                            ; preds = %15177
  %15183 = load i32, ptr %317, align 4, !tbaa !5
  %15184 = call ptr @__errno_location() #12
  store i32 %15183, ptr %15184, align 4, !tbaa !5
  %15185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15186 = load i32, ptr @test_count, align 4, !tbaa !5
  %15187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15188 = load i32, ptr %15187, align 4, !tbaa !5
  %15189 = call ptr @s2n_strerror(i32 noundef %15188, ptr noundef @.str.4)
  %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_debug(i32 noundef %15191, ptr noundef @.str.4)
  %15193 = call ptr @__errno_location() #12
  %15194 = load i32, ptr %15193, align 4, !tbaa !5
  %15195 = call ptr @strerror(i32 noundef %15194) #11
  %15196 = call ptr @__errno_location() #12
  %15197 = load i32, ptr %15196, align 4, !tbaa !5
  %15198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15185, ptr noundef @.str.2, i32 noundef %15186, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 627, ptr noundef %15189, ptr noundef %15192, ptr noundef %15195, i32 noundef %15197) #11
  br label %15216

15199:                                            ; preds = %15177, %15170
  %15200 = load i32, ptr %317, align 4, !tbaa !5
  %15201 = call ptr @__errno_location() #12
  store i32 %15200, ptr %15201, align 4, !tbaa !5
  %15202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15203 = load i32, ptr @test_count, align 4, !tbaa !5
  %15204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15205 = load i32, ptr %15204, align 4, !tbaa !5
  %15206 = call ptr @s2n_strerror(i32 noundef %15205, ptr noundef @.str.4)
  %15207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15208 = load i32, ptr %15207, align 4, !tbaa !5
  %15209 = call ptr @s2n_strerror_debug(i32 noundef %15208, ptr noundef @.str.4)
  %15210 = call ptr @__errno_location() #12
  %15211 = load i32, ptr %15210, align 4, !tbaa !5
  %15212 = call ptr @strerror(i32 noundef %15211) #11
  %15213 = call ptr @__errno_location() #12
  %15214 = load i32, ptr %15213, align 4, !tbaa !5
  %15215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15202, ptr noundef @.str.5, i32 noundef %15203, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 627, ptr noundef %15206, ptr noundef %15209, ptr noundef %15212, i32 noundef %15214) #11
  br label %15216

15216:                                            ; preds = %15199, %15182
  call void @llvm.lifetime.end.p0(i64 4, ptr %317) #11
  br label %15217

15217:                                            ; preds = %15216
  br label %15218

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

15219:                                            ; No predecessors!
  br label %15220

15220:                                            ; preds = %15219
  br label %15221

15221:                                            ; preds = %15220, %15158
  br label %15222

15222:                                            ; preds = %15221
  br label %15223

15223:                                            ; preds = %15222
  br label %15224

15224:                                            ; preds = %15223
  %15225 = load i32, ptr @test_count, align 4, !tbaa !5
  %15226 = add nsw i32 %15225, 1
  store i32 %15226, ptr @test_count, align 4, !tbaa !5
  %15227 = load ptr, ptr %302, align 8, !tbaa !9
  %15228 = getelementptr inbounds %struct.s2n_connection, ptr %15227, i32 0, i32 31
  %15229 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15228, i32 0, i32 4
  %15230 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15229, i32 0, i32 2
  %15231 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %15230, i32 0, i32 0
  %15232 = load ptr, ptr %15231, align 8, !tbaa !94
  %15233 = icmp eq ptr %15232, null
  br i1 %15233, label %15234, label %15287

15234:                                            ; preds = %15224
  br label %15235

15235:                                            ; preds = %15234
  br label %15236

15236:                                            ; preds = %15235
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #11
  %15237 = call ptr @__errno_location() #12
  %15238 = load i32, ptr %15237, align 4, !tbaa !5
  store i32 %15238, ptr %318, align 4, !tbaa !5
  %15239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15240 = call i32 @s2n_print_stacktrace(ptr noundef %15239)
  %15241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15242 = trunc i8 %15241 to i1
  br i1 %15242, label %15243, label %15265

15243:                                            ; preds = %15236
  %15244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15245 = call i32 @fileno(ptr noundef %15244) #11
  %15246 = call i32 @isatty(i32 noundef %15245) #11
  %15247 = icmp ne i32 %15246, 0
  br i1 %15247, label %15248, label %15265

15248:                                            ; preds = %15243
  %15249 = load i32, ptr %318, align 4, !tbaa !5
  %15250 = call ptr @__errno_location() #12
  store i32 %15249, ptr %15250, align 4, !tbaa !5
  %15251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15252 = load i32, ptr @test_count, align 4, !tbaa !5
  %15253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15254 = load i32, ptr %15253, align 4, !tbaa !5
  %15255 = call ptr @s2n_strerror(i32 noundef %15254, ptr noundef @.str.4)
  %15256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15257 = load i32, ptr %15256, align 4, !tbaa !5
  %15258 = call ptr @s2n_strerror_debug(i32 noundef %15257, ptr noundef @.str.4)
  %15259 = call ptr @__errno_location() #12
  %15260 = load i32, ptr %15259, align 4, !tbaa !5
  %15261 = call ptr @strerror(i32 noundef %15260) #11
  %15262 = call ptr @__errno_location() #12
  %15263 = load i32, ptr %15262, align 4, !tbaa !5
  %15264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15251, ptr noundef @.str.2, i32 noundef %15252, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 628, ptr noundef %15255, ptr noundef %15258, ptr noundef %15261, i32 noundef %15263) #11
  br label %15282

15265:                                            ; preds = %15243, %15236
  %15266 = load i32, ptr %318, align 4, !tbaa !5
  %15267 = call ptr @__errno_location() #12
  store i32 %15266, ptr %15267, align 4, !tbaa !5
  %15268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15269 = load i32, ptr @test_count, align 4, !tbaa !5
  %15270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15271 = load i32, ptr %15270, align 4, !tbaa !5
  %15272 = call ptr @s2n_strerror(i32 noundef %15271, ptr noundef @.str.4)
  %15273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15274 = load i32, ptr %15273, align 4, !tbaa !5
  %15275 = call ptr @s2n_strerror_debug(i32 noundef %15274, ptr noundef @.str.4)
  %15276 = call ptr @__errno_location() #12
  %15277 = load i32, ptr %15276, align 4, !tbaa !5
  %15278 = call ptr @strerror(i32 noundef %15277) #11
  %15279 = call ptr @__errno_location() #12
  %15280 = load i32, ptr %15279, align 4, !tbaa !5
  %15281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15268, ptr noundef @.str.5, i32 noundef %15269, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 628, ptr noundef %15272, ptr noundef %15275, ptr noundef %15278, i32 noundef %15280) #11
  br label %15282

15282:                                            ; preds = %15265, %15248
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #11
  br label %15283

15283:                                            ; preds = %15282
  br label %15284

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

15285:                                            ; No predecessors!
  br label %15286

15286:                                            ; preds = %15285
  br label %15287

15287:                                            ; preds = %15286, %15224
  br label %15288

15288:                                            ; preds = %15287
  br label %15289

15289:                                            ; preds = %15288
  br label %15290

15290:                                            ; preds = %15289
  %15291 = load i32, ptr @test_count, align 4, !tbaa !5
  %15292 = add nsw i32 %15291, 1
  store i32 %15292, ptr @test_count, align 4, !tbaa !5
  %15293 = load ptr, ptr %302, align 8, !tbaa !9
  %15294 = getelementptr inbounds %struct.s2n_connection, ptr %15293, i32 0, i32 31
  %15295 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15294, i32 0, i32 4
  %15296 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15295, i32 0, i32 2
  %15297 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %15296, i32 0, i32 0
  %15298 = load ptr, ptr %15297, align 8, !tbaa !94
  %15299 = load ptr, ptr %301, align 8, !tbaa !9
  %15300 = getelementptr inbounds %struct.s2n_kem_group, ptr %15299, i32 0, i32 2
  %15301 = load ptr, ptr %15300, align 8, !tbaa !89
  %15302 = icmp eq ptr %15298, %15301
  br i1 %15302, label %15356, label %15303

15303:                                            ; preds = %15290
  br label %15304

15304:                                            ; preds = %15303
  br label %15305

15305:                                            ; preds = %15304
  call void @llvm.lifetime.start.p0(i64 4, ptr %319) #11
  %15306 = call ptr @__errno_location() #12
  %15307 = load i32, ptr %15306, align 4, !tbaa !5
  store i32 %15307, ptr %319, align 4, !tbaa !5
  %15308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15309 = call i32 @s2n_print_stacktrace(ptr noundef %15308)
  %15310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15311 = trunc i8 %15310 to i1
  br i1 %15311, label %15312, label %15334

15312:                                            ; preds = %15305
  %15313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15314 = call i32 @fileno(ptr noundef %15313) #11
  %15315 = call i32 @isatty(i32 noundef %15314) #11
  %15316 = icmp ne i32 %15315, 0
  br i1 %15316, label %15317, label %15334

15317:                                            ; preds = %15312
  %15318 = load i32, ptr %319, align 4, !tbaa !5
  %15319 = call ptr @__errno_location() #12
  store i32 %15318, ptr %15319, align 4, !tbaa !5
  %15320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15321 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %15323, ptr noundef @.str.4)
  %15325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15326 = load i32, ptr %15325, align 4, !tbaa !5
  %15327 = call ptr @s2n_strerror_debug(i32 noundef %15326, ptr noundef @.str.4)
  %15328 = call ptr @__errno_location() #12
  %15329 = load i32, ptr %15328, align 4, !tbaa !5
  %15330 = call ptr @strerror(i32 noundef %15329) #11
  %15331 = call ptr @__errno_location() #12
  %15332 = load i32, ptr %15331, align 4, !tbaa !5
  %15333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15320, ptr noundef @.str.2, i32 noundef %15321, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 629, ptr noundef %15324, ptr noundef %15327, ptr noundef %15330, i32 noundef %15332) #11
  br label %15351

15334:                                            ; preds = %15312, %15305
  %15335 = load i32, ptr %319, align 4, !tbaa !5
  %15336 = call ptr @__errno_location() #12
  store i32 %15335, ptr %15336, align 4, !tbaa !5
  %15337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15338 = load i32, ptr @test_count, align 4, !tbaa !5
  %15339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15340 = load i32, ptr %15339, align 4, !tbaa !5
  %15341 = call ptr @s2n_strerror(i32 noundef %15340, ptr noundef @.str.4)
  %15342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15343 = load i32, ptr %15342, align 4, !tbaa !5
  %15344 = call ptr @s2n_strerror_debug(i32 noundef %15343, ptr noundef @.str.4)
  %15345 = call ptr @__errno_location() #12
  %15346 = load i32, ptr %15345, align 4, !tbaa !5
  %15347 = call ptr @strerror(i32 noundef %15346) #11
  %15348 = call ptr @__errno_location() #12
  %15349 = load i32, ptr %15348, align 4, !tbaa !5
  %15350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15337, ptr noundef @.str.5, i32 noundef %15338, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 629, ptr noundef %15341, ptr noundef %15344, ptr noundef %15347, i32 noundef %15349) #11
  br label %15351

15351:                                            ; preds = %15334, %15317
  call void @llvm.lifetime.end.p0(i64 4, ptr %319) #11
  br label %15352

15352:                                            ; preds = %15351
  br label %15353

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

15354:                                            ; No predecessors!
  br label %15355

15355:                                            ; preds = %15354
  br label %15356

15356:                                            ; preds = %15355, %15290
  br label %15357

15357:                                            ; preds = %15356
  br label %15358

15358:                                            ; preds = %15357
  br label %15359

15359:                                            ; preds = %15358
  %15360 = load i32, ptr @test_count, align 4, !tbaa !5
  %15361 = add nsw i32 %15360, 1
  store i32 %15361, ptr @test_count, align 4, !tbaa !5
  %15362 = load ptr, ptr %302, align 8, !tbaa !9
  %15363 = getelementptr inbounds %struct.s2n_connection, ptr %15362, i32 0, i32 31
  %15364 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15363, i32 0, i32 4
  %15365 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15364, i32 0, i32 1
  %15366 = getelementptr inbounds %struct.s2n_kem_params, ptr %15365, i32 0, i32 0
  %15367 = load ptr, ptr %15366, align 8, !tbaa !95
  %15368 = icmp eq ptr %15367, null
  br i1 %15368, label %15369, label %15422

15369:                                            ; preds = %15359
  br label %15370

15370:                                            ; preds = %15369
  br label %15371

15371:                                            ; preds = %15370
  call void @llvm.lifetime.start.p0(i64 4, ptr %320) #11
  %15372 = call ptr @__errno_location() #12
  %15373 = load i32, ptr %15372, align 4, !tbaa !5
  store i32 %15373, ptr %320, align 4, !tbaa !5
  %15374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15375 = call i32 @s2n_print_stacktrace(ptr noundef %15374)
  %15376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15377 = trunc i8 %15376 to i1
  br i1 %15377, label %15378, label %15400

15378:                                            ; preds = %15371
  %15379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15380 = call i32 @fileno(ptr noundef %15379) #11
  %15381 = call i32 @isatty(i32 noundef %15380) #11
  %15382 = icmp ne i32 %15381, 0
  br i1 %15382, label %15383, label %15400

15383:                                            ; preds = %15378
  %15384 = load i32, ptr %320, align 4, !tbaa !5
  %15385 = call ptr @__errno_location() #12
  store i32 %15384, ptr %15385, align 4, !tbaa !5
  %15386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15387 = load i32, ptr @test_count, align 4, !tbaa !5
  %15388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15389 = load i32, ptr %15388, align 4, !tbaa !5
  %15390 = call ptr @s2n_strerror(i32 noundef %15389, ptr noundef @.str.4)
  %15391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15392 = load i32, ptr %15391, align 4, !tbaa !5
  %15393 = call ptr @s2n_strerror_debug(i32 noundef %15392, ptr noundef @.str.4)
  %15394 = call ptr @__errno_location() #12
  %15395 = load i32, ptr %15394, align 4, !tbaa !5
  %15396 = call ptr @strerror(i32 noundef %15395) #11
  %15397 = call ptr @__errno_location() #12
  %15398 = load i32, ptr %15397, align 4, !tbaa !5
  %15399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15386, ptr noundef @.str.2, i32 noundef %15387, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 630, ptr noundef %15390, ptr noundef %15393, ptr noundef %15396, i32 noundef %15398) #11
  br label %15417

15400:                                            ; preds = %15378, %15371
  %15401 = load i32, ptr %320, align 4, !tbaa !5
  %15402 = call ptr @__errno_location() #12
  store i32 %15401, ptr %15402, align 4, !tbaa !5
  %15403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15404 = load i32, ptr @test_count, align 4, !tbaa !5
  %15405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15406 = load i32, ptr %15405, align 4, !tbaa !5
  %15407 = call ptr @s2n_strerror(i32 noundef %15406, ptr noundef @.str.4)
  %15408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15409 = load i32, ptr %15408, align 4, !tbaa !5
  %15410 = call ptr @s2n_strerror_debug(i32 noundef %15409, ptr noundef @.str.4)
  %15411 = call ptr @__errno_location() #12
  %15412 = load i32, ptr %15411, align 4, !tbaa !5
  %15413 = call ptr @strerror(i32 noundef %15412) #11
  %15414 = call ptr @__errno_location() #12
  %15415 = load i32, ptr %15414, align 4, !tbaa !5
  %15416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15403, ptr noundef @.str.5, i32 noundef %15404, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 630, ptr noundef %15407, ptr noundef %15410, ptr noundef %15413, i32 noundef %15415) #11
  br label %15417

15417:                                            ; preds = %15400, %15383
  call void @llvm.lifetime.end.p0(i64 4, ptr %320) #11
  br label %15418

15418:                                            ; preds = %15417
  br label %15419

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

15420:                                            ; No predecessors!
  br label %15421

15421:                                            ; preds = %15420
  br label %15422

15422:                                            ; preds = %15421, %15359
  br label %15423

15423:                                            ; preds = %15422
  br label %15424

15424:                                            ; preds = %15423
  br label %15425

15425:                                            ; preds = %15424
  %15426 = load i32, ptr @test_count, align 4, !tbaa !5
  %15427 = add nsw i32 %15426, 1
  store i32 %15427, ptr @test_count, align 4, !tbaa !5
  %15428 = load ptr, ptr %302, align 8, !tbaa !9
  %15429 = getelementptr inbounds %struct.s2n_connection, ptr %15428, i32 0, i32 31
  %15430 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15429, i32 0, i32 4
  %15431 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15430, i32 0, i32 1
  %15432 = getelementptr inbounds %struct.s2n_kem_params, ptr %15431, i32 0, i32 0
  %15433 = load ptr, ptr %15432, align 8, !tbaa !95
  %15434 = load ptr, ptr %301, align 8, !tbaa !9
  %15435 = getelementptr inbounds %struct.s2n_kem_group, ptr %15434, i32 0, i32 3
  %15436 = load ptr, ptr %15435, align 8, !tbaa !91
  %15437 = icmp eq ptr %15433, %15436
  br i1 %15437, label %15491, label %15438

15438:                                            ; preds = %15425
  br label %15439

15439:                                            ; preds = %15438
  br label %15440

15440:                                            ; preds = %15439
  call void @llvm.lifetime.start.p0(i64 4, ptr %321) #11
  %15441 = call ptr @__errno_location() #12
  %15442 = load i32, ptr %15441, align 4, !tbaa !5
  store i32 %15442, ptr %321, align 4, !tbaa !5
  %15443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15444 = call i32 @s2n_print_stacktrace(ptr noundef %15443)
  %15445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15446 = trunc i8 %15445 to i1
  br i1 %15446, label %15447, label %15469

15447:                                            ; preds = %15440
  %15448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15449 = call i32 @fileno(ptr noundef %15448) #11
  %15450 = call i32 @isatty(i32 noundef %15449) #11
  %15451 = icmp ne i32 %15450, 0
  br i1 %15451, label %15452, label %15469

15452:                                            ; preds = %15447
  %15453 = load i32, ptr %321, align 4, !tbaa !5
  %15454 = call ptr @__errno_location() #12
  store i32 %15453, ptr %15454, align 4, !tbaa !5
  %15455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15456 = load i32, ptr @test_count, align 4, !tbaa !5
  %15457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15458 = load i32, ptr %15457, align 4, !tbaa !5
  %15459 = call ptr @s2n_strerror(i32 noundef %15458, ptr noundef @.str.4)
  %15460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15461 = load i32, ptr %15460, align 4, !tbaa !5
  %15462 = call ptr @s2n_strerror_debug(i32 noundef %15461, ptr noundef @.str.4)
  %15463 = call ptr @__errno_location() #12
  %15464 = load i32, ptr %15463, align 4, !tbaa !5
  %15465 = call ptr @strerror(i32 noundef %15464) #11
  %15466 = call ptr @__errno_location() #12
  %15467 = load i32, ptr %15466, align 4, !tbaa !5
  %15468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15455, ptr noundef @.str.2, i32 noundef %15456, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 631, ptr noundef %15459, ptr noundef %15462, ptr noundef %15465, i32 noundef %15467) #11
  br label %15486

15469:                                            ; preds = %15447, %15440
  %15470 = load i32, ptr %321, align 4, !tbaa !5
  %15471 = call ptr @__errno_location() #12
  store i32 %15470, ptr %15471, align 4, !tbaa !5
  %15472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15473 = load i32, ptr @test_count, align 4, !tbaa !5
  %15474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15475 = load i32, ptr %15474, align 4, !tbaa !5
  %15476 = call ptr @s2n_strerror(i32 noundef %15475, ptr noundef @.str.4)
  %15477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15478 = load i32, ptr %15477, align 4, !tbaa !5
  %15479 = call ptr @s2n_strerror_debug(i32 noundef %15478, ptr noundef @.str.4)
  %15480 = call ptr @__errno_location() #12
  %15481 = load i32, ptr %15480, align 4, !tbaa !5
  %15482 = call ptr @strerror(i32 noundef %15481) #11
  %15483 = call ptr @__errno_location() #12
  %15484 = load i32, ptr %15483, align 4, !tbaa !5
  %15485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15472, ptr noundef @.str.5, i32 noundef %15473, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 631, ptr noundef %15476, ptr noundef %15479, ptr noundef %15482, i32 noundef %15484) #11
  br label %15486

15486:                                            ; preds = %15469, %15452
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #11
  br label %15487

15487:                                            ; preds = %15486
  br label %15488

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

15489:                                            ; No predecessors!
  br label %15490

15490:                                            ; preds = %15489
  br label %15491

15491:                                            ; preds = %15490, %15425
  br label %15492

15492:                                            ; preds = %15491
  br label %15493

15493:                                            ; preds = %15492
  br label %15494

15494:                                            ; preds = %15493
  %15495 = load i32, ptr @test_count, align 4, !tbaa !5
  %15496 = add nsw i32 %15495, 1
  store i32 %15496, ptr @test_count, align 4, !tbaa !5
  %15497 = load ptr, ptr %302, align 8, !tbaa !9
  %15498 = getelementptr inbounds %struct.s2n_connection, ptr %15497, i32 0, i32 31
  %15499 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15498, i32 0, i32 5
  %15500 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15499, i32 0, i32 0
  %15501 = load ptr, ptr %15500, align 8, !tbaa !88
  %15502 = load ptr, ptr %301, align 8, !tbaa !9
  %15503 = icmp eq ptr %15501, %15502
  br i1 %15503, label %15557, label %15504

15504:                                            ; preds = %15494
  br label %15505

15505:                                            ; preds = %15504
  br label %15506

15506:                                            ; preds = %15505
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #11
  %15507 = call ptr @__errno_location() #12
  %15508 = load i32, ptr %15507, align 4, !tbaa !5
  store i32 %15508, ptr %322, align 4, !tbaa !5
  %15509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15510 = call i32 @s2n_print_stacktrace(ptr noundef %15509)
  %15511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15512 = trunc i8 %15511 to i1
  br i1 %15512, label %15513, label %15535

15513:                                            ; preds = %15506
  %15514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15515 = call i32 @fileno(ptr noundef %15514) #11
  %15516 = call i32 @isatty(i32 noundef %15515) #11
  %15517 = icmp ne i32 %15516, 0
  br i1 %15517, label %15518, label %15535

15518:                                            ; preds = %15513
  %15519 = load i32, ptr %322, align 4, !tbaa !5
  %15520 = call ptr @__errno_location() #12
  store i32 %15519, ptr %15520, align 4, !tbaa !5
  %15521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15522 = load i32, ptr @test_count, align 4, !tbaa !5
  %15523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15524 = load i32, ptr %15523, align 4, !tbaa !5
  %15525 = call ptr @s2n_strerror(i32 noundef %15524, ptr noundef @.str.4)
  %15526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15527 = load i32, ptr %15526, align 4, !tbaa !5
  %15528 = call ptr @s2n_strerror_debug(i32 noundef %15527, ptr noundef @.str.4)
  %15529 = call ptr @__errno_location() #12
  %15530 = load i32, ptr %15529, align 4, !tbaa !5
  %15531 = call ptr @strerror(i32 noundef %15530) #11
  %15532 = call ptr @__errno_location() #12
  %15533 = load i32, ptr %15532, align 4, !tbaa !5
  %15534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15521, ptr noundef @.str.2, i32 noundef %15522, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 633, ptr noundef %15525, ptr noundef %15528, ptr noundef %15531, i32 noundef %15533) #11
  br label %15552

15535:                                            ; preds = %15513, %15506
  %15536 = load i32, ptr %322, align 4, !tbaa !5
  %15537 = call ptr @__errno_location() #12
  store i32 %15536, ptr %15537, align 4, !tbaa !5
  %15538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15539 = load i32, ptr @test_count, align 4, !tbaa !5
  %15540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15541 = load i32, ptr %15540, align 4, !tbaa !5
  %15542 = call ptr @s2n_strerror(i32 noundef %15541, ptr noundef @.str.4)
  %15543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15544 = load i32, ptr %15543, align 4, !tbaa !5
  %15545 = call ptr @s2n_strerror_debug(i32 noundef %15544, ptr noundef @.str.4)
  %15546 = call ptr @__errno_location() #12
  %15547 = load i32, ptr %15546, align 4, !tbaa !5
  %15548 = call ptr @strerror(i32 noundef %15547) #11
  %15549 = call ptr @__errno_location() #12
  %15550 = load i32, ptr %15549, align 4, !tbaa !5
  %15551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15538, ptr noundef @.str.5, i32 noundef %15539, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 633, ptr noundef %15542, ptr noundef %15545, ptr noundef %15548, i32 noundef %15550) #11
  br label %15552

15552:                                            ; preds = %15535, %15518
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #11
  br label %15553

15553:                                            ; preds = %15552
  br label %15554

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

15555:                                            ; No predecessors!
  br label %15556

15556:                                            ; preds = %15555
  br label %15557

15557:                                            ; preds = %15556, %15494
  br label %15558

15558:                                            ; preds = %15557
  br label %15559

15559:                                            ; preds = %15558
  br label %15560

15560:                                            ; preds = %15559
  %15561 = load i32, ptr @test_count, align 4, !tbaa !5
  %15562 = add nsw i32 %15561, 1
  store i32 %15562, ptr @test_count, align 4, !tbaa !5
  %15563 = load ptr, ptr %302, align 8, !tbaa !9
  %15564 = getelementptr inbounds %struct.s2n_connection, ptr %15563, i32 0, i32 31
  %15565 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15564, i32 0, i32 5
  %15566 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15565, i32 0, i32 2
  %15567 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %15566, i32 0, i32 0
  %15568 = load ptr, ptr %15567, align 8, !tbaa !90
  %15569 = load ptr, ptr %301, align 8, !tbaa !9
  %15570 = getelementptr inbounds %struct.s2n_kem_group, ptr %15569, i32 0, i32 2
  %15571 = load ptr, ptr %15570, align 8, !tbaa !89
  %15572 = icmp eq ptr %15568, %15571
  br i1 %15572, label %15626, label %15573

15573:                                            ; preds = %15560
  br label %15574

15574:                                            ; preds = %15573
  br label %15575

15575:                                            ; preds = %15574
  call void @llvm.lifetime.start.p0(i64 4, ptr %323) #11
  %15576 = call ptr @__errno_location() #12
  %15577 = load i32, ptr %15576, align 4, !tbaa !5
  store i32 %15577, ptr %323, align 4, !tbaa !5
  %15578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15579 = call i32 @s2n_print_stacktrace(ptr noundef %15578)
  %15580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15581 = trunc i8 %15580 to i1
  br i1 %15581, label %15582, label %15604

15582:                                            ; preds = %15575
  %15583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15584 = call i32 @fileno(ptr noundef %15583) #11
  %15585 = call i32 @isatty(i32 noundef %15584) #11
  %15586 = icmp ne i32 %15585, 0
  br i1 %15586, label %15587, label %15604

15587:                                            ; preds = %15582
  %15588 = load i32, ptr %323, align 4, !tbaa !5
  %15589 = call ptr @__errno_location() #12
  store i32 %15588, ptr %15589, align 4, !tbaa !5
  %15590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15591 = load i32, ptr @test_count, align 4, !tbaa !5
  %15592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15593 = load i32, ptr %15592, align 4, !tbaa !5
  %15594 = call ptr @s2n_strerror(i32 noundef %15593, ptr noundef @.str.4)
  %15595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15596 = load i32, ptr %15595, align 4, !tbaa !5
  %15597 = call ptr @s2n_strerror_debug(i32 noundef %15596, ptr noundef @.str.4)
  %15598 = call ptr @__errno_location() #12
  %15599 = load i32, ptr %15598, align 4, !tbaa !5
  %15600 = call ptr @strerror(i32 noundef %15599) #11
  %15601 = call ptr @__errno_location() #12
  %15602 = load i32, ptr %15601, align 4, !tbaa !5
  %15603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15590, ptr noundef @.str.2, i32 noundef %15591, ptr noundef @.str.145, ptr noundef @.str.1, i32 noundef 634, ptr noundef %15594, ptr noundef %15597, ptr noundef %15600, i32 noundef %15602) #11
  br label %15621

15604:                                            ; preds = %15582, %15575
  %15605 = load i32, ptr %323, align 4, !tbaa !5
  %15606 = call ptr @__errno_location() #12
  store i32 %15605, ptr %15606, align 4, !tbaa !5
  %15607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15608 = load i32, ptr @test_count, align 4, !tbaa !5
  %15609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15610 = load i32, ptr %15609, align 4, !tbaa !5
  %15611 = call ptr @s2n_strerror(i32 noundef %15610, ptr noundef @.str.4)
  %15612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15613 = load i32, ptr %15612, align 4, !tbaa !5
  %15614 = call ptr @s2n_strerror_debug(i32 noundef %15613, ptr noundef @.str.4)
  %15615 = call ptr @__errno_location() #12
  %15616 = load i32, ptr %15615, align 4, !tbaa !5
  %15617 = call ptr @strerror(i32 noundef %15616) #11
  %15618 = call ptr @__errno_location() #12
  %15619 = load i32, ptr %15618, align 4, !tbaa !5
  %15620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15607, ptr noundef @.str.5, i32 noundef %15608, ptr noundef @.str.145, ptr noundef @.str.1, i32 noundef 634, ptr noundef %15611, ptr noundef %15614, ptr noundef %15617, i32 noundef %15619) #11
  br label %15621

15621:                                            ; preds = %15604, %15587
  call void @llvm.lifetime.end.p0(i64 4, ptr %323) #11
  br label %15622

15622:                                            ; preds = %15621
  br label %15623

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

15624:                                            ; No predecessors!
  br label %15625

15625:                                            ; preds = %15624
  br label %15626

15626:                                            ; preds = %15625, %15560
  br label %15627

15627:                                            ; preds = %15626
  br label %15628

15628:                                            ; preds = %15627
  br label %15629

15629:                                            ; preds = %15628
  %15630 = load i32, ptr @test_count, align 4, !tbaa !5
  %15631 = add nsw i32 %15630, 1
  store i32 %15631, ptr @test_count, align 4, !tbaa !5
  %15632 = load ptr, ptr %302, align 8, !tbaa !9
  %15633 = getelementptr inbounds %struct.s2n_connection, ptr %15632, i32 0, i32 31
  %15634 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15633, i32 0, i32 5
  %15635 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15634, i32 0, i32 1
  %15636 = getelementptr inbounds %struct.s2n_kem_params, ptr %15635, i32 0, i32 0
  %15637 = load ptr, ptr %15636, align 8, !tbaa !92
  %15638 = load ptr, ptr %301, align 8, !tbaa !9
  %15639 = getelementptr inbounds %struct.s2n_kem_group, ptr %15638, i32 0, i32 3
  %15640 = load ptr, ptr %15639, align 8, !tbaa !91
  %15641 = icmp eq ptr %15637, %15640
  br i1 %15641, label %15695, label %15642

15642:                                            ; preds = %15629
  br label %15643

15643:                                            ; preds = %15642
  br label %15644

15644:                                            ; preds = %15643
  call void @llvm.lifetime.start.p0(i64 4, ptr %324) #11
  %15645 = call ptr @__errno_location() #12
  %15646 = load i32, ptr %15645, align 4, !tbaa !5
  store i32 %15646, ptr %324, align 4, !tbaa !5
  %15647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15648 = call i32 @s2n_print_stacktrace(ptr noundef %15647)
  %15649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15650 = trunc i8 %15649 to i1
  br i1 %15650, label %15651, label %15673

15651:                                            ; preds = %15644
  %15652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15653 = call i32 @fileno(ptr noundef %15652) #11
  %15654 = call i32 @isatty(i32 noundef %15653) #11
  %15655 = icmp ne i32 %15654, 0
  br i1 %15655, label %15656, label %15673

15656:                                            ; preds = %15651
  %15657 = load i32, ptr %324, align 4, !tbaa !5
  %15658 = call ptr @__errno_location() #12
  store i32 %15657, ptr %15658, align 4, !tbaa !5
  %15659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15660 = load i32, ptr @test_count, align 4, !tbaa !5
  %15661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15662 = load i32, ptr %15661, align 4, !tbaa !5
  %15663 = call ptr @s2n_strerror(i32 noundef %15662, ptr noundef @.str.4)
  %15664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15665 = load i32, ptr %15664, align 4, !tbaa !5
  %15666 = call ptr @s2n_strerror_debug(i32 noundef %15665, ptr noundef @.str.4)
  %15667 = call ptr @__errno_location() #12
  %15668 = load i32, ptr %15667, align 4, !tbaa !5
  %15669 = call ptr @strerror(i32 noundef %15668) #11
  %15670 = call ptr @__errno_location() #12
  %15671 = load i32, ptr %15670, align 4, !tbaa !5
  %15672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15659, ptr noundef @.str.2, i32 noundef %15660, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 635, ptr noundef %15663, ptr noundef %15666, ptr noundef %15669, i32 noundef %15671) #11
  br label %15690

15673:                                            ; preds = %15651, %15644
  %15674 = load i32, ptr %324, align 4, !tbaa !5
  %15675 = call ptr @__errno_location() #12
  store i32 %15674, ptr %15675, align 4, !tbaa !5
  %15676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15677 = load i32, ptr @test_count, align 4, !tbaa !5
  %15678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15679 = load i32, ptr %15678, align 4, !tbaa !5
  %15680 = call ptr @s2n_strerror(i32 noundef %15679, ptr noundef @.str.4)
  %15681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15682 = load i32, ptr %15681, align 4, !tbaa !5
  %15683 = call ptr @s2n_strerror_debug(i32 noundef %15682, ptr noundef @.str.4)
  %15684 = call ptr @__errno_location() #12
  %15685 = load i32, ptr %15684, align 4, !tbaa !5
  %15686 = call ptr @strerror(i32 noundef %15685) #11
  %15687 = call ptr @__errno_location() #12
  %15688 = load i32, ptr %15687, align 4, !tbaa !5
  %15689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15676, ptr noundef @.str.5, i32 noundef %15677, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 635, ptr noundef %15680, ptr noundef %15683, ptr noundef %15686, i32 noundef %15688) #11
  br label %15690

15690:                                            ; preds = %15673, %15656
  call void @llvm.lifetime.end.p0(i64 4, ptr %324) #11
  br label %15691

15691:                                            ; preds = %15690
  br label %15692

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

15693:                                            ; No predecessors!
  br label %15694

15694:                                            ; preds = %15693
  br label %15695

15695:                                            ; preds = %15694, %15629
  br label %15696

15696:                                            ; preds = %15695
  br label %15697

15697:                                            ; preds = %15696
  br label %15698

15698:                                            ; preds = %15697
  %15699 = load i32, ptr @test_count, align 4, !tbaa !5
  %15700 = add nsw i32 %15699, 1
  store i32 %15700, ptr @test_count, align 4, !tbaa !5
  %15701 = load ptr, ptr %302, align 8, !tbaa !9
  %15702 = getelementptr inbounds %struct.s2n_connection, ptr %15701, i32 0, i32 31
  %15703 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15702, i32 0, i32 5
  %15704 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15703, i32 0, i32 1
  %15705 = getelementptr inbounds %struct.s2n_kem_params, ptr %15704, i32 0, i32 3
  %15706 = getelementptr inbounds %struct.s2n_blob, ptr %15705, i32 0, i32 0
  %15707 = load ptr, ptr %15706, align 8, !tbaa !96
  %15708 = icmp eq ptr %15707, null
  br i1 %15708, label %15709, label %15762

15709:                                            ; preds = %15698
  br label %15710

15710:                                            ; preds = %15709
  br label %15711

15711:                                            ; preds = %15710
  call void @llvm.lifetime.start.p0(i64 4, ptr %325) #11
  %15712 = call ptr @__errno_location() #12
  %15713 = load i32, ptr %15712, align 4, !tbaa !5
  store i32 %15713, ptr %325, align 4, !tbaa !5
  %15714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15715 = call i32 @s2n_print_stacktrace(ptr noundef %15714)
  %15716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15717 = trunc i8 %15716 to i1
  br i1 %15717, label %15718, label %15740

15718:                                            ; preds = %15711
  %15719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15720 = call i32 @fileno(ptr noundef %15719) #11
  %15721 = call i32 @isatty(i32 noundef %15720) #11
  %15722 = icmp ne i32 %15721, 0
  br i1 %15722, label %15723, label %15740

15723:                                            ; preds = %15718
  %15724 = load i32, ptr %325, align 4, !tbaa !5
  %15725 = call ptr @__errno_location() #12
  store i32 %15724, ptr %15725, align 4, !tbaa !5
  %15726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15727 = load i32, ptr @test_count, align 4, !tbaa !5
  %15728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15729 = load i32, ptr %15728, align 4, !tbaa !5
  %15730 = call ptr @s2n_strerror(i32 noundef %15729, ptr noundef @.str.4)
  %15731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15732 = load i32, ptr %15731, align 4, !tbaa !5
  %15733 = call ptr @s2n_strerror_debug(i32 noundef %15732, ptr noundef @.str.4)
  %15734 = call ptr @__errno_location() #12
  %15735 = load i32, ptr %15734, align 4, !tbaa !5
  %15736 = call ptr @strerror(i32 noundef %15735) #11
  %15737 = call ptr @__errno_location() #12
  %15738 = load i32, ptr %15737, align 4, !tbaa !5
  %15739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15726, ptr noundef @.str.2, i32 noundef %15727, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 636, ptr noundef %15730, ptr noundef %15733, ptr noundef %15736, i32 noundef %15738) #11
  br label %15757

15740:                                            ; preds = %15718, %15711
  %15741 = load i32, ptr %325, align 4, !tbaa !5
  %15742 = call ptr @__errno_location() #12
  store i32 %15741, ptr %15742, align 4, !tbaa !5
  %15743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15744 = load i32, ptr @test_count, align 4, !tbaa !5
  %15745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15746 = load i32, ptr %15745, align 4, !tbaa !5
  %15747 = call ptr @s2n_strerror(i32 noundef %15746, ptr noundef @.str.4)
  %15748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15749 = load i32, ptr %15748, align 4, !tbaa !5
  %15750 = call ptr @s2n_strerror_debug(i32 noundef %15749, ptr noundef @.str.4)
  %15751 = call ptr @__errno_location() #12
  %15752 = load i32, ptr %15751, align 4, !tbaa !5
  %15753 = call ptr @strerror(i32 noundef %15752) #11
  %15754 = call ptr @__errno_location() #12
  %15755 = load i32, ptr %15754, align 4, !tbaa !5
  %15756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15743, ptr noundef @.str.5, i32 noundef %15744, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 636, ptr noundef %15747, ptr noundef %15750, ptr noundef %15753, i32 noundef %15755) #11
  br label %15757

15757:                                            ; preds = %15740, %15723
  call void @llvm.lifetime.end.p0(i64 4, ptr %325) #11
  br label %15758

15758:                                            ; preds = %15757
  br label %15759

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

15760:                                            ; No predecessors!
  br label %15761

15761:                                            ; preds = %15760
  br label %15762

15762:                                            ; preds = %15761, %15698
  br label %15763

15763:                                            ; preds = %15762
  br label %15764

15764:                                            ; preds = %15763
  br label %15765

15765:                                            ; preds = %15764
  %15766 = load i32, ptr @test_count, align 4, !tbaa !5
  %15767 = add nsw i32 %15766, 1
  store i32 %15767, ptr @test_count, align 4, !tbaa !5
  %15768 = load ptr, ptr %302, align 8, !tbaa !9
  %15769 = getelementptr inbounds %struct.s2n_connection, ptr %15768, i32 0, i32 31
  %15770 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15769, i32 0, i32 5
  %15771 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15770, i32 0, i32 1
  %15772 = getelementptr inbounds %struct.s2n_kem_params, ptr %15771, i32 0, i32 3
  %15773 = getelementptr inbounds %struct.s2n_blob, ptr %15772, i32 0, i32 1
  %15774 = load i32, ptr %15773, align 8, !tbaa !97
  %15775 = load ptr, ptr %301, align 8, !tbaa !9
  %15776 = getelementptr inbounds %struct.s2n_kem_group, ptr %15775, i32 0, i32 3
  %15777 = load ptr, ptr %15776, align 8, !tbaa !91
  %15778 = getelementptr inbounds %struct.s2n_kem, ptr %15777, i32 0, i32 5
  %15779 = load i16, ptr %15778, align 2, !tbaa !98
  %15780 = zext i16 %15779 to i32
  %15781 = icmp eq i32 %15774, %15780
  br i1 %15781, label %15835, label %15782

15782:                                            ; preds = %15765
  br label %15783

15783:                                            ; preds = %15782
  br label %15784

15784:                                            ; preds = %15783
  call void @llvm.lifetime.start.p0(i64 4, ptr %326) #11
  %15785 = call ptr @__errno_location() #12
  %15786 = load i32, ptr %15785, align 4, !tbaa !5
  store i32 %15786, ptr %326, align 4, !tbaa !5
  %15787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15788 = call i32 @s2n_print_stacktrace(ptr noundef %15787)
  %15789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15790 = trunc i8 %15789 to i1
  br i1 %15790, label %15791, label %15813

15791:                                            ; preds = %15784
  %15792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15793 = call i32 @fileno(ptr noundef %15792) #11
  %15794 = call i32 @isatty(i32 noundef %15793) #11
  %15795 = icmp ne i32 %15794, 0
  br i1 %15795, label %15796, label %15813

15796:                                            ; preds = %15791
  %15797 = load i32, ptr %326, align 4, !tbaa !5
  %15798 = call ptr @__errno_location() #12
  store i32 %15797, ptr %15798, align 4, !tbaa !5
  %15799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15800 = load i32, ptr @test_count, align 4, !tbaa !5
  %15801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15802 = load i32, ptr %15801, align 4, !tbaa !5
  %15803 = call ptr @s2n_strerror(i32 noundef %15802, ptr noundef @.str.4)
  %15804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15805 = load i32, ptr %15804, align 4, !tbaa !5
  %15806 = call ptr @s2n_strerror_debug(i32 noundef %15805, ptr noundef @.str.4)
  %15807 = call ptr @__errno_location() #12
  %15808 = load i32, ptr %15807, align 4, !tbaa !5
  %15809 = call ptr @strerror(i32 noundef %15808) #11
  %15810 = call ptr @__errno_location() #12
  %15811 = load i32, ptr %15810, align 4, !tbaa !5
  %15812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15799, ptr noundef @.str.2, i32 noundef %15800, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 638, ptr noundef %15803, ptr noundef %15806, ptr noundef %15809, i32 noundef %15811) #11
  br label %15830

15813:                                            ; preds = %15791, %15784
  %15814 = load i32, ptr %326, align 4, !tbaa !5
  %15815 = call ptr @__errno_location() #12
  store i32 %15814, ptr %15815, align 4, !tbaa !5
  %15816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15817 = load i32, ptr @test_count, align 4, !tbaa !5
  %15818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15819 = load i32, ptr %15818, align 4, !tbaa !5
  %15820 = call ptr @s2n_strerror(i32 noundef %15819, ptr noundef @.str.4)
  %15821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15822 = load i32, ptr %15821, align 4, !tbaa !5
  %15823 = call ptr @s2n_strerror_debug(i32 noundef %15822, ptr noundef @.str.4)
  %15824 = call ptr @__errno_location() #12
  %15825 = load i32, ptr %15824, align 4, !tbaa !5
  %15826 = call ptr @strerror(i32 noundef %15825) #11
  %15827 = call ptr @__errno_location() #12
  %15828 = load i32, ptr %15827, align 4, !tbaa !5
  %15829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15816, ptr noundef @.str.5, i32 noundef %15817, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 638, ptr noundef %15820, ptr noundef %15823, ptr noundef %15826, i32 noundef %15828) #11
  br label %15830

15830:                                            ; preds = %15813, %15796
  call void @llvm.lifetime.end.p0(i64 4, ptr %326) #11
  br label %15831

15831:                                            ; preds = %15830
  br label %15832

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

15833:                                            ; No predecessors!
  br label %15834

15834:                                            ; preds = %15833
  br label %15835

15835:                                            ; preds = %15834, %15765
  br label %15836

15836:                                            ; preds = %15835
  br label %15837

15837:                                            ; preds = %15836
  br label %15838

15838:                                            ; preds = %15837
  %15839 = load ptr, ptr %301, align 8, !tbaa !9
  %15840 = getelementptr inbounds %struct.s2n_kem_group, ptr %15839, i32 0, i32 3
  %15841 = load ptr, ptr %15840, align 8, !tbaa !91
  %15842 = getelementptr inbounds %struct.s2n_kem, ptr %15841, i32 0, i32 5
  %15843 = load i16, ptr %15842, align 2, !tbaa !98
  %15844 = zext i16 %15843 to i32
  %15845 = icmp ne i32 %15844, 0
  br i1 %15845, label %15846, label %15924

15846:                                            ; preds = %15838
  br label %15847

15847:                                            ; preds = %15846
  %15848 = load i32, ptr @test_count, align 4, !tbaa !5
  %15849 = add nsw i32 %15848, 1
  store i32 %15849, ptr @test_count, align 4, !tbaa !5
  %15850 = load ptr, ptr %302, align 8, !tbaa !9
  %15851 = getelementptr inbounds %struct.s2n_connection, ptr %15850, i32 0, i32 31
  %15852 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15851, i32 0, i32 5
  %15853 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15852, i32 0, i32 1
  %15854 = getelementptr inbounds %struct.s2n_kem_params, ptr %15853, i32 0, i32 3
  %15855 = getelementptr inbounds %struct.s2n_blob, ptr %15854, i32 0, i32 0
  %15856 = load ptr, ptr %15855, align 8, !tbaa !96
  %15857 = getelementptr inbounds %struct.s2n_stuffer, ptr %305, i32 0, i32 0
  %15858 = getelementptr inbounds %struct.s2n_blob, ptr %15857, i32 0, i32 0
  %15859 = load ptr, ptr %15858, align 8, !tbaa !100
  %15860 = load ptr, ptr %301, align 8, !tbaa !9
  %15861 = getelementptr inbounds %struct.s2n_kem_group, ptr %15860, i32 0, i32 3
  %15862 = load ptr, ptr %15861, align 8, !tbaa !91
  %15863 = getelementptr inbounds %struct.s2n_kem, ptr %15862, i32 0, i32 5
  %15864 = load i16, ptr %15863, align 2, !tbaa !98
  %15865 = zext i16 %15864 to i64
  %15866 = call i32 @memcmp(ptr noundef %15856, ptr noundef %15859, i64 noundef %15865) #14
  %15867 = icmp eq i32 %15866, 0
  br i1 %15867, label %15921, label %15868

15868:                                            ; preds = %15847
  br label %15869

15869:                                            ; preds = %15868
  br label %15870

15870:                                            ; preds = %15869
  call void @llvm.lifetime.start.p0(i64 4, ptr %327) #11
  %15871 = call ptr @__errno_location() #12
  %15872 = load i32, ptr %15871, align 4, !tbaa !5
  store i32 %15872, ptr %327, align 4, !tbaa !5
  %15873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15874 = call i32 @s2n_print_stacktrace(ptr noundef %15873)
  %15875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15876 = trunc i8 %15875 to i1
  br i1 %15876, label %15877, label %15899

15877:                                            ; preds = %15870
  %15878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15879 = call i32 @fileno(ptr noundef %15878) #11
  %15880 = call i32 @isatty(i32 noundef %15879) #11
  %15881 = icmp ne i32 %15880, 0
  br i1 %15881, label %15882, label %15899

15882:                                            ; preds = %15877
  %15883 = load i32, ptr %327, align 4, !tbaa !5
  %15884 = call ptr @__errno_location() #12
  store i32 %15883, ptr %15884, align 4, !tbaa !5
  %15885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15886 = load i32, ptr @test_count, align 4, !tbaa !5
  %15887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15888 = load i32, ptr %15887, align 4, !tbaa !5
  %15889 = call ptr @s2n_strerror(i32 noundef %15888, ptr noundef @.str.4)
  %15890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15891 = load i32, ptr %15890, align 4, !tbaa !5
  %15892 = call ptr @s2n_strerror_debug(i32 noundef %15891, ptr noundef @.str.4)
  %15893 = call ptr @__errno_location() #12
  %15894 = load i32, ptr %15893, align 4, !tbaa !5
  %15895 = call ptr @strerror(i32 noundef %15894) #11
  %15896 = call ptr @__errno_location() #12
  %15897 = load i32, ptr %15896, align 4, !tbaa !5
  %15898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15885, ptr noundef @.str.2, i32 noundef %15886, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 640, ptr noundef %15889, ptr noundef %15892, ptr noundef %15895, i32 noundef %15897) #11
  br label %15916

15899:                                            ; preds = %15877, %15870
  %15900 = load i32, ptr %327, align 4, !tbaa !5
  %15901 = call ptr @__errno_location() #12
  store i32 %15900, ptr %15901, align 4, !tbaa !5
  %15902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15903 = load i32, ptr @test_count, align 4, !tbaa !5
  %15904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15905 = load i32, ptr %15904, align 4, !tbaa !5
  %15906 = call ptr @s2n_strerror(i32 noundef %15905, ptr noundef @.str.4)
  %15907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15908 = load i32, ptr %15907, align 4, !tbaa !5
  %15909 = call ptr @s2n_strerror_debug(i32 noundef %15908, ptr noundef @.str.4)
  %15910 = call ptr @__errno_location() #12
  %15911 = load i32, ptr %15910, align 4, !tbaa !5
  %15912 = call ptr @strerror(i32 noundef %15911) #11
  %15913 = call ptr @__errno_location() #12
  %15914 = load i32, ptr %15913, align 4, !tbaa !5
  %15915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15902, ptr noundef @.str.5, i32 noundef %15903, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 640, ptr noundef %15906, ptr noundef %15909, ptr noundef %15912, i32 noundef %15914) #11
  br label %15916

15916:                                            ; preds = %15899, %15882
  call void @llvm.lifetime.end.p0(i64 4, ptr %327) #11
  br label %15917

15917:                                            ; preds = %15916
  br label %15918

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

15919:                                            ; No predecessors!
  br label %15920

15920:                                            ; preds = %15919
  br label %15921

15921:                                            ; preds = %15920, %15847
  br label %15922

15922:                                            ; preds = %15921
  br label %15923

15923:                                            ; preds = %15922
  br label %15924

15924:                                            ; preds = %15923, %15838
  br label %15925

15925:                                            ; preds = %15924
  br label %15926

15926:                                            ; preds = %15925
  br label %15927

15927:                                            ; preds = %15926
  %15928 = load i32, ptr @test_count, align 4, !tbaa !5
  %15929 = add nsw i32 %15928, 1
  store i32 %15929, ptr @test_count, align 4, !tbaa !5
  %15930 = getelementptr inbounds %struct.s2n_stuffer, ptr %306, i32 0, i32 2
  %15931 = load i32, ptr %15930, align 4, !tbaa !55
  %15932 = getelementptr inbounds %struct.s2n_stuffer, ptr %306, i32 0, i32 1
  %15933 = load i32, ptr %15932, align 8, !tbaa !56
  %15934 = sub i32 %15931, %15933
  %15935 = icmp eq i32 %15934, 0
  br i1 %15935, label %15989, label %15936

15936:                                            ; preds = %15927
  br label %15937

15937:                                            ; preds = %15936
  br label %15938

15938:                                            ; preds = %15937
  call void @llvm.lifetime.start.p0(i64 4, ptr %328) #11
  %15939 = call ptr @__errno_location() #12
  %15940 = load i32, ptr %15939, align 4, !tbaa !5
  store i32 %15940, ptr %328, align 4, !tbaa !5
  %15941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15942 = call i32 @s2n_print_stacktrace(ptr noundef %15941)
  %15943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15944 = trunc i8 %15943 to i1
  br i1 %15944, label %15945, label %15967

15945:                                            ; preds = %15938
  %15946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15947 = call i32 @fileno(ptr noundef %15946) #11
  %15948 = call i32 @isatty(i32 noundef %15947) #11
  %15949 = icmp ne i32 %15948, 0
  br i1 %15949, label %15950, label %15967

15950:                                            ; preds = %15945
  %15951 = load i32, ptr %328, align 4, !tbaa !5
  %15952 = call ptr @__errno_location() #12
  store i32 %15951, ptr %15952, align 4, !tbaa !5
  %15953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15954 = load i32, ptr @test_count, align 4, !tbaa !5
  %15955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15956 = load i32, ptr %15955, align 4, !tbaa !5
  %15957 = call ptr @s2n_strerror(i32 noundef %15956, ptr noundef @.str.4)
  %15958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15959 = load i32, ptr %15958, align 4, !tbaa !5
  %15960 = call ptr @s2n_strerror_debug(i32 noundef %15959, ptr noundef @.str.4)
  %15961 = call ptr @__errno_location() #12
  %15962 = load i32, ptr %15961, align 4, !tbaa !5
  %15963 = call ptr @strerror(i32 noundef %15962) #11
  %15964 = call ptr @__errno_location() #12
  %15965 = load i32, ptr %15964, align 4, !tbaa !5
  %15966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15953, ptr noundef @.str.2, i32 noundef %15954, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 642, ptr noundef %15957, ptr noundef %15960, ptr noundef %15963, i32 noundef %15965) #11
  br label %15984

15967:                                            ; preds = %15945, %15938
  %15968 = load i32, ptr %328, align 4, !tbaa !5
  %15969 = call ptr @__errno_location() #12
  store i32 %15968, ptr %15969, align 4, !tbaa !5
  %15970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15971 = load i32, ptr @test_count, align 4, !tbaa !5
  %15972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15973 = load i32, ptr %15972, align 4, !tbaa !5
  %15974 = call ptr @s2n_strerror(i32 noundef %15973, ptr noundef @.str.4)
  %15975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15976 = load i32, ptr %15975, align 4, !tbaa !5
  %15977 = call ptr @s2n_strerror_debug(i32 noundef %15976, ptr noundef @.str.4)
  %15978 = call ptr @__errno_location() #12
  %15979 = load i32, ptr %15978, align 4, !tbaa !5
  %15980 = call ptr @strerror(i32 noundef %15979) #11
  %15981 = call ptr @__errno_location() #12
  %15982 = load i32, ptr %15981, align 4, !tbaa !5
  %15983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15970, ptr noundef @.str.5, i32 noundef %15971, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 642, ptr noundef %15974, ptr noundef %15977, ptr noundef %15980, i32 noundef %15982) #11
  br label %15984

15984:                                            ; preds = %15967, %15950
  call void @llvm.lifetime.end.p0(i64 4, ptr %328) #11
  br label %15985

15985:                                            ; preds = %15984
  br label %15986

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

15987:                                            ; No predecessors!
  br label %15988

15988:                                            ; preds = %15987
  br label %15989

15989:                                            ; preds = %15988, %15927
  br label %15990

15990:                                            ; preds = %15989
  br label %15991

15991:                                            ; preds = %15990
  br label %15992

15992:                                            ; preds = %15991
  %15993 = load i32, ptr @test_count, align 4, !tbaa !5
  %15994 = add nsw i32 %15993, 1
  store i32 %15994, ptr @test_count, align 4, !tbaa !5
  %15995 = load ptr, ptr %302, align 8, !tbaa !9
  %15996 = call i32 @s2n_connection_free(ptr noundef %15995)
  %15997 = icmp eq i32 %15996, -1
  br i1 %15997, label %15998, label %16051

15998:                                            ; preds = %15992
  br label %15999

15999:                                            ; preds = %15998
  br label %16000

16000:                                            ; preds = %15999
  call void @llvm.lifetime.start.p0(i64 4, ptr %329) #11
  %16001 = call ptr @__errno_location() #12
  %16002 = load i32, ptr %16001, align 4, !tbaa !5
  store i32 %16002, ptr %329, align 4, !tbaa !5
  %16003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16004 = call i32 @s2n_print_stacktrace(ptr noundef %16003)
  %16005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16006 = trunc i8 %16005 to i1
  br i1 %16006, label %16007, label %16029

16007:                                            ; preds = %16000
  %16008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16009 = call i32 @fileno(ptr noundef %16008) #11
  %16010 = call i32 @isatty(i32 noundef %16009) #11
  %16011 = icmp ne i32 %16010, 0
  br i1 %16011, label %16012, label %16029

16012:                                            ; preds = %16007
  %16013 = load i32, ptr %329, align 4, !tbaa !5
  %16014 = call ptr @__errno_location() #12
  store i32 %16013, ptr %16014, align 4, !tbaa !5
  %16015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16016 = load i32, ptr @test_count, align 4, !tbaa !5
  %16017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16018 = load i32, ptr %16017, align 4, !tbaa !5
  %16019 = call ptr @s2n_strerror(i32 noundef %16018, ptr noundef @.str.4)
  %16020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16021 = load i32, ptr %16020, align 4, !tbaa !5
  %16022 = call ptr @s2n_strerror_debug(i32 noundef %16021, ptr noundef @.str.4)
  %16023 = call ptr @__errno_location() #12
  %16024 = load i32, ptr %16023, align 4, !tbaa !5
  %16025 = call ptr @strerror(i32 noundef %16024) #11
  %16026 = call ptr @__errno_location() #12
  %16027 = load i32, ptr %16026, align 4, !tbaa !5
  %16028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16015, ptr noundef @.str.2, i32 noundef %16016, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 644, ptr noundef %16019, ptr noundef %16022, ptr noundef %16025, i32 noundef %16027) #11
  br label %16046

16029:                                            ; preds = %16007, %16000
  %16030 = load i32, ptr %329, align 4, !tbaa !5
  %16031 = call ptr @__errno_location() #12
  store i32 %16030, ptr %16031, align 4, !tbaa !5
  %16032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16033 = load i32, ptr @test_count, align 4, !tbaa !5
  %16034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16035 = load i32, ptr %16034, align 4, !tbaa !5
  %16036 = call ptr @s2n_strerror(i32 noundef %16035, ptr noundef @.str.4)
  %16037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16038 = load i32, ptr %16037, align 4, !tbaa !5
  %16039 = call ptr @s2n_strerror_debug(i32 noundef %16038, ptr noundef @.str.4)
  %16040 = call ptr @__errno_location() #12
  %16041 = load i32, ptr %16040, align 4, !tbaa !5
  %16042 = call ptr @strerror(i32 noundef %16041) #11
  %16043 = call ptr @__errno_location() #12
  %16044 = load i32, ptr %16043, align 4, !tbaa !5
  %16045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16032, ptr noundef @.str.5, i32 noundef %16033, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 644, ptr noundef %16036, ptr noundef %16039, ptr noundef %16042, i32 noundef %16044) #11
  br label %16046

16046:                                            ; preds = %16029, %16012
  call void @llvm.lifetime.end.p0(i64 4, ptr %329) #11
  br label %16047

16047:                                            ; preds = %16046
  br label %16048

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

16049:                                            ; No predecessors!
  br label %16050

16050:                                            ; preds = %16049
  br label %16051

16051:                                            ; preds = %16050, %15992
  br label %16052

16052:                                            ; preds = %16051
  br label %16053

16053:                                            ; preds = %16052
  call void @llvm.lifetime.end.p0(i64 8, ptr %310) #11
  %16054 = call i32 @s2n_stuffer_free(ptr noundef %306)
  call void @llvm.lifetime.end.p0(i64 40, ptr %306) #11
  %16055 = call i32 @s2n_stuffer_free(ptr noundef %305)
  call void @llvm.lifetime.end.p0(i64 40, ptr %305) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %304) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %302) #11
  store i32 0, ptr %300, align 4
  br label %16056

16056:                                            ; preds = %16053, %14486
  call void @llvm.lifetime.end.p0(i64 8, ptr %301) #11
  %16057 = load i32, ptr %300, align 4
  switch i32 %16057, label %26252 [
    i32 0, label %16058
    i32 1375, label %16059
  ]

16058:                                            ; preds = %16056
  br label %16059

16059:                                            ; preds = %16058, %16056
  %16060 = load i64, ptr %299, align 8, !tbaa !49
  %16061 = add i64 %16060, 1
  store i64 %16061, ptr %299, align 8, !tbaa !49
  br label %14476, !llvm.loop !101

16062:                                            ; preds = %14479
  call void @llvm.lifetime.start.p0(i64 8, ptr %330) #11
  store ptr null, ptr %330, align 8, !tbaa !9
  br label %16063

16063:                                            ; preds = %16062
  %16064 = load i32, ptr @test_count, align 4, !tbaa !5
  %16065 = add nsw i32 %16064, 1
  store i32 %16065, ptr @test_count, align 4, !tbaa !5
  %16066 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %16066, ptr %330, align 8, !tbaa !9
  %16067 = icmp eq ptr %16066, null
  br i1 %16067, label %16068, label %16121

16068:                                            ; preds = %16063
  br label %16069

16069:                                            ; preds = %16068
  br label %16070

16070:                                            ; preds = %16069
  call void @llvm.lifetime.start.p0(i64 4, ptr %331) #11
  %16071 = call ptr @__errno_location() #12
  %16072 = load i32, ptr %16071, align 4, !tbaa !5
  store i32 %16072, ptr %331, align 4, !tbaa !5
  %16073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16074 = call i32 @s2n_print_stacktrace(ptr noundef %16073)
  %16075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16076 = trunc i8 %16075 to i1
  br i1 %16076, label %16077, label %16099

16077:                                            ; preds = %16070
  %16078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16079 = call i32 @fileno(ptr noundef %16078) #11
  %16080 = call i32 @isatty(i32 noundef %16079) #11
  %16081 = icmp ne i32 %16080, 0
  br i1 %16081, label %16082, label %16099

16082:                                            ; preds = %16077
  %16083 = load i32, ptr %331, align 4, !tbaa !5
  %16084 = call ptr @__errno_location() #12
  store i32 %16083, ptr %16084, align 4, !tbaa !5
  %16085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16086 = load i32, ptr @test_count, align 4, !tbaa !5
  %16087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16088 = load i32, ptr %16087, align 4, !tbaa !5
  %16089 = call ptr @s2n_strerror(i32 noundef %16088, ptr noundef @.str.4)
  %16090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16091 = load i32, ptr %16090, align 4, !tbaa !5
  %16092 = call ptr @s2n_strerror_debug(i32 noundef %16091, ptr noundef @.str.4)
  %16093 = call ptr @__errno_location() #12
  %16094 = load i32, ptr %16093, align 4, !tbaa !5
  %16095 = call ptr @strerror(i32 noundef %16094) #11
  %16096 = call ptr @__errno_location() #12
  %16097 = load i32, ptr %16096, align 4, !tbaa !5
  %16098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16085, ptr noundef @.str.2, i32 noundef %16086, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 651, ptr noundef %16089, ptr noundef %16092, ptr noundef %16095, i32 noundef %16097) #11
  br label %16116

16099:                                            ; preds = %16077, %16070
  %16100 = load i32, ptr %331, align 4, !tbaa !5
  %16101 = call ptr @__errno_location() #12
  store i32 %16100, ptr %16101, align 4, !tbaa !5
  %16102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16103 = load i32, ptr @test_count, align 4, !tbaa !5
  %16104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16105 = load i32, ptr %16104, align 4, !tbaa !5
  %16106 = call ptr @s2n_strerror(i32 noundef %16105, ptr noundef @.str.4)
  %16107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16108 = load i32, ptr %16107, align 4, !tbaa !5
  %16109 = call ptr @s2n_strerror_debug(i32 noundef %16108, ptr noundef @.str.4)
  %16110 = call ptr @__errno_location() #12
  %16111 = load i32, ptr %16110, align 4, !tbaa !5
  %16112 = call ptr @strerror(i32 noundef %16111) #11
  %16113 = call ptr @__errno_location() #12
  %16114 = load i32, ptr %16113, align 4, !tbaa !5
  %16115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16102, ptr noundef @.str.5, i32 noundef %16103, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 651, ptr noundef %16106, ptr noundef %16109, ptr noundef %16112, i32 noundef %16114) #11
  br label %16116

16116:                                            ; preds = %16099, %16082
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #11
  br label %16117

16117:                                            ; preds = %16116
  br label %16118

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

16119:                                            ; No predecessors!
  br label %16120

16120:                                            ; preds = %16119
  br label %16121

16121:                                            ; preds = %16120, %16063
  br label %16122

16122:                                            ; preds = %16121
  br label %16123

16123:                                            ; preds = %16122
  %16124 = load ptr, ptr %330, align 8, !tbaa !9
  %16125 = getelementptr inbounds %struct.s2n_connection, ptr %16124, i32 0, i32 2
  store ptr %279, ptr %16125, align 8, !tbaa !15
  %16126 = load ptr, ptr %330, align 8, !tbaa !9
  %16127 = getelementptr inbounds %struct.s2n_connection, ptr %16126, i32 0, i32 23
  store i8 34, ptr %16127, align 4, !tbaa !59
  br label %16128

16128:                                            ; preds = %16123
  %16129 = load i32, ptr @test_count, align 4, !tbaa !5
  %16130 = add nsw i32 %16129, 1
  store i32 %16130, ptr @test_count, align 4, !tbaa !5
  %16131 = load ptr, ptr %330, align 8, !tbaa !9
  %16132 = call i32 @s2n_conn_choose_state_machine(ptr noundef %16131, i8 noundef zeroext 34)
  %16133 = getelementptr inbounds %struct.s2n_result, ptr %332, i32 0, i32 0
  store i32 %16132, ptr %16133, align 4
  %16134 = getelementptr inbounds %struct.s2n_result, ptr %332, i32 0, i32 0
  %16135 = load i32, ptr %16134, align 4
  %16136 = call zeroext i1 @s2n_result_is_ok(i32 %16135)
  br i1 %16136, label %16190, label %16137

16137:                                            ; preds = %16128
  br label %16138

16138:                                            ; preds = %16137
  br label %16139

16139:                                            ; preds = %16138
  call void @llvm.lifetime.start.p0(i64 4, ptr %333) #11
  %16140 = call ptr @__errno_location() #12
  %16141 = load i32, ptr %16140, align 4, !tbaa !5
  store i32 %16141, ptr %333, align 4, !tbaa !5
  %16142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16143 = call i32 @s2n_print_stacktrace(ptr noundef %16142)
  %16144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16145 = trunc i8 %16144 to i1
  br i1 %16145, label %16146, label %16168

16146:                                            ; preds = %16139
  %16147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16148 = call i32 @fileno(ptr noundef %16147) #11
  %16149 = call i32 @isatty(i32 noundef %16148) #11
  %16150 = icmp ne i32 %16149, 0
  br i1 %16150, label %16151, label %16168

16151:                                            ; preds = %16146
  %16152 = load i32, ptr %333, align 4, !tbaa !5
  %16153 = call ptr @__errno_location() #12
  store i32 %16152, ptr %16153, align 4, !tbaa !5
  %16154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16155 = load i32, ptr @test_count, align 4, !tbaa !5
  %16156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16157 = load i32, ptr %16156, align 4, !tbaa !5
  %16158 = call ptr @s2n_strerror(i32 noundef %16157, ptr noundef @.str.4)
  %16159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16160 = load i32, ptr %16159, align 4, !tbaa !5
  %16161 = call ptr @s2n_strerror_debug(i32 noundef %16160, ptr noundef @.str.4)
  %16162 = call ptr @__errno_location() #12
  %16163 = load i32, ptr %16162, align 4, !tbaa !5
  %16164 = call ptr @strerror(i32 noundef %16163) #11
  %16165 = call ptr @__errno_location() #12
  %16166 = load i32, ptr %16165, align 4, !tbaa !5
  %16167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16154, ptr noundef @.str.2, i32 noundef %16155, ptr noundef @.str.151, ptr noundef @.str.1, i32 noundef 654, ptr noundef %16158, ptr noundef %16161, ptr noundef %16164, i32 noundef %16166) #11
  br label %16185

16168:                                            ; preds = %16146, %16139
  %16169 = load i32, ptr %333, align 4, !tbaa !5
  %16170 = call ptr @__errno_location() #12
  store i32 %16169, ptr %16170, align 4, !tbaa !5
  %16171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16172 = load i32, ptr @test_count, align 4, !tbaa !5
  %16173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16174 = load i32, ptr %16173, align 4, !tbaa !5
  %16175 = call ptr @s2n_strerror(i32 noundef %16174, ptr noundef @.str.4)
  %16176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16177 = load i32, ptr %16176, align 4, !tbaa !5
  %16178 = call ptr @s2n_strerror_debug(i32 noundef %16177, ptr noundef @.str.4)
  %16179 = call ptr @__errno_location() #12
  %16180 = load i32, ptr %16179, align 4, !tbaa !5
  %16181 = call ptr @strerror(i32 noundef %16180) #11
  %16182 = call ptr @__errno_location() #12
  %16183 = load i32, ptr %16182, align 4, !tbaa !5
  %16184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16171, ptr noundef @.str.5, i32 noundef %16172, ptr noundef @.str.151, ptr noundef @.str.1, i32 noundef 654, ptr noundef %16175, ptr noundef %16178, ptr noundef %16181, i32 noundef %16183) #11
  br label %16185

16185:                                            ; preds = %16168, %16151
  call void @llvm.lifetime.end.p0(i64 4, ptr %333) #11
  br label %16186

16186:                                            ; preds = %16185
  br label %16187

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

16188:                                            ; No predecessors!
  br label %16189

16189:                                            ; preds = %16188
  br label %16190

16190:                                            ; preds = %16189, %16128
  br label %16191

16191:                                            ; preds = %16190
  br label %16192

16192:                                            ; preds = %16191
  %16193 = load ptr, ptr %330, align 8, !tbaa !9
  %16194 = getelementptr inbounds %struct.s2n_connection, ptr %16193, i32 0, i32 52
  %16195 = getelementptr inbounds %struct.s2n_handshake, ptr %16194, i32 0, i32 6
  store i32 16, ptr %16195, align 4, !tbaa !60
  %16196 = load ptr, ptr %330, align 8, !tbaa !9
  %16197 = getelementptr inbounds %struct.s2n_connection, ptr %16196, i32 0, i32 52
  %16198 = getelementptr inbounds %struct.s2n_handshake, ptr %16197, i32 0, i32 7
  store i32 1, ptr %16198, align 8, !tbaa !61
  %16199 = load ptr, ptr %330, align 8, !tbaa !9
  %16200 = getelementptr inbounds %struct.s2n_connection, ptr %16199, i32 0, i32 25
  store i8 1, ptr %16200, align 2, !tbaa !102
  call void @llvm.lifetime.start.p0(i64 8, ptr %334) #11
  store ptr @s2n_secp256r1_kyber_512_r3, ptr %334, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %335) #11
  call void @llvm.memset.p0.i64(ptr align 8 %335, i8 0, i64 40, i1 false)
  br label %16201

16201:                                            ; preds = %16192
  %16202 = load i32, ptr @test_count, align 4, !tbaa !5
  %16203 = add nsw i32 %16202, 1
  store i32 %16203, ptr @test_count, align 4, !tbaa !5
  %16204 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef %335, ptr noundef @.str.152)
  %16205 = getelementptr inbounds %struct.s2n_result, ptr %336, i32 0, i32 0
  store i32 %16204, ptr %16205, align 4
  %16206 = getelementptr inbounds %struct.s2n_result, ptr %336, i32 0, i32 0
  %16207 = load i32, ptr %16206, align 4
  %16208 = call zeroext i1 @s2n_result_is_ok(i32 %16207)
  br i1 %16208, label %16262, label %16209

16209:                                            ; preds = %16201
  br label %16210

16210:                                            ; preds = %16209
  br label %16211

16211:                                            ; preds = %16210
  call void @llvm.lifetime.start.p0(i64 4, ptr %337) #11
  %16212 = call ptr @__errno_location() #12
  %16213 = load i32, ptr %16212, align 4, !tbaa !5
  store i32 %16213, ptr %337, align 4, !tbaa !5
  %16214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16215 = call i32 @s2n_print_stacktrace(ptr noundef %16214)
  %16216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16217 = trunc i8 %16216 to i1
  br i1 %16217, label %16218, label %16240

16218:                                            ; preds = %16211
  %16219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16220 = call i32 @fileno(ptr noundef %16219) #11
  %16221 = call i32 @isatty(i32 noundef %16220) #11
  %16222 = icmp ne i32 %16221, 0
  br i1 %16222, label %16223, label %16240

16223:                                            ; preds = %16218
  %16224 = load i32, ptr %337, align 4, !tbaa !5
  %16225 = call ptr @__errno_location() #12
  store i32 %16224, ptr %16225, align 4, !tbaa !5
  %16226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16227 = load i32, ptr @test_count, align 4, !tbaa !5
  %16228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16229 = load i32, ptr %16228, align 4, !tbaa !5
  %16230 = call ptr @s2n_strerror(i32 noundef %16229, ptr noundef @.str.4)
  %16231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16232 = load i32, ptr %16231, align 4, !tbaa !5
  %16233 = call ptr @s2n_strerror_debug(i32 noundef %16232, ptr noundef @.str.4)
  %16234 = call ptr @__errno_location() #12
  %16235 = load i32, ptr %16234, align 4, !tbaa !5
  %16236 = call ptr @strerror(i32 noundef %16235) #11
  %16237 = call ptr @__errno_location() #12
  %16238 = load i32, ptr %16237, align 4, !tbaa !5
  %16239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16226, ptr noundef @.str.2, i32 noundef %16227, ptr noundef @.str.153, ptr noundef @.str.1, i32 noundef 662, ptr noundef %16230, ptr noundef %16233, ptr noundef %16236, i32 noundef %16238) #11
  br label %16257

16240:                                            ; preds = %16218, %16211
  %16241 = load i32, ptr %337, align 4, !tbaa !5
  %16242 = call ptr @__errno_location() #12
  store i32 %16241, ptr %16242, align 4, !tbaa !5
  %16243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16244 = load i32, ptr @test_count, align 4, !tbaa !5
  %16245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16246 = load i32, ptr %16245, align 4, !tbaa !5
  %16247 = call ptr @s2n_strerror(i32 noundef %16246, ptr noundef @.str.4)
  %16248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16249 = load i32, ptr %16248, align 4, !tbaa !5
  %16250 = call ptr @s2n_strerror_debug(i32 noundef %16249, ptr noundef @.str.4)
  %16251 = call ptr @__errno_location() #12
  %16252 = load i32, ptr %16251, align 4, !tbaa !5
  %16253 = call ptr @strerror(i32 noundef %16252) #11
  %16254 = call ptr @__errno_location() #12
  %16255 = load i32, ptr %16254, align 4, !tbaa !5
  %16256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16243, ptr noundef @.str.5, i32 noundef %16244, ptr noundef @.str.153, ptr noundef @.str.1, i32 noundef 662, ptr noundef %16247, ptr noundef %16250, ptr noundef %16253, i32 noundef %16255) #11
  br label %16257

16257:                                            ; preds = %16240, %16223
  call void @llvm.lifetime.end.p0(i64 4, ptr %337) #11
  br label %16258

16258:                                            ; preds = %16257
  br label %16259

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

16260:                                            ; No predecessors!
  br label %16261

16261:                                            ; preds = %16260
  br label %16262

16262:                                            ; preds = %16261, %16201
  br label %16263

16263:                                            ; preds = %16262
  br label %16264

16264:                                            ; preds = %16263
  br label %16265

16265:                                            ; preds = %16264
  %16266 = load i32, ptr @test_count, align 4, !tbaa !5
  %16267 = add nsw i32 %16266, 1
  store i32 %16267, ptr @test_count, align 4, !tbaa !5
  %16268 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %16269 = load ptr, ptr %330, align 8, !tbaa !9
  %16270 = call i32 %16268(ptr noundef %16269, ptr noundef %335)
  %16271 = icmp eq i32 %16270, -1
  br i1 %16271, label %16272, label %16325

16272:                                            ; preds = %16265
  br label %16273

16273:                                            ; preds = %16272
  br label %16274

16274:                                            ; preds = %16273
  call void @llvm.lifetime.start.p0(i64 4, ptr %338) #11
  %16275 = call ptr @__errno_location() #12
  %16276 = load i32, ptr %16275, align 4, !tbaa !5
  store i32 %16276, ptr %338, align 4, !tbaa !5
  %16277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16278 = call i32 @s2n_print_stacktrace(ptr noundef %16277)
  %16279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16280 = trunc i8 %16279 to i1
  br i1 %16280, label %16281, label %16303

16281:                                            ; preds = %16274
  %16282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16283 = call i32 @fileno(ptr noundef %16282) #11
  %16284 = call i32 @isatty(i32 noundef %16283) #11
  %16285 = icmp ne i32 %16284, 0
  br i1 %16285, label %16286, label %16303

16286:                                            ; preds = %16281
  %16287 = load i32, ptr %338, align 4, !tbaa !5
  %16288 = call ptr @__errno_location() #12
  store i32 %16287, ptr %16288, align 4, !tbaa !5
  %16289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16290 = load i32, ptr @test_count, align 4, !tbaa !5
  %16291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16292 = load i32, ptr %16291, align 4, !tbaa !5
  %16293 = call ptr @s2n_strerror(i32 noundef %16292, ptr noundef @.str.4)
  %16294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16295 = load i32, ptr %16294, align 4, !tbaa !5
  %16296 = call ptr @s2n_strerror_debug(i32 noundef %16295, ptr noundef @.str.4)
  %16297 = call ptr @__errno_location() #12
  %16298 = load i32, ptr %16297, align 4, !tbaa !5
  %16299 = call ptr @strerror(i32 noundef %16298) #11
  %16300 = call ptr @__errno_location() #12
  %16301 = load i32, ptr %16300, align 4, !tbaa !5
  %16302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16289, ptr noundef @.str.2, i32 noundef %16290, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 665, ptr noundef %16293, ptr noundef %16296, ptr noundef %16299, i32 noundef %16301) #11
  br label %16320

16303:                                            ; preds = %16281, %16274
  %16304 = load i32, ptr %338, align 4, !tbaa !5
  %16305 = call ptr @__errno_location() #12
  store i32 %16304, ptr %16305, align 4, !tbaa !5
  %16306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16307 = load i32, ptr @test_count, align 4, !tbaa !5
  %16308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16309 = load i32, ptr %16308, align 4, !tbaa !5
  %16310 = call ptr @s2n_strerror(i32 noundef %16309, ptr noundef @.str.4)
  %16311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16312 = load i32, ptr %16311, align 4, !tbaa !5
  %16313 = call ptr @s2n_strerror_debug(i32 noundef %16312, ptr noundef @.str.4)
  %16314 = call ptr @__errno_location() #12
  %16315 = load i32, ptr %16314, align 4, !tbaa !5
  %16316 = call ptr @strerror(i32 noundef %16315) #11
  %16317 = call ptr @__errno_location() #12
  %16318 = load i32, ptr %16317, align 4, !tbaa !5
  %16319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16306, ptr noundef @.str.5, i32 noundef %16307, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 665, ptr noundef %16310, ptr noundef %16313, ptr noundef %16316, i32 noundef %16318) #11
  br label %16320

16320:                                            ; preds = %16303, %16286
  call void @llvm.lifetime.end.p0(i64 4, ptr %338) #11
  br label %16321

16321:                                            ; preds = %16320
  br label %16322

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

16323:                                            ; No predecessors!
  br label %16324

16324:                                            ; preds = %16323
  br label %16325

16325:                                            ; preds = %16324, %16265
  br label %16326

16326:                                            ; preds = %16325
  br label %16327

16327:                                            ; preds = %16326
  br label %16328

16328:                                            ; preds = %16327
  %16329 = load i32, ptr @test_count, align 4, !tbaa !5
  %16330 = add nsw i32 %16329, 1
  store i32 %16330, ptr @test_count, align 4, !tbaa !5
  %16331 = load ptr, ptr %330, align 8, !tbaa !9
  %16332 = getelementptr inbounds %struct.s2n_connection, ptr %16331, i32 0, i32 31
  %16333 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16332, i32 0, i32 4
  %16334 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16333, i32 0, i32 0
  %16335 = load ptr, ptr %16334, align 8, !tbaa !48
  %16336 = icmp eq ptr %16335, null
  br i1 %16336, label %16337, label %16390

16337:                                            ; preds = %16328
  br label %16338

16338:                                            ; preds = %16337
  br label %16339

16339:                                            ; preds = %16338
  call void @llvm.lifetime.start.p0(i64 4, ptr %339) #11
  %16340 = call ptr @__errno_location() #12
  %16341 = load i32, ptr %16340, align 4, !tbaa !5
  store i32 %16341, ptr %339, align 4, !tbaa !5
  %16342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16343 = call i32 @s2n_print_stacktrace(ptr noundef %16342)
  %16344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16345 = trunc i8 %16344 to i1
  br i1 %16345, label %16346, label %16368

16346:                                            ; preds = %16339
  %16347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16348 = call i32 @fileno(ptr noundef %16347) #11
  %16349 = call i32 @isatty(i32 noundef %16348) #11
  %16350 = icmp ne i32 %16349, 0
  br i1 %16350, label %16351, label %16368

16351:                                            ; preds = %16346
  %16352 = load i32, ptr %339, align 4, !tbaa !5
  %16353 = call ptr @__errno_location() #12
  store i32 %16352, ptr %16353, align 4, !tbaa !5
  %16354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16355 = load i32, ptr @test_count, align 4, !tbaa !5
  %16356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16357 = load i32, ptr %16356, align 4, !tbaa !5
  %16358 = call ptr @s2n_strerror(i32 noundef %16357, ptr noundef @.str.4)
  %16359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16360 = load i32, ptr %16359, align 4, !tbaa !5
  %16361 = call ptr @s2n_strerror_debug(i32 noundef %16360, ptr noundef @.str.4)
  %16362 = call ptr @__errno_location() #12
  %16363 = load i32, ptr %16362, align 4, !tbaa !5
  %16364 = call ptr @strerror(i32 noundef %16363) #11
  %16365 = call ptr @__errno_location() #12
  %16366 = load i32, ptr %16365, align 4, !tbaa !5
  %16367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16354, ptr noundef @.str.2, i32 noundef %16355, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 667, ptr noundef %16358, ptr noundef %16361, ptr noundef %16364, i32 noundef %16366) #11
  br label %16385

16368:                                            ; preds = %16346, %16339
  %16369 = load i32, ptr %339, align 4, !tbaa !5
  %16370 = call ptr @__errno_location() #12
  store i32 %16369, ptr %16370, align 4, !tbaa !5
  %16371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16372 = load i32, ptr @test_count, align 4, !tbaa !5
  %16373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16374 = load i32, ptr %16373, align 4, !tbaa !5
  %16375 = call ptr @s2n_strerror(i32 noundef %16374, ptr noundef @.str.4)
  %16376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16377 = load i32, ptr %16376, align 4, !tbaa !5
  %16378 = call ptr @s2n_strerror_debug(i32 noundef %16377, ptr noundef @.str.4)
  %16379 = call ptr @__errno_location() #12
  %16380 = load i32, ptr %16379, align 4, !tbaa !5
  %16381 = call ptr @strerror(i32 noundef %16380) #11
  %16382 = call ptr @__errno_location() #12
  %16383 = load i32, ptr %16382, align 4, !tbaa !5
  %16384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16371, ptr noundef @.str.5, i32 noundef %16372, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 667, ptr noundef %16375, ptr noundef %16378, ptr noundef %16381, i32 noundef %16383) #11
  br label %16385

16385:                                            ; preds = %16368, %16351
  call void @llvm.lifetime.end.p0(i64 4, ptr %339) #11
  br label %16386

16386:                                            ; preds = %16385
  br label %16387

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

16388:                                            ; No predecessors!
  br label %16389

16389:                                            ; preds = %16388
  br label %16390

16390:                                            ; preds = %16389, %16328
  br label %16391

16391:                                            ; preds = %16390
  br label %16392

16392:                                            ; preds = %16391
  br label %16393

16393:                                            ; preds = %16392
  %16394 = load i32, ptr @test_count, align 4, !tbaa !5
  %16395 = add nsw i32 %16394, 1
  store i32 %16395, ptr @test_count, align 4, !tbaa !5
  %16396 = load ptr, ptr %330, align 8, !tbaa !9
  %16397 = getelementptr inbounds %struct.s2n_connection, ptr %16396, i32 0, i32 31
  %16398 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16397, i32 0, i32 4
  %16399 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16398, i32 0, i32 0
  %16400 = load ptr, ptr %16399, align 8, !tbaa !48
  %16401 = load ptr, ptr %334, align 8, !tbaa !9
  %16402 = icmp eq ptr %16400, %16401
  br i1 %16402, label %16456, label %16403

16403:                                            ; preds = %16393
  br label %16404

16404:                                            ; preds = %16403
  br label %16405

16405:                                            ; preds = %16404
  call void @llvm.lifetime.start.p0(i64 4, ptr %340) #11
  %16406 = call ptr @__errno_location() #12
  %16407 = load i32, ptr %16406, align 4, !tbaa !5
  store i32 %16407, ptr %340, align 4, !tbaa !5
  %16408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16409 = call i32 @s2n_print_stacktrace(ptr noundef %16408)
  %16410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16411 = trunc i8 %16410 to i1
  br i1 %16411, label %16412, label %16434

16412:                                            ; preds = %16405
  %16413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16414 = call i32 @fileno(ptr noundef %16413) #11
  %16415 = call i32 @isatty(i32 noundef %16414) #11
  %16416 = icmp ne i32 %16415, 0
  br i1 %16416, label %16417, label %16434

16417:                                            ; preds = %16412
  %16418 = load i32, ptr %340, align 4, !tbaa !5
  %16419 = call ptr @__errno_location() #12
  store i32 %16418, ptr %16419, align 4, !tbaa !5
  %16420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16421 = load i32, ptr @test_count, align 4, !tbaa !5
  %16422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16423 = load i32, ptr %16422, align 4, !tbaa !5
  %16424 = call ptr @s2n_strerror(i32 noundef %16423, ptr noundef @.str.4)
  %16425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16426 = load i32, ptr %16425, align 4, !tbaa !5
  %16427 = call ptr @s2n_strerror_debug(i32 noundef %16426, ptr noundef @.str.4)
  %16428 = call ptr @__errno_location() #12
  %16429 = load i32, ptr %16428, align 4, !tbaa !5
  %16430 = call ptr @strerror(i32 noundef %16429) #11
  %16431 = call ptr @__errno_location() #12
  %16432 = load i32, ptr %16431, align 4, !tbaa !5
  %16433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16420, ptr noundef @.str.2, i32 noundef %16421, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 668, ptr noundef %16424, ptr noundef %16427, ptr noundef %16430, i32 noundef %16432) #11
  br label %16451

16434:                                            ; preds = %16412, %16405
  %16435 = load i32, ptr %340, align 4, !tbaa !5
  %16436 = call ptr @__errno_location() #12
  store i32 %16435, ptr %16436, align 4, !tbaa !5
  %16437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16438 = load i32, ptr @test_count, align 4, !tbaa !5
  %16439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16440 = load i32, ptr %16439, align 4, !tbaa !5
  %16441 = call ptr @s2n_strerror(i32 noundef %16440, ptr noundef @.str.4)
  %16442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16443 = load i32, ptr %16442, align 4, !tbaa !5
  %16444 = call ptr @s2n_strerror_debug(i32 noundef %16443, ptr noundef @.str.4)
  %16445 = call ptr @__errno_location() #12
  %16446 = load i32, ptr %16445, align 4, !tbaa !5
  %16447 = call ptr @strerror(i32 noundef %16446) #11
  %16448 = call ptr @__errno_location() #12
  %16449 = load i32, ptr %16448, align 4, !tbaa !5
  %16450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16437, ptr noundef @.str.5, i32 noundef %16438, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 668, ptr noundef %16441, ptr noundef %16444, ptr noundef %16447, i32 noundef %16449) #11
  br label %16451

16451:                                            ; preds = %16434, %16417
  call void @llvm.lifetime.end.p0(i64 4, ptr %340) #11
  br label %16452

16452:                                            ; preds = %16451
  br label %16453

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

16454:                                            ; No predecessors!
  br label %16455

16455:                                            ; preds = %16454
  br label %16456

16456:                                            ; preds = %16455, %16393
  br label %16457

16457:                                            ; preds = %16456
  br label %16458

16458:                                            ; preds = %16457
  br label %16459

16459:                                            ; preds = %16458
  %16460 = load i32, ptr @test_count, align 4, !tbaa !5
  %16461 = add nsw i32 %16460, 1
  store i32 %16461, ptr @test_count, align 4, !tbaa !5
  %16462 = load ptr, ptr %330, align 8, !tbaa !9
  %16463 = getelementptr inbounds %struct.s2n_connection, ptr %16462, i32 0, i32 31
  %16464 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16463, i32 0, i32 4
  %16465 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16464, i32 0, i32 2
  %16466 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %16465, i32 0, i32 0
  %16467 = load ptr, ptr %16466, align 8, !tbaa !94
  %16468 = icmp eq ptr %16467, null
  br i1 %16468, label %16469, label %16522

16469:                                            ; preds = %16459
  br label %16470

16470:                                            ; preds = %16469
  br label %16471

16471:                                            ; preds = %16470
  call void @llvm.lifetime.start.p0(i64 4, ptr %341) #11
  %16472 = call ptr @__errno_location() #12
  %16473 = load i32, ptr %16472, align 4, !tbaa !5
  store i32 %16473, ptr %341, align 4, !tbaa !5
  %16474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16475 = call i32 @s2n_print_stacktrace(ptr noundef %16474)
  %16476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16477 = trunc i8 %16476 to i1
  br i1 %16477, label %16478, label %16500

16478:                                            ; preds = %16471
  %16479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16480 = call i32 @fileno(ptr noundef %16479) #11
  %16481 = call i32 @isatty(i32 noundef %16480) #11
  %16482 = icmp ne i32 %16481, 0
  br i1 %16482, label %16483, label %16500

16483:                                            ; preds = %16478
  %16484 = load i32, ptr %341, align 4, !tbaa !5
  %16485 = call ptr @__errno_location() #12
  store i32 %16484, ptr %16485, align 4, !tbaa !5
  %16486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16487 = load i32, ptr @test_count, align 4, !tbaa !5
  %16488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16489 = load i32, ptr %16488, align 4, !tbaa !5
  %16490 = call ptr @s2n_strerror(i32 noundef %16489, ptr noundef @.str.4)
  %16491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16492 = load i32, ptr %16491, align 4, !tbaa !5
  %16493 = call ptr @s2n_strerror_debug(i32 noundef %16492, ptr noundef @.str.4)
  %16494 = call ptr @__errno_location() #12
  %16495 = load i32, ptr %16494, align 4, !tbaa !5
  %16496 = call ptr @strerror(i32 noundef %16495) #11
  %16497 = call ptr @__errno_location() #12
  %16498 = load i32, ptr %16497, align 4, !tbaa !5
  %16499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16486, ptr noundef @.str.2, i32 noundef %16487, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 669, ptr noundef %16490, ptr noundef %16493, ptr noundef %16496, i32 noundef %16498) #11
  br label %16517

16500:                                            ; preds = %16478, %16471
  %16501 = load i32, ptr %341, align 4, !tbaa !5
  %16502 = call ptr @__errno_location() #12
  store i32 %16501, ptr %16502, align 4, !tbaa !5
  %16503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16504 = load i32, ptr @test_count, align 4, !tbaa !5
  %16505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16506 = load i32, ptr %16505, align 4, !tbaa !5
  %16507 = call ptr @s2n_strerror(i32 noundef %16506, ptr noundef @.str.4)
  %16508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16509 = load i32, ptr %16508, align 4, !tbaa !5
  %16510 = call ptr @s2n_strerror_debug(i32 noundef %16509, ptr noundef @.str.4)
  %16511 = call ptr @__errno_location() #12
  %16512 = load i32, ptr %16511, align 4, !tbaa !5
  %16513 = call ptr @strerror(i32 noundef %16512) #11
  %16514 = call ptr @__errno_location() #12
  %16515 = load i32, ptr %16514, align 4, !tbaa !5
  %16516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16503, ptr noundef @.str.5, i32 noundef %16504, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 669, ptr noundef %16507, ptr noundef %16510, ptr noundef %16513, i32 noundef %16515) #11
  br label %16517

16517:                                            ; preds = %16500, %16483
  call void @llvm.lifetime.end.p0(i64 4, ptr %341) #11
  br label %16518

16518:                                            ; preds = %16517
  br label %16519

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

16520:                                            ; No predecessors!
  br label %16521

16521:                                            ; preds = %16520
  br label %16522

16522:                                            ; preds = %16521, %16459
  br label %16523

16523:                                            ; preds = %16522
  br label %16524

16524:                                            ; preds = %16523
  br label %16525

16525:                                            ; preds = %16524
  %16526 = load i32, ptr @test_count, align 4, !tbaa !5
  %16527 = add nsw i32 %16526, 1
  store i32 %16527, ptr @test_count, align 4, !tbaa !5
  %16528 = load ptr, ptr %330, align 8, !tbaa !9
  %16529 = getelementptr inbounds %struct.s2n_connection, ptr %16528, i32 0, i32 31
  %16530 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16529, i32 0, i32 4
  %16531 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16530, i32 0, i32 2
  %16532 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %16531, i32 0, i32 0
  %16533 = load ptr, ptr %16532, align 8, !tbaa !94
  %16534 = load ptr, ptr %334, align 8, !tbaa !9
  %16535 = getelementptr inbounds %struct.s2n_kem_group, ptr %16534, i32 0, i32 2
  %16536 = load ptr, ptr %16535, align 8, !tbaa !89
  %16537 = icmp eq ptr %16533, %16536
  br i1 %16537, label %16591, label %16538

16538:                                            ; preds = %16525
  br label %16539

16539:                                            ; preds = %16538
  br label %16540

16540:                                            ; preds = %16539
  call void @llvm.lifetime.start.p0(i64 4, ptr %342) #11
  %16541 = call ptr @__errno_location() #12
  %16542 = load i32, ptr %16541, align 4, !tbaa !5
  store i32 %16542, ptr %342, align 4, !tbaa !5
  %16543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16544 = call i32 @s2n_print_stacktrace(ptr noundef %16543)
  %16545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16546 = trunc i8 %16545 to i1
  br i1 %16546, label %16547, label %16569

16547:                                            ; preds = %16540
  %16548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16549 = call i32 @fileno(ptr noundef %16548) #11
  %16550 = call i32 @isatty(i32 noundef %16549) #11
  %16551 = icmp ne i32 %16550, 0
  br i1 %16551, label %16552, label %16569

16552:                                            ; preds = %16547
  %16553 = load i32, ptr %342, align 4, !tbaa !5
  %16554 = call ptr @__errno_location() #12
  store i32 %16553, ptr %16554, align 4, !tbaa !5
  %16555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16556 = load i32, ptr @test_count, align 4, !tbaa !5
  %16557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16558 = load i32, ptr %16557, align 4, !tbaa !5
  %16559 = call ptr @s2n_strerror(i32 noundef %16558, ptr noundef @.str.4)
  %16560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16561 = load i32, ptr %16560, align 4, !tbaa !5
  %16562 = call ptr @s2n_strerror_debug(i32 noundef %16561, ptr noundef @.str.4)
  %16563 = call ptr @__errno_location() #12
  %16564 = load i32, ptr %16563, align 4, !tbaa !5
  %16565 = call ptr @strerror(i32 noundef %16564) #11
  %16566 = call ptr @__errno_location() #12
  %16567 = load i32, ptr %16566, align 4, !tbaa !5
  %16568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16555, ptr noundef @.str.2, i32 noundef %16556, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 670, ptr noundef %16559, ptr noundef %16562, ptr noundef %16565, i32 noundef %16567) #11
  br label %16586

16569:                                            ; preds = %16547, %16540
  %16570 = load i32, ptr %342, align 4, !tbaa !5
  %16571 = call ptr @__errno_location() #12
  store i32 %16570, ptr %16571, align 4, !tbaa !5
  %16572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16573 = load i32, ptr @test_count, align 4, !tbaa !5
  %16574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16575 = load i32, ptr %16574, align 4, !tbaa !5
  %16576 = call ptr @s2n_strerror(i32 noundef %16575, ptr noundef @.str.4)
  %16577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16578 = load i32, ptr %16577, align 4, !tbaa !5
  %16579 = call ptr @s2n_strerror_debug(i32 noundef %16578, ptr noundef @.str.4)
  %16580 = call ptr @__errno_location() #12
  %16581 = load i32, ptr %16580, align 4, !tbaa !5
  %16582 = call ptr @strerror(i32 noundef %16581) #11
  %16583 = call ptr @__errno_location() #12
  %16584 = load i32, ptr %16583, align 4, !tbaa !5
  %16585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16572, ptr noundef @.str.5, i32 noundef %16573, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 670, ptr noundef %16576, ptr noundef %16579, ptr noundef %16582, i32 noundef %16584) #11
  br label %16586

16586:                                            ; preds = %16569, %16552
  call void @llvm.lifetime.end.p0(i64 4, ptr %342) #11
  br label %16587

16587:                                            ; preds = %16586
  br label %16588

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

16589:                                            ; No predecessors!
  br label %16590

16590:                                            ; preds = %16589
  br label %16591

16591:                                            ; preds = %16590, %16525
  br label %16592

16592:                                            ; preds = %16591
  br label %16593

16593:                                            ; preds = %16592
  br label %16594

16594:                                            ; preds = %16593
  %16595 = load i32, ptr @test_count, align 4, !tbaa !5
  %16596 = add nsw i32 %16595, 1
  store i32 %16596, ptr @test_count, align 4, !tbaa !5
  %16597 = load ptr, ptr %330, align 8, !tbaa !9
  %16598 = getelementptr inbounds %struct.s2n_connection, ptr %16597, i32 0, i32 31
  %16599 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16598, i32 0, i32 4
  %16600 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16599, i32 0, i32 1
  %16601 = getelementptr inbounds %struct.s2n_kem_params, ptr %16600, i32 0, i32 0
  %16602 = load ptr, ptr %16601, align 8, !tbaa !95
  %16603 = icmp eq ptr %16602, null
  br i1 %16603, label %16604, label %16657

16604:                                            ; preds = %16594
  br label %16605

16605:                                            ; preds = %16604
  br label %16606

16606:                                            ; preds = %16605
  call void @llvm.lifetime.start.p0(i64 4, ptr %343) #11
  %16607 = call ptr @__errno_location() #12
  %16608 = load i32, ptr %16607, align 4, !tbaa !5
  store i32 %16608, ptr %343, align 4, !tbaa !5
  %16609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16610 = call i32 @s2n_print_stacktrace(ptr noundef %16609)
  %16611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16612 = trunc i8 %16611 to i1
  br i1 %16612, label %16613, label %16635

16613:                                            ; preds = %16606
  %16614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16615 = call i32 @fileno(ptr noundef %16614) #11
  %16616 = call i32 @isatty(i32 noundef %16615) #11
  %16617 = icmp ne i32 %16616, 0
  br i1 %16617, label %16618, label %16635

16618:                                            ; preds = %16613
  %16619 = load i32, ptr %343, align 4, !tbaa !5
  %16620 = call ptr @__errno_location() #12
  store i32 %16619, ptr %16620, align 4, !tbaa !5
  %16621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16622 = load i32, ptr @test_count, align 4, !tbaa !5
  %16623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16624 = load i32, ptr %16623, align 4, !tbaa !5
  %16625 = call ptr @s2n_strerror(i32 noundef %16624, ptr noundef @.str.4)
  %16626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16627 = load i32, ptr %16626, align 4, !tbaa !5
  %16628 = call ptr @s2n_strerror_debug(i32 noundef %16627, ptr noundef @.str.4)
  %16629 = call ptr @__errno_location() #12
  %16630 = load i32, ptr %16629, align 4, !tbaa !5
  %16631 = call ptr @strerror(i32 noundef %16630) #11
  %16632 = call ptr @__errno_location() #12
  %16633 = load i32, ptr %16632, align 4, !tbaa !5
  %16634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16621, ptr noundef @.str.2, i32 noundef %16622, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 671, ptr noundef %16625, ptr noundef %16628, ptr noundef %16631, i32 noundef %16633) #11
  br label %16652

16635:                                            ; preds = %16613, %16606
  %16636 = load i32, ptr %343, align 4, !tbaa !5
  %16637 = call ptr @__errno_location() #12
  store i32 %16636, ptr %16637, align 4, !tbaa !5
  %16638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16639 = load i32, ptr @test_count, align 4, !tbaa !5
  %16640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16641 = load i32, ptr %16640, align 4, !tbaa !5
  %16642 = call ptr @s2n_strerror(i32 noundef %16641, ptr noundef @.str.4)
  %16643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16644 = load i32, ptr %16643, align 4, !tbaa !5
  %16645 = call ptr @s2n_strerror_debug(i32 noundef %16644, ptr noundef @.str.4)
  %16646 = call ptr @__errno_location() #12
  %16647 = load i32, ptr %16646, align 4, !tbaa !5
  %16648 = call ptr @strerror(i32 noundef %16647) #11
  %16649 = call ptr @__errno_location() #12
  %16650 = load i32, ptr %16649, align 4, !tbaa !5
  %16651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16638, ptr noundef @.str.5, i32 noundef %16639, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 671, ptr noundef %16642, ptr noundef %16645, ptr noundef %16648, i32 noundef %16650) #11
  br label %16652

16652:                                            ; preds = %16635, %16618
  call void @llvm.lifetime.end.p0(i64 4, ptr %343) #11
  br label %16653

16653:                                            ; preds = %16652
  br label %16654

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

16655:                                            ; No predecessors!
  br label %16656

16656:                                            ; preds = %16655
  br label %16657

16657:                                            ; preds = %16656, %16594
  br label %16658

16658:                                            ; preds = %16657
  br label %16659

16659:                                            ; preds = %16658
  br label %16660

16660:                                            ; preds = %16659
  %16661 = load i32, ptr @test_count, align 4, !tbaa !5
  %16662 = add nsw i32 %16661, 1
  store i32 %16662, ptr @test_count, align 4, !tbaa !5
  %16663 = load ptr, ptr %330, align 8, !tbaa !9
  %16664 = getelementptr inbounds %struct.s2n_connection, ptr %16663, i32 0, i32 31
  %16665 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16664, i32 0, i32 4
  %16666 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16665, i32 0, i32 1
  %16667 = getelementptr inbounds %struct.s2n_kem_params, ptr %16666, i32 0, i32 0
  %16668 = load ptr, ptr %16667, align 8, !tbaa !95
  %16669 = load ptr, ptr %334, align 8, !tbaa !9
  %16670 = getelementptr inbounds %struct.s2n_kem_group, ptr %16669, i32 0, i32 3
  %16671 = load ptr, ptr %16670, align 8, !tbaa !91
  %16672 = icmp eq ptr %16668, %16671
  br i1 %16672, label %16726, label %16673

16673:                                            ; preds = %16660
  br label %16674

16674:                                            ; preds = %16673
  br label %16675

16675:                                            ; preds = %16674
  call void @llvm.lifetime.start.p0(i64 4, ptr %344) #11
  %16676 = call ptr @__errno_location() #12
  %16677 = load i32, ptr %16676, align 4, !tbaa !5
  store i32 %16677, ptr %344, align 4, !tbaa !5
  %16678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16679 = call i32 @s2n_print_stacktrace(ptr noundef %16678)
  %16680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16681 = trunc i8 %16680 to i1
  br i1 %16681, label %16682, label %16704

16682:                                            ; preds = %16675
  %16683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16684 = call i32 @fileno(ptr noundef %16683) #11
  %16685 = call i32 @isatty(i32 noundef %16684) #11
  %16686 = icmp ne i32 %16685, 0
  br i1 %16686, label %16687, label %16704

16687:                                            ; preds = %16682
  %16688 = load i32, ptr %344, align 4, !tbaa !5
  %16689 = call ptr @__errno_location() #12
  store i32 %16688, ptr %16689, align 4, !tbaa !5
  %16690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16691 = load i32, ptr @test_count, align 4, !tbaa !5
  %16692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16693 = load i32, ptr %16692, align 4, !tbaa !5
  %16694 = call ptr @s2n_strerror(i32 noundef %16693, ptr noundef @.str.4)
  %16695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16696 = load i32, ptr %16695, align 4, !tbaa !5
  %16697 = call ptr @s2n_strerror_debug(i32 noundef %16696, ptr noundef @.str.4)
  %16698 = call ptr @__errno_location() #12
  %16699 = load i32, ptr %16698, align 4, !tbaa !5
  %16700 = call ptr @strerror(i32 noundef %16699) #11
  %16701 = call ptr @__errno_location() #12
  %16702 = load i32, ptr %16701, align 4, !tbaa !5
  %16703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16690, ptr noundef @.str.2, i32 noundef %16691, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 672, ptr noundef %16694, ptr noundef %16697, ptr noundef %16700, i32 noundef %16702) #11
  br label %16721

16704:                                            ; preds = %16682, %16675
  %16705 = load i32, ptr %344, align 4, !tbaa !5
  %16706 = call ptr @__errno_location() #12
  store i32 %16705, ptr %16706, align 4, !tbaa !5
  %16707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16708 = load i32, ptr @test_count, align 4, !tbaa !5
  %16709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16710 = load i32, ptr %16709, align 4, !tbaa !5
  %16711 = call ptr @s2n_strerror(i32 noundef %16710, ptr noundef @.str.4)
  %16712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16713 = load i32, ptr %16712, align 4, !tbaa !5
  %16714 = call ptr @s2n_strerror_debug(i32 noundef %16713, ptr noundef @.str.4)
  %16715 = call ptr @__errno_location() #12
  %16716 = load i32, ptr %16715, align 4, !tbaa !5
  %16717 = call ptr @strerror(i32 noundef %16716) #11
  %16718 = call ptr @__errno_location() #12
  %16719 = load i32, ptr %16718, align 4, !tbaa !5
  %16720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16707, ptr noundef @.str.5, i32 noundef %16708, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 672, ptr noundef %16711, ptr noundef %16714, ptr noundef %16717, i32 noundef %16719) #11
  br label %16721

16721:                                            ; preds = %16704, %16687
  call void @llvm.lifetime.end.p0(i64 4, ptr %344) #11
  br label %16722

16722:                                            ; preds = %16721
  br label %16723

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

16724:                                            ; No predecessors!
  br label %16725

16725:                                            ; preds = %16724
  br label %16726

16726:                                            ; preds = %16725, %16660
  br label %16727

16727:                                            ; preds = %16726
  br label %16728

16728:                                            ; preds = %16727
  br label %16729

16729:                                            ; preds = %16728
  %16730 = load i32, ptr @test_count, align 4, !tbaa !5
  %16731 = add nsw i32 %16730, 1
  store i32 %16731, ptr @test_count, align 4, !tbaa !5
  %16732 = load ptr, ptr %330, align 8, !tbaa !9
  %16733 = getelementptr inbounds %struct.s2n_connection, ptr %16732, i32 0, i32 31
  %16734 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16733, i32 0, i32 5
  %16735 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16734, i32 0, i32 0
  %16736 = load ptr, ptr %16735, align 8, !tbaa !88
  %16737 = icmp eq ptr %16736, null
  br i1 %16737, label %16791, label %16738

16738:                                            ; preds = %16729
  br label %16739

16739:                                            ; preds = %16738
  br label %16740

16740:                                            ; preds = %16739
  call void @llvm.lifetime.start.p0(i64 4, ptr %345) #11
  %16741 = call ptr @__errno_location() #12
  %16742 = load i32, ptr %16741, align 4, !tbaa !5
  store i32 %16742, ptr %345, align 4, !tbaa !5
  %16743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16744 = call i32 @s2n_print_stacktrace(ptr noundef %16743)
  %16745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16746 = trunc i8 %16745 to i1
  br i1 %16746, label %16747, label %16769

16747:                                            ; preds = %16740
  %16748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16749 = call i32 @fileno(ptr noundef %16748) #11
  %16750 = call i32 @isatty(i32 noundef %16749) #11
  %16751 = icmp ne i32 %16750, 0
  br i1 %16751, label %16752, label %16769

16752:                                            ; preds = %16747
  %16753 = load i32, ptr %345, align 4, !tbaa !5
  %16754 = call ptr @__errno_location() #12
  store i32 %16753, ptr %16754, align 4, !tbaa !5
  %16755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16756 = load i32, ptr @test_count, align 4, !tbaa !5
  %16757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16758 = load i32, ptr %16757, align 4, !tbaa !5
  %16759 = call ptr @s2n_strerror(i32 noundef %16758, ptr noundef @.str.4)
  %16760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16761 = load i32, ptr %16760, align 4, !tbaa !5
  %16762 = call ptr @s2n_strerror_debug(i32 noundef %16761, ptr noundef @.str.4)
  %16763 = call ptr @__errno_location() #12
  %16764 = load i32, ptr %16763, align 4, !tbaa !5
  %16765 = call ptr @strerror(i32 noundef %16764) #11
  %16766 = call ptr @__errno_location() #12
  %16767 = load i32, ptr %16766, align 4, !tbaa !5
  %16768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16755, ptr noundef @.str.2, i32 noundef %16756, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 676, ptr noundef %16759, ptr noundef %16762, ptr noundef %16765, i32 noundef %16767) #11
  br label %16786

16769:                                            ; preds = %16747, %16740
  %16770 = load i32, ptr %345, align 4, !tbaa !5
  %16771 = call ptr @__errno_location() #12
  store i32 %16770, ptr %16771, align 4, !tbaa !5
  %16772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16773 = load i32, ptr @test_count, align 4, !tbaa !5
  %16774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16775 = load i32, ptr %16774, align 4, !tbaa !5
  %16776 = call ptr @s2n_strerror(i32 noundef %16775, ptr noundef @.str.4)
  %16777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16778 = load i32, ptr %16777, align 4, !tbaa !5
  %16779 = call ptr @s2n_strerror_debug(i32 noundef %16778, ptr noundef @.str.4)
  %16780 = call ptr @__errno_location() #12
  %16781 = load i32, ptr %16780, align 4, !tbaa !5
  %16782 = call ptr @strerror(i32 noundef %16781) #11
  %16783 = call ptr @__errno_location() #12
  %16784 = load i32, ptr %16783, align 4, !tbaa !5
  %16785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16772, ptr noundef @.str.5, i32 noundef %16773, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 676, ptr noundef %16776, ptr noundef %16779, ptr noundef %16782, i32 noundef %16784) #11
  br label %16786

16786:                                            ; preds = %16769, %16752
  call void @llvm.lifetime.end.p0(i64 4, ptr %345) #11
  br label %16787

16787:                                            ; preds = %16786
  br label %16788

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

16789:                                            ; No predecessors!
  br label %16790

16790:                                            ; preds = %16789
  br label %16791

16791:                                            ; preds = %16790, %16729
  br label %16792

16792:                                            ; preds = %16791
  br label %16793

16793:                                            ; preds = %16792
  br label %16794

16794:                                            ; preds = %16793
  %16795 = load i32, ptr @test_count, align 4, !tbaa !5
  %16796 = add nsw i32 %16795, 1
  store i32 %16796, ptr @test_count, align 4, !tbaa !5
  %16797 = load ptr, ptr %330, align 8, !tbaa !9
  %16798 = getelementptr inbounds %struct.s2n_connection, ptr %16797, i32 0, i32 31
  %16799 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16798, i32 0, i32 5
  %16800 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16799, i32 0, i32 2
  %16801 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %16800, i32 0, i32 0
  %16802 = load ptr, ptr %16801, align 8, !tbaa !90
  %16803 = icmp eq ptr %16802, null
  br i1 %16803, label %16857, label %16804

16804:                                            ; preds = %16794
  br label %16805

16805:                                            ; preds = %16804
  br label %16806

16806:                                            ; preds = %16805
  call void @llvm.lifetime.start.p0(i64 4, ptr %346) #11
  %16807 = call ptr @__errno_location() #12
  %16808 = load i32, ptr %16807, align 4, !tbaa !5
  store i32 %16808, ptr %346, align 4, !tbaa !5
  %16809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16810 = call i32 @s2n_print_stacktrace(ptr noundef %16809)
  %16811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16812 = trunc i8 %16811 to i1
  br i1 %16812, label %16813, label %16835

16813:                                            ; preds = %16806
  %16814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16815 = call i32 @fileno(ptr noundef %16814) #11
  %16816 = call i32 @isatty(i32 noundef %16815) #11
  %16817 = icmp ne i32 %16816, 0
  br i1 %16817, label %16818, label %16835

16818:                                            ; preds = %16813
  %16819 = load i32, ptr %346, align 4, !tbaa !5
  %16820 = call ptr @__errno_location() #12
  store i32 %16819, ptr %16820, align 4, !tbaa !5
  %16821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16822 = load i32, ptr @test_count, align 4, !tbaa !5
  %16823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16824 = load i32, ptr %16823, align 4, !tbaa !5
  %16825 = call ptr @s2n_strerror(i32 noundef %16824, ptr noundef @.str.4)
  %16826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16827 = load i32, ptr %16826, align 4, !tbaa !5
  %16828 = call ptr @s2n_strerror_debug(i32 noundef %16827, ptr noundef @.str.4)
  %16829 = call ptr @__errno_location() #12
  %16830 = load i32, ptr %16829, align 4, !tbaa !5
  %16831 = call ptr @strerror(i32 noundef %16830) #11
  %16832 = call ptr @__errno_location() #12
  %16833 = load i32, ptr %16832, align 4, !tbaa !5
  %16834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16821, ptr noundef @.str.2, i32 noundef %16822, ptr noundef @.str.154, ptr noundef @.str.1, i32 noundef 677, ptr noundef %16825, ptr noundef %16828, ptr noundef %16831, i32 noundef %16833) #11
  br label %16852

16835:                                            ; preds = %16813, %16806
  %16836 = load i32, ptr %346, align 4, !tbaa !5
  %16837 = call ptr @__errno_location() #12
  store i32 %16836, ptr %16837, align 4, !tbaa !5
  %16838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16839 = load i32, ptr @test_count, align 4, !tbaa !5
  %16840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16841 = load i32, ptr %16840, align 4, !tbaa !5
  %16842 = call ptr @s2n_strerror(i32 noundef %16841, ptr noundef @.str.4)
  %16843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16844 = load i32, ptr %16843, align 4, !tbaa !5
  %16845 = call ptr @s2n_strerror_debug(i32 noundef %16844, ptr noundef @.str.4)
  %16846 = call ptr @__errno_location() #12
  %16847 = load i32, ptr %16846, align 4, !tbaa !5
  %16848 = call ptr @strerror(i32 noundef %16847) #11
  %16849 = call ptr @__errno_location() #12
  %16850 = load i32, ptr %16849, align 4, !tbaa !5
  %16851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16838, ptr noundef @.str.5, i32 noundef %16839, ptr noundef @.str.154, ptr noundef @.str.1, i32 noundef 677, ptr noundef %16842, ptr noundef %16845, ptr noundef %16848, i32 noundef %16850) #11
  br label %16852

16852:                                            ; preds = %16835, %16818
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #11
  br label %16853

16853:                                            ; preds = %16852
  br label %16854

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

16855:                                            ; No predecessors!
  br label %16856

16856:                                            ; preds = %16855
  br label %16857

16857:                                            ; preds = %16856, %16794
  br label %16858

16858:                                            ; preds = %16857
  br label %16859

16859:                                            ; preds = %16858
  br label %16860

16860:                                            ; preds = %16859
  %16861 = load i32, ptr @test_count, align 4, !tbaa !5
  %16862 = add nsw i32 %16861, 1
  store i32 %16862, ptr @test_count, align 4, !tbaa !5
  %16863 = load ptr, ptr %330, align 8, !tbaa !9
  %16864 = getelementptr inbounds %struct.s2n_connection, ptr %16863, i32 0, i32 31
  %16865 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16864, i32 0, i32 5
  %16866 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16865, i32 0, i32 2
  %16867 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %16866, i32 0, i32 1
  %16868 = load ptr, ptr %16867, align 8, !tbaa !103
  %16869 = icmp eq ptr %16868, null
  br i1 %16869, label %16923, label %16870

16870:                                            ; preds = %16860
  br label %16871

16871:                                            ; preds = %16870
  br label %16872

16872:                                            ; preds = %16871
  call void @llvm.lifetime.start.p0(i64 4, ptr %347) #11
  %16873 = call ptr @__errno_location() #12
  %16874 = load i32, ptr %16873, align 4, !tbaa !5
  store i32 %16874, ptr %347, align 4, !tbaa !5
  %16875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16876 = call i32 @s2n_print_stacktrace(ptr noundef %16875)
  %16877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16878 = trunc i8 %16877 to i1
  br i1 %16878, label %16879, label %16901

16879:                                            ; preds = %16872
  %16880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16881 = call i32 @fileno(ptr noundef %16880) #11
  %16882 = call i32 @isatty(i32 noundef %16881) #11
  %16883 = icmp ne i32 %16882, 0
  br i1 %16883, label %16884, label %16901

16884:                                            ; preds = %16879
  %16885 = load i32, ptr %347, align 4, !tbaa !5
  %16886 = call ptr @__errno_location() #12
  store i32 %16885, ptr %16886, align 4, !tbaa !5
  %16887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16888 = load i32, ptr @test_count, align 4, !tbaa !5
  %16889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16890 = load i32, ptr %16889, align 4, !tbaa !5
  %16891 = call ptr @s2n_strerror(i32 noundef %16890, ptr noundef @.str.4)
  %16892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16893 = load i32, ptr %16892, align 4, !tbaa !5
  %16894 = call ptr @s2n_strerror_debug(i32 noundef %16893, ptr noundef @.str.4)
  %16895 = call ptr @__errno_location() #12
  %16896 = load i32, ptr %16895, align 4, !tbaa !5
  %16897 = call ptr @strerror(i32 noundef %16896) #11
  %16898 = call ptr @__errno_location() #12
  %16899 = load i32, ptr %16898, align 4, !tbaa !5
  %16900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16887, ptr noundef @.str.2, i32 noundef %16888, ptr noundef @.str.155, ptr noundef @.str.1, i32 noundef 678, ptr noundef %16891, ptr noundef %16894, ptr noundef %16897, i32 noundef %16899) #11
  br label %16918

16901:                                            ; preds = %16879, %16872
  %16902 = load i32, ptr %347, align 4, !tbaa !5
  %16903 = call ptr @__errno_location() #12
  store i32 %16902, ptr %16903, align 4, !tbaa !5
  %16904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16905 = load i32, ptr @test_count, align 4, !tbaa !5
  %16906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16907 = load i32, ptr %16906, align 4, !tbaa !5
  %16908 = call ptr @s2n_strerror(i32 noundef %16907, ptr noundef @.str.4)
  %16909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16910 = load i32, ptr %16909, align 4, !tbaa !5
  %16911 = call ptr @s2n_strerror_debug(i32 noundef %16910, ptr noundef @.str.4)
  %16912 = call ptr @__errno_location() #12
  %16913 = load i32, ptr %16912, align 4, !tbaa !5
  %16914 = call ptr @strerror(i32 noundef %16913) #11
  %16915 = call ptr @__errno_location() #12
  %16916 = load i32, ptr %16915, align 4, !tbaa !5
  %16917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16904, ptr noundef @.str.5, i32 noundef %16905, ptr noundef @.str.155, ptr noundef @.str.1, i32 noundef 678, ptr noundef %16908, ptr noundef %16911, ptr noundef %16914, i32 noundef %16916) #11
  br label %16918

16918:                                            ; preds = %16901, %16884
  call void @llvm.lifetime.end.p0(i64 4, ptr %347) #11
  br label %16919

16919:                                            ; preds = %16918
  br label %16920

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

16921:                                            ; No predecessors!
  br label %16922

16922:                                            ; preds = %16921
  br label %16923

16923:                                            ; preds = %16922, %16860
  br label %16924

16924:                                            ; preds = %16923
  br label %16925

16925:                                            ; preds = %16924
  br label %16926

16926:                                            ; preds = %16925
  %16927 = load i32, ptr @test_count, align 4, !tbaa !5
  %16928 = add nsw i32 %16927, 1
  store i32 %16928, ptr @test_count, align 4, !tbaa !5
  %16929 = load ptr, ptr %330, align 8, !tbaa !9
  %16930 = getelementptr inbounds %struct.s2n_connection, ptr %16929, i32 0, i32 31
  %16931 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16930, i32 0, i32 5
  %16932 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16931, i32 0, i32 1
  %16933 = getelementptr inbounds %struct.s2n_kem_params, ptr %16932, i32 0, i32 0
  %16934 = load ptr, ptr %16933, align 8, !tbaa !92
  %16935 = icmp eq ptr %16934, null
  br i1 %16935, label %16989, label %16936

16936:                                            ; preds = %16926
  br label %16937

16937:                                            ; preds = %16936
  br label %16938

16938:                                            ; preds = %16937
  call void @llvm.lifetime.start.p0(i64 4, ptr %348) #11
  %16939 = call ptr @__errno_location() #12
  %16940 = load i32, ptr %16939, align 4, !tbaa !5
  store i32 %16940, ptr %348, align 4, !tbaa !5
  %16941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16942 = call i32 @s2n_print_stacktrace(ptr noundef %16941)
  %16943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16944 = trunc i8 %16943 to i1
  br i1 %16944, label %16945, label %16967

16945:                                            ; preds = %16938
  %16946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16947 = call i32 @fileno(ptr noundef %16946) #11
  %16948 = call i32 @isatty(i32 noundef %16947) #11
  %16949 = icmp ne i32 %16948, 0
  br i1 %16949, label %16950, label %16967

16950:                                            ; preds = %16945
  %16951 = load i32, ptr %348, align 4, !tbaa !5
  %16952 = call ptr @__errno_location() #12
  store i32 %16951, ptr %16952, align 4, !tbaa !5
  %16953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16954 = load i32, ptr @test_count, align 4, !tbaa !5
  %16955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16956 = load i32, ptr %16955, align 4, !tbaa !5
  %16957 = call ptr @s2n_strerror(i32 noundef %16956, ptr noundef @.str.4)
  %16958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16959 = load i32, ptr %16958, align 4, !tbaa !5
  %16960 = call ptr @s2n_strerror_debug(i32 noundef %16959, ptr noundef @.str.4)
  %16961 = call ptr @__errno_location() #12
  %16962 = load i32, ptr %16961, align 4, !tbaa !5
  %16963 = call ptr @strerror(i32 noundef %16962) #11
  %16964 = call ptr @__errno_location() #12
  %16965 = load i32, ptr %16964, align 4, !tbaa !5
  %16966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16953, ptr noundef @.str.2, i32 noundef %16954, ptr noundef @.str.156, ptr noundef @.str.1, i32 noundef 679, ptr noundef %16957, ptr noundef %16960, ptr noundef %16963, i32 noundef %16965) #11
  br label %16984

16967:                                            ; preds = %16945, %16938
  %16968 = load i32, ptr %348, align 4, !tbaa !5
  %16969 = call ptr @__errno_location() #12
  store i32 %16968, ptr %16969, align 4, !tbaa !5
  %16970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16971 = load i32, ptr @test_count, align 4, !tbaa !5
  %16972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16973 = load i32, ptr %16972, align 4, !tbaa !5
  %16974 = call ptr @s2n_strerror(i32 noundef %16973, ptr noundef @.str.4)
  %16975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16976 = load i32, ptr %16975, align 4, !tbaa !5
  %16977 = call ptr @s2n_strerror_debug(i32 noundef %16976, ptr noundef @.str.4)
  %16978 = call ptr @__errno_location() #12
  %16979 = load i32, ptr %16978, align 4, !tbaa !5
  %16980 = call ptr @strerror(i32 noundef %16979) #11
  %16981 = call ptr @__errno_location() #12
  %16982 = load i32, ptr %16981, align 4, !tbaa !5
  %16983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16970, ptr noundef @.str.5, i32 noundef %16971, ptr noundef @.str.156, ptr noundef @.str.1, i32 noundef 679, ptr noundef %16974, ptr noundef %16977, ptr noundef %16980, i32 noundef %16982) #11
  br label %16984

16984:                                            ; preds = %16967, %16950
  call void @llvm.lifetime.end.p0(i64 4, ptr %348) #11
  br label %16985

16985:                                            ; preds = %16984
  br label %16986

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

16987:                                            ; No predecessors!
  br label %16988

16988:                                            ; preds = %16987
  br label %16989

16989:                                            ; preds = %16988, %16926
  br label %16990

16990:                                            ; preds = %16989
  br label %16991

16991:                                            ; preds = %16990
  br label %16992

16992:                                            ; preds = %16991
  %16993 = load i32, ptr @test_count, align 4, !tbaa !5
  %16994 = add nsw i32 %16993, 1
  store i32 %16994, ptr @test_count, align 4, !tbaa !5
  %16995 = load ptr, ptr %330, align 8, !tbaa !9
  %16996 = getelementptr inbounds %struct.s2n_connection, ptr %16995, i32 0, i32 31
  %16997 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16996, i32 0, i32 5
  %16998 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16997, i32 0, i32 1
  %16999 = getelementptr inbounds %struct.s2n_kem_params, ptr %16998, i32 0, i32 2
  %17000 = getelementptr inbounds %struct.s2n_blob, ptr %16999, i32 0, i32 0
  %17001 = load ptr, ptr %17000, align 8, !tbaa !104
  %17002 = icmp eq ptr %17001, null
  br i1 %17002, label %17056, label %17003

17003:                                            ; preds = %16992
  br label %17004

17004:                                            ; preds = %17003
  br label %17005

17005:                                            ; preds = %17004
  call void @llvm.lifetime.start.p0(i64 4, ptr %349) #11
  %17006 = call ptr @__errno_location() #12
  %17007 = load i32, ptr %17006, align 4, !tbaa !5
  store i32 %17007, ptr %349, align 4, !tbaa !5
  %17008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17009 = call i32 @s2n_print_stacktrace(ptr noundef %17008)
  %17010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17011 = trunc i8 %17010 to i1
  br i1 %17011, label %17012, label %17034

17012:                                            ; preds = %17005
  %17013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17014 = call i32 @fileno(ptr noundef %17013) #11
  %17015 = call i32 @isatty(i32 noundef %17014) #11
  %17016 = icmp ne i32 %17015, 0
  br i1 %17016, label %17017, label %17034

17017:                                            ; preds = %17012
  %17018 = load i32, ptr %349, align 4, !tbaa !5
  %17019 = call ptr @__errno_location() #12
  store i32 %17018, ptr %17019, align 4, !tbaa !5
  %17020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17021 = load i32, ptr @test_count, align 4, !tbaa !5
  %17022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17023 = load i32, ptr %17022, align 4, !tbaa !5
  %17024 = call ptr @s2n_strerror(i32 noundef %17023, ptr noundef @.str.4)
  %17025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17026 = load i32, ptr %17025, align 4, !tbaa !5
  %17027 = call ptr @s2n_strerror_debug(i32 noundef %17026, ptr noundef @.str.4)
  %17028 = call ptr @__errno_location() #12
  %17029 = load i32, ptr %17028, align 4, !tbaa !5
  %17030 = call ptr @strerror(i32 noundef %17029) #11
  %17031 = call ptr @__errno_location() #12
  %17032 = load i32, ptr %17031, align 4, !tbaa !5
  %17033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17020, ptr noundef @.str.2, i32 noundef %17021, ptr noundef @.str.157, ptr noundef @.str.1, i32 noundef 680, ptr noundef %17024, ptr noundef %17027, ptr noundef %17030, i32 noundef %17032) #11
  br label %17051

17034:                                            ; preds = %17012, %17005
  %17035 = load i32, ptr %349, align 4, !tbaa !5
  %17036 = call ptr @__errno_location() #12
  store i32 %17035, ptr %17036, align 4, !tbaa !5
  %17037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17038 = load i32, ptr @test_count, align 4, !tbaa !5
  %17039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17040 = load i32, ptr %17039, align 4, !tbaa !5
  %17041 = call ptr @s2n_strerror(i32 noundef %17040, ptr noundef @.str.4)
  %17042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17043 = load i32, ptr %17042, align 4, !tbaa !5
  %17044 = call ptr @s2n_strerror_debug(i32 noundef %17043, ptr noundef @.str.4)
  %17045 = call ptr @__errno_location() #12
  %17046 = load i32, ptr %17045, align 4, !tbaa !5
  %17047 = call ptr @strerror(i32 noundef %17046) #11
  %17048 = call ptr @__errno_location() #12
  %17049 = load i32, ptr %17048, align 4, !tbaa !5
  %17050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17037, ptr noundef @.str.5, i32 noundef %17038, ptr noundef @.str.157, ptr noundef @.str.1, i32 noundef 680, ptr noundef %17041, ptr noundef %17044, ptr noundef %17047, i32 noundef %17049) #11
  br label %17051

17051:                                            ; preds = %17034, %17017
  call void @llvm.lifetime.end.p0(i64 4, ptr %349) #11
  br label %17052

17052:                                            ; preds = %17051
  br label %17053

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

17054:                                            ; No predecessors!
  br label %17055

17055:                                            ; preds = %17054
  br label %17056

17056:                                            ; preds = %17055, %16992
  br label %17057

17057:                                            ; preds = %17056
  br label %17058

17058:                                            ; preds = %17057
  br label %17059

17059:                                            ; preds = %17058
  %17060 = load i32, ptr @test_count, align 4, !tbaa !5
  %17061 = add nsw i32 %17060, 1
  store i32 %17061, ptr @test_count, align 4, !tbaa !5
  %17062 = load ptr, ptr %330, align 8, !tbaa !9
  %17063 = getelementptr inbounds %struct.s2n_connection, ptr %17062, i32 0, i32 31
  %17064 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %17063, i32 0, i32 5
  %17065 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %17064, i32 0, i32 1
  %17066 = getelementptr inbounds %struct.s2n_kem_params, ptr %17065, i32 0, i32 1
  %17067 = getelementptr inbounds %struct.s2n_blob, ptr %17066, i32 0, i32 0
  %17068 = load ptr, ptr %17067, align 8, !tbaa !105
  %17069 = icmp eq ptr %17068, null
  br i1 %17069, label %17123, label %17070

17070:                                            ; preds = %17059
  br label %17071

17071:                                            ; preds = %17070
  br label %17072

17072:                                            ; preds = %17071
  call void @llvm.lifetime.start.p0(i64 4, ptr %350) #11
  %17073 = call ptr @__errno_location() #12
  %17074 = load i32, ptr %17073, align 4, !tbaa !5
  store i32 %17074, ptr %350, align 4, !tbaa !5
  %17075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17076 = call i32 @s2n_print_stacktrace(ptr noundef %17075)
  %17077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17078 = trunc i8 %17077 to i1
  br i1 %17078, label %17079, label %17101

17079:                                            ; preds = %17072
  %17080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17081 = call i32 @fileno(ptr noundef %17080) #11
  %17082 = call i32 @isatty(i32 noundef %17081) #11
  %17083 = icmp ne i32 %17082, 0
  br i1 %17083, label %17084, label %17101

17084:                                            ; preds = %17079
  %17085 = load i32, ptr %350, align 4, !tbaa !5
  %17086 = call ptr @__errno_location() #12
  store i32 %17085, ptr %17086, align 4, !tbaa !5
  %17087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17088 = load i32, ptr @test_count, align 4, !tbaa !5
  %17089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17090 = load i32, ptr %17089, align 4, !tbaa !5
  %17091 = call ptr @s2n_strerror(i32 noundef %17090, ptr noundef @.str.4)
  %17092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17093 = load i32, ptr %17092, align 4, !tbaa !5
  %17094 = call ptr @s2n_strerror_debug(i32 noundef %17093, ptr noundef @.str.4)
  %17095 = call ptr @__errno_location() #12
  %17096 = load i32, ptr %17095, align 4, !tbaa !5
  %17097 = call ptr @strerror(i32 noundef %17096) #11
  %17098 = call ptr @__errno_location() #12
  %17099 = load i32, ptr %17098, align 4, !tbaa !5
  %17100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17087, ptr noundef @.str.2, i32 noundef %17088, ptr noundef @.str.158, ptr noundef @.str.1, i32 noundef 681, ptr noundef %17091, ptr noundef %17094, ptr noundef %17097, i32 noundef %17099) #11
  br label %17118

17101:                                            ; preds = %17079, %17072
  %17102 = load i32, ptr %350, align 4, !tbaa !5
  %17103 = call ptr @__errno_location() #12
  store i32 %17102, ptr %17103, align 4, !tbaa !5
  %17104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17105 = load i32, ptr @test_count, align 4, !tbaa !5
  %17106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17107 = load i32, ptr %17106, align 4, !tbaa !5
  %17108 = call ptr @s2n_strerror(i32 noundef %17107, ptr noundef @.str.4)
  %17109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17110 = load i32, ptr %17109, align 4, !tbaa !5
  %17111 = call ptr @s2n_strerror_debug(i32 noundef %17110, ptr noundef @.str.4)
  %17112 = call ptr @__errno_location() #12
  %17113 = load i32, ptr %17112, align 4, !tbaa !5
  %17114 = call ptr @strerror(i32 noundef %17113) #11
  %17115 = call ptr @__errno_location() #12
  %17116 = load i32, ptr %17115, align 4, !tbaa !5
  %17117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17104, ptr noundef @.str.5, i32 noundef %17105, ptr noundef @.str.158, ptr noundef @.str.1, i32 noundef 681, ptr noundef %17108, ptr noundef %17111, ptr noundef %17114, i32 noundef %17116) #11
  br label %17118

17118:                                            ; preds = %17101, %17084
  call void @llvm.lifetime.end.p0(i64 4, ptr %350) #11
  br label %17119

17119:                                            ; preds = %17118
  br label %17120

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

17121:                                            ; No predecessors!
  br label %17122

17122:                                            ; preds = %17121
  br label %17123

17123:                                            ; preds = %17122, %17059
  br label %17124

17124:                                            ; preds = %17123
  br label %17125

17125:                                            ; preds = %17124
  br label %17126

17126:                                            ; preds = %17125
  %17127 = load i32, ptr @test_count, align 4, !tbaa !5
  %17128 = add nsw i32 %17127, 1
  store i32 %17128, ptr @test_count, align 4, !tbaa !5
  %17129 = load ptr, ptr %330, align 8, !tbaa !9
  %17130 = getelementptr inbounds %struct.s2n_connection, ptr %17129, i32 0, i32 31
  %17131 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %17130, i32 0, i32 5
  %17132 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %17131, i32 0, i32 1
  %17133 = getelementptr inbounds %struct.s2n_kem_params, ptr %17132, i32 0, i32 3
  %17134 = getelementptr inbounds %struct.s2n_blob, ptr %17133, i32 0, i32 0
  %17135 = load ptr, ptr %17134, align 8, !tbaa !96
  %17136 = icmp eq ptr %17135, null
  br i1 %17136, label %17190, label %17137

17137:                                            ; preds = %17126
  br label %17138

17138:                                            ; preds = %17137
  br label %17139

17139:                                            ; preds = %17138
  call void @llvm.lifetime.start.p0(i64 4, ptr %351) #11
  %17140 = call ptr @__errno_location() #12
  %17141 = load i32, ptr %17140, align 4, !tbaa !5
  store i32 %17141, ptr %351, align 4, !tbaa !5
  %17142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17143 = call i32 @s2n_print_stacktrace(ptr noundef %17142)
  %17144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17145 = trunc i8 %17144 to i1
  br i1 %17145, label %17146, label %17168

17146:                                            ; preds = %17139
  %17147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17148 = call i32 @fileno(ptr noundef %17147) #11
  %17149 = call i32 @isatty(i32 noundef %17148) #11
  %17150 = icmp ne i32 %17149, 0
  br i1 %17150, label %17151, label %17168

17151:                                            ; preds = %17146
  %17152 = load i32, ptr %351, align 4, !tbaa !5
  %17153 = call ptr @__errno_location() #12
  store i32 %17152, ptr %17153, align 4, !tbaa !5
  %17154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17155 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %17157, ptr noundef @.str.4)
  %17159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17160 = load i32, ptr %17159, align 4, !tbaa !5
  %17161 = call ptr @s2n_strerror_debug(i32 noundef %17160, ptr noundef @.str.4)
  %17162 = call ptr @__errno_location() #12
  %17163 = load i32, ptr %17162, align 4, !tbaa !5
  %17164 = call ptr @strerror(i32 noundef %17163) #11
  %17165 = call ptr @__errno_location() #12
  %17166 = load i32, ptr %17165, align 4, !tbaa !5
  %17167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17154, ptr noundef @.str.2, i32 noundef %17155, ptr noundef @.str.159, ptr noundef @.str.1, i32 noundef 682, ptr noundef %17158, ptr noundef %17161, ptr noundef %17164, i32 noundef %17166) #11
  br label %17185

17168:                                            ; preds = %17146, %17139
  %17169 = load i32, ptr %351, align 4, !tbaa !5
  %17170 = call ptr @__errno_location() #12
  store i32 %17169, ptr %17170, align 4, !tbaa !5
  %17171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17172 = load i32, ptr @test_count, align 4, !tbaa !5
  %17173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17174 = load i32, ptr %17173, align 4, !tbaa !5
  %17175 = call ptr @s2n_strerror(i32 noundef %17174, ptr noundef @.str.4)
  %17176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17177 = load i32, ptr %17176, align 4, !tbaa !5
  %17178 = call ptr @s2n_strerror_debug(i32 noundef %17177, ptr noundef @.str.4)
  %17179 = call ptr @__errno_location() #12
  %17180 = load i32, ptr %17179, align 4, !tbaa !5
  %17181 = call ptr @strerror(i32 noundef %17180) #11
  %17182 = call ptr @__errno_location() #12
  %17183 = load i32, ptr %17182, align 4, !tbaa !5
  %17184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17171, ptr noundef @.str.5, i32 noundef %17172, ptr noundef @.str.159, ptr noundef @.str.1, i32 noundef 682, ptr noundef %17175, ptr noundef %17178, ptr noundef %17181, i32 noundef %17183) #11
  br label %17185

17185:                                            ; preds = %17168, %17151
  call void @llvm.lifetime.end.p0(i64 4, ptr %351) #11
  br label %17186

17186:                                            ; preds = %17185
  br label %17187

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

17188:                                            ; No predecessors!
  br label %17189

17189:                                            ; preds = %17188
  br label %17190

17190:                                            ; preds = %17189, %17126
  br label %17191

17191:                                            ; preds = %17190
  br label %17192

17192:                                            ; preds = %17191
  br label %17193

17193:                                            ; preds = %17192
  %17194 = load i32, ptr @test_count, align 4, !tbaa !5
  %17195 = add nsw i32 %17194, 1
  store i32 %17195, ptr @test_count, align 4, !tbaa !5
  %17196 = load ptr, ptr %330, align 8, !tbaa !9
  %17197 = getelementptr inbounds %struct.s2n_connection, ptr %17196, i32 0, i32 31
  %17198 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %17197, i32 0, i32 4
  %17199 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %17198, i32 0, i32 2
  %17200 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %17199, i32 0, i32 1
  %17201 = load ptr, ptr %17200, align 8, !tbaa !106
  %17202 = icmp eq ptr %17201, null
  br i1 %17202, label %17256, label %17203

17203:                                            ; preds = %17193
  br label %17204

17204:                                            ; preds = %17203
  br label %17205

17205:                                            ; preds = %17204
  call void @llvm.lifetime.start.p0(i64 4, ptr %352) #11
  %17206 = call ptr @__errno_location() #12
  %17207 = load i32, ptr %17206, align 4, !tbaa !5
  store i32 %17207, ptr %352, align 4, !tbaa !5
  %17208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17209 = call i32 @s2n_print_stacktrace(ptr noundef %17208)
  %17210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17211 = trunc i8 %17210 to i1
  br i1 %17211, label %17212, label %17234

17212:                                            ; preds = %17205
  %17213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17214 = call i32 @fileno(ptr noundef %17213) #11
  %17215 = call i32 @isatty(i32 noundef %17214) #11
  %17216 = icmp ne i32 %17215, 0
  br i1 %17216, label %17217, label %17234

17217:                                            ; preds = %17212
  %17218 = load i32, ptr %352, align 4, !tbaa !5
  %17219 = call ptr @__errno_location() #12
  store i32 %17218, ptr %17219, align 4, !tbaa !5
  %17220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17221 = load i32, ptr @test_count, align 4, !tbaa !5
  %17222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17223 = load i32, ptr %17222, align 4, !tbaa !5
  %17224 = call ptr @s2n_strerror(i32 noundef %17223, ptr noundef @.str.4)
  %17225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17226 = load i32, ptr %17225, align 4, !tbaa !5
  %17227 = call ptr @s2n_strerror_debug(i32 noundef %17226, ptr noundef @.str.4)
  %17228 = call ptr @__errno_location() #12
  %17229 = load i32, ptr %17228, align 4, !tbaa !5
  %17230 = call ptr @strerror(i32 noundef %17229) #11
  %17231 = call ptr @__errno_location() #12
  %17232 = load i32, ptr %17231, align 4, !tbaa !5
  %17233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17220, ptr noundef @.str.2, i32 noundef %17221, ptr noundef @.str.160, ptr noundef @.str.1, i32 noundef 684, ptr noundef %17224, ptr noundef %17227, ptr noundef %17230, i32 noundef %17232) #11
  br label %17251

17234:                                            ; preds = %17212, %17205
  %17235 = load i32, ptr %352, align 4, !tbaa !5
  %17236 = call ptr @__errno_location() #12
  store i32 %17235, ptr %17236, align 4, !tbaa !5
  %17237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17238 = load i32, ptr @test_count, align 4, !tbaa !5
  %17239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17240 = load i32, ptr %17239, align 4, !tbaa !5
  %17241 = call ptr @s2n_strerror(i32 noundef %17240, ptr noundef @.str.4)
  %17242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17243 = load i32, ptr %17242, align 4, !tbaa !5
  %17244 = call ptr @s2n_strerror_debug(i32 noundef %17243, ptr noundef @.str.4)
  %17245 = call ptr @__errno_location() #12
  %17246 = load i32, ptr %17245, align 4, !tbaa !5
  %17247 = call ptr @strerror(i32 noundef %17246) #11
  %17248 = call ptr @__errno_location() #12
  %17249 = load i32, ptr %17248, align 4, !tbaa !5
  %17250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17237, ptr noundef @.str.5, i32 noundef %17238, ptr noundef @.str.160, ptr noundef @.str.1, i32 noundef 684, ptr noundef %17241, ptr noundef %17244, ptr noundef %17247, i32 noundef %17249) #11
  br label %17251

17251:                                            ; preds = %17234, %17217
  call void @llvm.lifetime.end.p0(i64 4, ptr %352) #11
  br label %17252

17252:                                            ; preds = %17251
  br label %17253

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

17254:                                            ; No predecessors!
  br label %17255

17255:                                            ; preds = %17254
  br label %17256

17256:                                            ; preds = %17255, %17193
  br label %17257

17257:                                            ; preds = %17256
  br label %17258

17258:                                            ; preds = %17257
  br label %17259

17259:                                            ; preds = %17258
  %17260 = load i32, ptr @test_count, align 4, !tbaa !5
  %17261 = add nsw i32 %17260, 1
  store i32 %17261, ptr @test_count, align 4, !tbaa !5
  %17262 = load ptr, ptr %330, align 8, !tbaa !9
  %17263 = getelementptr inbounds %struct.s2n_connection, ptr %17262, i32 0, i32 31
  %17264 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %17263, i32 0, i32 4
  %17265 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %17264, i32 0, i32 1
  %17266 = getelementptr inbounds %struct.s2n_kem_params, ptr %17265, i32 0, i32 3
  %17267 = getelementptr inbounds %struct.s2n_blob, ptr %17266, i32 0, i32 0
  %17268 = load ptr, ptr %17267, align 8, !tbaa !107
  %17269 = icmp eq ptr %17268, null
  br i1 %17269, label %17323, label %17270

17270:                                            ; preds = %17259
  br label %17271

17271:                                            ; preds = %17270
  br label %17272

17272:                                            ; preds = %17271
  call void @llvm.lifetime.start.p0(i64 4, ptr %353) #11
  %17273 = call ptr @__errno_location() #12
  %17274 = load i32, ptr %17273, align 4, !tbaa !5
  store i32 %17274, ptr %353, align 4, !tbaa !5
  %17275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17276 = call i32 @s2n_print_stacktrace(ptr noundef %17275)
  %17277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17278 = trunc i8 %17277 to i1
  br i1 %17278, label %17279, label %17301

17279:                                            ; preds = %17272
  %17280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17281 = call i32 @fileno(ptr noundef %17280) #11
  %17282 = call i32 @isatty(i32 noundef %17281) #11
  %17283 = icmp ne i32 %17282, 0
  br i1 %17283, label %17284, label %17301

17284:                                            ; preds = %17279
  %17285 = load i32, ptr %353, align 4, !tbaa !5
  %17286 = call ptr @__errno_location() #12
  store i32 %17285, ptr %17286, align 4, !tbaa !5
  %17287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17288 = load i32, ptr @test_count, align 4, !tbaa !5
  %17289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17290 = load i32, ptr %17289, align 4, !tbaa !5
  %17291 = call ptr @s2n_strerror(i32 noundef %17290, ptr noundef @.str.4)
  %17292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17293 = load i32, ptr %17292, align 4, !tbaa !5
  %17294 = call ptr @s2n_strerror_debug(i32 noundef %17293, ptr noundef @.str.4)
  %17295 = call ptr @__errno_location() #12
  %17296 = load i32, ptr %17295, align 4, !tbaa !5
  %17297 = call ptr @strerror(i32 noundef %17296) #11
  %17298 = call ptr @__errno_location() #12
  %17299 = load i32, ptr %17298, align 4, !tbaa !5
  %17300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17287, ptr noundef @.str.2, i32 noundef %17288, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 685, ptr noundef %17291, ptr noundef %17294, ptr noundef %17297, i32 noundef %17299) #11
  br label %17318

17301:                                            ; preds = %17279, %17272
  %17302 = load i32, ptr %353, align 4, !tbaa !5
  %17303 = call ptr @__errno_location() #12
  store i32 %17302, ptr %17303, align 4, !tbaa !5
  %17304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17305 = load i32, ptr @test_count, align 4, !tbaa !5
  %17306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17307 = load i32, ptr %17306, align 4, !tbaa !5
  %17308 = call ptr @s2n_strerror(i32 noundef %17307, ptr noundef @.str.4)
  %17309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17310 = load i32, ptr %17309, align 4, !tbaa !5
  %17311 = call ptr @s2n_strerror_debug(i32 noundef %17310, ptr noundef @.str.4)
  %17312 = call ptr @__errno_location() #12
  %17313 = load i32, ptr %17312, align 4, !tbaa !5
  %17314 = call ptr @strerror(i32 noundef %17313) #11
  %17315 = call ptr @__errno_location() #12
  %17316 = load i32, ptr %17315, align 4, !tbaa !5
  %17317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17304, ptr noundef @.str.5, i32 noundef %17305, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 685, ptr noundef %17308, ptr noundef %17311, ptr noundef %17314, i32 noundef %17316) #11
  br label %17318

17318:                                            ; preds = %17301, %17284
  call void @llvm.lifetime.end.p0(i64 4, ptr %353) #11
  br label %17319

17319:                                            ; preds = %17318
  br label %17320

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

17321:                                            ; No predecessors!
  br label %17322

17322:                                            ; preds = %17321
  br label %17323

17323:                                            ; preds = %17322, %17259
  br label %17324

17324:                                            ; preds = %17323
  br label %17325

17325:                                            ; preds = %17324
  br label %17326

17326:                                            ; preds = %17325
  %17327 = load i32, ptr @test_count, align 4, !tbaa !5
  %17328 = add nsw i32 %17327, 1
  store i32 %17328, ptr @test_count, align 4, !tbaa !5
  %17329 = load ptr, ptr %330, align 8, !tbaa !9
  %17330 = call i32 @s2n_connection_free(ptr noundef %17329)
  %17331 = icmp eq i32 %17330, -1
  br i1 %17331, label %17332, label %17385

17332:                                            ; preds = %17326
  br label %17333

17333:                                            ; preds = %17332
  br label %17334

17334:                                            ; preds = %17333
  call void @llvm.lifetime.start.p0(i64 4, ptr %354) #11
  %17335 = call ptr @__errno_location() #12
  %17336 = load i32, ptr %17335, align 4, !tbaa !5
  store i32 %17336, ptr %354, align 4, !tbaa !5
  %17337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17338 = call i32 @s2n_print_stacktrace(ptr noundef %17337)
  %17339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17340 = trunc i8 %17339 to i1
  br i1 %17340, label %17341, label %17363

17341:                                            ; preds = %17334
  %17342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17343 = call i32 @fileno(ptr noundef %17342) #11
  %17344 = call i32 @isatty(i32 noundef %17343) #11
  %17345 = icmp ne i32 %17344, 0
  br i1 %17345, label %17346, label %17363

17346:                                            ; preds = %17341
  %17347 = load i32, ptr %354, align 4, !tbaa !5
  %17348 = call ptr @__errno_location() #12
  store i32 %17347, ptr %17348, align 4, !tbaa !5
  %17349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17350 = load i32, ptr @test_count, align 4, !tbaa !5
  %17351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17352 = load i32, ptr %17351, align 4, !tbaa !5
  %17353 = call ptr @s2n_strerror(i32 noundef %17352, ptr noundef @.str.4)
  %17354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17355 = load i32, ptr %17354, align 4, !tbaa !5
  %17356 = call ptr @s2n_strerror_debug(i32 noundef %17355, ptr noundef @.str.4)
  %17357 = call ptr @__errno_location() #12
  %17358 = load i32, ptr %17357, align 4, !tbaa !5
  %17359 = call ptr @strerror(i32 noundef %17358) #11
  %17360 = call ptr @__errno_location() #12
  %17361 = load i32, ptr %17360, align 4, !tbaa !5
  %17362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17349, ptr noundef @.str.2, i32 noundef %17350, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 687, ptr noundef %17353, ptr noundef %17356, ptr noundef %17359, i32 noundef %17361) #11
  br label %17380

17363:                                            ; preds = %17341, %17334
  %17364 = load i32, ptr %354, align 4, !tbaa !5
  %17365 = call ptr @__errno_location() #12
  store i32 %17364, ptr %17365, align 4, !tbaa !5
  %17366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17367 = load i32, ptr @test_count, align 4, !tbaa !5
  %17368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17369 = load i32, ptr %17368, align 4, !tbaa !5
  %17370 = call ptr @s2n_strerror(i32 noundef %17369, ptr noundef @.str.4)
  %17371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17372 = load i32, ptr %17371, align 4, !tbaa !5
  %17373 = call ptr @s2n_strerror_debug(i32 noundef %17372, ptr noundef @.str.4)
  %17374 = call ptr @__errno_location() #12
  %17375 = load i32, ptr %17374, align 4, !tbaa !5
  %17376 = call ptr @strerror(i32 noundef %17375) #11
  %17377 = call ptr @__errno_location() #12
  %17378 = load i32, ptr %17377, align 4, !tbaa !5
  %17379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17366, ptr noundef @.str.5, i32 noundef %17367, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 687, ptr noundef %17370, ptr noundef %17373, ptr noundef %17376, i32 noundef %17378) #11
  br label %17380

17380:                                            ; preds = %17363, %17346
  call void @llvm.lifetime.end.p0(i64 4, ptr %354) #11
  br label %17381

17381:                                            ; preds = %17380
  br label %17382

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

17383:                                            ; No predecessors!
  br label %17384

17384:                                            ; preds = %17383
  br label %17385

17385:                                            ; preds = %17384, %17326
  br label %17386

17386:                                            ; preds = %17385
  br label %17387

17387:                                            ; preds = %17386
  %17388 = call i32 @s2n_stuffer_free(ptr noundef %335)
  call void @llvm.lifetime.end.p0(i64 40, ptr %335) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %334) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %330) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %355) #11
  store i64 0, ptr %355, align 8, !tbaa !49
  br label %17389

17389:                                            ; preds = %19630, %17387
  %17390 = load i64, ptr %355, align 8, !tbaa !49
  %17391 = icmp ult i64 %17390, 2
  br i1 %17391, label %17393, label %17392

17392:                                            ; preds = %17389
  store i32 1636, ptr %300, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %355) #11
  br label %19633

17393:                                            ; preds = %17389
  call void @llvm.lifetime.start.p0(i64 8, ptr %356) #11
  %17394 = load i64, ptr %355, align 8, !tbaa !49
  %17395 = getelementptr inbounds [2 x ptr], ptr %277, i64 0, i64 %17394
  %17396 = load ptr, ptr %17395, align 8, !tbaa !9
  store ptr %17396, ptr %356, align 8, !tbaa !9
  %17397 = load ptr, ptr %356, align 8, !tbaa !9
  %17398 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %17397)
  br i1 %17398, label %17400, label %17399

17399:                                            ; preds = %17393
  store i32 1638, ptr %300, align 4
  br label %19627

17400:                                            ; preds = %17393
  call void @llvm.lifetime.start.p0(i64 8, ptr %357) #11
  store ptr null, ptr %357, align 8, !tbaa !9
  br label %17401

17401:                                            ; preds = %17400
  %17402 = load i32, ptr @test_count, align 4, !tbaa !5
  %17403 = add nsw i32 %17402, 1
  store i32 %17403, ptr @test_count, align 4, !tbaa !5
  %17404 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %17404, ptr %357, align 8, !tbaa !9
  %17405 = icmp eq ptr %17404, null
  br i1 %17405, label %17406, label %17459

17406:                                            ; preds = %17401
  br label %17407

17407:                                            ; preds = %17406
  br label %17408

17408:                                            ; preds = %17407
  call void @llvm.lifetime.start.p0(i64 4, ptr %358) #11
  %17409 = call ptr @__errno_location() #12
  %17410 = load i32, ptr %17409, align 4, !tbaa !5
  store i32 %17410, ptr %358, align 4, !tbaa !5
  %17411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17412 = call i32 @s2n_print_stacktrace(ptr noundef %17411)
  %17413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17414 = trunc i8 %17413 to i1
  br i1 %17414, label %17415, label %17437

17415:                                            ; preds = %17408
  %17416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17417 = call i32 @fileno(ptr noundef %17416) #11
  %17418 = call i32 @isatty(i32 noundef %17417) #11
  %17419 = icmp ne i32 %17418, 0
  br i1 %17419, label %17420, label %17437

17420:                                            ; preds = %17415
  %17421 = load i32, ptr %358, align 4, !tbaa !5
  %17422 = call ptr @__errno_location() #12
  store i32 %17421, ptr %17422, align 4, !tbaa !5
  %17423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17424 = load i32, ptr @test_count, align 4, !tbaa !5
  %17425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17426 = load i32, ptr %17425, align 4, !tbaa !5
  %17427 = call ptr @s2n_strerror(i32 noundef %17426, ptr noundef @.str.4)
  %17428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17429 = load i32, ptr %17428, align 4, !tbaa !5
  %17430 = call ptr @s2n_strerror_debug(i32 noundef %17429, ptr noundef @.str.4)
  %17431 = call ptr @__errno_location() #12
  %17432 = load i32, ptr %17431, align 4, !tbaa !5
  %17433 = call ptr @strerror(i32 noundef %17432) #11
  %17434 = call ptr @__errno_location() #12
  %17435 = load i32, ptr %17434, align 4, !tbaa !5
  %17436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17423, ptr noundef @.str.2, i32 noundef %17424, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 698, ptr noundef %17427, ptr noundef %17430, ptr noundef %17433, i32 noundef %17435) #11
  br label %17454

17437:                                            ; preds = %17415, %17408
  %17438 = load i32, ptr %358, align 4, !tbaa !5
  %17439 = call ptr @__errno_location() #12
  store i32 %17438, ptr %17439, align 4, !tbaa !5
  %17440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17441 = load i32, ptr @test_count, align 4, !tbaa !5
  %17442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17443 = load i32, ptr %17442, align 4, !tbaa !5
  %17444 = call ptr @s2n_strerror(i32 noundef %17443, ptr noundef @.str.4)
  %17445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17446 = load i32, ptr %17445, align 4, !tbaa !5
  %17447 = call ptr @s2n_strerror_debug(i32 noundef %17446, ptr noundef @.str.4)
  %17448 = call ptr @__errno_location() #12
  %17449 = load i32, ptr %17448, align 4, !tbaa !5
  %17450 = call ptr @strerror(i32 noundef %17449) #11
  %17451 = call ptr @__errno_location() #12
  %17452 = load i32, ptr %17451, align 4, !tbaa !5
  %17453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17440, ptr noundef @.str.5, i32 noundef %17441, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 698, ptr noundef %17444, ptr noundef %17447, ptr noundef %17450, i32 noundef %17452) #11
  br label %17454

17454:                                            ; preds = %17437, %17420
  call void @llvm.lifetime.end.p0(i64 4, ptr %358) #11
  br label %17455

17455:                                            ; preds = %17454
  br label %17456

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

17457:                                            ; No predecessors!
  br label %17458

17458:                                            ; preds = %17457
  br label %17459

17459:                                            ; preds = %17458, %17401
  br label %17460

17460:                                            ; preds = %17459
  br label %17461

17461:                                            ; preds = %17460
  %17462 = load ptr, ptr %357, align 8, !tbaa !9
  %17463 = getelementptr inbounds %struct.s2n_connection, ptr %17462, i32 0, i32 2
  store ptr %279, ptr %17463, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %359) #11
  store ptr @.str.162, ptr %359, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %360) #11
  call void @llvm.memset.p0.i64(ptr align 8 %360, i8 0, i64 40, i1 false)
  br label %17464

17464:                                            ; preds = %17461
  %17465 = load i32, ptr @test_count, align 4, !tbaa !5
  %17466 = add nsw i32 %17465, 1
  store i32 %17466, ptr @test_count, align 4, !tbaa !5
  %17467 = load ptr, ptr %359, align 8, !tbaa !9
  %17468 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef %360, ptr noundef %17467)
  %17469 = getelementptr inbounds %struct.s2n_result, ptr %361, i32 0, i32 0
  store i32 %17468, ptr %17469, align 4
  %17470 = getelementptr inbounds %struct.s2n_result, ptr %361, i32 0, i32 0
  %17471 = load i32, ptr %17470, align 4
  %17472 = call zeroext i1 @s2n_result_is_ok(i32 %17471)
  br i1 %17472, label %17526, label %17473

17473:                                            ; preds = %17464
  br label %17474

17474:                                            ; preds = %17473
  br label %17475

17475:                                            ; preds = %17474
  call void @llvm.lifetime.start.p0(i64 4, ptr %362) #11
  %17476 = call ptr @__errno_location() #12
  %17477 = load i32, ptr %17476, align 4, !tbaa !5
  store i32 %17477, ptr %362, align 4, !tbaa !5
  %17478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17479 = call i32 @s2n_print_stacktrace(ptr noundef %17478)
  %17480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17481 = trunc i8 %17480 to i1
  br i1 %17481, label %17482, label %17504

17482:                                            ; preds = %17475
  %17483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17484 = call i32 @fileno(ptr noundef %17483) #11
  %17485 = call i32 @isatty(i32 noundef %17484) #11
  %17486 = icmp ne i32 %17485, 0
  br i1 %17486, label %17487, label %17504

17487:                                            ; preds = %17482
  %17488 = load i32, ptr %362, align 4, !tbaa !5
  %17489 = call ptr @__errno_location() #12
  store i32 %17488, ptr %17489, align 4, !tbaa !5
  %17490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17491 = load i32, ptr @test_count, align 4, !tbaa !5
  %17492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17493 = load i32, ptr %17492, align 4, !tbaa !5
  %17494 = call ptr @s2n_strerror(i32 noundef %17493, ptr noundef @.str.4)
  %17495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17496 = load i32, ptr %17495, align 4, !tbaa !5
  %17497 = call ptr @s2n_strerror_debug(i32 noundef %17496, ptr noundef @.str.4)
  %17498 = call ptr @__errno_location() #12
  %17499 = load i32, ptr %17498, align 4, !tbaa !5
  %17500 = call ptr @strerror(i32 noundef %17499) #11
  %17501 = call ptr @__errno_location() #12
  %17502 = load i32, ptr %17501, align 4, !tbaa !5
  %17503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17490, ptr noundef @.str.2, i32 noundef %17491, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 704, ptr noundef %17494, ptr noundef %17497, ptr noundef %17500, i32 noundef %17502) #11
  br label %17521

17504:                                            ; preds = %17482, %17475
  %17505 = load i32, ptr %362, align 4, !tbaa !5
  %17506 = call ptr @__errno_location() #12
  store i32 %17505, ptr %17506, align 4, !tbaa !5
  %17507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17508 = load i32, ptr @test_count, align 4, !tbaa !5
  %17509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17510 = load i32, ptr %17509, align 4, !tbaa !5
  %17511 = call ptr @s2n_strerror(i32 noundef %17510, ptr noundef @.str.4)
  %17512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17513 = load i32, ptr %17512, align 4, !tbaa !5
  %17514 = call ptr @s2n_strerror_debug(i32 noundef %17513, ptr noundef @.str.4)
  %17515 = call ptr @__errno_location() #12
  %17516 = load i32, ptr %17515, align 4, !tbaa !5
  %17517 = call ptr @strerror(i32 noundef %17516) #11
  %17518 = call ptr @__errno_location() #12
  %17519 = load i32, ptr %17518, align 4, !tbaa !5
  %17520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17507, ptr noundef @.str.5, i32 noundef %17508, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 704, ptr noundef %17511, ptr noundef %17514, ptr noundef %17517, i32 noundef %17519) #11
  br label %17521

17521:                                            ; preds = %17504, %17487
  call void @llvm.lifetime.end.p0(i64 4, ptr %362) #11
  br label %17522

17522:                                            ; preds = %17521
  br label %17523

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

17524:                                            ; No predecessors!
  br label %17525

17525:                                            ; preds = %17524
  br label %17526

17526:                                            ; preds = %17525, %17464
  br label %17527

17527:                                            ; preds = %17526
  br label %17528

17528:                                            ; preds = %17527
  br label %17529

17529:                                            ; preds = %17528
  br label %17530

17530:                                            ; preds = %17529
  br label %17531

17531:                                            ; preds = %17530
  %17532 = load i32, ptr @test_count, align 4, !tbaa !5
  %17533 = add nsw i32 %17532, 1
  store i32 %17533, ptr @test_count, align 4, !tbaa !5
  %17534 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %17535 = load ptr, ptr %357, align 8, !tbaa !9
  %17536 = call i32 %17534(ptr noundef %17535, ptr noundef %360)
  %17537 = icmp eq i32 %17536, -1
  br i1 %17537, label %17591, label %17538

17538:                                            ; preds = %17531
  br label %17539

17539:                                            ; preds = %17538
  br label %17540

17540:                                            ; preds = %17539
  call void @llvm.lifetime.start.p0(i64 4, ptr %363) #11
  %17541 = call ptr @__errno_location() #12
  %17542 = load i32, ptr %17541, align 4, !tbaa !5
  store i32 %17542, ptr %363, align 4, !tbaa !5
  %17543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17544 = call i32 @s2n_print_stacktrace(ptr noundef %17543)
  %17545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17546 = trunc i8 %17545 to i1
  br i1 %17546, label %17547, label %17569

17547:                                            ; preds = %17540
  %17548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17549 = call i32 @fileno(ptr noundef %17548) #11
  %17550 = call i32 @isatty(i32 noundef %17549) #11
  %17551 = icmp ne i32 %17550, 0
  br i1 %17551, label %17552, label %17569

17552:                                            ; preds = %17547
  %17553 = load i32, ptr %363, align 4, !tbaa !5
  %17554 = call ptr @__errno_location() #12
  store i32 %17553, ptr %17554, align 4, !tbaa !5
  %17555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17556 = load i32, ptr @test_count, align 4, !tbaa !5
  %17557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17558 = load i32, ptr %17557, align 4, !tbaa !5
  %17559 = call ptr @s2n_strerror(i32 noundef %17558, ptr noundef @.str.4)
  %17560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17561 = load i32, ptr %17560, align 4, !tbaa !5
  %17562 = call ptr @s2n_strerror_debug(i32 noundef %17561, ptr noundef @.str.4)
  %17563 = call ptr @__errno_location() #12
  %17564 = load i32, ptr %17563, align 4, !tbaa !5
  %17565 = call ptr @strerror(i32 noundef %17564) #11
  %17566 = call ptr @__errno_location() #12
  %17567 = load i32, ptr %17566, align 4, !tbaa !5
  %17568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17555, ptr noundef @.str.2, i32 noundef %17556, ptr noundef @.str.164, ptr noundef @.str.1, i32 noundef 706, ptr noundef %17559, ptr noundef %17562, ptr noundef %17565, i32 noundef %17567) #11
  br label %17586

17569:                                            ; preds = %17547, %17540
  %17570 = load i32, ptr %363, align 4, !tbaa !5
  %17571 = call ptr @__errno_location() #12
  store i32 %17570, ptr %17571, align 4, !tbaa !5
  %17572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17573 = load i32, ptr @test_count, align 4, !tbaa !5
  %17574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17575 = load i32, ptr %17574, align 4, !tbaa !5
  %17576 = call ptr @s2n_strerror(i32 noundef %17575, ptr noundef @.str.4)
  %17577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17578 = load i32, ptr %17577, align 4, !tbaa !5
  %17579 = call ptr @s2n_strerror_debug(i32 noundef %17578, ptr noundef @.str.4)
  %17580 = call ptr @__errno_location() #12
  %17581 = load i32, ptr %17580, align 4, !tbaa !5
  %17582 = call ptr @strerror(i32 noundef %17581) #11
  %17583 = call ptr @__errno_location() #12
  %17584 = load i32, ptr %17583, align 4, !tbaa !5
  %17585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17572, ptr noundef @.str.5, i32 noundef %17573, ptr noundef @.str.164, ptr noundef @.str.1, i32 noundef 706, ptr noundef %17576, ptr noundef %17579, ptr noundef %17582, i32 noundef %17584) #11
  br label %17586

17586:                                            ; preds = %17569, %17552
  call void @llvm.lifetime.end.p0(i64 4, ptr %363) #11
  br label %17587

17587:                                            ; preds = %17586
  br label %17588

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

17589:                                            ; No predecessors!
  br label %17590

17590:                                            ; preds = %17589
  br label %17591

17591:                                            ; preds = %17590, %17531
  br label %17592

17592:                                            ; preds = %17591
  br label %17593

17593:                                            ; preds = %17592
  br label %17594

17594:                                            ; preds = %17593
  %17595 = load i32, ptr @test_count, align 4, !tbaa !5
  %17596 = add nsw i32 %17595, 1
  store i32 %17596, ptr @test_count, align 4, !tbaa !5
  %17597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17598 = load i32, ptr %17597, align 4, !tbaa !5
  %17599 = icmp eq i32 %17598, 335544356
  br i1 %17599, label %17653, label %17600

17600:                                            ; preds = %17594
  br label %17601

17601:                                            ; preds = %17600
  br label %17602

17602:                                            ; preds = %17601
  call void @llvm.lifetime.start.p0(i64 4, ptr %364) #11
  %17603 = call ptr @__errno_location() #12
  %17604 = load i32, ptr %17603, align 4, !tbaa !5
  store i32 %17604, ptr %364, align 4, !tbaa !5
  %17605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17606 = call i32 @s2n_print_stacktrace(ptr noundef %17605)
  %17607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17608 = trunc i8 %17607 to i1
  br i1 %17608, label %17609, label %17631

17609:                                            ; preds = %17602
  %17610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17611 = call i32 @fileno(ptr noundef %17610) #11
  %17612 = call i32 @isatty(i32 noundef %17611) #11
  %17613 = icmp ne i32 %17612, 0
  br i1 %17613, label %17614, label %17631

17614:                                            ; preds = %17609
  %17615 = load i32, ptr %364, align 4, !tbaa !5
  %17616 = call ptr @__errno_location() #12
  store i32 %17615, ptr %17616, align 4, !tbaa !5
  %17617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17618 = load i32, ptr @test_count, align 4, !tbaa !5
  %17619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17620 = load i32, ptr %17619, align 4, !tbaa !5
  %17621 = call ptr @s2n_strerror(i32 noundef %17620, ptr noundef @.str.4)
  %17622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17623 = load i32, ptr %17622, align 4, !tbaa !5
  %17624 = call ptr @s2n_strerror_debug(i32 noundef %17623, ptr noundef @.str.4)
  %17625 = call ptr @__errno_location() #12
  %17626 = load i32, ptr %17625, align 4, !tbaa !5
  %17627 = call ptr @strerror(i32 noundef %17626) #11
  %17628 = call ptr @__errno_location() #12
  %17629 = load i32, ptr %17628, align 4, !tbaa !5
  %17630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17617, ptr noundef @.str.2, i32 noundef %17618, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 706, ptr noundef %17621, ptr noundef %17624, ptr noundef %17627, i32 noundef %17629) #11
  br label %17648

17631:                                            ; preds = %17609, %17602
  %17632 = load i32, ptr %364, align 4, !tbaa !5
  %17633 = call ptr @__errno_location() #12
  store i32 %17632, ptr %17633, align 4, !tbaa !5
  %17634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17635 = load i32, 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 = call ptr @s2n_strerror(i32 noundef %17637, ptr noundef @.str.4)
  %17639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17640 = load i32, ptr %17639, align 4, !tbaa !5
  %17641 = call ptr @s2n_strerror_debug(i32 noundef %17640, ptr noundef @.str.4)
  %17642 = call ptr @__errno_location() #12
  %17643 = load i32, ptr %17642, align 4, !tbaa !5
  %17644 = call ptr @strerror(i32 noundef %17643) #11
  %17645 = call ptr @__errno_location() #12
  %17646 = load i32, ptr %17645, align 4, !tbaa !5
  %17647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17634, ptr noundef @.str.5, i32 noundef %17635, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 706, ptr noundef %17638, ptr noundef %17641, ptr noundef %17644, i32 noundef %17646) #11
  br label %17648

17648:                                            ; preds = %17631, %17614
  call void @llvm.lifetime.end.p0(i64 4, ptr %364) #11
  br label %17649

17649:                                            ; preds = %17648
  br label %17650

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

17651:                                            ; No predecessors!
  br label %17652

17652:                                            ; preds = %17651
  br label %17653

17653:                                            ; preds = %17652, %17594
  br label %17654

17654:                                            ; preds = %17653
  br label %17655

17655:                                            ; preds = %17654
  br label %17656

17656:                                            ; preds = %17655
  %17657 = load i32, ptr @test_count, align 4, !tbaa !5
  %17658 = add nsw i32 %17657, 1
  store i32 %17658, ptr @test_count, align 4, !tbaa !5
  %17659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17660 = load i32, ptr %17659, align 4, !tbaa !5
  %17661 = call ptr @s2n_strerror_debug(i32 noundef %17660, ptr noundef @.str.4)
  %17662 = icmp eq ptr %17661, null
  br i1 %17662, label %17663, label %17716

17663:                                            ; preds = %17656
  br label %17664

17664:                                            ; preds = %17663
  br label %17665

17665:                                            ; preds = %17664
  call void @llvm.lifetime.start.p0(i64 4, ptr %365) #11
  %17666 = call ptr @__errno_location() #12
  %17667 = load i32, ptr %17666, align 4, !tbaa !5
  store i32 %17667, ptr %365, align 4, !tbaa !5
  %17668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17669 = call i32 @s2n_print_stacktrace(ptr noundef %17668)
  %17670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17671 = trunc i8 %17670 to i1
  br i1 %17671, label %17672, label %17694

17672:                                            ; preds = %17665
  %17673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17674 = call i32 @fileno(ptr noundef %17673) #11
  %17675 = call i32 @isatty(i32 noundef %17674) #11
  %17676 = icmp ne i32 %17675, 0
  br i1 %17676, label %17677, label %17694

17677:                                            ; preds = %17672
  %17678 = load i32, ptr %365, align 4, !tbaa !5
  %17679 = call ptr @__errno_location() #12
  store i32 %17678, ptr %17679, align 4, !tbaa !5
  %17680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17681 = load i32, ptr @test_count, align 4, !tbaa !5
  %17682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17683 = load i32, ptr %17682, align 4, !tbaa !5
  %17684 = call ptr @s2n_strerror(i32 noundef %17683, ptr noundef @.str.4)
  %17685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17686 = load i32, ptr %17685, align 4, !tbaa !5
  %17687 = call ptr @s2n_strerror_debug(i32 noundef %17686, ptr noundef @.str.4)
  %17688 = call ptr @__errno_location() #12
  %17689 = load i32, ptr %17688, align 4, !tbaa !5
  %17690 = call ptr @strerror(i32 noundef %17689) #11
  %17691 = call ptr @__errno_location() #12
  %17692 = load i32, ptr %17691, align 4, !tbaa !5
  %17693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17680, ptr noundef @.str.2, i32 noundef %17681, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 706, ptr noundef %17684, ptr noundef %17687, ptr noundef %17690, i32 noundef %17692) #11
  br label %17711

17694:                                            ; preds = %17672, %17665
  %17695 = load i32, ptr %365, align 4, !tbaa !5
  %17696 = call ptr @__errno_location() #12
  store i32 %17695, ptr %17696, align 4, !tbaa !5
  %17697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17698 = load i32, ptr @test_count, align 4, !tbaa !5
  %17699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17700 = load i32, ptr %17699, align 4, !tbaa !5
  %17701 = call ptr @s2n_strerror(i32 noundef %17700, ptr noundef @.str.4)
  %17702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17703 = load i32, ptr %17702, align 4, !tbaa !5
  %17704 = call ptr @s2n_strerror_debug(i32 noundef %17703, ptr noundef @.str.4)
  %17705 = call ptr @__errno_location() #12
  %17706 = load i32, ptr %17705, align 4, !tbaa !5
  %17707 = call ptr @strerror(i32 noundef %17706) #11
  %17708 = call ptr @__errno_location() #12
  %17709 = load i32, ptr %17708, align 4, !tbaa !5
  %17710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17697, ptr noundef @.str.5, i32 noundef %17698, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 706, ptr noundef %17701, ptr noundef %17704, ptr noundef %17707, i32 noundef %17709) #11
  br label %17711

17711:                                            ; preds = %17694, %17677
  call void @llvm.lifetime.end.p0(i64 4, ptr %365) #11
  br label %17712

17712:                                            ; preds = %17711
  br label %17713

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

17714:                                            ; No predecessors!
  br label %17715

17715:                                            ; preds = %17714
  br label %17716

17716:                                            ; preds = %17715, %17656
  br label %17717

17717:                                            ; preds = %17716
  br label %17718

17718:                                            ; preds = %17717
  br label %17719

17719:                                            ; preds = %17718
  br label %17720

17720:                                            ; preds = %17719
  br label %17721

17721:                                            ; preds = %17720
  %17722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %17722, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %17723 = call ptr @__errno_location() #12
  store i32 0, ptr %17723, align 4, !tbaa !5
  br label %17724

17724:                                            ; preds = %17721
  br label %17725

17725:                                            ; preds = %17724
  br label %17726

17726:                                            ; preds = %17725
  br label %17727

17727:                                            ; preds = %17726
  call void @llvm.lifetime.start.p0(i64 8, ptr %366) #11
  store ptr @.str.165, ptr %366, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %367) #11
  call void @llvm.memset.p0.i64(ptr align 8 %367, i8 0, i64 40, i1 false)
  br label %17728

17728:                                            ; preds = %17727
  %17729 = load i32, ptr @test_count, align 4, !tbaa !5
  %17730 = add nsw i32 %17729, 1
  store i32 %17730, ptr @test_count, align 4, !tbaa !5
  %17731 = load ptr, ptr %366, align 8, !tbaa !9
  %17732 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef %367, ptr noundef %17731)
  %17733 = getelementptr inbounds %struct.s2n_result, ptr %368, i32 0, i32 0
  store i32 %17732, ptr %17733, align 4
  %17734 = getelementptr inbounds %struct.s2n_result, ptr %368, i32 0, i32 0
  %17735 = load i32, ptr %17734, align 4
  %17736 = call zeroext i1 @s2n_result_is_ok(i32 %17735)
  br i1 %17736, label %17790, label %17737

17737:                                            ; preds = %17728
  br label %17738

17738:                                            ; preds = %17737
  br label %17739

17739:                                            ; preds = %17738
  call void @llvm.lifetime.start.p0(i64 4, ptr %369) #11
  %17740 = call ptr @__errno_location() #12
  %17741 = load i32, ptr %17740, align 4, !tbaa !5
  store i32 %17741, ptr %369, align 4, !tbaa !5
  %17742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17743 = call i32 @s2n_print_stacktrace(ptr noundef %17742)
  %17744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17745 = trunc i8 %17744 to i1
  br i1 %17745, label %17746, label %17768

17746:                                            ; preds = %17739
  %17747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17748 = call i32 @fileno(ptr noundef %17747) #11
  %17749 = call i32 @isatty(i32 noundef %17748) #11
  %17750 = icmp ne i32 %17749, 0
  br i1 %17750, label %17751, label %17768

17751:                                            ; preds = %17746
  %17752 = load i32, ptr %369, align 4, !tbaa !5
  %17753 = call ptr @__errno_location() #12
  store i32 %17752, ptr %17753, align 4, !tbaa !5
  %17754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17755 = load i32, ptr @test_count, align 4, !tbaa !5
  %17756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17757 = load i32, ptr %17756, align 4, !tbaa !5
  %17758 = call ptr @s2n_strerror(i32 noundef %17757, ptr noundef @.str.4)
  %17759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17760 = load i32, ptr %17759, align 4, !tbaa !5
  %17761 = call ptr @s2n_strerror_debug(i32 noundef %17760, ptr noundef @.str.4)
  %17762 = call ptr @__errno_location() #12
  %17763 = load i32, ptr %17762, align 4, !tbaa !5
  %17764 = call ptr @strerror(i32 noundef %17763) #11
  %17765 = call ptr @__errno_location() #12
  %17766 = load i32, ptr %17765, align 4, !tbaa !5
  %17767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17754, ptr noundef @.str.2, i32 noundef %17755, ptr noundef @.str.166, ptr noundef @.str.1, i32 noundef 711, ptr noundef %17758, ptr noundef %17761, ptr noundef %17764, i32 noundef %17766) #11
  br label %17785

17768:                                            ; preds = %17746, %17739
  %17769 = load i32, ptr %369, align 4, !tbaa !5
  %17770 = call ptr @__errno_location() #12
  store i32 %17769, ptr %17770, align 4, !tbaa !5
  %17771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17772 = load i32, ptr @test_count, align 4, !tbaa !5
  %17773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17774 = load i32, ptr %17773, align 4, !tbaa !5
  %17775 = call ptr @s2n_strerror(i32 noundef %17774, ptr noundef @.str.4)
  %17776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17777 = load i32, ptr %17776, align 4, !tbaa !5
  %17778 = call ptr @s2n_strerror_debug(i32 noundef %17777, ptr noundef @.str.4)
  %17779 = call ptr @__errno_location() #12
  %17780 = load i32, ptr %17779, align 4, !tbaa !5
  %17781 = call ptr @strerror(i32 noundef %17780) #11
  %17782 = call ptr @__errno_location() #12
  %17783 = load i32, ptr %17782, align 4, !tbaa !5
  %17784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17771, ptr noundef @.str.5, i32 noundef %17772, ptr noundef @.str.166, ptr noundef @.str.1, i32 noundef 711, ptr noundef %17775, ptr noundef %17778, ptr noundef %17781, i32 noundef %17783) #11
  br label %17785

17785:                                            ; preds = %17768, %17751
  call void @llvm.lifetime.end.p0(i64 4, ptr %369) #11
  br label %17786

17786:                                            ; preds = %17785
  br label %17787

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

17788:                                            ; No predecessors!
  br label %17789

17789:                                            ; preds = %17788
  br label %17790

17790:                                            ; preds = %17789, %17728
  br label %17791

17791:                                            ; preds = %17790
  br label %17792

17792:                                            ; preds = %17791
  br label %17793

17793:                                            ; preds = %17792
  br label %17794

17794:                                            ; preds = %17793
  br label %17795

17795:                                            ; preds = %17794
  %17796 = load i32, ptr @test_count, align 4, !tbaa !5
  %17797 = add nsw i32 %17796, 1
  store i32 %17797, ptr @test_count, align 4, !tbaa !5
  %17798 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %17799 = load ptr, ptr %357, align 8, !tbaa !9
  %17800 = call i32 %17798(ptr noundef %17799, ptr noundef %367)
  %17801 = icmp eq i32 %17800, -1
  br i1 %17801, label %17855, label %17802

17802:                                            ; preds = %17795
  br label %17803

17803:                                            ; preds = %17802
  br label %17804

17804:                                            ; preds = %17803
  call void @llvm.lifetime.start.p0(i64 4, ptr %370) #11
  %17805 = call ptr @__errno_location() #12
  %17806 = load i32, ptr %17805, align 4, !tbaa !5
  store i32 %17806, ptr %370, align 4, !tbaa !5
  %17807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17808 = call i32 @s2n_print_stacktrace(ptr noundef %17807)
  %17809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17810 = trunc i8 %17809 to i1
  br i1 %17810, label %17811, label %17833

17811:                                            ; preds = %17804
  %17812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17813 = call i32 @fileno(ptr noundef %17812) #11
  %17814 = call i32 @isatty(i32 noundef %17813) #11
  %17815 = icmp ne i32 %17814, 0
  br i1 %17815, label %17816, label %17833

17816:                                            ; preds = %17811
  %17817 = load i32, ptr %370, align 4, !tbaa !5
  %17818 = call ptr @__errno_location() #12
  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() #12
  %17828 = load i32, ptr %17827, align 4, !tbaa !5
  %17829 = call ptr @strerror(i32 noundef %17828) #11
  %17830 = call ptr @__errno_location() #12
  %17831 = load i32, ptr %17830, align 4, !tbaa !5
  %17832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17819, ptr noundef @.str.2, i32 noundef %17820, ptr noundef @.str.167, ptr noundef @.str.1, i32 noundef 713, ptr noundef %17823, ptr noundef %17826, ptr noundef %17829, i32 noundef %17831) #11
  br label %17850

17833:                                            ; preds = %17811, %17804
  %17834 = load i32, ptr %370, align 4, !tbaa !5
  %17835 = call ptr @__errno_location() #12
  store i32 %17834, ptr %17835, align 4, !tbaa !5
  %17836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17837 = load i32, ptr @test_count, align 4, !tbaa !5
  %17838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17839 = load i32, ptr %17838, align 4, !tbaa !5
  %17840 = call ptr @s2n_strerror(i32 noundef %17839, ptr noundef @.str.4)
  %17841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17842 = load i32, ptr %17841, align 4, !tbaa !5
  %17843 = call ptr @s2n_strerror_debug(i32 noundef %17842, ptr noundef @.str.4)
  %17844 = call ptr @__errno_location() #12
  %17845 = load i32, ptr %17844, align 4, !tbaa !5
  %17846 = call ptr @strerror(i32 noundef %17845) #11
  %17847 = call ptr @__errno_location() #12
  %17848 = load i32, ptr %17847, align 4, !tbaa !5
  %17849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17836, ptr noundef @.str.5, i32 noundef %17837, ptr noundef @.str.167, ptr noundef @.str.1, i32 noundef 713, ptr noundef %17840, ptr noundef %17843, ptr noundef %17846, i32 noundef %17848) #11
  br label %17850

17850:                                            ; preds = %17833, %17816
  call void @llvm.lifetime.end.p0(i64 4, ptr %370) #11
  br label %17851

17851:                                            ; preds = %17850
  br label %17852

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

17853:                                            ; No predecessors!
  br label %17854

17854:                                            ; preds = %17853
  br label %17855

17855:                                            ; preds = %17854, %17795
  br label %17856

17856:                                            ; preds = %17855
  br label %17857

17857:                                            ; preds = %17856
  br label %17858

17858:                                            ; preds = %17857
  %17859 = load i32, ptr @test_count, align 4, !tbaa !5
  %17860 = add nsw i32 %17859, 1
  store i32 %17860, ptr @test_count, align 4, !tbaa !5
  %17861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17862 = load i32, ptr %17861, align 4, !tbaa !5
  %17863 = icmp eq i32 %17862, 335544356
  br i1 %17863, label %17917, label %17864

17864:                                            ; preds = %17858
  br label %17865

17865:                                            ; preds = %17864
  br label %17866

17866:                                            ; preds = %17865
  call void @llvm.lifetime.start.p0(i64 4, ptr %371) #11
  %17867 = call ptr @__errno_location() #12
  %17868 = load i32, ptr %17867, align 4, !tbaa !5
  store i32 %17868, ptr %371, align 4, !tbaa !5
  %17869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17870 = call i32 @s2n_print_stacktrace(ptr noundef %17869)
  %17871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17872 = trunc i8 %17871 to i1
  br i1 %17872, label %17873, label %17895

17873:                                            ; preds = %17866
  %17874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17875 = call i32 @fileno(ptr noundef %17874) #11
  %17876 = call i32 @isatty(i32 noundef %17875) #11
  %17877 = icmp ne i32 %17876, 0
  br i1 %17877, label %17878, label %17895

17878:                                            ; preds = %17873
  %17879 = load i32, ptr %371, align 4, !tbaa !5
  %17880 = call ptr @__errno_location() #12
  store i32 %17879, ptr %17880, align 4, !tbaa !5
  %17881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17882 = load i32, ptr @test_count, align 4, !tbaa !5
  %17883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17884 = load i32, ptr %17883, align 4, !tbaa !5
  %17885 = call ptr @s2n_strerror(i32 noundef %17884, ptr noundef @.str.4)
  %17886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17887 = load i32, ptr %17886, align 4, !tbaa !5
  %17888 = call ptr @s2n_strerror_debug(i32 noundef %17887, ptr noundef @.str.4)
  %17889 = call ptr @__errno_location() #12
  %17890 = load i32, ptr %17889, align 4, !tbaa !5
  %17891 = call ptr @strerror(i32 noundef %17890) #11
  %17892 = call ptr @__errno_location() #12
  %17893 = load i32, ptr %17892, align 4, !tbaa !5
  %17894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17881, ptr noundef @.str.2, i32 noundef %17882, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 713, ptr noundef %17885, ptr noundef %17888, ptr noundef %17891, i32 noundef %17893) #11
  br label %17912

17895:                                            ; preds = %17873, %17866
  %17896 = load i32, ptr %371, align 4, !tbaa !5
  %17897 = call ptr @__errno_location() #12
  store i32 %17896, ptr %17897, align 4, !tbaa !5
  %17898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17899 = load i32, ptr @test_count, align 4, !tbaa !5
  %17900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17901 = load i32, ptr %17900, align 4, !tbaa !5
  %17902 = call ptr @s2n_strerror(i32 noundef %17901, ptr noundef @.str.4)
  %17903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17904 = load i32, ptr %17903, align 4, !tbaa !5
  %17905 = call ptr @s2n_strerror_debug(i32 noundef %17904, ptr noundef @.str.4)
  %17906 = call ptr @__errno_location() #12
  %17907 = load i32, ptr %17906, align 4, !tbaa !5
  %17908 = call ptr @strerror(i32 noundef %17907) #11
  %17909 = call ptr @__errno_location() #12
  %17910 = load i32, ptr %17909, align 4, !tbaa !5
  %17911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17898, ptr noundef @.str.5, i32 noundef %17899, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 713, ptr noundef %17902, ptr noundef %17905, ptr noundef %17908, i32 noundef %17910) #11
  br label %17912

17912:                                            ; preds = %17895, %17878
  call void @llvm.lifetime.end.p0(i64 4, ptr %371) #11
  br label %17913

17913:                                            ; preds = %17912
  br label %17914

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

17915:                                            ; No predecessors!
  br label %17916

17916:                                            ; preds = %17915
  br label %17917

17917:                                            ; preds = %17916, %17858
  br label %17918

17918:                                            ; preds = %17917
  br label %17919

17919:                                            ; preds = %17918
  br label %17920

17920:                                            ; preds = %17919
  %17921 = load i32, ptr @test_count, align 4, !tbaa !5
  %17922 = add nsw i32 %17921, 1
  store i32 %17922, ptr @test_count, align 4, !tbaa !5
  %17923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17924 = load i32, ptr %17923, align 4, !tbaa !5
  %17925 = call ptr @s2n_strerror_debug(i32 noundef %17924, ptr noundef @.str.4)
  %17926 = icmp eq ptr %17925, null
  br i1 %17926, label %17927, label %17980

17927:                                            ; preds = %17920
  br label %17928

17928:                                            ; preds = %17927
  br label %17929

17929:                                            ; preds = %17928
  call void @llvm.lifetime.start.p0(i64 4, ptr %372) #11
  %17930 = call ptr @__errno_location() #12
  %17931 = load i32, ptr %17930, align 4, !tbaa !5
  store i32 %17931, ptr %372, align 4, !tbaa !5
  %17932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17933 = call i32 @s2n_print_stacktrace(ptr noundef %17932)
  %17934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17935 = trunc i8 %17934 to i1
  br i1 %17935, label %17936, label %17958

17936:                                            ; preds = %17929
  %17937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17938 = call i32 @fileno(ptr noundef %17937) #11
  %17939 = call i32 @isatty(i32 noundef %17938) #11
  %17940 = icmp ne i32 %17939, 0
  br i1 %17940, label %17941, label %17958

17941:                                            ; preds = %17936
  %17942 = load i32, ptr %372, align 4, !tbaa !5
  %17943 = call ptr @__errno_location() #12
  store i32 %17942, ptr %17943, align 4, !tbaa !5
  %17944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17945 = load i32, ptr @test_count, align 4, !tbaa !5
  %17946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17947 = load i32, ptr %17946, align 4, !tbaa !5
  %17948 = call ptr @s2n_strerror(i32 noundef %17947, ptr noundef @.str.4)
  %17949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17950 = load i32, ptr %17949, align 4, !tbaa !5
  %17951 = call ptr @s2n_strerror_debug(i32 noundef %17950, ptr noundef @.str.4)
  %17952 = call ptr @__errno_location() #12
  %17953 = load i32, ptr %17952, align 4, !tbaa !5
  %17954 = call ptr @strerror(i32 noundef %17953) #11
  %17955 = call ptr @__errno_location() #12
  %17956 = load i32, ptr %17955, align 4, !tbaa !5
  %17957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17944, ptr noundef @.str.2, i32 noundef %17945, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 713, ptr noundef %17948, ptr noundef %17951, ptr noundef %17954, i32 noundef %17956) #11
  br label %17975

17958:                                            ; preds = %17936, %17929
  %17959 = load i32, ptr %372, align 4, !tbaa !5
  %17960 = call ptr @__errno_location() #12
  store i32 %17959, ptr %17960, align 4, !tbaa !5
  %17961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17962 = load i32, ptr @test_count, align 4, !tbaa !5
  %17963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17964 = load i32, ptr %17963, align 4, !tbaa !5
  %17965 = call ptr @s2n_strerror(i32 noundef %17964, ptr noundef @.str.4)
  %17966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17967 = load i32, ptr %17966, align 4, !tbaa !5
  %17968 = call ptr @s2n_strerror_debug(i32 noundef %17967, ptr noundef @.str.4)
  %17969 = call ptr @__errno_location() #12
  %17970 = load i32, ptr %17969, align 4, !tbaa !5
  %17971 = call ptr @strerror(i32 noundef %17970) #11
  %17972 = call ptr @__errno_location() #12
  %17973 = load i32, ptr %17972, align 4, !tbaa !5
  %17974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17961, ptr noundef @.str.5, i32 noundef %17962, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 713, ptr noundef %17965, ptr noundef %17968, ptr noundef %17971, i32 noundef %17973) #11
  br label %17975

17975:                                            ; preds = %17958, %17941
  call void @llvm.lifetime.end.p0(i64 4, ptr %372) #11
  br label %17976

17976:                                            ; preds = %17975
  br label %17977

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

17978:                                            ; No predecessors!
  br label %17979

17979:                                            ; preds = %17978
  br label %17980

17980:                                            ; preds = %17979, %17920
  br label %17981

17981:                                            ; preds = %17980
  br label %17982

17982:                                            ; preds = %17981
  br label %17983

17983:                                            ; preds = %17982
  br label %17984

17984:                                            ; preds = %17983
  br label %17985

17985:                                            ; preds = %17984
  %17986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %17986, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %17987 = call ptr @__errno_location() #12
  store i32 0, ptr %17987, align 4, !tbaa !5
  br label %17988

17988:                                            ; preds = %17985
  br label %17989

17989:                                            ; preds = %17988
  br label %17990

17990:                                            ; preds = %17989
  br label %17991

17991:                                            ; preds = %17990
  call void @llvm.lifetime.start.p0(i64 8, ptr %373) #11
  %17992 = load ptr, ptr %357, align 8, !tbaa !9
  %17993 = getelementptr inbounds %struct.s2n_connection, ptr %17992, i32 0, i32 31
  %17994 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %17993, i32 0, i32 5
  %17995 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %17994, i32 0, i32 1
  %17996 = getelementptr inbounds %struct.s2n_kem_params, ptr %17995, i32 0, i32 2
  store ptr %17996, ptr %373, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %374) #11
  call void @llvm.memset.p0.i64(ptr align 8 %374, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %375) #11
  call void @llvm.memset.p0.i64(ptr align 8 %375, i8 0, i64 40, i1 false)
  br label %17997

17997:                                            ; preds = %17991
  %17998 = load i32, ptr @test_count, align 4, !tbaa !5
  %17999 = add nsw i32 %17998, 1
  store i32 %17999, ptr @test_count, align 4, !tbaa !5
  %18000 = load ptr, ptr %356, align 8, !tbaa !9
  %18001 = load ptr, ptr %373, align 8, !tbaa !9
  %18002 = call i32 @s2n_read_server_key_share_hybrid_test_vectors(ptr noundef %18000, ptr noundef %18001, ptr noundef %374, ptr noundef %375)
  %18003 = icmp eq i32 %18002, -1
  br i1 %18003, label %18004, label %18057

18004:                                            ; preds = %17997
  br label %18005

18005:                                            ; preds = %18004
  br label %18006

18006:                                            ; preds = %18005
  call void @llvm.lifetime.start.p0(i64 4, ptr %376) #11
  %18007 = call ptr @__errno_location() #12
  %18008 = load i32, ptr %18007, align 4, !tbaa !5
  store i32 %18008, ptr %376, align 4, !tbaa !5
  %18009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18010 = call i32 @s2n_print_stacktrace(ptr noundef %18009)
  %18011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18012 = trunc i8 %18011 to i1
  br i1 %18012, label %18013, label %18035

18013:                                            ; preds = %18006
  %18014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18015 = call i32 @fileno(ptr noundef %18014) #11
  %18016 = call i32 @isatty(i32 noundef %18015) #11
  %18017 = icmp ne i32 %18016, 0
  br i1 %18017, label %18018, label %18035

18018:                                            ; preds = %18013
  %18019 = load i32, ptr %376, align 4, !tbaa !5
  %18020 = call ptr @__errno_location() #12
  store i32 %18019, ptr %18020, align 4, !tbaa !5
  %18021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18022 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %18024, ptr noundef @.str.4)
  %18026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18027 = load i32, ptr %18026, align 4, !tbaa !5
  %18028 = call ptr @s2n_strerror_debug(i32 noundef %18027, ptr noundef @.str.4)
  %18029 = call ptr @__errno_location() #12
  %18030 = load i32, ptr %18029, align 4, !tbaa !5
  %18031 = call ptr @strerror(i32 noundef %18030) #11
  %18032 = call ptr @__errno_location() #12
  %18033 = load i32, ptr %18032, align 4, !tbaa !5
  %18034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18021, ptr noundef @.str.2, i32 noundef %18022, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 722, ptr noundef %18025, ptr noundef %18028, ptr noundef %18031, i32 noundef %18033) #11
  br label %18052

18035:                                            ; preds = %18013, %18006
  %18036 = load i32, ptr %376, align 4, !tbaa !5
  %18037 = call ptr @__errno_location() #12
  store i32 %18036, ptr %18037, align 4, !tbaa !5
  %18038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18039 = load i32, ptr @test_count, align 4, !tbaa !5
  %18040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18041 = load i32, ptr %18040, align 4, !tbaa !5
  %18042 = call ptr @s2n_strerror(i32 noundef %18041, ptr noundef @.str.4)
  %18043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18044 = load i32, ptr %18043, align 4, !tbaa !5
  %18045 = call ptr @s2n_strerror_debug(i32 noundef %18044, ptr noundef @.str.4)
  %18046 = call ptr @__errno_location() #12
  %18047 = load i32, ptr %18046, align 4, !tbaa !5
  %18048 = call ptr @strerror(i32 noundef %18047) #11
  %18049 = call ptr @__errno_location() #12
  %18050 = load i32, ptr %18049, align 4, !tbaa !5
  %18051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18038, ptr noundef @.str.5, i32 noundef %18039, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 722, ptr noundef %18042, ptr noundef %18045, ptr noundef %18048, i32 noundef %18050) #11
  br label %18052

18052:                                            ; preds = %18035, %18018
  call void @llvm.lifetime.end.p0(i64 4, ptr %376) #11
  br label %18053

18053:                                            ; preds = %18052
  br label %18054

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

18055:                                            ; No predecessors!
  br label %18056

18056:                                            ; preds = %18055
  br label %18057

18057:                                            ; preds = %18056, %17997
  br label %18058

18058:                                            ; preds = %18057
  br label %18059

18059:                                            ; preds = %18058
  %18060 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %18061 = getelementptr inbounds %struct.s2n_blob, ptr %18060, i32 0, i32 0
  %18062 = load ptr, ptr %18061, align 8, !tbaa !100
  %18063 = getelementptr inbounds i8, ptr %18062, i64 2
  %18064 = load i8, ptr %18063, align 1, !tbaa !108
  %18065 = zext i8 %18064 to i32
  %18066 = xor i32 %18065, -1
  %18067 = trunc i32 %18066 to i8
  %18068 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %18069 = getelementptr inbounds %struct.s2n_blob, ptr %18068, i32 0, i32 0
  %18070 = load ptr, ptr %18069, align 8, !tbaa !100
  %18071 = getelementptr inbounds i8, ptr %18070, i64 2
  store i8 %18067, ptr %18071, align 1, !tbaa !108
  %18072 = load ptr, ptr %356, align 8, !tbaa !9
  %18073 = load ptr, ptr %357, align 8, !tbaa !9
  %18074 = getelementptr inbounds %struct.s2n_connection, ptr %18073, i32 0, i32 31
  %18075 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %18074, i32 0, i32 5
  %18076 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %18075, i32 0, i32 0
  store ptr %18072, ptr %18076, align 8, !tbaa !88
  %18077 = load ptr, ptr %356, align 8, !tbaa !9
  %18078 = getelementptr inbounds %struct.s2n_kem_group, ptr %18077, i32 0, i32 2
  %18079 = load ptr, ptr %18078, align 8, !tbaa !89
  %18080 = load ptr, ptr %357, align 8, !tbaa !9
  %18081 = getelementptr inbounds %struct.s2n_connection, ptr %18080, i32 0, i32 31
  %18082 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %18081, i32 0, i32 5
  %18083 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %18082, i32 0, i32 2
  %18084 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %18083, i32 0, i32 0
  store ptr %18079, ptr %18084, align 8, !tbaa !90
  %18085 = load ptr, ptr %356, align 8, !tbaa !9
  %18086 = getelementptr inbounds %struct.s2n_kem_group, ptr %18085, i32 0, i32 3
  %18087 = load ptr, ptr %18086, align 8, !tbaa !91
  %18088 = load ptr, ptr %357, align 8, !tbaa !9
  %18089 = getelementptr inbounds %struct.s2n_connection, ptr %18088, i32 0, i32 31
  %18090 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %18089, i32 0, i32 5
  %18091 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %18090, i32 0, i32 1
  %18092 = getelementptr inbounds %struct.s2n_kem_params, ptr %18091, i32 0, i32 0
  store ptr %18087, ptr %18092, align 8, !tbaa !92
  %18093 = load ptr, ptr %357, align 8, !tbaa !9
  %18094 = getelementptr inbounds %struct.s2n_connection, ptr %18093, i32 0, i32 31
  %18095 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %18094, i32 0, i32 5
  %18096 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %18095, i32 0, i32 1
  %18097 = getelementptr inbounds %struct.s2n_kem_params, ptr %18096, i32 0, i32 4
  store i8 1, ptr %18097, align 8, !tbaa !93
  br label %18098

18098:                                            ; preds = %18059
  %18099 = load i32, ptr @test_count, align 4, !tbaa !5
  %18100 = add nsw i32 %18099, 1
  store i32 %18100, ptr @test_count, align 4, !tbaa !5
  %18101 = load ptr, ptr %357, align 8, !tbaa !9
  %18102 = getelementptr inbounds %struct.s2n_connection, ptr %18101, i32 0, i32 31
  %18103 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %18102, i32 0, i32 5
  %18104 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %18103, i32 0, i32 2
  %18105 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %18104)
  %18106 = icmp eq i32 %18105, -1
  br i1 %18106, label %18107, label %18160

18107:                                            ; preds = %18098
  br label %18108

18108:                                            ; preds = %18107
  br label %18109

18109:                                            ; preds = %18108
  call void @llvm.lifetime.start.p0(i64 4, ptr %377) #11
  %18110 = call ptr @__errno_location() #12
  %18111 = load i32, ptr %18110, align 4, !tbaa !5
  store i32 %18111, ptr %377, align 4, !tbaa !5
  %18112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18113 = call i32 @s2n_print_stacktrace(ptr noundef %18112)
  %18114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18115 = trunc i8 %18114 to i1
  br i1 %18115, label %18116, label %18138

18116:                                            ; preds = %18109
  %18117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18118 = call i32 @fileno(ptr noundef %18117) #11
  %18119 = call i32 @isatty(i32 noundef %18118) #11
  %18120 = icmp ne i32 %18119, 0
  br i1 %18120, label %18121, label %18138

18121:                                            ; preds = %18116
  %18122 = load i32, ptr %377, align 4, !tbaa !5
  %18123 = call ptr @__errno_location() #12
  store i32 %18122, ptr %18123, align 4, !tbaa !5
  %18124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18125 = load i32, ptr @test_count, align 4, !tbaa !5
  %18126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18127 = load i32, ptr %18126, align 4, !tbaa !5
  %18128 = call ptr @s2n_strerror(i32 noundef %18127, ptr noundef @.str.4)
  %18129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18130 = load i32, ptr %18129, align 4, !tbaa !5
  %18131 = call ptr @s2n_strerror_debug(i32 noundef %18130, ptr noundef @.str.4)
  %18132 = call ptr @__errno_location() #12
  %18133 = load i32, ptr %18132, align 4, !tbaa !5
  %18134 = call ptr @strerror(i32 noundef %18133) #11
  %18135 = call ptr @__errno_location() #12
  %18136 = load i32, ptr %18135, align 4, !tbaa !5
  %18137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18124, ptr noundef @.str.2, i32 noundef %18125, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 731, ptr noundef %18128, ptr noundef %18131, ptr noundef %18134, i32 noundef %18136) #11
  br label %18155

18138:                                            ; preds = %18116, %18109
  %18139 = load i32, ptr %377, align 4, !tbaa !5
  %18140 = call ptr @__errno_location() #12
  store i32 %18139, ptr %18140, align 4, !tbaa !5
  %18141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18142 = load i32, ptr @test_count, align 4, !tbaa !5
  %18143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18144 = load i32, ptr %18143, align 4, !tbaa !5
  %18145 = call ptr @s2n_strerror(i32 noundef %18144, ptr noundef @.str.4)
  %18146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18147 = load i32, ptr %18146, align 4, !tbaa !5
  %18148 = call ptr @s2n_strerror_debug(i32 noundef %18147, ptr noundef @.str.4)
  %18149 = call ptr @__errno_location() #12
  %18150 = load i32, ptr %18149, align 4, !tbaa !5
  %18151 = call ptr @strerror(i32 noundef %18150) #11
  %18152 = call ptr @__errno_location() #12
  %18153 = load i32, ptr %18152, align 4, !tbaa !5
  %18154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18141, ptr noundef @.str.5, i32 noundef %18142, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 731, ptr noundef %18145, ptr noundef %18148, ptr noundef %18151, i32 noundef %18153) #11
  br label %18155

18155:                                            ; preds = %18138, %18121
  call void @llvm.lifetime.end.p0(i64 4, ptr %377) #11
  br label %18156

18156:                                            ; preds = %18155
  br label %18157

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

18158:                                            ; No predecessors!
  br label %18159

18159:                                            ; preds = %18158
  br label %18160

18160:                                            ; preds = %18159, %18098
  br label %18161

18161:                                            ; preds = %18160
  br label %18162

18162:                                            ; preds = %18161
  br label %18163

18163:                                            ; preds = %18162
  br label %18164

18164:                                            ; preds = %18163
  br label %18165

18165:                                            ; preds = %18164
  %18166 = load i32, ptr @test_count, align 4, !tbaa !5
  %18167 = add nsw i32 %18166, 1
  store i32 %18167, ptr @test_count, align 4, !tbaa !5
  %18168 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %18169 = load ptr, ptr %357, align 8, !tbaa !9
  %18170 = call i32 %18168(ptr noundef %18169, ptr noundef %375)
  %18171 = icmp eq i32 %18170, -1
  br i1 %18171, label %18225, label %18172

18172:                                            ; preds = %18165
  br label %18173

18173:                                            ; preds = %18172
  br label %18174

18174:                                            ; preds = %18173
  call void @llvm.lifetime.start.p0(i64 4, ptr %378) #11
  %18175 = call ptr @__errno_location() #12
  %18176 = load i32, ptr %18175, align 4, !tbaa !5
  store i32 %18176, ptr %378, align 4, !tbaa !5
  %18177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18178 = call i32 @s2n_print_stacktrace(ptr noundef %18177)
  %18179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18180 = trunc i8 %18179 to i1
  br i1 %18180, label %18181, label %18203

18181:                                            ; preds = %18174
  %18182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18183 = call i32 @fileno(ptr noundef %18182) #11
  %18184 = call i32 @isatty(i32 noundef %18183) #11
  %18185 = icmp ne i32 %18184, 0
  br i1 %18185, label %18186, label %18203

18186:                                            ; preds = %18181
  %18187 = load i32, ptr %378, align 4, !tbaa !5
  %18188 = call ptr @__errno_location() #12
  store i32 %18187, ptr %18188, align 4, !tbaa !5
  %18189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18190 = load i32, ptr @test_count, align 4, !tbaa !5
  %18191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18192 = load i32, ptr %18191, align 4, !tbaa !5
  %18193 = call ptr @s2n_strerror(i32 noundef %18192, ptr noundef @.str.4)
  %18194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18195 = load i32, ptr %18194, align 4, !tbaa !5
  %18196 = call ptr @s2n_strerror_debug(i32 noundef %18195, ptr noundef @.str.4)
  %18197 = call ptr @__errno_location() #12
  %18198 = load i32, ptr %18197, align 4, !tbaa !5
  %18199 = call ptr @strerror(i32 noundef %18198) #11
  %18200 = call ptr @__errno_location() #12
  %18201 = load i32, ptr %18200, align 4, !tbaa !5
  %18202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18189, ptr noundef @.str.2, i32 noundef %18190, ptr noundef @.str.168, ptr noundef @.str.1, i32 noundef 733, ptr noundef %18193, ptr noundef %18196, ptr noundef %18199, i32 noundef %18201) #11
  br label %18220

18203:                                            ; preds = %18181, %18174
  %18204 = load i32, ptr %378, align 4, !tbaa !5
  %18205 = call ptr @__errno_location() #12
  store i32 %18204, ptr %18205, align 4, !tbaa !5
  %18206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18207 = load i32, ptr @test_count, align 4, !tbaa !5
  %18208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18209 = load i32, ptr %18208, align 4, !tbaa !5
  %18210 = call ptr @s2n_strerror(i32 noundef %18209, ptr noundef @.str.4)
  %18211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18212 = load i32, ptr %18211, align 4, !tbaa !5
  %18213 = call ptr @s2n_strerror_debug(i32 noundef %18212, ptr noundef @.str.4)
  %18214 = call ptr @__errno_location() #12
  %18215 = load i32, ptr %18214, align 4, !tbaa !5
  %18216 = call ptr @strerror(i32 noundef %18215) #11
  %18217 = call ptr @__errno_location() #12
  %18218 = load i32, ptr %18217, align 4, !tbaa !5
  %18219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18206, ptr noundef @.str.5, i32 noundef %18207, ptr noundef @.str.168, ptr noundef @.str.1, i32 noundef 733, ptr noundef %18210, ptr noundef %18213, ptr noundef %18216, i32 noundef %18218) #11
  br label %18220

18220:                                            ; preds = %18203, %18186
  call void @llvm.lifetime.end.p0(i64 4, ptr %378) #11
  br label %18221

18221:                                            ; preds = %18220
  br label %18222

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

18223:                                            ; No predecessors!
  br label %18224

18224:                                            ; preds = %18223
  br label %18225

18225:                                            ; preds = %18224, %18165
  br label %18226

18226:                                            ; preds = %18225
  br label %18227

18227:                                            ; preds = %18226
  br label %18228

18228:                                            ; preds = %18227
  %18229 = load i32, ptr @test_count, align 4, !tbaa !5
  %18230 = add nsw i32 %18229, 1
  store i32 %18230, ptr @test_count, align 4, !tbaa !5
  %18231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18232 = load i32, ptr %18231, align 4, !tbaa !5
  %18233 = icmp eq i32 %18232, 335544385
  br i1 %18233, label %18287, label %18234

18234:                                            ; preds = %18228
  br label %18235

18235:                                            ; preds = %18234
  br label %18236

18236:                                            ; preds = %18235
  call void @llvm.lifetime.start.p0(i64 4, ptr %379) #11
  %18237 = call ptr @__errno_location() #12
  %18238 = load i32, ptr %18237, align 4, !tbaa !5
  store i32 %18238, ptr %379, align 4, !tbaa !5
  %18239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18240 = call i32 @s2n_print_stacktrace(ptr noundef %18239)
  %18241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18242 = trunc i8 %18241 to i1
  br i1 %18242, label %18243, label %18265

18243:                                            ; preds = %18236
  %18244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18245 = call i32 @fileno(ptr noundef %18244) #11
  %18246 = call i32 @isatty(i32 noundef %18245) #11
  %18247 = icmp ne i32 %18246, 0
  br i1 %18247, label %18248, label %18265

18248:                                            ; preds = %18243
  %18249 = load i32, ptr %379, align 4, !tbaa !5
  %18250 = call ptr @__errno_location() #12
  store i32 %18249, ptr %18250, align 4, !tbaa !5
  %18251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18252 = load i32, ptr @test_count, align 4, !tbaa !5
  %18253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18254 = load i32, ptr %18253, align 4, !tbaa !5
  %18255 = call ptr @s2n_strerror(i32 noundef %18254, ptr noundef @.str.4)
  %18256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18257 = load i32, ptr %18256, align 4, !tbaa !5
  %18258 = call ptr @s2n_strerror_debug(i32 noundef %18257, ptr noundef @.str.4)
  %18259 = call ptr @__errno_location() #12
  %18260 = load i32, ptr %18259, align 4, !tbaa !5
  %18261 = call ptr @strerror(i32 noundef %18260) #11
  %18262 = call ptr @__errno_location() #12
  %18263 = load i32, ptr %18262, align 4, !tbaa !5
  %18264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18251, ptr noundef @.str.2, i32 noundef %18252, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 733, ptr noundef %18255, ptr noundef %18258, ptr noundef %18261, i32 noundef %18263) #11
  br label %18282

18265:                                            ; preds = %18243, %18236
  %18266 = load i32, ptr %379, align 4, !tbaa !5
  %18267 = call ptr @__errno_location() #12
  store i32 %18266, ptr %18267, align 4, !tbaa !5
  %18268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18269 = load i32, ptr @test_count, align 4, !tbaa !5
  %18270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18271 = load i32, ptr %18270, align 4, !tbaa !5
  %18272 = call ptr @s2n_strerror(i32 noundef %18271, ptr noundef @.str.4)
  %18273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18274 = load i32, ptr %18273, align 4, !tbaa !5
  %18275 = call ptr @s2n_strerror_debug(i32 noundef %18274, ptr noundef @.str.4)
  %18276 = call ptr @__errno_location() #12
  %18277 = load i32, ptr %18276, align 4, !tbaa !5
  %18278 = call ptr @strerror(i32 noundef %18277) #11
  %18279 = call ptr @__errno_location() #12
  %18280 = load i32, ptr %18279, align 4, !tbaa !5
  %18281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18268, ptr noundef @.str.5, i32 noundef %18269, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 733, ptr noundef %18272, ptr noundef %18275, ptr noundef %18278, i32 noundef %18280) #11
  br label %18282

18282:                                            ; preds = %18265, %18248
  call void @llvm.lifetime.end.p0(i64 4, ptr %379) #11
  br label %18283

18283:                                            ; preds = %18282
  br label %18284

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

18285:                                            ; No predecessors!
  br label %18286

18286:                                            ; preds = %18285
  br label %18287

18287:                                            ; preds = %18286, %18228
  br label %18288

18288:                                            ; preds = %18287
  br label %18289

18289:                                            ; preds = %18288
  br label %18290

18290:                                            ; preds = %18289
  %18291 = load i32, ptr @test_count, align 4, !tbaa !5
  %18292 = add nsw i32 %18291, 1
  store i32 %18292, ptr @test_count, align 4, !tbaa !5
  %18293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18294 = load i32, ptr %18293, align 4, !tbaa !5
  %18295 = call ptr @s2n_strerror_debug(i32 noundef %18294, ptr noundef @.str.4)
  %18296 = icmp eq ptr %18295, null
  br i1 %18296, label %18297, label %18350

18297:                                            ; preds = %18290
  br label %18298

18298:                                            ; preds = %18297
  br label %18299

18299:                                            ; preds = %18298
  call void @llvm.lifetime.start.p0(i64 4, ptr %380) #11
  %18300 = call ptr @__errno_location() #12
  %18301 = load i32, ptr %18300, align 4, !tbaa !5
  store i32 %18301, ptr %380, align 4, !tbaa !5
  %18302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18303 = call i32 @s2n_print_stacktrace(ptr noundef %18302)
  %18304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18305 = trunc i8 %18304 to i1
  br i1 %18305, label %18306, label %18328

18306:                                            ; preds = %18299
  %18307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18308 = call i32 @fileno(ptr noundef %18307) #11
  %18309 = call i32 @isatty(i32 noundef %18308) #11
  %18310 = icmp ne i32 %18309, 0
  br i1 %18310, label %18311, label %18328

18311:                                            ; preds = %18306
  %18312 = load i32, ptr %380, align 4, !tbaa !5
  %18313 = call ptr @__errno_location() #12
  store i32 %18312, ptr %18313, align 4, !tbaa !5
  %18314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18315 = load i32, ptr @test_count, align 4, !tbaa !5
  %18316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18317 = load i32, ptr %18316, align 4, !tbaa !5
  %18318 = call ptr @s2n_strerror(i32 noundef %18317, ptr noundef @.str.4)
  %18319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18320 = load i32, ptr %18319, align 4, !tbaa !5
  %18321 = call ptr @s2n_strerror_debug(i32 noundef %18320, ptr noundef @.str.4)
  %18322 = call ptr @__errno_location() #12
  %18323 = load i32, ptr %18322, align 4, !tbaa !5
  %18324 = call ptr @strerror(i32 noundef %18323) #11
  %18325 = call ptr @__errno_location() #12
  %18326 = load i32, ptr %18325, align 4, !tbaa !5
  %18327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18314, ptr noundef @.str.2, i32 noundef %18315, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 733, ptr noundef %18318, ptr noundef %18321, ptr noundef %18324, i32 noundef %18326) #11
  br label %18345

18328:                                            ; preds = %18306, %18299
  %18329 = load i32, ptr %380, align 4, !tbaa !5
  %18330 = call ptr @__errno_location() #12
  store i32 %18329, ptr %18330, align 4, !tbaa !5
  %18331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18332 = load i32, ptr @test_count, align 4, !tbaa !5
  %18333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18334 = load i32, ptr %18333, align 4, !tbaa !5
  %18335 = call ptr @s2n_strerror(i32 noundef %18334, ptr noundef @.str.4)
  %18336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18337 = load i32, ptr %18336, align 4, !tbaa !5
  %18338 = call ptr @s2n_strerror_debug(i32 noundef %18337, ptr noundef @.str.4)
  %18339 = call ptr @__errno_location() #12
  %18340 = load i32, ptr %18339, align 4, !tbaa !5
  %18341 = call ptr @strerror(i32 noundef %18340) #11
  %18342 = call ptr @__errno_location() #12
  %18343 = load i32, ptr %18342, align 4, !tbaa !5
  %18344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18331, ptr noundef @.str.5, i32 noundef %18332, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 733, ptr noundef %18335, ptr noundef %18338, ptr noundef %18341, i32 noundef %18343) #11
  br label %18345

18345:                                            ; preds = %18328, %18311
  call void @llvm.lifetime.end.p0(i64 4, ptr %380) #11
  br label %18346

18346:                                            ; preds = %18345
  br label %18347

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

18348:                                            ; No predecessors!
  br label %18349

18349:                                            ; preds = %18348
  br label %18350

18350:                                            ; preds = %18349, %18290
  br label %18351

18351:                                            ; preds = %18350
  br label %18352

18352:                                            ; preds = %18351
  br label %18353

18353:                                            ; preds = %18352
  br label %18354

18354:                                            ; preds = %18353
  br label %18355

18355:                                            ; preds = %18354
  %18356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %18356, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %18357 = call ptr @__errno_location() #12
  store i32 0, ptr %18357, align 4, !tbaa !5
  br label %18358

18358:                                            ; preds = %18355
  br label %18359

18359:                                            ; preds = %18358
  br label %18360

18360:                                            ; preds = %18359
  br label %18361

18361:                                            ; preds = %18360
  %18362 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %18363 = getelementptr inbounds %struct.s2n_blob, ptr %18362, i32 0, i32 0
  %18364 = load ptr, ptr %18363, align 8, !tbaa !100
  %18365 = getelementptr inbounds i8, ptr %18364, i64 2
  %18366 = load i8, ptr %18365, align 1, !tbaa !108
  %18367 = zext i8 %18366 to i32
  %18368 = xor i32 %18367, -1
  %18369 = trunc i32 %18368 to i8
  %18370 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %18371 = getelementptr inbounds %struct.s2n_blob, ptr %18370, i32 0, i32 0
  %18372 = load ptr, ptr %18371, align 8, !tbaa !100
  %18373 = getelementptr inbounds i8, ptr %18372, i64 2
  store i8 %18369, ptr %18373, align 1, !tbaa !108
  br label %18374

18374:                                            ; preds = %18361
  %18375 = load i32, ptr @test_count, align 4, !tbaa !5
  %18376 = add nsw i32 %18375, 1
  store i32 %18376, ptr @test_count, align 4, !tbaa !5
  %18377 = call i32 @s2n_stuffer_reread(ptr noundef %375)
  %18378 = icmp eq i32 %18377, -1
  br i1 %18378, label %18379, label %18432

18379:                                            ; preds = %18374
  br label %18380

18380:                                            ; preds = %18379
  br label %18381

18381:                                            ; preds = %18380
  call void @llvm.lifetime.start.p0(i64 4, ptr %381) #11
  %18382 = call ptr @__errno_location() #12
  %18383 = load i32, ptr %18382, align 4, !tbaa !5
  store i32 %18383, ptr %381, align 4, !tbaa !5
  %18384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18385 = call i32 @s2n_print_stacktrace(ptr noundef %18384)
  %18386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18387 = trunc i8 %18386 to i1
  br i1 %18387, label %18388, label %18410

18388:                                            ; preds = %18381
  %18389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18390 = call i32 @fileno(ptr noundef %18389) #11
  %18391 = call i32 @isatty(i32 noundef %18390) #11
  %18392 = icmp ne i32 %18391, 0
  br i1 %18392, label %18393, label %18410

18393:                                            ; preds = %18388
  %18394 = load i32, ptr %381, align 4, !tbaa !5
  %18395 = call ptr @__errno_location() #12
  store i32 %18394, ptr %18395, align 4, !tbaa !5
  %18396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18397 = load i32, ptr @test_count, align 4, !tbaa !5
  %18398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18399 = load i32, ptr %18398, align 4, !tbaa !5
  %18400 = call ptr @s2n_strerror(i32 noundef %18399, ptr noundef @.str.4)
  %18401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18402 = load i32, ptr %18401, align 4, !tbaa !5
  %18403 = call ptr @s2n_strerror_debug(i32 noundef %18402, ptr noundef @.str.4)
  %18404 = call ptr @__errno_location() #12
  %18405 = load i32, ptr %18404, align 4, !tbaa !5
  %18406 = call ptr @strerror(i32 noundef %18405) #11
  %18407 = call ptr @__errno_location() #12
  %18408 = load i32, ptr %18407, align 4, !tbaa !5
  %18409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18396, ptr noundef @.str.2, i32 noundef %18397, ptr noundef @.str.169, ptr noundef @.str.1, i32 noundef 736, ptr noundef %18400, ptr noundef %18403, ptr noundef %18406, i32 noundef %18408) #11
  br label %18427

18410:                                            ; preds = %18388, %18381
  %18411 = load i32, ptr %381, align 4, !tbaa !5
  %18412 = call ptr @__errno_location() #12
  store i32 %18411, ptr %18412, align 4, !tbaa !5
  %18413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18414 = load i32, ptr @test_count, align 4, !tbaa !5
  %18415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18416 = load i32, ptr %18415, align 4, !tbaa !5
  %18417 = call ptr @s2n_strerror(i32 noundef %18416, ptr noundef @.str.4)
  %18418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18419 = load i32, ptr %18418, align 4, !tbaa !5
  %18420 = call ptr @s2n_strerror_debug(i32 noundef %18419, ptr noundef @.str.4)
  %18421 = call ptr @__errno_location() #12
  %18422 = load i32, ptr %18421, align 4, !tbaa !5
  %18423 = call ptr @strerror(i32 noundef %18422) #11
  %18424 = call ptr @__errno_location() #12
  %18425 = load i32, ptr %18424, align 4, !tbaa !5
  %18426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18413, ptr noundef @.str.5, i32 noundef %18414, ptr noundef @.str.169, ptr noundef @.str.1, i32 noundef 736, ptr noundef %18417, ptr noundef %18420, ptr noundef %18423, i32 noundef %18425) #11
  br label %18427

18427:                                            ; preds = %18410, %18393
  call void @llvm.lifetime.end.p0(i64 4, ptr %381) #11
  br label %18428

18428:                                            ; preds = %18427
  br label %18429

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

18430:                                            ; No predecessors!
  br label %18431

18431:                                            ; preds = %18430
  br label %18432

18432:                                            ; preds = %18431, %18374
  br label %18433

18433:                                            ; preds = %18432
  br label %18434

18434:                                            ; preds = %18433
  call void @llvm.lifetime.start.p0(i64 10, ptr %382) #11
  br label %18435

18435:                                            ; preds = %18434
  call void @llvm.lifetime.start.p0(i64 4, ptr %383) #11
  store i32 10, ptr %383, align 4, !tbaa !5
  %18436 = load i32, ptr %383, align 4, !tbaa !5
  %18437 = icmp ne i32 %18436, 0
  br i1 %18437, label %18438, label %18500

18438:                                            ; preds = %18435
  %18439 = getelementptr inbounds [10 x i8], ptr %382, i64 0, i64 0
  %18440 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %18441 = getelementptr inbounds %struct.s2n_blob, ptr %18440, i32 0, i32 0
  %18442 = load ptr, ptr %18441, align 8, !tbaa !100
  %18443 = load i32, ptr %383, align 4, !tbaa !5
  %18444 = sext i32 %18443 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 1 %18439, ptr align 1 %18442, i64 %18444, i1 false)
  %18445 = icmp eq ptr %18439, null
  br i1 %18445, label %18446, label %18499

18446:                                            ; preds = %18438
  br label %18447

18447:                                            ; preds = %18446
  br label %18448

18448:                                            ; preds = %18447
  call void @llvm.lifetime.start.p0(i64 4, ptr %384) #11
  %18449 = call ptr @__errno_location() #12
  %18450 = load i32, ptr %18449, align 4, !tbaa !5
  store i32 %18450, ptr %384, align 4, !tbaa !5
  %18451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18452 = call i32 @s2n_print_stacktrace(ptr noundef %18451)
  %18453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18454 = trunc i8 %18453 to i1
  br i1 %18454, label %18455, label %18477

18455:                                            ; preds = %18448
  %18456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18457 = call i32 @fileno(ptr noundef %18456) #11
  %18458 = call i32 @isatty(i32 noundef %18457) #11
  %18459 = icmp ne i32 %18458, 0
  br i1 %18459, label %18460, label %18477

18460:                                            ; preds = %18455
  %18461 = load i32, ptr %384, align 4, !tbaa !5
  %18462 = call ptr @__errno_location() #12
  store i32 %18461, ptr %18462, align 4, !tbaa !5
  %18463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18464 = load i32, ptr @test_count, align 4, !tbaa !5
  %18465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18466 = load i32, ptr %18465, align 4, !tbaa !5
  %18467 = call ptr @s2n_strerror(i32 noundef %18466, ptr noundef @.str.4)
  %18468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18469 = load i32, ptr %18468, align 4, !tbaa !5
  %18470 = call ptr @s2n_strerror_debug(i32 noundef %18469, ptr noundef @.str.4)
  %18471 = call ptr @__errno_location() #12
  %18472 = load i32, ptr %18471, align 4, !tbaa !5
  %18473 = call ptr @strerror(i32 noundef %18472) #11
  %18474 = call ptr @__errno_location() #12
  %18475 = load i32, ptr %18474, align 4, !tbaa !5
  %18476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18463, ptr noundef @.str.2, i32 noundef %18464, ptr noundef @.str.170, ptr noundef @.str.1, i32 noundef 740, ptr noundef %18467, ptr noundef %18470, ptr noundef %18473, i32 noundef %18475) #11
  br label %18494

18477:                                            ; preds = %18455, %18448
  %18478 = load i32, ptr %384, align 4, !tbaa !5
  %18479 = call ptr @__errno_location() #12
  store i32 %18478, ptr %18479, align 4, !tbaa !5
  %18480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18481 = load i32, ptr @test_count, align 4, !tbaa !5
  %18482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18483 = load i32, ptr %18482, align 4, !tbaa !5
  %18484 = call ptr @s2n_strerror(i32 noundef %18483, ptr noundef @.str.4)
  %18485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18486 = load i32, ptr %18485, align 4, !tbaa !5
  %18487 = call ptr @s2n_strerror_debug(i32 noundef %18486, ptr noundef @.str.4)
  %18488 = call ptr @__errno_location() #12
  %18489 = load i32, ptr %18488, align 4, !tbaa !5
  %18490 = call ptr @strerror(i32 noundef %18489) #11
  %18491 = call ptr @__errno_location() #12
  %18492 = load i32, ptr %18491, align 4, !tbaa !5
  %18493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18480, ptr noundef @.str.5, i32 noundef %18481, ptr noundef @.str.170, ptr noundef @.str.1, i32 noundef 740, ptr noundef %18484, ptr noundef %18487, ptr noundef %18490, i32 noundef %18492) #11
  br label %18494

18494:                                            ; preds = %18477, %18460
  call void @llvm.lifetime.end.p0(i64 4, ptr %384) #11
  br label %18495

18495:                                            ; preds = %18494
  br label %18496

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

18497:                                            ; No predecessors!
  br label %18498

18498:                                            ; preds = %18497
  br label %18499

18499:                                            ; preds = %18498, %18438
  br label %18500

18500:                                            ; preds = %18499, %18435
  call void @llvm.lifetime.end.p0(i64 4, ptr %383) #11
  br label %18501

18501:                                            ; preds = %18500
  br label %18502

18502:                                            ; preds = %18501
  call void @llvm.lifetime.start.p0(i64 24, ptr %385) #11
  call void @llvm.memset.p0.i64(ptr align 8 %385, i8 0, i64 24, i1 false)
  br label %18503

18503:                                            ; preds = %18502
  %18504 = load i32, ptr @test_count, align 4, !tbaa !5
  %18505 = add nsw i32 %18504, 1
  store i32 %18505, ptr @test_count, align 4, !tbaa !5
  %18506 = getelementptr inbounds [10 x i8], ptr %382, i64 0, i64 0
  %18507 = call i32 @s2n_blob_init(ptr noundef %385, ptr noundef %18506, i32 noundef 10)
  %18508 = icmp eq i32 %18507, -1
  br i1 %18508, label %18509, label %18562

18509:                                            ; preds = %18503
  br label %18510

18510:                                            ; preds = %18509
  br label %18511

18511:                                            ; preds = %18510
  call void @llvm.lifetime.start.p0(i64 4, ptr %386) #11
  %18512 = call ptr @__errno_location() #12
  %18513 = load i32, ptr %18512, align 4, !tbaa !5
  store i32 %18513, ptr %386, align 4, !tbaa !5
  %18514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18515 = call i32 @s2n_print_stacktrace(ptr noundef %18514)
  %18516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18517 = trunc i8 %18516 to i1
  br i1 %18517, label %18518, label %18540

18518:                                            ; preds = %18511
  %18519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18520 = call i32 @fileno(ptr noundef %18519) #11
  %18521 = call i32 @isatty(i32 noundef %18520) #11
  %18522 = icmp ne i32 %18521, 0
  br i1 %18522, label %18523, label %18540

18523:                                            ; preds = %18518
  %18524 = load i32, ptr %386, align 4, !tbaa !5
  %18525 = call ptr @__errno_location() #12
  store i32 %18524, ptr %18525, align 4, !tbaa !5
  %18526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18527 = load i32, ptr @test_count, align 4, !tbaa !5
  %18528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18529 = load i32, ptr %18528, align 4, !tbaa !5
  %18530 = call ptr @s2n_strerror(i32 noundef %18529, ptr noundef @.str.4)
  %18531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18532 = load i32, ptr %18531, align 4, !tbaa !5
  %18533 = call ptr @s2n_strerror_debug(i32 noundef %18532, ptr noundef @.str.4)
  %18534 = call ptr @__errno_location() #12
  %18535 = load i32, ptr %18534, align 4, !tbaa !5
  %18536 = call ptr @strerror(i32 noundef %18535) #11
  %18537 = call ptr @__errno_location() #12
  %18538 = load i32, ptr %18537, align 4, !tbaa !5
  %18539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18526, ptr noundef @.str.2, i32 noundef %18527, ptr noundef @.str.171, ptr noundef @.str.1, i32 noundef 742, ptr noundef %18530, ptr noundef %18533, ptr noundef %18536, i32 noundef %18538) #11
  br label %18557

18540:                                            ; preds = %18518, %18511
  %18541 = load i32, ptr %386, align 4, !tbaa !5
  %18542 = call ptr @__errno_location() #12
  store i32 %18541, ptr %18542, align 4, !tbaa !5
  %18543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18544 = load i32, ptr @test_count, align 4, !tbaa !5
  %18545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18546 = load i32, ptr %18545, align 4, !tbaa !5
  %18547 = call ptr @s2n_strerror(i32 noundef %18546, ptr noundef @.str.4)
  %18548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18549 = load i32, ptr %18548, align 4, !tbaa !5
  %18550 = call ptr @s2n_strerror_debug(i32 noundef %18549, ptr noundef @.str.4)
  %18551 = call ptr @__errno_location() #12
  %18552 = load i32, ptr %18551, align 4, !tbaa !5
  %18553 = call ptr @strerror(i32 noundef %18552) #11
  %18554 = call ptr @__errno_location() #12
  %18555 = load i32, ptr %18554, align 4, !tbaa !5
  %18556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18543, ptr noundef @.str.5, i32 noundef %18544, ptr noundef @.str.171, ptr noundef @.str.1, i32 noundef 742, ptr noundef %18547, ptr noundef %18550, ptr noundef %18553, i32 noundef %18555) #11
  br label %18557

18557:                                            ; preds = %18540, %18523
  call void @llvm.lifetime.end.p0(i64 4, ptr %386) #11
  br label %18558

18558:                                            ; preds = %18557
  br label %18559

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

18560:                                            ; No predecessors!
  br label %18561

18561:                                            ; preds = %18560
  br label %18562

18562:                                            ; preds = %18561, %18503
  br label %18563

18563:                                            ; preds = %18562
  br label %18564

18564:                                            ; preds = %18563
  call void @llvm.lifetime.start.p0(i64 40, ptr %387) #11
  call void @llvm.memset.p0.i64(ptr align 8 %387, i8 0, i64 40, i1 false)
  br label %18565

18565:                                            ; preds = %18564
  %18566 = load i32, ptr @test_count, align 4, !tbaa !5
  %18567 = add nsw i32 %18566, 1
  store i32 %18567, ptr @test_count, align 4, !tbaa !5
  %18568 = call i32 @s2n_stuffer_init(ptr noundef %387, ptr noundef %385)
  %18569 = icmp eq i32 %18568, -1
  br i1 %18569, label %18570, label %18623

18570:                                            ; preds = %18565
  br label %18571

18571:                                            ; preds = %18570
  br label %18572

18572:                                            ; preds = %18571
  call void @llvm.lifetime.start.p0(i64 4, ptr %388) #11
  %18573 = call ptr @__errno_location() #12
  %18574 = load i32, ptr %18573, align 4, !tbaa !5
  store i32 %18574, ptr %388, align 4, !tbaa !5
  %18575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18576 = call i32 @s2n_print_stacktrace(ptr noundef %18575)
  %18577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18578 = trunc i8 %18577 to i1
  br i1 %18578, label %18579, label %18601

18579:                                            ; preds = %18572
  %18580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18581 = call i32 @fileno(ptr noundef %18580) #11
  %18582 = call i32 @isatty(i32 noundef %18581) #11
  %18583 = icmp ne i32 %18582, 0
  br i1 %18583, label %18584, label %18601

18584:                                            ; preds = %18579
  %18585 = load i32, ptr %388, align 4, !tbaa !5
  %18586 = call ptr @__errno_location() #12
  store i32 %18585, ptr %18586, align 4, !tbaa !5
  %18587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18588 = load i32, ptr @test_count, align 4, !tbaa !5
  %18589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18590 = load i32, ptr %18589, align 4, !tbaa !5
  %18591 = call ptr @s2n_strerror(i32 noundef %18590, ptr noundef @.str.4)
  %18592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18593 = load i32, ptr %18592, align 4, !tbaa !5
  %18594 = call ptr @s2n_strerror_debug(i32 noundef %18593, ptr noundef @.str.4)
  %18595 = call ptr @__errno_location() #12
  %18596 = load i32, ptr %18595, align 4, !tbaa !5
  %18597 = call ptr @strerror(i32 noundef %18596) #11
  %18598 = call ptr @__errno_location() #12
  %18599 = load i32, ptr %18598, align 4, !tbaa !5
  %18600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18587, ptr noundef @.str.2, i32 noundef %18588, ptr noundef @.str.172, ptr noundef @.str.1, i32 noundef 744, ptr noundef %18591, ptr noundef %18594, ptr noundef %18597, i32 noundef %18599) #11
  br label %18618

18601:                                            ; preds = %18579, %18572
  %18602 = load i32, ptr %388, align 4, !tbaa !5
  %18603 = call ptr @__errno_location() #12
  store i32 %18602, ptr %18603, align 4, !tbaa !5
  %18604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18605 = load i32, ptr @test_count, align 4, !tbaa !5
  %18606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18607 = load i32, ptr %18606, align 4, !tbaa !5
  %18608 = call ptr @s2n_strerror(i32 noundef %18607, ptr noundef @.str.4)
  %18609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18610 = load i32, ptr %18609, align 4, !tbaa !5
  %18611 = call ptr @s2n_strerror_debug(i32 noundef %18610, ptr noundef @.str.4)
  %18612 = call ptr @__errno_location() #12
  %18613 = load i32, ptr %18612, align 4, !tbaa !5
  %18614 = call ptr @strerror(i32 noundef %18613) #11
  %18615 = call ptr @__errno_location() #12
  %18616 = load i32, ptr %18615, align 4, !tbaa !5
  %18617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18604, ptr noundef @.str.5, i32 noundef %18605, ptr noundef @.str.172, ptr noundef @.str.1, i32 noundef 744, ptr noundef %18608, ptr noundef %18611, ptr noundef %18614, i32 noundef %18616) #11
  br label %18618

18618:                                            ; preds = %18601, %18584
  call void @llvm.lifetime.end.p0(i64 4, ptr %388) #11
  br label %18619

18619:                                            ; preds = %18618
  br label %18620

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

18621:                                            ; No predecessors!
  br label %18622

18622:                                            ; preds = %18621
  br label %18623

18623:                                            ; preds = %18622, %18565
  br label %18624

18624:                                            ; preds = %18623
  br label %18625

18625:                                            ; preds = %18624
  br label %18626

18626:                                            ; preds = %18625
  br label %18627

18627:                                            ; preds = %18626
  br label %18628

18628:                                            ; preds = %18627
  %18629 = load i32, ptr @test_count, align 4, !tbaa !5
  %18630 = add nsw i32 %18629, 1
  store i32 %18630, ptr @test_count, align 4, !tbaa !5
  %18631 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %18632 = load ptr, ptr %357, align 8, !tbaa !9
  %18633 = call i32 %18631(ptr noundef %18632, ptr noundef %387)
  %18634 = icmp eq i32 %18633, -1
  br i1 %18634, label %18688, label %18635

18635:                                            ; preds = %18628
  br label %18636

18636:                                            ; preds = %18635
  br label %18637

18637:                                            ; preds = %18636
  call void @llvm.lifetime.start.p0(i64 4, ptr %389) #11
  %18638 = call ptr @__errno_location() #12
  %18639 = load i32, ptr %18638, align 4, !tbaa !5
  store i32 %18639, ptr %389, align 4, !tbaa !5
  %18640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18641 = call i32 @s2n_print_stacktrace(ptr noundef %18640)
  %18642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18643 = trunc i8 %18642 to i1
  br i1 %18643, label %18644, label %18666

18644:                                            ; preds = %18637
  %18645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18646 = call i32 @fileno(ptr noundef %18645) #11
  %18647 = call i32 @isatty(i32 noundef %18646) #11
  %18648 = icmp ne i32 %18647, 0
  br i1 %18648, label %18649, label %18666

18649:                                            ; preds = %18644
  %18650 = load i32, ptr %389, align 4, !tbaa !5
  %18651 = call ptr @__errno_location() #12
  store i32 %18650, ptr %18651, align 4, !tbaa !5
  %18652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18653 = load i32, ptr @test_count, align 4, !tbaa !5
  %18654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18655 = load i32, ptr %18654, align 4, !tbaa !5
  %18656 = call ptr @s2n_strerror(i32 noundef %18655, ptr noundef @.str.4)
  %18657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18658 = load i32, ptr %18657, align 4, !tbaa !5
  %18659 = call ptr @s2n_strerror_debug(i32 noundef %18658, ptr noundef @.str.4)
  %18660 = call ptr @__errno_location() #12
  %18661 = load i32, ptr %18660, align 4, !tbaa !5
  %18662 = call ptr @strerror(i32 noundef %18661) #11
  %18663 = call ptr @__errno_location() #12
  %18664 = load i32, ptr %18663, align 4, !tbaa !5
  %18665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18652, ptr noundef @.str.2, i32 noundef %18653, ptr noundef @.str.173, ptr noundef @.str.1, i32 noundef 746, ptr noundef %18656, ptr noundef %18659, ptr noundef %18662, i32 noundef %18664) #11
  br label %18683

18666:                                            ; preds = %18644, %18637
  %18667 = load i32, ptr %389, align 4, !tbaa !5
  %18668 = call ptr @__errno_location() #12
  store i32 %18667, ptr %18668, align 4, !tbaa !5
  %18669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18670 = load i32, ptr @test_count, align 4, !tbaa !5
  %18671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18672 = load i32, ptr %18671, align 4, !tbaa !5
  %18673 = call ptr @s2n_strerror(i32 noundef %18672, ptr noundef @.str.4)
  %18674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18675 = load i32, ptr %18674, align 4, !tbaa !5
  %18676 = call ptr @s2n_strerror_debug(i32 noundef %18675, ptr noundef @.str.4)
  %18677 = call ptr @__errno_location() #12
  %18678 = load i32, ptr %18677, align 4, !tbaa !5
  %18679 = call ptr @strerror(i32 noundef %18678) #11
  %18680 = call ptr @__errno_location() #12
  %18681 = load i32, ptr %18680, align 4, !tbaa !5
  %18682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18669, ptr noundef @.str.5, i32 noundef %18670, ptr noundef @.str.173, ptr noundef @.str.1, i32 noundef 746, ptr noundef %18673, ptr noundef %18676, ptr noundef %18679, i32 noundef %18681) #11
  br label %18683

18683:                                            ; preds = %18666, %18649
  call void @llvm.lifetime.end.p0(i64 4, ptr %389) #11
  br label %18684

18684:                                            ; preds = %18683
  br label %18685

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

18686:                                            ; No predecessors!
  br label %18687

18687:                                            ; preds = %18686
  br label %18688

18688:                                            ; preds = %18687, %18628
  br label %18689

18689:                                            ; preds = %18688
  br label %18690

18690:                                            ; preds = %18689
  br label %18691

18691:                                            ; preds = %18690
  %18692 = load i32, ptr @test_count, align 4, !tbaa !5
  %18693 = add nsw i32 %18692, 1
  store i32 %18693, ptr @test_count, align 4, !tbaa !5
  %18694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18695 = load i32, ptr %18694, align 4, !tbaa !5
  %18696 = icmp eq i32 %18695, 335544385
  br i1 %18696, label %18750, label %18697

18697:                                            ; preds = %18691
  br label %18698

18698:                                            ; preds = %18697
  br label %18699

18699:                                            ; preds = %18698
  call void @llvm.lifetime.start.p0(i64 4, ptr %390) #11
  %18700 = call ptr @__errno_location() #12
  %18701 = load i32, ptr %18700, align 4, !tbaa !5
  store i32 %18701, ptr %390, align 4, !tbaa !5
  %18702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18703 = call i32 @s2n_print_stacktrace(ptr noundef %18702)
  %18704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18705 = trunc i8 %18704 to i1
  br i1 %18705, label %18706, label %18728

18706:                                            ; preds = %18699
  %18707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18708 = call i32 @fileno(ptr noundef %18707) #11
  %18709 = call i32 @isatty(i32 noundef %18708) #11
  %18710 = icmp ne i32 %18709, 0
  br i1 %18710, label %18711, label %18728

18711:                                            ; preds = %18706
  %18712 = load i32, ptr %390, align 4, !tbaa !5
  %18713 = call ptr @__errno_location() #12
  store i32 %18712, ptr %18713, align 4, !tbaa !5
  %18714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18715 = load i32, ptr @test_count, align 4, !tbaa !5
  %18716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18717 = load i32, ptr %18716, align 4, !tbaa !5
  %18718 = call ptr @s2n_strerror(i32 noundef %18717, ptr noundef @.str.4)
  %18719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18720 = load i32, ptr %18719, align 4, !tbaa !5
  %18721 = call ptr @s2n_strerror_debug(i32 noundef %18720, ptr noundef @.str.4)
  %18722 = call ptr @__errno_location() #12
  %18723 = load i32, ptr %18722, align 4, !tbaa !5
  %18724 = call ptr @strerror(i32 noundef %18723) #11
  %18725 = call ptr @__errno_location() #12
  %18726 = load i32, ptr %18725, align 4, !tbaa !5
  %18727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18714, ptr noundef @.str.2, i32 noundef %18715, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 746, ptr noundef %18718, ptr noundef %18721, ptr noundef %18724, i32 noundef %18726) #11
  br label %18745

18728:                                            ; preds = %18706, %18699
  %18729 = load i32, ptr %390, align 4, !tbaa !5
  %18730 = call ptr @__errno_location() #12
  store i32 %18729, ptr %18730, align 4, !tbaa !5
  %18731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18732 = load i32, ptr @test_count, align 4, !tbaa !5
  %18733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18734 = load i32, ptr %18733, align 4, !tbaa !5
  %18735 = call ptr @s2n_strerror(i32 noundef %18734, ptr noundef @.str.4)
  %18736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18737 = load i32, ptr %18736, align 4, !tbaa !5
  %18738 = call ptr @s2n_strerror_debug(i32 noundef %18737, ptr noundef @.str.4)
  %18739 = call ptr @__errno_location() #12
  %18740 = load i32, ptr %18739, align 4, !tbaa !5
  %18741 = call ptr @strerror(i32 noundef %18740) #11
  %18742 = call ptr @__errno_location() #12
  %18743 = load i32, ptr %18742, align 4, !tbaa !5
  %18744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18731, ptr noundef @.str.5, i32 noundef %18732, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 746, ptr noundef %18735, ptr noundef %18738, ptr noundef %18741, i32 noundef %18743) #11
  br label %18745

18745:                                            ; preds = %18728, %18711
  call void @llvm.lifetime.end.p0(i64 4, ptr %390) #11
  br label %18746

18746:                                            ; preds = %18745
  br label %18747

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

18748:                                            ; No predecessors!
  br label %18749

18749:                                            ; preds = %18748
  br label %18750

18750:                                            ; preds = %18749, %18691
  br label %18751

18751:                                            ; preds = %18750
  br label %18752

18752:                                            ; preds = %18751
  br label %18753

18753:                                            ; preds = %18752
  %18754 = load i32, ptr @test_count, align 4, !tbaa !5
  %18755 = add nsw i32 %18754, 1
  store i32 %18755, ptr @test_count, align 4, !tbaa !5
  %18756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18757 = load i32, ptr %18756, align 4, !tbaa !5
  %18758 = call ptr @s2n_strerror_debug(i32 noundef %18757, ptr noundef @.str.4)
  %18759 = icmp eq ptr %18758, null
  br i1 %18759, label %18760, label %18813

18760:                                            ; preds = %18753
  br label %18761

18761:                                            ; preds = %18760
  br label %18762

18762:                                            ; preds = %18761
  call void @llvm.lifetime.start.p0(i64 4, ptr %391) #11
  %18763 = call ptr @__errno_location() #12
  %18764 = load i32, ptr %18763, align 4, !tbaa !5
  store i32 %18764, ptr %391, align 4, !tbaa !5
  %18765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18766 = call i32 @s2n_print_stacktrace(ptr noundef %18765)
  %18767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18768 = trunc i8 %18767 to i1
  br i1 %18768, label %18769, label %18791

18769:                                            ; preds = %18762
  %18770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18771 = call i32 @fileno(ptr noundef %18770) #11
  %18772 = call i32 @isatty(i32 noundef %18771) #11
  %18773 = icmp ne i32 %18772, 0
  br i1 %18773, label %18774, label %18791

18774:                                            ; preds = %18769
  %18775 = load i32, ptr %391, align 4, !tbaa !5
  %18776 = call ptr @__errno_location() #12
  store i32 %18775, ptr %18776, align 4, !tbaa !5
  %18777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18778 = load i32, ptr @test_count, align 4, !tbaa !5
  %18779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18780 = load i32, ptr %18779, align 4, !tbaa !5
  %18781 = call ptr @s2n_strerror(i32 noundef %18780, ptr noundef @.str.4)
  %18782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18783 = load i32, ptr %18782, align 4, !tbaa !5
  %18784 = call ptr @s2n_strerror_debug(i32 noundef %18783, ptr noundef @.str.4)
  %18785 = call ptr @__errno_location() #12
  %18786 = load i32, ptr %18785, align 4, !tbaa !5
  %18787 = call ptr @strerror(i32 noundef %18786) #11
  %18788 = call ptr @__errno_location() #12
  %18789 = load i32, ptr %18788, align 4, !tbaa !5
  %18790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18777, ptr noundef @.str.2, i32 noundef %18778, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 746, ptr noundef %18781, ptr noundef %18784, ptr noundef %18787, i32 noundef %18789) #11
  br label %18808

18791:                                            ; preds = %18769, %18762
  %18792 = load i32, ptr %391, align 4, !tbaa !5
  %18793 = call ptr @__errno_location() #12
  store i32 %18792, ptr %18793, align 4, !tbaa !5
  %18794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18795 = load i32, ptr @test_count, align 4, !tbaa !5
  %18796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18797 = load i32, ptr %18796, align 4, !tbaa !5
  %18798 = call ptr @s2n_strerror(i32 noundef %18797, ptr noundef @.str.4)
  %18799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18800 = load i32, ptr %18799, align 4, !tbaa !5
  %18801 = call ptr @s2n_strerror_debug(i32 noundef %18800, ptr noundef @.str.4)
  %18802 = call ptr @__errno_location() #12
  %18803 = load i32, ptr %18802, align 4, !tbaa !5
  %18804 = call ptr @strerror(i32 noundef %18803) #11
  %18805 = call ptr @__errno_location() #12
  %18806 = load i32, ptr %18805, align 4, !tbaa !5
  %18807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18794, ptr noundef @.str.5, i32 noundef %18795, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 746, ptr noundef %18798, ptr noundef %18801, ptr noundef %18804, i32 noundef %18806) #11
  br label %18808

18808:                                            ; preds = %18791, %18774
  call void @llvm.lifetime.end.p0(i64 4, ptr %391) #11
  br label %18809

18809:                                            ; preds = %18808
  br label %18810

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

18811:                                            ; No predecessors!
  br label %18812

18812:                                            ; preds = %18811
  br label %18813

18813:                                            ; preds = %18812, %18753
  br label %18814

18814:                                            ; preds = %18813
  br label %18815

18815:                                            ; preds = %18814
  br label %18816

18816:                                            ; preds = %18815
  br label %18817

18817:                                            ; preds = %18816
  br label %18818

18818:                                            ; preds = %18817
  %18819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %18819, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %18820 = call ptr @__errno_location() #12
  store i32 0, ptr %18820, align 4, !tbaa !5
  br label %18821

18821:                                            ; preds = %18818
  br label %18822

18822:                                            ; preds = %18821
  br label %18823

18823:                                            ; preds = %18822
  br label %18824

18824:                                            ; preds = %18823
  %18825 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %18826 = getelementptr inbounds %struct.s2n_blob, ptr %18825, i32 0, i32 0
  %18827 = load ptr, ptr %18826, align 8, !tbaa !100
  %18828 = getelementptr inbounds i8, ptr %18827, i64 4
  %18829 = load i8, ptr %18828, align 1, !tbaa !108
  %18830 = zext i8 %18829 to i32
  %18831 = xor i32 %18830, -1
  %18832 = trunc i32 %18831 to i8
  %18833 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %18834 = getelementptr inbounds %struct.s2n_blob, ptr %18833, i32 0, i32 0
  %18835 = load ptr, ptr %18834, align 8, !tbaa !100
  %18836 = getelementptr inbounds i8, ptr %18835, i64 4
  store i8 %18832, ptr %18836, align 1, !tbaa !108
  br label %18837

18837:                                            ; preds = %18824
  br label %18838

18838:                                            ; preds = %18837
  br label %18839

18839:                                            ; preds = %18838
  %18840 = load i32, ptr @test_count, align 4, !tbaa !5
  %18841 = add nsw i32 %18840, 1
  store i32 %18841, ptr @test_count, align 4, !tbaa !5
  %18842 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %18843 = load ptr, ptr %357, align 8, !tbaa !9
  %18844 = call i32 %18842(ptr noundef %18843, ptr noundef %375)
  %18845 = icmp eq i32 %18844, -1
  br i1 %18845, label %18899, label %18846

18846:                                            ; preds = %18839
  br label %18847

18847:                                            ; preds = %18846
  br label %18848

18848:                                            ; preds = %18847
  call void @llvm.lifetime.start.p0(i64 4, ptr %392) #11
  %18849 = call ptr @__errno_location() #12
  %18850 = load i32, ptr %18849, align 4, !tbaa !5
  store i32 %18850, ptr %392, align 4, !tbaa !5
  %18851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18852 = call i32 @s2n_print_stacktrace(ptr noundef %18851)
  %18853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18854 = trunc i8 %18853 to i1
  br i1 %18854, label %18855, label %18877

18855:                                            ; preds = %18848
  %18856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18857 = call i32 @fileno(ptr noundef %18856) #11
  %18858 = call i32 @isatty(i32 noundef %18857) #11
  %18859 = icmp ne i32 %18858, 0
  br i1 %18859, label %18860, label %18877

18860:                                            ; preds = %18855
  %18861 = load i32, ptr %392, align 4, !tbaa !5
  %18862 = call ptr @__errno_location() #12
  store i32 %18861, ptr %18862, align 4, !tbaa !5
  %18863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18864 = load i32, ptr @test_count, align 4, !tbaa !5
  %18865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18866 = load i32, ptr %18865, align 4, !tbaa !5
  %18867 = call ptr @s2n_strerror(i32 noundef %18866, ptr noundef @.str.4)
  %18868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18869 = load i32, ptr %18868, align 4, !tbaa !5
  %18870 = call ptr @s2n_strerror_debug(i32 noundef %18869, ptr noundef @.str.4)
  %18871 = call ptr @__errno_location() #12
  %18872 = load i32, ptr %18871, align 4, !tbaa !5
  %18873 = call ptr @strerror(i32 noundef %18872) #11
  %18874 = call ptr @__errno_location() #12
  %18875 = load i32, ptr %18874, align 4, !tbaa !5
  %18876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18863, ptr noundef @.str.2, i32 noundef %18864, ptr noundef @.str.168, ptr noundef @.str.1, i32 noundef 752, ptr noundef %18867, ptr noundef %18870, ptr noundef %18873, i32 noundef %18875) #11
  br label %18894

18877:                                            ; preds = %18855, %18848
  %18878 = load i32, ptr %392, align 4, !tbaa !5
  %18879 = call ptr @__errno_location() #12
  store i32 %18878, ptr %18879, align 4, !tbaa !5
  %18880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18881 = load i32, ptr @test_count, align 4, !tbaa !5
  %18882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18883 = load i32, ptr %18882, align 4, !tbaa !5
  %18884 = call ptr @s2n_strerror(i32 noundef %18883, ptr noundef @.str.4)
  %18885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18886 = load i32, ptr %18885, align 4, !tbaa !5
  %18887 = call ptr @s2n_strerror_debug(i32 noundef %18886, ptr noundef @.str.4)
  %18888 = call ptr @__errno_location() #12
  %18889 = load i32, ptr %18888, align 4, !tbaa !5
  %18890 = call ptr @strerror(i32 noundef %18889) #11
  %18891 = call ptr @__errno_location() #12
  %18892 = load i32, ptr %18891, align 4, !tbaa !5
  %18893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18880, ptr noundef @.str.5, i32 noundef %18881, ptr noundef @.str.168, ptr noundef @.str.1, i32 noundef 752, ptr noundef %18884, ptr noundef %18887, ptr noundef %18890, i32 noundef %18892) #11
  br label %18894

18894:                                            ; preds = %18877, %18860
  call void @llvm.lifetime.end.p0(i64 4, ptr %392) #11
  br label %18895

18895:                                            ; preds = %18894
  br label %18896

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

18897:                                            ; No predecessors!
  br label %18898

18898:                                            ; preds = %18897
  br label %18899

18899:                                            ; preds = %18898, %18839
  br label %18900

18900:                                            ; preds = %18899
  br label %18901

18901:                                            ; preds = %18900
  br label %18902

18902:                                            ; preds = %18901
  %18903 = load i32, ptr @test_count, align 4, !tbaa !5
  %18904 = add nsw i32 %18903, 1
  store i32 %18904, ptr @test_count, align 4, !tbaa !5
  %18905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18906 = load i32, ptr %18905, align 4, !tbaa !5
  %18907 = icmp eq i32 %18906, 335544385
  br i1 %18907, label %18961, label %18908

18908:                                            ; preds = %18902
  br label %18909

18909:                                            ; preds = %18908
  br label %18910

18910:                                            ; preds = %18909
  call void @llvm.lifetime.start.p0(i64 4, ptr %393) #11
  %18911 = call ptr @__errno_location() #12
  %18912 = load i32, ptr %18911, align 4, !tbaa !5
  store i32 %18912, ptr %393, align 4, !tbaa !5
  %18913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18914 = call i32 @s2n_print_stacktrace(ptr noundef %18913)
  %18915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18916 = trunc i8 %18915 to i1
  br i1 %18916, label %18917, label %18939

18917:                                            ; preds = %18910
  %18918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18919 = call i32 @fileno(ptr noundef %18918) #11
  %18920 = call i32 @isatty(i32 noundef %18919) #11
  %18921 = icmp ne i32 %18920, 0
  br i1 %18921, label %18922, label %18939

18922:                                            ; preds = %18917
  %18923 = load i32, ptr %393, align 4, !tbaa !5
  %18924 = call ptr @__errno_location() #12
  store i32 %18923, ptr %18924, align 4, !tbaa !5
  %18925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18926 = load i32, ptr @test_count, align 4, !tbaa !5
  %18927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18928 = load i32, ptr %18927, align 4, !tbaa !5
  %18929 = call ptr @s2n_strerror(i32 noundef %18928, ptr noundef @.str.4)
  %18930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18931 = load i32, ptr %18930, align 4, !tbaa !5
  %18932 = call ptr @s2n_strerror_debug(i32 noundef %18931, ptr noundef @.str.4)
  %18933 = call ptr @__errno_location() #12
  %18934 = load i32, ptr %18933, align 4, !tbaa !5
  %18935 = call ptr @strerror(i32 noundef %18934) #11
  %18936 = call ptr @__errno_location() #12
  %18937 = load i32, ptr %18936, align 4, !tbaa !5
  %18938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18925, ptr noundef @.str.2, i32 noundef %18926, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 752, ptr noundef %18929, ptr noundef %18932, ptr noundef %18935, i32 noundef %18937) #11
  br label %18956

18939:                                            ; preds = %18917, %18910
  %18940 = load i32, ptr %393, align 4, !tbaa !5
  %18941 = call ptr @__errno_location() #12
  store i32 %18940, ptr %18941, align 4, !tbaa !5
  %18942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18943 = load i32, ptr @test_count, align 4, !tbaa !5
  %18944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18945 = load i32, ptr %18944, align 4, !tbaa !5
  %18946 = call ptr @s2n_strerror(i32 noundef %18945, ptr noundef @.str.4)
  %18947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18948 = load i32, ptr %18947, align 4, !tbaa !5
  %18949 = call ptr @s2n_strerror_debug(i32 noundef %18948, ptr noundef @.str.4)
  %18950 = call ptr @__errno_location() #12
  %18951 = load i32, ptr %18950, align 4, !tbaa !5
  %18952 = call ptr @strerror(i32 noundef %18951) #11
  %18953 = call ptr @__errno_location() #12
  %18954 = load i32, ptr %18953, align 4, !tbaa !5
  %18955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18942, ptr noundef @.str.5, i32 noundef %18943, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 752, ptr noundef %18946, ptr noundef %18949, ptr noundef %18952, i32 noundef %18954) #11
  br label %18956

18956:                                            ; preds = %18939, %18922
  call void @llvm.lifetime.end.p0(i64 4, ptr %393) #11
  br label %18957

18957:                                            ; preds = %18956
  br label %18958

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

18959:                                            ; No predecessors!
  br label %18960

18960:                                            ; preds = %18959
  br label %18961

18961:                                            ; preds = %18960, %18902
  br label %18962

18962:                                            ; preds = %18961
  br label %18963

18963:                                            ; preds = %18962
  br label %18964

18964:                                            ; preds = %18963
  %18965 = load i32, ptr @test_count, align 4, !tbaa !5
  %18966 = add nsw i32 %18965, 1
  store i32 %18966, ptr @test_count, align 4, !tbaa !5
  %18967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18968 = load i32, ptr %18967, align 4, !tbaa !5
  %18969 = call ptr @s2n_strerror_debug(i32 noundef %18968, ptr noundef @.str.4)
  %18970 = icmp eq ptr %18969, null
  br i1 %18970, label %18971, label %19024

18971:                                            ; preds = %18964
  br label %18972

18972:                                            ; preds = %18971
  br label %18973

18973:                                            ; preds = %18972
  call void @llvm.lifetime.start.p0(i64 4, ptr %394) #11
  %18974 = call ptr @__errno_location() #12
  %18975 = load i32, ptr %18974, align 4, !tbaa !5
  store i32 %18975, ptr %394, align 4, !tbaa !5
  %18976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18977 = call i32 @s2n_print_stacktrace(ptr noundef %18976)
  %18978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18979 = trunc i8 %18978 to i1
  br i1 %18979, label %18980, label %19002

18980:                                            ; preds = %18973
  %18981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18982 = call i32 @fileno(ptr noundef %18981) #11
  %18983 = call i32 @isatty(i32 noundef %18982) #11
  %18984 = icmp ne i32 %18983, 0
  br i1 %18984, label %18985, label %19002

18985:                                            ; preds = %18980
  %18986 = load i32, ptr %394, align 4, !tbaa !5
  %18987 = call ptr @__errno_location() #12
  store i32 %18986, ptr %18987, align 4, !tbaa !5
  %18988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18989 = load i32, ptr @test_count, align 4, !tbaa !5
  %18990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18991 = load i32, ptr %18990, align 4, !tbaa !5
  %18992 = call ptr @s2n_strerror(i32 noundef %18991, ptr noundef @.str.4)
  %18993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18994 = load i32, ptr %18993, align 4, !tbaa !5
  %18995 = call ptr @s2n_strerror_debug(i32 noundef %18994, ptr noundef @.str.4)
  %18996 = call ptr @__errno_location() #12
  %18997 = load i32, ptr %18996, align 4, !tbaa !5
  %18998 = call ptr @strerror(i32 noundef %18997) #11
  %18999 = call ptr @__errno_location() #12
  %19000 = load i32, ptr %18999, align 4, !tbaa !5
  %19001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18988, ptr noundef @.str.2, i32 noundef %18989, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 752, ptr noundef %18992, ptr noundef %18995, ptr noundef %18998, i32 noundef %19000) #11
  br label %19019

19002:                                            ; preds = %18980, %18973
  %19003 = load i32, ptr %394, align 4, !tbaa !5
  %19004 = call ptr @__errno_location() #12
  store i32 %19003, ptr %19004, align 4, !tbaa !5
  %19005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19006 = load i32, ptr @test_count, align 4, !tbaa !5
  %19007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19008 = load i32, ptr %19007, align 4, !tbaa !5
  %19009 = call ptr @s2n_strerror(i32 noundef %19008, ptr noundef @.str.4)
  %19010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19011 = load i32, ptr %19010, align 4, !tbaa !5
  %19012 = call ptr @s2n_strerror_debug(i32 noundef %19011, ptr noundef @.str.4)
  %19013 = call ptr @__errno_location() #12
  %19014 = load i32, ptr %19013, align 4, !tbaa !5
  %19015 = call ptr @strerror(i32 noundef %19014) #11
  %19016 = call ptr @__errno_location() #12
  %19017 = load i32, ptr %19016, align 4, !tbaa !5
  %19018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19005, ptr noundef @.str.5, i32 noundef %19006, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 752, ptr noundef %19009, ptr noundef %19012, ptr noundef %19015, i32 noundef %19017) #11
  br label %19019

19019:                                            ; preds = %19002, %18985
  call void @llvm.lifetime.end.p0(i64 4, ptr %394) #11
  br label %19020

19020:                                            ; preds = %19019
  br label %19021

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

19022:                                            ; No predecessors!
  br label %19023

19023:                                            ; preds = %19022
  br label %19024

19024:                                            ; preds = %19023, %18964
  br label %19025

19025:                                            ; preds = %19024
  br label %19026

19026:                                            ; preds = %19025
  br label %19027

19027:                                            ; preds = %19026
  br label %19028

19028:                                            ; preds = %19027
  br label %19029

19029:                                            ; preds = %19028
  %19030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %19030, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %19031 = call ptr @__errno_location() #12
  store i32 0, ptr %19031, align 4, !tbaa !5
  br label %19032

19032:                                            ; preds = %19029
  br label %19033

19033:                                            ; preds = %19032
  br label %19034

19034:                                            ; preds = %19033
  br label %19035

19035:                                            ; preds = %19034
  %19036 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %19037 = getelementptr inbounds %struct.s2n_blob, ptr %19036, i32 0, i32 0
  %19038 = load ptr, ptr %19037, align 8, !tbaa !100
  %19039 = getelementptr inbounds i8, ptr %19038, i64 4
  %19040 = load i8, ptr %19039, align 1, !tbaa !108
  %19041 = zext i8 %19040 to i32
  %19042 = xor i32 %19041, -1
  %19043 = trunc i32 %19042 to i8
  %19044 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %19045 = getelementptr inbounds %struct.s2n_blob, ptr %19044, i32 0, i32 0
  %19046 = load ptr, ptr %19045, align 8, !tbaa !100
  %19047 = getelementptr inbounds i8, ptr %19046, i64 4
  store i8 %19043, ptr %19047, align 1, !tbaa !108
  br label %19048

19048:                                            ; preds = %19035
  %19049 = load i32, ptr @test_count, align 4, !tbaa !5
  %19050 = add nsw i32 %19049, 1
  store i32 %19050, ptr @test_count, align 4, !tbaa !5
  %19051 = call i32 @s2n_stuffer_reread(ptr noundef %375)
  %19052 = icmp eq i32 %19051, -1
  br i1 %19052, label %19053, label %19106

19053:                                            ; preds = %19048
  br label %19054

19054:                                            ; preds = %19053
  br label %19055

19055:                                            ; preds = %19054
  call void @llvm.lifetime.start.p0(i64 4, ptr %395) #11
  %19056 = call ptr @__errno_location() #12
  %19057 = load i32, ptr %19056, align 4, !tbaa !5
  store i32 %19057, ptr %395, align 4, !tbaa !5
  %19058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19059 = call i32 @s2n_print_stacktrace(ptr noundef %19058)
  %19060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19061 = trunc i8 %19060 to i1
  br i1 %19061, label %19062, label %19084

19062:                                            ; preds = %19055
  %19063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19064 = call i32 @fileno(ptr noundef %19063) #11
  %19065 = call i32 @isatty(i32 noundef %19064) #11
  %19066 = icmp ne i32 %19065, 0
  br i1 %19066, label %19067, label %19084

19067:                                            ; preds = %19062
  %19068 = load i32, ptr %395, align 4, !tbaa !5
  %19069 = call ptr @__errno_location() #12
  store i32 %19068, ptr %19069, align 4, !tbaa !5
  %19070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19071 = load i32, ptr @test_count, align 4, !tbaa !5
  %19072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19073 = load i32, ptr %19072, align 4, !tbaa !5
  %19074 = call ptr @s2n_strerror(i32 noundef %19073, ptr noundef @.str.4)
  %19075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19076 = load i32, ptr %19075, align 4, !tbaa !5
  %19077 = call ptr @s2n_strerror_debug(i32 noundef %19076, ptr noundef @.str.4)
  %19078 = call ptr @__errno_location() #12
  %19079 = load i32, ptr %19078, align 4, !tbaa !5
  %19080 = call ptr @strerror(i32 noundef %19079) #11
  %19081 = call ptr @__errno_location() #12
  %19082 = load i32, ptr %19081, align 4, !tbaa !5
  %19083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19070, ptr noundef @.str.2, i32 noundef %19071, ptr noundef @.str.169, ptr noundef @.str.1, i32 noundef 755, ptr noundef %19074, ptr noundef %19077, ptr noundef %19080, i32 noundef %19082) #11
  br label %19101

19084:                                            ; preds = %19062, %19055
  %19085 = load i32, ptr %395, align 4, !tbaa !5
  %19086 = call ptr @__errno_location() #12
  store i32 %19085, ptr %19086, align 4, !tbaa !5
  %19087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19088 = load i32, ptr @test_count, align 4, !tbaa !5
  %19089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19090 = load i32, ptr %19089, align 4, !tbaa !5
  %19091 = call ptr @s2n_strerror(i32 noundef %19090, ptr noundef @.str.4)
  %19092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19093 = load i32, ptr %19092, align 4, !tbaa !5
  %19094 = call ptr @s2n_strerror_debug(i32 noundef %19093, ptr noundef @.str.4)
  %19095 = call ptr @__errno_location() #12
  %19096 = load i32, ptr %19095, align 4, !tbaa !5
  %19097 = call ptr @strerror(i32 noundef %19096) #11
  %19098 = call ptr @__errno_location() #12
  %19099 = load i32, ptr %19098, align 4, !tbaa !5
  %19100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19087, ptr noundef @.str.5, i32 noundef %19088, ptr noundef @.str.169, ptr noundef @.str.1, i32 noundef 755, ptr noundef %19091, ptr noundef %19094, ptr noundef %19097, i32 noundef %19099) #11
  br label %19101

19101:                                            ; preds = %19084, %19067
  call void @llvm.lifetime.end.p0(i64 4, ptr %395) #11
  br label %19102

19102:                                            ; preds = %19101
  br label %19103

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

19104:                                            ; No predecessors!
  br label %19105

19105:                                            ; preds = %19104
  br label %19106

19106:                                            ; preds = %19105, %19048
  br label %19107

19107:                                            ; preds = %19106
  br label %19108

19108:                                            ; preds = %19107
  call void @llvm.lifetime.start.p0(i64 8, ptr %396) #11
  %19109 = load ptr, ptr %356, align 8, !tbaa !9
  %19110 = getelementptr inbounds %struct.s2n_kem_group, ptr %19109, i32 0, i32 2
  %19111 = load ptr, ptr %19110, align 8, !tbaa !89
  %19112 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %19111, i32 0, i32 3
  %19113 = load i8, ptr %19112, align 8, !tbaa !46
  %19114 = zext i8 %19113 to i32
  %19115 = add nsw i32 6, %19114
  %19116 = sext i32 %19115 to i64
  store i64 %19116, ptr %396, align 8, !tbaa !49
  %19117 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %19118 = getelementptr inbounds %struct.s2n_blob, ptr %19117, i32 0, i32 0
  %19119 = load ptr, ptr %19118, align 8, !tbaa !100
  %19120 = load i64, ptr %396, align 8, !tbaa !49
  %19121 = getelementptr inbounds i8, ptr %19119, i64 %19120
  %19122 = load i8, ptr %19121, align 1, !tbaa !108
  %19123 = zext i8 %19122 to i32
  %19124 = xor i32 %19123, -1
  %19125 = trunc i32 %19124 to i8
  %19126 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %19127 = getelementptr inbounds %struct.s2n_blob, ptr %19126, i32 0, i32 0
  %19128 = load ptr, ptr %19127, align 8, !tbaa !100
  %19129 = load i64, ptr %396, align 8, !tbaa !49
  %19130 = getelementptr inbounds i8, ptr %19128, i64 %19129
  store i8 %19125, ptr %19130, align 1, !tbaa !108
  br label %19131

19131:                                            ; preds = %19108
  br label %19132

19132:                                            ; preds = %19131
  br label %19133

19133:                                            ; preds = %19132
  %19134 = load i32, ptr @test_count, align 4, !tbaa !5
  %19135 = add nsw i32 %19134, 1
  store i32 %19135, ptr @test_count, align 4, !tbaa !5
  %19136 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %19137 = load ptr, ptr %357, align 8, !tbaa !9
  %19138 = call i32 %19136(ptr noundef %19137, ptr noundef %375)
  %19139 = icmp eq i32 %19138, -1
  br i1 %19139, label %19193, label %19140

19140:                                            ; preds = %19133
  br label %19141

19141:                                            ; preds = %19140
  br label %19142

19142:                                            ; preds = %19141
  call void @llvm.lifetime.start.p0(i64 4, ptr %397) #11
  %19143 = call ptr @__errno_location() #12
  %19144 = load i32, ptr %19143, align 4, !tbaa !5
  store i32 %19144, ptr %397, align 4, !tbaa !5
  %19145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19146 = call i32 @s2n_print_stacktrace(ptr noundef %19145)
  %19147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19148 = trunc i8 %19147 to i1
  br i1 %19148, label %19149, label %19171

19149:                                            ; preds = %19142
  %19150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19151 = call i32 @fileno(ptr noundef %19150) #11
  %19152 = call i32 @isatty(i32 noundef %19151) #11
  %19153 = icmp ne i32 %19152, 0
  br i1 %19153, label %19154, label %19171

19154:                                            ; preds = %19149
  %19155 = load i32, ptr %397, align 4, !tbaa !5
  %19156 = call ptr @__errno_location() #12
  store i32 %19155, ptr %19156, align 4, !tbaa !5
  %19157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19158 = load i32, ptr @test_count, align 4, !tbaa !5
  %19159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19160 = load i32, ptr %19159, align 4, !tbaa !5
  %19161 = call ptr @s2n_strerror(i32 noundef %19160, ptr noundef @.str.4)
  %19162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19163 = load i32, ptr %19162, align 4, !tbaa !5
  %19164 = call ptr @s2n_strerror_debug(i32 noundef %19163, ptr noundef @.str.4)
  %19165 = call ptr @__errno_location() #12
  %19166 = load i32, ptr %19165, align 4, !tbaa !5
  %19167 = call ptr @strerror(i32 noundef %19166) #11
  %19168 = call ptr @__errno_location() #12
  %19169 = load i32, ptr %19168, align 4, !tbaa !5
  %19170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19157, ptr noundef @.str.2, i32 noundef %19158, ptr noundef @.str.168, ptr noundef @.str.1, i32 noundef 766, ptr noundef %19161, ptr noundef %19164, ptr noundef %19167, i32 noundef %19169) #11
  br label %19188

19171:                                            ; preds = %19149, %19142
  %19172 = load i32, ptr %397, align 4, !tbaa !5
  %19173 = call ptr @__errno_location() #12
  store i32 %19172, ptr %19173, align 4, !tbaa !5
  %19174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19175 = load i32, ptr @test_count, align 4, !tbaa !5
  %19176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19177 = load i32, ptr %19176, align 4, !tbaa !5
  %19178 = call ptr @s2n_strerror(i32 noundef %19177, ptr noundef @.str.4)
  %19179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19180 = load i32, ptr %19179, align 4, !tbaa !5
  %19181 = call ptr @s2n_strerror_debug(i32 noundef %19180, ptr noundef @.str.4)
  %19182 = call ptr @__errno_location() #12
  %19183 = load i32, ptr %19182, align 4, !tbaa !5
  %19184 = call ptr @strerror(i32 noundef %19183) #11
  %19185 = call ptr @__errno_location() #12
  %19186 = load i32, ptr %19185, align 4, !tbaa !5
  %19187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19174, ptr noundef @.str.5, i32 noundef %19175, ptr noundef @.str.168, ptr noundef @.str.1, i32 noundef 766, ptr noundef %19178, ptr noundef %19181, ptr noundef %19184, i32 noundef %19186) #11
  br label %19188

19188:                                            ; preds = %19171, %19154
  call void @llvm.lifetime.end.p0(i64 4, ptr %397) #11
  br label %19189

19189:                                            ; preds = %19188
  br label %19190

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

19191:                                            ; No predecessors!
  br label %19192

19192:                                            ; preds = %19191
  br label %19193

19193:                                            ; preds = %19192, %19133
  br label %19194

19194:                                            ; preds = %19193
  br label %19195

19195:                                            ; preds = %19194
  br label %19196

19196:                                            ; preds = %19195
  %19197 = load i32, ptr @test_count, align 4, !tbaa !5
  %19198 = add nsw i32 %19197, 1
  store i32 %19198, ptr @test_count, align 4, !tbaa !5
  %19199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19200 = load i32, ptr %19199, align 4, !tbaa !5
  %19201 = icmp eq i32 %19200, 335544385
  br i1 %19201, label %19255, label %19202

19202:                                            ; preds = %19196
  br label %19203

19203:                                            ; preds = %19202
  br label %19204

19204:                                            ; preds = %19203
  call void @llvm.lifetime.start.p0(i64 4, ptr %398) #11
  %19205 = call ptr @__errno_location() #12
  %19206 = load i32, ptr %19205, align 4, !tbaa !5
  store i32 %19206, ptr %398, align 4, !tbaa !5
  %19207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19208 = call i32 @s2n_print_stacktrace(ptr noundef %19207)
  %19209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19210 = trunc i8 %19209 to i1
  br i1 %19210, label %19211, label %19233

19211:                                            ; preds = %19204
  %19212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19213 = call i32 @fileno(ptr noundef %19212) #11
  %19214 = call i32 @isatty(i32 noundef %19213) #11
  %19215 = icmp ne i32 %19214, 0
  br i1 %19215, label %19216, label %19233

19216:                                            ; preds = %19211
  %19217 = load i32, ptr %398, align 4, !tbaa !5
  %19218 = call ptr @__errno_location() #12
  store i32 %19217, ptr %19218, align 4, !tbaa !5
  %19219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19220 = load i32, ptr @test_count, align 4, !tbaa !5
  %19221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19222 = load i32, ptr %19221, align 4, !tbaa !5
  %19223 = call ptr @s2n_strerror(i32 noundef %19222, ptr noundef @.str.4)
  %19224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19225 = load i32, ptr %19224, align 4, !tbaa !5
  %19226 = call ptr @s2n_strerror_debug(i32 noundef %19225, ptr noundef @.str.4)
  %19227 = call ptr @__errno_location() #12
  %19228 = load i32, ptr %19227, align 4, !tbaa !5
  %19229 = call ptr @strerror(i32 noundef %19228) #11
  %19230 = call ptr @__errno_location() #12
  %19231 = load i32, ptr %19230, align 4, !tbaa !5
  %19232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19219, ptr noundef @.str.2, i32 noundef %19220, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 766, ptr noundef %19223, ptr noundef %19226, ptr noundef %19229, i32 noundef %19231) #11
  br label %19250

19233:                                            ; preds = %19211, %19204
  %19234 = load i32, ptr %398, align 4, !tbaa !5
  %19235 = call ptr @__errno_location() #12
  store i32 %19234, ptr %19235, align 4, !tbaa !5
  %19236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19237 = load i32, ptr @test_count, align 4, !tbaa !5
  %19238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19239 = load i32, ptr %19238, align 4, !tbaa !5
  %19240 = call ptr @s2n_strerror(i32 noundef %19239, ptr noundef @.str.4)
  %19241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19242 = load i32, ptr %19241, align 4, !tbaa !5
  %19243 = call ptr @s2n_strerror_debug(i32 noundef %19242, ptr noundef @.str.4)
  %19244 = call ptr @__errno_location() #12
  %19245 = load i32, ptr %19244, align 4, !tbaa !5
  %19246 = call ptr @strerror(i32 noundef %19245) #11
  %19247 = call ptr @__errno_location() #12
  %19248 = load i32, ptr %19247, align 4, !tbaa !5
  %19249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19236, ptr noundef @.str.5, i32 noundef %19237, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 766, ptr noundef %19240, ptr noundef %19243, ptr noundef %19246, i32 noundef %19248) #11
  br label %19250

19250:                                            ; preds = %19233, %19216
  call void @llvm.lifetime.end.p0(i64 4, ptr %398) #11
  br label %19251

19251:                                            ; preds = %19250
  br label %19252

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

19253:                                            ; No predecessors!
  br label %19254

19254:                                            ; preds = %19253
  br label %19255

19255:                                            ; preds = %19254, %19196
  br label %19256

19256:                                            ; preds = %19255
  br label %19257

19257:                                            ; preds = %19256
  br label %19258

19258:                                            ; preds = %19257
  %19259 = load i32, ptr @test_count, align 4, !tbaa !5
  %19260 = add nsw i32 %19259, 1
  store i32 %19260, ptr @test_count, align 4, !tbaa !5
  %19261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19262 = load i32, ptr %19261, align 4, !tbaa !5
  %19263 = call ptr @s2n_strerror_debug(i32 noundef %19262, ptr noundef @.str.4)
  %19264 = icmp eq ptr %19263, null
  br i1 %19264, label %19265, label %19318

19265:                                            ; preds = %19258
  br label %19266

19266:                                            ; preds = %19265
  br label %19267

19267:                                            ; preds = %19266
  call void @llvm.lifetime.start.p0(i64 4, ptr %399) #11
  %19268 = call ptr @__errno_location() #12
  %19269 = load i32, ptr %19268, align 4, !tbaa !5
  store i32 %19269, ptr %399, align 4, !tbaa !5
  %19270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19271 = call i32 @s2n_print_stacktrace(ptr noundef %19270)
  %19272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19273 = trunc i8 %19272 to i1
  br i1 %19273, label %19274, label %19296

19274:                                            ; preds = %19267
  %19275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19276 = call i32 @fileno(ptr noundef %19275) #11
  %19277 = call i32 @isatty(i32 noundef %19276) #11
  %19278 = icmp ne i32 %19277, 0
  br i1 %19278, label %19279, label %19296

19279:                                            ; preds = %19274
  %19280 = load i32, ptr %399, align 4, !tbaa !5
  %19281 = call ptr @__errno_location() #12
  store i32 %19280, ptr %19281, align 4, !tbaa !5
  %19282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19283 = load i32, ptr @test_count, align 4, !tbaa !5
  %19284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19285 = load i32, ptr %19284, align 4, !tbaa !5
  %19286 = call ptr @s2n_strerror(i32 noundef %19285, ptr noundef @.str.4)
  %19287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19288 = load i32, ptr %19287, align 4, !tbaa !5
  %19289 = call ptr @s2n_strerror_debug(i32 noundef %19288, ptr noundef @.str.4)
  %19290 = call ptr @__errno_location() #12
  %19291 = load i32, ptr %19290, align 4, !tbaa !5
  %19292 = call ptr @strerror(i32 noundef %19291) #11
  %19293 = call ptr @__errno_location() #12
  %19294 = load i32, ptr %19293, align 4, !tbaa !5
  %19295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19282, ptr noundef @.str.2, i32 noundef %19283, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 766, ptr noundef %19286, ptr noundef %19289, ptr noundef %19292, i32 noundef %19294) #11
  br label %19313

19296:                                            ; preds = %19274, %19267
  %19297 = load i32, ptr %399, align 4, !tbaa !5
  %19298 = call ptr @__errno_location() #12
  store i32 %19297, ptr %19298, align 4, !tbaa !5
  %19299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19300 = load i32, ptr @test_count, align 4, !tbaa !5
  %19301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19302 = load i32, ptr %19301, align 4, !tbaa !5
  %19303 = call ptr @s2n_strerror(i32 noundef %19302, ptr noundef @.str.4)
  %19304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19305 = load i32, ptr %19304, align 4, !tbaa !5
  %19306 = call ptr @s2n_strerror_debug(i32 noundef %19305, ptr noundef @.str.4)
  %19307 = call ptr @__errno_location() #12
  %19308 = load i32, ptr %19307, align 4, !tbaa !5
  %19309 = call ptr @strerror(i32 noundef %19308) #11
  %19310 = call ptr @__errno_location() #12
  %19311 = load i32, ptr %19310, align 4, !tbaa !5
  %19312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19299, ptr noundef @.str.5, i32 noundef %19300, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 766, ptr noundef %19303, ptr noundef %19306, ptr noundef %19309, i32 noundef %19311) #11
  br label %19313

19313:                                            ; preds = %19296, %19279
  call void @llvm.lifetime.end.p0(i64 4, ptr %399) #11
  br label %19314

19314:                                            ; preds = %19313
  br label %19315

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

19316:                                            ; No predecessors!
  br label %19317

19317:                                            ; preds = %19316
  br label %19318

19318:                                            ; preds = %19317, %19258
  br label %19319

19319:                                            ; preds = %19318
  br label %19320

19320:                                            ; preds = %19319
  br label %19321

19321:                                            ; preds = %19320
  br label %19322

19322:                                            ; preds = %19321
  br label %19323

19323:                                            ; preds = %19322
  %19324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %19324, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %19325 = call ptr @__errno_location() #12
  store i32 0, ptr %19325, align 4, !tbaa !5
  br label %19326

19326:                                            ; preds = %19323
  br label %19327

19327:                                            ; preds = %19326
  br label %19328

19328:                                            ; preds = %19327
  br label %19329

19329:                                            ; preds = %19328
  %19330 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %19331 = getelementptr inbounds %struct.s2n_blob, ptr %19330, i32 0, i32 0
  %19332 = load ptr, ptr %19331, align 8, !tbaa !100
  %19333 = load i64, ptr %396, align 8, !tbaa !49
  %19334 = getelementptr inbounds i8, ptr %19332, i64 %19333
  %19335 = load i8, ptr %19334, align 1, !tbaa !108
  %19336 = zext i8 %19335 to i32
  %19337 = xor i32 %19336, -1
  %19338 = trunc i32 %19337 to i8
  %19339 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %19340 = getelementptr inbounds %struct.s2n_blob, ptr %19339, i32 0, i32 0
  %19341 = load ptr, ptr %19340, align 8, !tbaa !100
  %19342 = load i64, ptr %396, align 8, !tbaa !49
  %19343 = getelementptr inbounds i8, ptr %19341, i64 %19342
  store i8 %19338, ptr %19343, align 1, !tbaa !108
  br label %19344

19344:                                            ; preds = %19329
  %19345 = load i32, ptr @test_count, align 4, !tbaa !5
  %19346 = add nsw i32 %19345, 1
  store i32 %19346, ptr @test_count, align 4, !tbaa !5
  %19347 = call i32 @s2n_stuffer_reread(ptr noundef %375)
  %19348 = icmp eq i32 %19347, -1
  br i1 %19348, label %19349, label %19402

19349:                                            ; preds = %19344
  br label %19350

19350:                                            ; preds = %19349
  br label %19351

19351:                                            ; preds = %19350
  call void @llvm.lifetime.start.p0(i64 4, ptr %400) #11
  %19352 = call ptr @__errno_location() #12
  %19353 = load i32, ptr %19352, align 4, !tbaa !5
  store i32 %19353, ptr %400, align 4, !tbaa !5
  %19354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19355 = call i32 @s2n_print_stacktrace(ptr noundef %19354)
  %19356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19357 = trunc i8 %19356 to i1
  br i1 %19357, label %19358, label %19380

19358:                                            ; preds = %19351
  %19359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19360 = call i32 @fileno(ptr noundef %19359) #11
  %19361 = call i32 @isatty(i32 noundef %19360) #11
  %19362 = icmp ne i32 %19361, 0
  br i1 %19362, label %19363, label %19380

19363:                                            ; preds = %19358
  %19364 = load i32, ptr %400, align 4, !tbaa !5
  %19365 = call ptr @__errno_location() #12
  store i32 %19364, ptr %19365, align 4, !tbaa !5
  %19366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19367 = load i32, ptr @test_count, align 4, !tbaa !5
  %19368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19369 = load i32, ptr %19368, align 4, !tbaa !5
  %19370 = call ptr @s2n_strerror(i32 noundef %19369, ptr noundef @.str.4)
  %19371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19372 = load i32, ptr %19371, align 4, !tbaa !5
  %19373 = call ptr @s2n_strerror_debug(i32 noundef %19372, ptr noundef @.str.4)
  %19374 = call ptr @__errno_location() #12
  %19375 = load i32, ptr %19374, align 4, !tbaa !5
  %19376 = call ptr @strerror(i32 noundef %19375) #11
  %19377 = call ptr @__errno_location() #12
  %19378 = load i32, ptr %19377, align 4, !tbaa !5
  %19379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19366, ptr noundef @.str.2, i32 noundef %19367, ptr noundef @.str.169, ptr noundef @.str.1, i32 noundef 769, ptr noundef %19370, ptr noundef %19373, ptr noundef %19376, i32 noundef %19378) #11
  br label %19397

19380:                                            ; preds = %19358, %19351
  %19381 = load i32, ptr %400, align 4, !tbaa !5
  %19382 = call ptr @__errno_location() #12
  store i32 %19381, ptr %19382, align 4, !tbaa !5
  %19383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19384 = load i32, ptr @test_count, align 4, !tbaa !5
  %19385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19386 = load i32, ptr %19385, align 4, !tbaa !5
  %19387 = call ptr @s2n_strerror(i32 noundef %19386, ptr noundef @.str.4)
  %19388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19389 = load i32, ptr %19388, align 4, !tbaa !5
  %19390 = call ptr @s2n_strerror_debug(i32 noundef %19389, ptr noundef @.str.4)
  %19391 = call ptr @__errno_location() #12
  %19392 = load i32, ptr %19391, align 4, !tbaa !5
  %19393 = call ptr @strerror(i32 noundef %19392) #11
  %19394 = call ptr @__errno_location() #12
  %19395 = load i32, ptr %19394, align 4, !tbaa !5
  %19396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19383, ptr noundef @.str.5, i32 noundef %19384, ptr noundef @.str.169, ptr noundef @.str.1, i32 noundef 769, ptr noundef %19387, ptr noundef %19390, ptr noundef %19393, i32 noundef %19395) #11
  br label %19397

19397:                                            ; preds = %19380, %19363
  call void @llvm.lifetime.end.p0(i64 4, ptr %400) #11
  br label %19398

19398:                                            ; preds = %19397
  br label %19399

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

19400:                                            ; No predecessors!
  br label %19401

19401:                                            ; preds = %19400
  br label %19402

19402:                                            ; preds = %19401, %19344
  br label %19403

19403:                                            ; preds = %19402
  br label %19404

19404:                                            ; preds = %19403
  call void @llvm.lifetime.start.p0(i64 8, ptr %401) #11
  %19405 = load i64, ptr %396, align 8, !tbaa !49
  %19406 = add i64 %19405, 2
  store i64 %19406, ptr %401, align 8, !tbaa !49
  %19407 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %19408 = getelementptr inbounds %struct.s2n_blob, ptr %19407, i32 0, i32 0
  %19409 = load ptr, ptr %19408, align 8, !tbaa !100
  %19410 = load i64, ptr %401, align 8, !tbaa !49
  %19411 = getelementptr inbounds i8, ptr %19409, i64 %19410
  %19412 = load i8, ptr %19411, align 1, !tbaa !108
  %19413 = zext i8 %19412 to i32
  %19414 = xor i32 %19413, -1
  %19415 = trunc i32 %19414 to i8
  %19416 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 0
  %19417 = getelementptr inbounds %struct.s2n_blob, ptr %19416, i32 0, i32 0
  %19418 = load ptr, ptr %19417, align 8, !tbaa !100
  %19419 = load i64, ptr %401, align 8, !tbaa !49
  %19420 = getelementptr inbounds i8, ptr %19418, i64 %19419
  store i8 %19415, ptr %19420, align 1, !tbaa !108
  br label %19421

19421:                                            ; preds = %19404
  %19422 = load i32, ptr @test_count, align 4, !tbaa !5
  %19423 = add nsw i32 %19422, 1
  store i32 %19423, ptr @test_count, align 4, !tbaa !5
  %19424 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 4), align 8, !tbaa !64
  %19425 = load ptr, ptr %357, align 8, !tbaa !9
  %19426 = call i32 %19424(ptr noundef %19425, ptr noundef %375)
  %19427 = icmp eq i32 %19426, -1
  br i1 %19427, label %19428, label %19481

19428:                                            ; preds = %19421
  br label %19429

19429:                                            ; preds = %19428
  br label %19430

19430:                                            ; preds = %19429
  call void @llvm.lifetime.start.p0(i64 4, ptr %402) #11
  %19431 = call ptr @__errno_location() #12
  %19432 = load i32, ptr %19431, align 4, !tbaa !5
  store i32 %19432, ptr %402, align 4, !tbaa !5
  %19433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19434 = call i32 @s2n_print_stacktrace(ptr noundef %19433)
  %19435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19436 = trunc i8 %19435 to i1
  br i1 %19436, label %19437, label %19459

19437:                                            ; preds = %19430
  %19438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19439 = call i32 @fileno(ptr noundef %19438) #11
  %19440 = call i32 @isatty(i32 noundef %19439) #11
  %19441 = icmp ne i32 %19440, 0
  br i1 %19441, label %19442, label %19459

19442:                                            ; preds = %19437
  %19443 = load i32, ptr %402, align 4, !tbaa !5
  %19444 = call ptr @__errno_location() #12
  store i32 %19443, ptr %19444, align 4, !tbaa !5
  %19445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19446 = load i32, ptr @test_count, align 4, !tbaa !5
  %19447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19448 = load i32, ptr %19447, align 4, !tbaa !5
  %19449 = call ptr @s2n_strerror(i32 noundef %19448, ptr noundef @.str.4)
  %19450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19451 = load i32, ptr %19450, align 4, !tbaa !5
  %19452 = call ptr @s2n_strerror_debug(i32 noundef %19451, ptr noundef @.str.4)
  %19453 = call ptr @__errno_location() #12
  %19454 = load i32, ptr %19453, align 4, !tbaa !5
  %19455 = call ptr @strerror(i32 noundef %19454) #11
  %19456 = call ptr @__errno_location() #12
  %19457 = load i32, ptr %19456, align 4, !tbaa !5
  %19458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19445, ptr noundef @.str.2, i32 noundef %19446, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 778, ptr noundef %19449, ptr noundef %19452, ptr noundef %19455, i32 noundef %19457) #11
  br label %19476

19459:                                            ; preds = %19437, %19430
  %19460 = load i32, ptr %402, align 4, !tbaa !5
  %19461 = call ptr @__errno_location() #12
  store i32 %19460, ptr %19461, align 4, !tbaa !5
  %19462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19463 = load i32, ptr @test_count, align 4, !tbaa !5
  %19464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19465 = load i32, ptr %19464, align 4, !tbaa !5
  %19466 = call ptr @s2n_strerror(i32 noundef %19465, ptr noundef @.str.4)
  %19467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19468 = load i32, ptr %19467, align 4, !tbaa !5
  %19469 = call ptr @s2n_strerror_debug(i32 noundef %19468, ptr noundef @.str.4)
  %19470 = call ptr @__errno_location() #12
  %19471 = load i32, ptr %19470, align 4, !tbaa !5
  %19472 = call ptr @strerror(i32 noundef %19471) #11
  %19473 = call ptr @__errno_location() #12
  %19474 = load i32, ptr %19473, align 4, !tbaa !5
  %19475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19462, ptr noundef @.str.5, i32 noundef %19463, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 778, ptr noundef %19466, ptr noundef %19469, ptr noundef %19472, i32 noundef %19474) #11
  br label %19476

19476:                                            ; preds = %19459, %19442
  call void @llvm.lifetime.end.p0(i64 4, ptr %402) #11
  br label %19477

19477:                                            ; preds = %19476
  br label %19478

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

19479:                                            ; No predecessors!
  br label %19480

19480:                                            ; preds = %19479
  br label %19481

19481:                                            ; preds = %19480, %19421
  br label %19482

19482:                                            ; preds = %19481
  br label %19483

19483:                                            ; preds = %19482
  br label %19484

19484:                                            ; preds = %19483
  %19485 = load i32, ptr @test_count, align 4, !tbaa !5
  %19486 = add nsw i32 %19485, 1
  store i32 %19486, ptr @test_count, align 4, !tbaa !5
  %19487 = load ptr, ptr %357, align 8, !tbaa !9
  %19488 = getelementptr inbounds %struct.s2n_connection, ptr %19487, i32 0, i32 31
  %19489 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %19488, i32 0, i32 5
  %19490 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %19489, i32 0, i32 1
  %19491 = getelementptr inbounds %struct.s2n_kem_params, ptr %19490, i32 0, i32 3
  %19492 = getelementptr inbounds %struct.s2n_blob, ptr %19491, i32 0, i32 0
  %19493 = load ptr, ptr %19492, align 8, !tbaa !96
  %19494 = getelementptr inbounds %struct.s2n_stuffer, ptr %374, i32 0, i32 0
  %19495 = getelementptr inbounds %struct.s2n_blob, ptr %19494, i32 0, i32 0
  %19496 = load ptr, ptr %19495, align 8, !tbaa !100
  %19497 = load ptr, ptr %356, align 8, !tbaa !9
  %19498 = getelementptr inbounds %struct.s2n_kem_group, ptr %19497, i32 0, i32 3
  %19499 = load ptr, ptr %19498, align 8, !tbaa !91
  %19500 = getelementptr inbounds %struct.s2n_kem, ptr %19499, i32 0, i32 5
  %19501 = load i16, ptr %19500, align 2, !tbaa !98
  %19502 = zext i16 %19501 to i64
  %19503 = call i32 @memcmp(ptr noundef %19493, ptr noundef %19496, i64 noundef %19502) #14
  %19504 = icmp eq i32 %19503, 0
  br i1 %19504, label %19505, label %19558

19505:                                            ; preds = %19484
  br label %19506

19506:                                            ; preds = %19505
  br label %19507

19507:                                            ; preds = %19506
  call void @llvm.lifetime.start.p0(i64 4, ptr %403) #11
  %19508 = call ptr @__errno_location() #12
  %19509 = load i32, ptr %19508, align 4, !tbaa !5
  store i32 %19509, ptr %403, align 4, !tbaa !5
  %19510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19511 = call i32 @s2n_print_stacktrace(ptr noundef %19510)
  %19512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19513 = trunc i8 %19512 to i1
  br i1 %19513, label %19514, label %19536

19514:                                            ; preds = %19507
  %19515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19516 = call i32 @fileno(ptr noundef %19515) #11
  %19517 = call i32 @isatty(i32 noundef %19516) #11
  %19518 = icmp ne i32 %19517, 0
  br i1 %19518, label %19519, label %19536

19519:                                            ; preds = %19514
  %19520 = load i32, ptr %403, align 4, !tbaa !5
  %19521 = call ptr @__errno_location() #12
  store i32 %19520, ptr %19521, align 4, !tbaa !5
  %19522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19523 = load i32, ptr @test_count, align 4, !tbaa !5
  %19524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19525 = load i32, ptr %19524, align 4, !tbaa !5
  %19526 = call ptr @s2n_strerror(i32 noundef %19525, ptr noundef @.str.4)
  %19527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19528 = load i32, ptr %19527, align 4, !tbaa !5
  %19529 = call ptr @s2n_strerror_debug(i32 noundef %19528, ptr noundef @.str.4)
  %19530 = call ptr @__errno_location() #12
  %19531 = load i32, ptr %19530, align 4, !tbaa !5
  %19532 = call ptr @strerror(i32 noundef %19531) #11
  %19533 = call ptr @__errno_location() #12
  %19534 = load i32, ptr %19533, align 4, !tbaa !5
  %19535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19522, ptr noundef @.str.2, i32 noundef %19523, ptr noundef @.str.174, ptr noundef @.str.1, i32 noundef 780, ptr noundef %19526, ptr noundef %19529, ptr noundef %19532, i32 noundef %19534) #11
  br label %19553

19536:                                            ; preds = %19514, %19507
  %19537 = load i32, ptr %403, align 4, !tbaa !5
  %19538 = call ptr @__errno_location() #12
  store i32 %19537, ptr %19538, align 4, !tbaa !5
  %19539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19540 = load i32, ptr @test_count, align 4, !tbaa !5
  %19541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19542 = load i32, ptr %19541, align 4, !tbaa !5
  %19543 = call ptr @s2n_strerror(i32 noundef %19542, ptr noundef @.str.4)
  %19544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19545 = load i32, ptr %19544, align 4, !tbaa !5
  %19546 = call ptr @s2n_strerror_debug(i32 noundef %19545, ptr noundef @.str.4)
  %19547 = call ptr @__errno_location() #12
  %19548 = load i32, ptr %19547, align 4, !tbaa !5
  %19549 = call ptr @strerror(i32 noundef %19548) #11
  %19550 = call ptr @__errno_location() #12
  %19551 = load i32, ptr %19550, align 4, !tbaa !5
  %19552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19539, ptr noundef @.str.5, i32 noundef %19540, ptr noundef @.str.174, ptr noundef @.str.1, i32 noundef 780, ptr noundef %19543, ptr noundef %19546, ptr noundef %19549, i32 noundef %19551) #11
  br label %19553

19553:                                            ; preds = %19536, %19519
  call void @llvm.lifetime.end.p0(i64 4, ptr %403) #11
  br label %19554

19554:                                            ; preds = %19553
  br label %19555

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

19556:                                            ; No predecessors!
  br label %19557

19557:                                            ; preds = %19556
  br label %19558

19558:                                            ; preds = %19557, %19484
  br label %19559

19559:                                            ; preds = %19558
  br label %19560

19560:                                            ; preds = %19559
  br label %19561

19561:                                            ; preds = %19560
  %19562 = load i32, ptr @test_count, align 4, !tbaa !5
  %19563 = add nsw i32 %19562, 1
  store i32 %19563, ptr @test_count, align 4, !tbaa !5
  %19564 = load ptr, ptr %357, align 8, !tbaa !9
  %19565 = call i32 @s2n_connection_free(ptr noundef %19564)
  %19566 = icmp eq i32 %19565, -1
  br i1 %19566, label %19567, label %19620

19567:                                            ; preds = %19561
  br label %19568

19568:                                            ; preds = %19567
  br label %19569

19569:                                            ; preds = %19568
  call void @llvm.lifetime.start.p0(i64 4, ptr %404) #11
  %19570 = call ptr @__errno_location() #12
  %19571 = load i32, ptr %19570, align 4, !tbaa !5
  store i32 %19571, ptr %404, align 4, !tbaa !5
  %19572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19573 = call i32 @s2n_print_stacktrace(ptr noundef %19572)
  %19574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19575 = trunc i8 %19574 to i1
  br i1 %19575, label %19576, label %19598

19576:                                            ; preds = %19569
  %19577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19578 = call i32 @fileno(ptr noundef %19577) #11
  %19579 = call i32 @isatty(i32 noundef %19578) #11
  %19580 = icmp ne i32 %19579, 0
  br i1 %19580, label %19581, label %19598

19581:                                            ; preds = %19576
  %19582 = load i32, ptr %404, align 4, !tbaa !5
  %19583 = call ptr @__errno_location() #12
  store i32 %19582, ptr %19583, align 4, !tbaa !5
  %19584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19585 = load i32, ptr @test_count, align 4, !tbaa !5
  %19586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19587 = load i32, ptr %19586, align 4, !tbaa !5
  %19588 = call ptr @s2n_strerror(i32 noundef %19587, ptr noundef @.str.4)
  %19589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19590 = load i32, ptr %19589, align 4, !tbaa !5
  %19591 = call ptr @s2n_strerror_debug(i32 noundef %19590, ptr noundef @.str.4)
  %19592 = call ptr @__errno_location() #12
  %19593 = load i32, ptr %19592, align 4, !tbaa !5
  %19594 = call ptr @strerror(i32 noundef %19593) #11
  %19595 = call ptr @__errno_location() #12
  %19596 = load i32, ptr %19595, align 4, !tbaa !5
  %19597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19584, ptr noundef @.str.2, i32 noundef %19585, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 782, ptr noundef %19588, ptr noundef %19591, ptr noundef %19594, i32 noundef %19596) #11
  br label %19615

19598:                                            ; preds = %19576, %19569
  %19599 = load i32, ptr %404, align 4, !tbaa !5
  %19600 = call ptr @__errno_location() #12
  store i32 %19599, ptr %19600, align 4, !tbaa !5
  %19601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19602 = load i32, ptr @test_count, align 4, !tbaa !5
  %19603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19604 = load i32, ptr %19603, align 4, !tbaa !5
  %19605 = call ptr @s2n_strerror(i32 noundef %19604, ptr noundef @.str.4)
  %19606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19607 = load i32, ptr %19606, align 4, !tbaa !5
  %19608 = call ptr @s2n_strerror_debug(i32 noundef %19607, ptr noundef @.str.4)
  %19609 = call ptr @__errno_location() #12
  %19610 = load i32, ptr %19609, align 4, !tbaa !5
  %19611 = call ptr @strerror(i32 noundef %19610) #11
  %19612 = call ptr @__errno_location() #12
  %19613 = load i32, ptr %19612, align 4, !tbaa !5
  %19614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19601, ptr noundef @.str.5, i32 noundef %19602, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 782, ptr noundef %19605, ptr noundef %19608, ptr noundef %19611, i32 noundef %19613) #11
  br label %19615

19615:                                            ; preds = %19598, %19581
  call void @llvm.lifetime.end.p0(i64 4, ptr %404) #11
  br label %19616

19616:                                            ; preds = %19615
  br label %19617

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

19618:                                            ; No predecessors!
  br label %19619

19619:                                            ; preds = %19618
  br label %19620

19620:                                            ; preds = %19619, %19561
  br label %19621

19621:                                            ; preds = %19620
  br label %19622

19622:                                            ; preds = %19621
  call void @llvm.lifetime.end.p0(i64 8, ptr %401) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %396) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %387) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %385) #11
  call void @llvm.lifetime.end.p0(i64 10, ptr %382) #11
  %19623 = call i32 @s2n_stuffer_free(ptr noundef %375)
  call void @llvm.lifetime.end.p0(i64 40, ptr %375) #11
  %19624 = call i32 @s2n_stuffer_free(ptr noundef %374)
  call void @llvm.lifetime.end.p0(i64 40, ptr %374) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %373) #11
  %19625 = call i32 @s2n_stuffer_free(ptr noundef %367)
  call void @llvm.lifetime.end.p0(i64 40, ptr %367) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %366) #11
  %19626 = call i32 @s2n_stuffer_free(ptr noundef %360)
  call void @llvm.lifetime.end.p0(i64 40, ptr %360) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %359) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %357) #11
  store i32 0, ptr %300, align 4
  br label %19627

19627:                                            ; preds = %19622, %17399
  call void @llvm.lifetime.end.p0(i64 8, ptr %356) #11
  %19628 = load i32, ptr %300, align 4
  switch i32 %19628, label %26252 [
    i32 0, label %19629
    i32 1638, label %19630
  ]

19629:                                            ; preds = %19627
  br label %19630

19630:                                            ; preds = %19629, %19627
  %19631 = load i64, ptr %355, align 8, !tbaa !49
  %19632 = add i64 %19631, 1
  store i64 %19632, ptr %355, align 8, !tbaa !49
  br label %17389, !llvm.loop !109

19633:                                            ; preds = %17392
  br label %19634

19634:                                            ; preds = %19633, %14471
  br label %19635

19635:                                            ; preds = %19634
  %19636 = load i32, ptr @test_count, align 4, !tbaa !5
  %19637 = add nsw i32 %19636, 1
  store i32 %19637, ptr @test_count, align 4, !tbaa !5
  %19638 = call i32 (...) @s2n_disable_tls13_in_test()
  %19639 = icmp eq i32 %19638, -1
  br i1 %19639, label %19640, label %19693

19640:                                            ; preds = %19635
  br label %19641

19641:                                            ; preds = %19640
  br label %19642

19642:                                            ; preds = %19641
  call void @llvm.lifetime.start.p0(i64 4, ptr %405) #11
  %19643 = call ptr @__errno_location() #12
  %19644 = load i32, ptr %19643, align 4, !tbaa !5
  store i32 %19644, ptr %405, align 4, !tbaa !5
  %19645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19646 = call i32 @s2n_print_stacktrace(ptr noundef %19645)
  %19647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19648 = trunc i8 %19647 to i1
  br i1 %19648, label %19649, label %19671

19649:                                            ; preds = %19642
  %19650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19651 = call i32 @fileno(ptr noundef %19650) #11
  %19652 = call i32 @isatty(i32 noundef %19651) #11
  %19653 = icmp ne i32 %19652, 0
  br i1 %19653, label %19654, label %19671

19654:                                            ; preds = %19649
  %19655 = load i32, ptr %405, align 4, !tbaa !5
  %19656 = call ptr @__errno_location() #12
  store i32 %19655, ptr %19656, align 4, !tbaa !5
  %19657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19658 = load i32, ptr @test_count, align 4, !tbaa !5
  %19659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19660 = load i32, ptr %19659, align 4, !tbaa !5
  %19661 = call ptr @s2n_strerror(i32 noundef %19660, ptr noundef @.str.4)
  %19662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19663 = load i32, ptr %19662, align 4, !tbaa !5
  %19664 = call ptr @s2n_strerror_debug(i32 noundef %19663, ptr noundef @.str.4)
  %19665 = call ptr @__errno_location() #12
  %19666 = load i32, ptr %19665, align 4, !tbaa !5
  %19667 = call ptr @strerror(i32 noundef %19666) #11
  %19668 = call ptr @__errno_location() #12
  %19669 = load i32, ptr %19668, align 4, !tbaa !5
  %19670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19657, ptr noundef @.str.2, i32 noundef %19658, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 786, ptr noundef %19661, ptr noundef %19664, ptr noundef %19667, i32 noundef %19669) #11
  br label %19688

19671:                                            ; preds = %19649, %19642
  %19672 = load i32, ptr %405, align 4, !tbaa !5
  %19673 = call ptr @__errno_location() #12
  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() #12
  %19683 = load i32, ptr %19682, align 4, !tbaa !5
  %19684 = call ptr @strerror(i32 noundef %19683) #11
  %19685 = call ptr @__errno_location() #12
  %19686 = load i32, ptr %19685, align 4, !tbaa !5
  %19687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19674, ptr noundef @.str.5, i32 noundef %19675, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 786, ptr noundef %19678, ptr noundef %19681, ptr noundef %19684, i32 noundef %19686) #11
  br label %19688

19688:                                            ; preds = %19671, %19654
  call void @llvm.lifetime.end.p0(i64 4, ptr %405) #11
  br label %19689

19689:                                            ; preds = %19688
  br label %19690

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

19691:                                            ; No predecessors!
  br label %19692

19692:                                            ; preds = %19691
  br label %19693

19693:                                            ; preds = %19692, %19635
  br label %19694

19694:                                            ; preds = %19693
  br label %19695

19695:                                            ; preds = %19694
  call void @llvm.lifetime.start.p0(i64 8, ptr %406) #11
  store ptr null, ptr %406, align 8, !tbaa !9
  br label %19696

19696:                                            ; preds = %19695
  br label %19697

19697:                                            ; preds = %19696
  %19698 = load i32, ptr @test_count, align 4, !tbaa !5
  %19699 = add nsw i32 %19698, 1
  store i32 %19699, ptr @test_count, align 4, !tbaa !5
  %19700 = load ptr, ptr %406, align 8, !tbaa !9
  %19701 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef %19700)
  %19702 = icmp eq i32 %19701, -1
  br i1 %19702, label %19756, label %19703

19703:                                            ; preds = %19697
  br label %19704

19704:                                            ; preds = %19703
  br label %19705

19705:                                            ; preds = %19704
  call void @llvm.lifetime.start.p0(i64 4, ptr %407) #11
  %19706 = call ptr @__errno_location() #12
  %19707 = load i32, ptr %19706, align 4, !tbaa !5
  store i32 %19707, ptr %407, align 4, !tbaa !5
  %19708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19709 = call i32 @s2n_print_stacktrace(ptr noundef %19708)
  %19710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19711 = trunc i8 %19710 to i1
  br i1 %19711, label %19712, label %19734

19712:                                            ; preds = %19705
  %19713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19714 = call i32 @fileno(ptr noundef %19713) #11
  %19715 = call i32 @isatty(i32 noundef %19714) #11
  %19716 = icmp ne i32 %19715, 0
  br i1 %19716, label %19717, label %19734

19717:                                            ; preds = %19712
  %19718 = load i32, ptr %407, align 4, !tbaa !5
  %19719 = call ptr @__errno_location() #12
  store i32 %19718, ptr %19719, align 4, !tbaa !5
  %19720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19721 = load i32, ptr @test_count, align 4, !tbaa !5
  %19722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19723 = load i32, ptr %19722, align 4, !tbaa !5
  %19724 = call ptr @s2n_strerror(i32 noundef %19723, ptr noundef @.str.4)
  %19725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19726 = load i32, ptr %19725, align 4, !tbaa !5
  %19727 = call ptr @s2n_strerror_debug(i32 noundef %19726, ptr noundef @.str.4)
  %19728 = call ptr @__errno_location() #12
  %19729 = load i32, ptr %19728, align 4, !tbaa !5
  %19730 = call ptr @strerror(i32 noundef %19729) #11
  %19731 = call ptr @__errno_location() #12
  %19732 = load i32, ptr %19731, align 4, !tbaa !5
  %19733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19720, ptr noundef @.str.2, i32 noundef %19721, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 792, ptr noundef %19724, ptr noundef %19727, ptr noundef %19730, i32 noundef %19732) #11
  br label %19751

19734:                                            ; preds = %19712, %19705
  %19735 = load i32, ptr %407, align 4, !tbaa !5
  %19736 = call ptr @__errno_location() #12
  store i32 %19735, ptr %19736, align 4, !tbaa !5
  %19737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19738 = load i32, ptr @test_count, align 4, !tbaa !5
  %19739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19740 = load i32, ptr %19739, align 4, !tbaa !5
  %19741 = call ptr @s2n_strerror(i32 noundef %19740, ptr noundef @.str.4)
  %19742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19743 = load i32, ptr %19742, align 4, !tbaa !5
  %19744 = call ptr @s2n_strerror_debug(i32 noundef %19743, ptr noundef @.str.4)
  %19745 = call ptr @__errno_location() #12
  %19746 = load i32, ptr %19745, align 4, !tbaa !5
  %19747 = call ptr @strerror(i32 noundef %19746) #11
  %19748 = call ptr @__errno_location() #12
  %19749 = load i32, ptr %19748, align 4, !tbaa !5
  %19750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19737, ptr noundef @.str.5, i32 noundef %19738, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 792, ptr noundef %19741, ptr noundef %19744, ptr noundef %19747, i32 noundef %19749) #11
  br label %19751

19751:                                            ; preds = %19734, %19717
  call void @llvm.lifetime.end.p0(i64 4, ptr %407) #11
  br label %19752

19752:                                            ; preds = %19751
  br label %19753

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

19754:                                            ; No predecessors!
  br label %19755

19755:                                            ; preds = %19754
  br label %19756

19756:                                            ; preds = %19755, %19697
  br label %19757

19757:                                            ; preds = %19756
  br label %19758

19758:                                            ; preds = %19757
  br label %19759

19759:                                            ; preds = %19758
  %19760 = load i32, ptr @test_count, align 4, !tbaa !5
  %19761 = add nsw i32 %19760, 1
  store i32 %19761, ptr @test_count, align 4, !tbaa !5
  %19762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19763 = load i32, ptr %19762, align 4, !tbaa !5
  %19764 = icmp eq i32 %19763, 0
  br i1 %19764, label %19765, label %19818

19765:                                            ; preds = %19759
  br label %19766

19766:                                            ; preds = %19765
  br label %19767

19767:                                            ; preds = %19766
  call void @llvm.lifetime.start.p0(i64 4, ptr %408) #11
  %19768 = call ptr @__errno_location() #12
  %19769 = load i32, ptr %19768, align 4, !tbaa !5
  store i32 %19769, ptr %408, align 4, !tbaa !5
  %19770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19771 = call i32 @s2n_print_stacktrace(ptr noundef %19770)
  %19772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19773 = trunc i8 %19772 to i1
  br i1 %19773, label %19774, label %19796

19774:                                            ; preds = %19767
  %19775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19776 = call i32 @fileno(ptr noundef %19775) #11
  %19777 = call i32 @isatty(i32 noundef %19776) #11
  %19778 = icmp ne i32 %19777, 0
  br i1 %19778, label %19779, label %19796

19779:                                            ; preds = %19774
  %19780 = load i32, ptr %408, align 4, !tbaa !5
  %19781 = call ptr @__errno_location() #12
  store i32 %19780, ptr %19781, align 4, !tbaa !5
  %19782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19783 = load i32, ptr @test_count, align 4, !tbaa !5
  %19784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19785 = load i32, ptr %19784, align 4, !tbaa !5
  %19786 = call ptr @s2n_strerror(i32 noundef %19785, ptr noundef @.str.4)
  %19787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19788 = load i32, ptr %19787, align 4, !tbaa !5
  %19789 = call ptr @s2n_strerror_debug(i32 noundef %19788, ptr noundef @.str.4)
  %19790 = call ptr @__errno_location() #12
  %19791 = load i32, ptr %19790, align 4, !tbaa !5
  %19792 = call ptr @strerror(i32 noundef %19791) #11
  %19793 = call ptr @__errno_location() #12
  %19794 = load i32, ptr %19793, align 4, !tbaa !5
  %19795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19782, ptr noundef @.str.2, i32 noundef %19783, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 792, ptr noundef %19786, ptr noundef %19789, ptr noundef %19792, i32 noundef %19794) #11
  br label %19813

19796:                                            ; preds = %19774, %19767
  %19797 = load i32, ptr %408, align 4, !tbaa !5
  %19798 = call ptr @__errno_location() #12
  store i32 %19797, ptr %19798, align 4, !tbaa !5
  %19799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19800 = load i32, ptr @test_count, align 4, !tbaa !5
  %19801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19802 = load i32, ptr %19801, align 4, !tbaa !5
  %19803 = call ptr @s2n_strerror(i32 noundef %19802, ptr noundef @.str.4)
  %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_debug(i32 noundef %19805, ptr noundef @.str.4)
  %19807 = call ptr @__errno_location() #12
  %19808 = load i32, ptr %19807, align 4, !tbaa !5
  %19809 = call ptr @strerror(i32 noundef %19808) #11
  %19810 = call ptr @__errno_location() #12
  %19811 = load i32, ptr %19810, align 4, !tbaa !5
  %19812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19799, ptr noundef @.str.5, i32 noundef %19800, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 792, ptr noundef %19803, ptr noundef %19806, ptr noundef %19809, i32 noundef %19811) #11
  br label %19813

19813:                                            ; preds = %19796, %19779
  call void @llvm.lifetime.end.p0(i64 4, ptr %408) #11
  br label %19814

19814:                                            ; preds = %19813
  br label %19815

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

19816:                                            ; No predecessors!
  br label %19817

19817:                                            ; preds = %19816
  br label %19818

19818:                                            ; preds = %19817, %19759
  br label %19819

19819:                                            ; preds = %19818
  br label %19820

19820:                                            ; preds = %19819
  br label %19821

19821:                                            ; preds = %19820
  %19822 = load i32, ptr @test_count, align 4, !tbaa !5
  %19823 = add nsw i32 %19822, 1
  store i32 %19823, ptr @test_count, align 4, !tbaa !5
  %19824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19825 = load i32, ptr %19824, align 4, !tbaa !5
  %19826 = call ptr @s2n_strerror_debug(i32 noundef %19825, ptr noundef @.str.4)
  %19827 = icmp eq ptr %19826, null
  br i1 %19827, label %19828, label %19881

19828:                                            ; preds = %19821
  br label %19829

19829:                                            ; preds = %19828
  br label %19830

19830:                                            ; preds = %19829
  call void @llvm.lifetime.start.p0(i64 4, ptr %409) #11
  %19831 = call ptr @__errno_location() #12
  %19832 = load i32, ptr %19831, align 4, !tbaa !5
  store i32 %19832, ptr %409, align 4, !tbaa !5
  %19833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19834 = call i32 @s2n_print_stacktrace(ptr noundef %19833)
  %19835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19836 = trunc i8 %19835 to i1
  br i1 %19836, label %19837, label %19859

19837:                                            ; preds = %19830
  %19838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19839 = call i32 @fileno(ptr noundef %19838) #11
  %19840 = call i32 @isatty(i32 noundef %19839) #11
  %19841 = icmp ne i32 %19840, 0
  br i1 %19841, label %19842, label %19859

19842:                                            ; preds = %19837
  %19843 = load i32, ptr %409, align 4, !tbaa !5
  %19844 = call ptr @__errno_location() #12
  store i32 %19843, ptr %19844, align 4, !tbaa !5
  %19845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19846 = load i32, ptr @test_count, align 4, !tbaa !5
  %19847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19848 = load i32, ptr %19847, align 4, !tbaa !5
  %19849 = call ptr @s2n_strerror(i32 noundef %19848, ptr noundef @.str.4)
  %19850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19851 = load i32, ptr %19850, align 4, !tbaa !5
  %19852 = call ptr @s2n_strerror_debug(i32 noundef %19851, ptr noundef @.str.4)
  %19853 = call ptr @__errno_location() #12
  %19854 = load i32, ptr %19853, align 4, !tbaa !5
  %19855 = call ptr @strerror(i32 noundef %19854) #11
  %19856 = call ptr @__errno_location() #12
  %19857 = load i32, ptr %19856, align 4, !tbaa !5
  %19858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19845, ptr noundef @.str.2, i32 noundef %19846, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 792, ptr noundef %19849, ptr noundef %19852, ptr noundef %19855, i32 noundef %19857) #11
  br label %19876

19859:                                            ; preds = %19837, %19830
  %19860 = load i32, ptr %409, align 4, !tbaa !5
  %19861 = call ptr @__errno_location() #12
  store i32 %19860, ptr %19861, align 4, !tbaa !5
  %19862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19863 = load i32, ptr @test_count, align 4, !tbaa !5
  %19864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19865 = load i32, ptr %19864, align 4, !tbaa !5
  %19866 = call ptr @s2n_strerror(i32 noundef %19865, ptr noundef @.str.4)
  %19867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19868 = load i32, ptr %19867, align 4, !tbaa !5
  %19869 = call ptr @s2n_strerror_debug(i32 noundef %19868, ptr noundef @.str.4)
  %19870 = call ptr @__errno_location() #12
  %19871 = load i32, ptr %19870, align 4, !tbaa !5
  %19872 = call ptr @strerror(i32 noundef %19871) #11
  %19873 = call ptr @__errno_location() #12
  %19874 = load i32, ptr %19873, align 4, !tbaa !5
  %19875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19862, ptr noundef @.str.5, i32 noundef %19863, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 792, ptr noundef %19866, ptr noundef %19869, ptr noundef %19872, i32 noundef %19874) #11
  br label %19876

19876:                                            ; preds = %19859, %19842
  call void @llvm.lifetime.end.p0(i64 4, ptr %409) #11
  br label %19877

19877:                                            ; preds = %19876
  br label %19878

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

19879:                                            ; No predecessors!
  br label %19880

19880:                                            ; preds = %19879
  br label %19881

19881:                                            ; preds = %19880, %19821
  br label %19882

19882:                                            ; preds = %19881
  br label %19883

19883:                                            ; preds = %19882
  br label %19884

19884:                                            ; preds = %19883
  %19885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %19885, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %19886 = call ptr @__errno_location() #12
  store i32 0, ptr %19886, align 4, !tbaa !5
  br label %19887

19887:                                            ; preds = %19884
  br label %19888

19888:                                            ; preds = %19887
  br label %19889

19889:                                            ; preds = %19888
  br label %19890

19890:                                            ; preds = %19889
  br label %19891

19891:                                            ; preds = %19890
  %19892 = load i32, ptr @test_count, align 4, !tbaa !5
  %19893 = add nsw i32 %19892, 1
  store i32 %19893, ptr @test_count, align 4, !tbaa !5
  %19894 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %19894, ptr %406, align 8, !tbaa !9
  %19895 = icmp eq ptr %19894, null
  br i1 %19895, label %19896, label %19949

19896:                                            ; preds = %19891
  br label %19897

19897:                                            ; preds = %19896
  br label %19898

19898:                                            ; preds = %19897
  call void @llvm.lifetime.start.p0(i64 4, ptr %410) #11
  %19899 = call ptr @__errno_location() #12
  %19900 = load i32, ptr %19899, align 4, !tbaa !5
  store i32 %19900, ptr %410, align 4, !tbaa !5
  %19901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19902 = call i32 @s2n_print_stacktrace(ptr noundef %19901)
  %19903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19904 = trunc i8 %19903 to i1
  br i1 %19904, label %19905, label %19927

19905:                                            ; preds = %19898
  %19906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19907 = call i32 @fileno(ptr noundef %19906) #11
  %19908 = call i32 @isatty(i32 noundef %19907) #11
  %19909 = icmp ne i32 %19908, 0
  br i1 %19909, label %19910, label %19927

19910:                                            ; preds = %19905
  %19911 = load i32, ptr %410, align 4, !tbaa !5
  %19912 = call ptr @__errno_location() #12
  store i32 %19911, ptr %19912, align 4, !tbaa !5
  %19913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19914 = load i32, ptr @test_count, align 4, !tbaa !5
  %19915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19916 = load i32, ptr %19915, align 4, !tbaa !5
  %19917 = call ptr @s2n_strerror(i32 noundef %19916, ptr noundef @.str.4)
  %19918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19919 = load i32, ptr %19918, align 4, !tbaa !5
  %19920 = call ptr @s2n_strerror_debug(i32 noundef %19919, ptr noundef @.str.4)
  %19921 = call ptr @__errno_location() #12
  %19922 = load i32, ptr %19921, align 4, !tbaa !5
  %19923 = call ptr @strerror(i32 noundef %19922) #11
  %19924 = call ptr @__errno_location() #12
  %19925 = load i32, ptr %19924, align 4, !tbaa !5
  %19926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19913, ptr noundef @.str.2, i32 noundef %19914, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 794, ptr noundef %19917, ptr noundef %19920, ptr noundef %19923, i32 noundef %19925) #11
  br label %19944

19927:                                            ; preds = %19905, %19898
  %19928 = load i32, ptr %410, align 4, !tbaa !5
  %19929 = call ptr @__errno_location() #12
  store i32 %19928, ptr %19929, align 4, !tbaa !5
  %19930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19931 = load i32, ptr @test_count, align 4, !tbaa !5
  %19932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19933 = load i32, ptr %19932, align 4, !tbaa !5
  %19934 = call ptr @s2n_strerror(i32 noundef %19933, ptr noundef @.str.4)
  %19935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19936 = load i32, ptr %19935, align 4, !tbaa !5
  %19937 = call ptr @s2n_strerror_debug(i32 noundef %19936, ptr noundef @.str.4)
  %19938 = call ptr @__errno_location() #12
  %19939 = load i32, ptr %19938, align 4, !tbaa !5
  %19940 = call ptr @strerror(i32 noundef %19939) #11
  %19941 = call ptr @__errno_location() #12
  %19942 = load i32, ptr %19941, align 4, !tbaa !5
  %19943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19930, ptr noundef @.str.5, i32 noundef %19931, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 794, ptr noundef %19934, ptr noundef %19937, ptr noundef %19940, i32 noundef %19942) #11
  br label %19944

19944:                                            ; preds = %19927, %19910
  call void @llvm.lifetime.end.p0(i64 4, ptr %410) #11
  br label %19945

19945:                                            ; preds = %19944
  br label %19946

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

19947:                                            ; No predecessors!
  br label %19948

19948:                                            ; preds = %19947
  br label %19949

19949:                                            ; preds = %19948, %19891
  br label %19950

19950:                                            ; preds = %19949
  br label %19951

19951:                                            ; preds = %19950
  %19952 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %19952, label %20152, label %19953

19953:                                            ; preds = %19951
  br label %19954

19954:                                            ; preds = %19953
  br label %19955

19955:                                            ; preds = %19954
  br label %19956

19956:                                            ; preds = %19955
  %19957 = load i32, ptr @test_count, align 4, !tbaa !5
  %19958 = add nsw i32 %19957, 1
  store i32 %19958, ptr @test_count, align 4, !tbaa !5
  %19959 = load ptr, ptr %406, align 8, !tbaa !9
  %19960 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef %19959)
  %19961 = icmp eq i32 %19960, -1
  br i1 %19961, label %20015, label %19962

19962:                                            ; preds = %19956
  br label %19963

19963:                                            ; preds = %19962
  br label %19964

19964:                                            ; preds = %19963
  call void @llvm.lifetime.start.p0(i64 4, ptr %411) #11
  %19965 = call ptr @__errno_location() #12
  %19966 = load i32, ptr %19965, align 4, !tbaa !5
  store i32 %19966, ptr %411, align 4, !tbaa !5
  %19967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19968 = call i32 @s2n_print_stacktrace(ptr noundef %19967)
  %19969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19970 = trunc i8 %19969 to i1
  br i1 %19970, label %19971, label %19993

19971:                                            ; preds = %19964
  %19972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19973 = call i32 @fileno(ptr noundef %19972) #11
  %19974 = call i32 @isatty(i32 noundef %19973) #11
  %19975 = icmp ne i32 %19974, 0
  br i1 %19975, label %19976, label %19993

19976:                                            ; preds = %19971
  %19977 = load i32, ptr %411, align 4, !tbaa !5
  %19978 = call ptr @__errno_location() #12
  store i32 %19977, ptr %19978, align 4, !tbaa !5
  %19979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19980 = load i32, ptr @test_count, align 4, !tbaa !5
  %19981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19982 = load i32, ptr %19981, align 4, !tbaa !5
  %19983 = call ptr @s2n_strerror(i32 noundef %19982, ptr noundef @.str.4)
  %19984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19985 = load i32, ptr %19984, align 4, !tbaa !5
  %19986 = call ptr @s2n_strerror_debug(i32 noundef %19985, ptr noundef @.str.4)
  %19987 = call ptr @__errno_location() #12
  %19988 = load i32, ptr %19987, align 4, !tbaa !5
  %19989 = call ptr @strerror(i32 noundef %19988) #11
  %19990 = call ptr @__errno_location() #12
  %19991 = load i32, ptr %19990, align 4, !tbaa !5
  %19992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19979, ptr noundef @.str.2, i32 noundef %19980, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 797, ptr noundef %19983, ptr noundef %19986, ptr noundef %19989, i32 noundef %19991) #11
  br label %20010

19993:                                            ; preds = %19971, %19964
  %19994 = load i32, ptr %411, align 4, !tbaa !5
  %19995 = call ptr @__errno_location() #12
  store i32 %19994, ptr %19995, align 4, !tbaa !5
  %19996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19997 = load i32, ptr @test_count, align 4, !tbaa !5
  %19998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19999 = load i32, ptr %19998, align 4, !tbaa !5
  %20000 = call ptr @s2n_strerror(i32 noundef %19999, ptr noundef @.str.4)
  %20001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20002 = load i32, ptr %20001, align 4, !tbaa !5
  %20003 = call ptr @s2n_strerror_debug(i32 noundef %20002, ptr noundef @.str.4)
  %20004 = call ptr @__errno_location() #12
  %20005 = load i32, ptr %20004, align 4, !tbaa !5
  %20006 = call ptr @strerror(i32 noundef %20005) #11
  %20007 = call ptr @__errno_location() #12
  %20008 = load i32, ptr %20007, align 4, !tbaa !5
  %20009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19996, ptr noundef @.str.5, i32 noundef %19997, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 797, ptr noundef %20000, ptr noundef %20003, ptr noundef %20006, i32 noundef %20008) #11
  br label %20010

20010:                                            ; preds = %19993, %19976
  call void @llvm.lifetime.end.p0(i64 4, ptr %411) #11
  br label %20011

20011:                                            ; preds = %20010
  br label %20012

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

20013:                                            ; No predecessors!
  br label %20014

20014:                                            ; preds = %20013
  br label %20015

20015:                                            ; preds = %20014, %19956
  br label %20016

20016:                                            ; preds = %20015
  br label %20017

20017:                                            ; preds = %20016
  br label %20018

20018:                                            ; preds = %20017
  %20019 = load i32, ptr @test_count, align 4, !tbaa !5
  %20020 = add nsw i32 %20019, 1
  store i32 %20020, ptr @test_count, align 4, !tbaa !5
  %20021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20022 = load i32, ptr %20021, align 4, !tbaa !5
  %20023 = icmp eq i32 %20022, 402653231
  br i1 %20023, label %20077, label %20024

20024:                                            ; preds = %20018
  br label %20025

20025:                                            ; preds = %20024
  br label %20026

20026:                                            ; preds = %20025
  call void @llvm.lifetime.start.p0(i64 4, ptr %412) #11
  %20027 = call ptr @__errno_location() #12
  %20028 = load i32, ptr %20027, align 4, !tbaa !5
  store i32 %20028, ptr %412, align 4, !tbaa !5
  %20029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20030 = call i32 @s2n_print_stacktrace(ptr noundef %20029)
  %20031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20032 = trunc i8 %20031 to i1
  br i1 %20032, label %20033, label %20055

20033:                                            ; preds = %20026
  %20034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20035 = call i32 @fileno(ptr noundef %20034) #11
  %20036 = call i32 @isatty(i32 noundef %20035) #11
  %20037 = icmp ne i32 %20036, 0
  br i1 %20037, label %20038, label %20055

20038:                                            ; preds = %20033
  %20039 = load i32, ptr %412, align 4, !tbaa !5
  %20040 = call ptr @__errno_location() #12
  store i32 %20039, ptr %20040, align 4, !tbaa !5
  %20041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20042 = load i32, ptr @test_count, align 4, !tbaa !5
  %20043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20044 = load i32, ptr %20043, align 4, !tbaa !5
  %20045 = call ptr @s2n_strerror(i32 noundef %20044, ptr noundef @.str.4)
  %20046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20047 = load i32, ptr %20046, align 4, !tbaa !5
  %20048 = call ptr @s2n_strerror_debug(i32 noundef %20047, ptr noundef @.str.4)
  %20049 = call ptr @__errno_location() #12
  %20050 = load i32, ptr %20049, align 4, !tbaa !5
  %20051 = call ptr @strerror(i32 noundef %20050) #11
  %20052 = call ptr @__errno_location() #12
  %20053 = load i32, ptr %20052, align 4, !tbaa !5
  %20054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20041, ptr noundef @.str.2, i32 noundef %20042, ptr noundef @.str.176, ptr noundef @.str.1, i32 noundef 797, ptr noundef %20045, ptr noundef %20048, ptr noundef %20051, i32 noundef %20053) #11
  br label %20072

20055:                                            ; preds = %20033, %20026
  %20056 = load i32, ptr %412, align 4, !tbaa !5
  %20057 = call ptr @__errno_location() #12
  store i32 %20056, ptr %20057, align 4, !tbaa !5
  %20058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20059 = load i32, ptr @test_count, align 4, !tbaa !5
  %20060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20061 = load i32, ptr %20060, align 4, !tbaa !5
  %20062 = call ptr @s2n_strerror(i32 noundef %20061, ptr noundef @.str.4)
  %20063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20064 = load i32, ptr %20063, align 4, !tbaa !5
  %20065 = call ptr @s2n_strerror_debug(i32 noundef %20064, ptr noundef @.str.4)
  %20066 = call ptr @__errno_location() #12
  %20067 = load i32, ptr %20066, align 4, !tbaa !5
  %20068 = call ptr @strerror(i32 noundef %20067) #11
  %20069 = call ptr @__errno_location() #12
  %20070 = load i32, ptr %20069, align 4, !tbaa !5
  %20071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20058, ptr noundef @.str.5, i32 noundef %20059, ptr noundef @.str.176, ptr noundef @.str.1, i32 noundef 797, ptr noundef %20062, ptr noundef %20065, ptr noundef %20068, i32 noundef %20070) #11
  br label %20072

20072:                                            ; preds = %20055, %20038
  call void @llvm.lifetime.end.p0(i64 4, ptr %412) #11
  br label %20073

20073:                                            ; preds = %20072
  br label %20074

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

20075:                                            ; No predecessors!
  br label %20076

20076:                                            ; preds = %20075
  br label %20077

20077:                                            ; preds = %20076, %20018
  br label %20078

20078:                                            ; preds = %20077
  br label %20079

20079:                                            ; preds = %20078
  br label %20080

20080:                                            ; preds = %20079
  %20081 = load i32, ptr @test_count, align 4, !tbaa !5
  %20082 = add nsw i32 %20081, 1
  store i32 %20082, ptr @test_count, align 4, !tbaa !5
  %20083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20084 = load i32, ptr %20083, align 4, !tbaa !5
  %20085 = call ptr @s2n_strerror_debug(i32 noundef %20084, ptr noundef @.str.4)
  %20086 = icmp eq ptr %20085, null
  br i1 %20086, label %20087, label %20140

20087:                                            ; preds = %20080
  br label %20088

20088:                                            ; preds = %20087
  br label %20089

20089:                                            ; preds = %20088
  call void @llvm.lifetime.start.p0(i64 4, ptr %413) #11
  %20090 = call ptr @__errno_location() #12
  %20091 = load i32, ptr %20090, align 4, !tbaa !5
  store i32 %20091, ptr %413, align 4, !tbaa !5
  %20092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20093 = call i32 @s2n_print_stacktrace(ptr noundef %20092)
  %20094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20095 = trunc i8 %20094 to i1
  br i1 %20095, label %20096, label %20118

20096:                                            ; preds = %20089
  %20097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20098 = call i32 @fileno(ptr noundef %20097) #11
  %20099 = call i32 @isatty(i32 noundef %20098) #11
  %20100 = icmp ne i32 %20099, 0
  br i1 %20100, label %20101, label %20118

20101:                                            ; preds = %20096
  %20102 = load i32, ptr %413, align 4, !tbaa !5
  %20103 = call ptr @__errno_location() #12
  store i32 %20102, ptr %20103, align 4, !tbaa !5
  %20104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20105 = load i32, ptr @test_count, align 4, !tbaa !5
  %20106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20107 = load i32, ptr %20106, align 4, !tbaa !5
  %20108 = call ptr @s2n_strerror(i32 noundef %20107, ptr noundef @.str.4)
  %20109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20110 = load i32, ptr %20109, align 4, !tbaa !5
  %20111 = call ptr @s2n_strerror_debug(i32 noundef %20110, ptr noundef @.str.4)
  %20112 = call ptr @__errno_location() #12
  %20113 = load i32, ptr %20112, align 4, !tbaa !5
  %20114 = call ptr @strerror(i32 noundef %20113) #11
  %20115 = call ptr @__errno_location() #12
  %20116 = load i32, ptr %20115, align 4, !tbaa !5
  %20117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20104, ptr noundef @.str.2, i32 noundef %20105, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 797, ptr noundef %20108, ptr noundef %20111, ptr noundef %20114, i32 noundef %20116) #11
  br label %20135

20118:                                            ; preds = %20096, %20089
  %20119 = load i32, ptr %413, align 4, !tbaa !5
  %20120 = call ptr @__errno_location() #12
  store i32 %20119, ptr %20120, align 4, !tbaa !5
  %20121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20122 = load i32, ptr @test_count, align 4, !tbaa !5
  %20123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20124 = load i32, ptr %20123, align 4, !tbaa !5
  %20125 = call ptr @s2n_strerror(i32 noundef %20124, ptr noundef @.str.4)
  %20126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20127 = load i32, ptr %20126, align 4, !tbaa !5
  %20128 = call ptr @s2n_strerror_debug(i32 noundef %20127, ptr noundef @.str.4)
  %20129 = call ptr @__errno_location() #12
  %20130 = load i32, ptr %20129, align 4, !tbaa !5
  %20131 = call ptr @strerror(i32 noundef %20130) #11
  %20132 = call ptr @__errno_location() #12
  %20133 = load i32, ptr %20132, align 4, !tbaa !5
  %20134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20121, ptr noundef @.str.5, i32 noundef %20122, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 797, ptr noundef %20125, ptr noundef %20128, ptr noundef %20131, i32 noundef %20133) #11
  br label %20135

20135:                                            ; preds = %20118, %20101
  call void @llvm.lifetime.end.p0(i64 4, ptr %413) #11
  br label %20136

20136:                                            ; preds = %20135
  br label %20137

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

20138:                                            ; No predecessors!
  br label %20139

20139:                                            ; preds = %20138
  br label %20140

20140:                                            ; preds = %20139, %20080
  br label %20141

20141:                                            ; preds = %20140
  br label %20142

20142:                                            ; preds = %20141
  br label %20143

20143:                                            ; preds = %20142
  br label %20144

20144:                                            ; preds = %20143
  br label %20145

20145:                                            ; preds = %20144
  %20146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %20146, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %20147 = call ptr @__errno_location() #12
  store i32 0, ptr %20147, align 4, !tbaa !5
  br label %20148

20148:                                            ; preds = %20145
  br label %20149

20149:                                            ; preds = %20148
  br label %20150

20150:                                            ; preds = %20149
  br label %20151

20151:                                            ; preds = %20150
  br label %20152

20152:                                            ; preds = %20151, %19951
  %20153 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %20153, label %20154, label %22039

20154:                                            ; preds = %20152
  %20155 = load ptr, ptr %406, align 8, !tbaa !9
  %20156 = getelementptr inbounds %struct.s2n_connection, ptr %20155, i32 0, i32 2
  store ptr %281, ptr %20156, align 8, !tbaa !15
  br label %20157

20157:                                            ; preds = %20154
  br label %20158

20158:                                            ; preds = %20157
  %20159 = load i32, ptr @test_count, align 4, !tbaa !5
  %20160 = add nsw i32 %20159, 1
  store i32 %20160, ptr @test_count, align 4, !tbaa !5
  %20161 = load ptr, ptr %406, align 8, !tbaa !9
  %20162 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef %20161)
  %20163 = icmp eq i32 %20162, -1
  br i1 %20163, label %20217, label %20164

20164:                                            ; preds = %20158
  br label %20165

20165:                                            ; preds = %20164
  br label %20166

20166:                                            ; preds = %20165
  call void @llvm.lifetime.start.p0(i64 4, ptr %414) #11
  %20167 = call ptr @__errno_location() #12
  %20168 = load i32, ptr %20167, align 4, !tbaa !5
  store i32 %20168, ptr %414, align 4, !tbaa !5
  %20169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20170 = call i32 @s2n_print_stacktrace(ptr noundef %20169)
  %20171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20172 = trunc i8 %20171 to i1
  br i1 %20172, label %20173, label %20195

20173:                                            ; preds = %20166
  %20174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20175 = call i32 @fileno(ptr noundef %20174) #11
  %20176 = call i32 @isatty(i32 noundef %20175) #11
  %20177 = icmp ne i32 %20176, 0
  br i1 %20177, label %20178, label %20195

20178:                                            ; preds = %20173
  %20179 = load i32, ptr %414, align 4, !tbaa !5
  %20180 = call ptr @__errno_location() #12
  store i32 %20179, ptr %20180, align 4, !tbaa !5
  %20181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20182 = load i32, ptr @test_count, align 4, !tbaa !5
  %20183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20184 = load i32, ptr %20183, align 4, !tbaa !5
  %20185 = call ptr @s2n_strerror(i32 noundef %20184, ptr noundef @.str.4)
  %20186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20187 = load i32, ptr %20186, align 4, !tbaa !5
  %20188 = call ptr @s2n_strerror_debug(i32 noundef %20187, ptr noundef @.str.4)
  %20189 = call ptr @__errno_location() #12
  %20190 = load i32, ptr %20189, align 4, !tbaa !5
  %20191 = call ptr @strerror(i32 noundef %20190) #11
  %20192 = call ptr @__errno_location() #12
  %20193 = load i32, ptr %20192, align 4, !tbaa !5
  %20194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20181, ptr noundef @.str.2, i32 noundef %20182, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 803, ptr noundef %20185, ptr noundef %20188, ptr noundef %20191, i32 noundef %20193) #11
  br label %20212

20195:                                            ; preds = %20173, %20166
  %20196 = load i32, ptr %414, align 4, !tbaa !5
  %20197 = call ptr @__errno_location() #12
  store i32 %20196, ptr %20197, align 4, !tbaa !5
  %20198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20199 = load i32, ptr @test_count, align 4, !tbaa !5
  %20200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20201 = load i32, ptr %20200, align 4, !tbaa !5
  %20202 = call ptr @s2n_strerror(i32 noundef %20201, ptr noundef @.str.4)
  %20203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20204 = load i32, ptr %20203, align 4, !tbaa !5
  %20205 = call ptr @s2n_strerror_debug(i32 noundef %20204, ptr noundef @.str.4)
  %20206 = call ptr @__errno_location() #12
  %20207 = load i32, ptr %20206, align 4, !tbaa !5
  %20208 = call ptr @strerror(i32 noundef %20207) #11
  %20209 = call ptr @__errno_location() #12
  %20210 = load i32, ptr %20209, align 4, !tbaa !5
  %20211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20198, ptr noundef @.str.5, i32 noundef %20199, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 803, ptr noundef %20202, ptr noundef %20205, ptr noundef %20208, i32 noundef %20210) #11
  br label %20212

20212:                                            ; preds = %20195, %20178
  call void @llvm.lifetime.end.p0(i64 4, ptr %414) #11
  br label %20213

20213:                                            ; preds = %20212
  br label %20214

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

20215:                                            ; No predecessors!
  br label %20216

20216:                                            ; preds = %20215
  br label %20217

20217:                                            ; preds = %20216, %20158
  br label %20218

20218:                                            ; preds = %20217
  br label %20219

20219:                                            ; preds = %20218
  br label %20220

20220:                                            ; preds = %20219
  %20221 = load i32, ptr @test_count, align 4, !tbaa !5
  %20222 = add nsw i32 %20221, 1
  store i32 %20222, ptr @test_count, align 4, !tbaa !5
  %20223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20224 = load i32, ptr %20223, align 4, !tbaa !5
  %20225 = icmp eq i32 %20224, 0
  br i1 %20225, label %20226, label %20279

20226:                                            ; preds = %20220
  br label %20227

20227:                                            ; preds = %20226
  br label %20228

20228:                                            ; preds = %20227
  call void @llvm.lifetime.start.p0(i64 4, ptr %415) #11
  %20229 = call ptr @__errno_location() #12
  %20230 = load i32, ptr %20229, align 4, !tbaa !5
  store i32 %20230, ptr %415, align 4, !tbaa !5
  %20231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20232 = call i32 @s2n_print_stacktrace(ptr noundef %20231)
  %20233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20234 = trunc i8 %20233 to i1
  br i1 %20234, label %20235, label %20257

20235:                                            ; preds = %20228
  %20236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20237 = call i32 @fileno(ptr noundef %20236) #11
  %20238 = call i32 @isatty(i32 noundef %20237) #11
  %20239 = icmp ne i32 %20238, 0
  br i1 %20239, label %20240, label %20257

20240:                                            ; preds = %20235
  %20241 = load i32, ptr %415, align 4, !tbaa !5
  %20242 = call ptr @__errno_location() #12
  store i32 %20241, ptr %20242, align 4, !tbaa !5
  %20243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20244 = load i32, ptr @test_count, align 4, !tbaa !5
  %20245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20246 = load i32, ptr %20245, align 4, !tbaa !5
  %20247 = call ptr @s2n_strerror(i32 noundef %20246, ptr noundef @.str.4)
  %20248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20249 = load i32, ptr %20248, align 4, !tbaa !5
  %20250 = call ptr @s2n_strerror_debug(i32 noundef %20249, ptr noundef @.str.4)
  %20251 = call ptr @__errno_location() #12
  %20252 = load i32, ptr %20251, align 4, !tbaa !5
  %20253 = call ptr @strerror(i32 noundef %20252) #11
  %20254 = call ptr @__errno_location() #12
  %20255 = load i32, ptr %20254, align 4, !tbaa !5
  %20256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20243, ptr noundef @.str.2, i32 noundef %20244, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 803, ptr noundef %20247, ptr noundef %20250, ptr noundef %20253, i32 noundef %20255) #11
  br label %20274

20257:                                            ; preds = %20235, %20228
  %20258 = load i32, ptr %415, align 4, !tbaa !5
  %20259 = call ptr @__errno_location() #12
  store i32 %20258, ptr %20259, align 4, !tbaa !5
  %20260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20261 = load i32, ptr @test_count, align 4, !tbaa !5
  %20262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20263 = load i32, ptr %20262, align 4, !tbaa !5
  %20264 = call ptr @s2n_strerror(i32 noundef %20263, ptr noundef @.str.4)
  %20265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20266 = load i32, ptr %20265, align 4, !tbaa !5
  %20267 = call ptr @s2n_strerror_debug(i32 noundef %20266, ptr noundef @.str.4)
  %20268 = call ptr @__errno_location() #12
  %20269 = load i32, ptr %20268, align 4, !tbaa !5
  %20270 = call ptr @strerror(i32 noundef %20269) #11
  %20271 = call ptr @__errno_location() #12
  %20272 = load i32, ptr %20271, align 4, !tbaa !5
  %20273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20260, ptr noundef @.str.5, i32 noundef %20261, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 803, ptr noundef %20264, ptr noundef %20267, ptr noundef %20270, i32 noundef %20272) #11
  br label %20274

20274:                                            ; preds = %20257, %20240
  call void @llvm.lifetime.end.p0(i64 4, ptr %415) #11
  br label %20275

20275:                                            ; preds = %20274
  br label %20276

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

20277:                                            ; No predecessors!
  br label %20278

20278:                                            ; preds = %20277
  br label %20279

20279:                                            ; preds = %20278, %20220
  br label %20280

20280:                                            ; preds = %20279
  br label %20281

20281:                                            ; preds = %20280
  br label %20282

20282:                                            ; preds = %20281
  %20283 = load i32, ptr @test_count, align 4, !tbaa !5
  %20284 = add nsw i32 %20283, 1
  store i32 %20284, ptr @test_count, align 4, !tbaa !5
  %20285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20286 = load i32, ptr %20285, align 4, !tbaa !5
  %20287 = call ptr @s2n_strerror_debug(i32 noundef %20286, ptr noundef @.str.4)
  %20288 = icmp eq ptr %20287, null
  br i1 %20288, label %20289, label %20342

20289:                                            ; preds = %20282
  br label %20290

20290:                                            ; preds = %20289
  br label %20291

20291:                                            ; preds = %20290
  call void @llvm.lifetime.start.p0(i64 4, ptr %416) #11
  %20292 = call ptr @__errno_location() #12
  %20293 = load i32, ptr %20292, align 4, !tbaa !5
  store i32 %20293, ptr %416, align 4, !tbaa !5
  %20294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20295 = call i32 @s2n_print_stacktrace(ptr noundef %20294)
  %20296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20297 = trunc i8 %20296 to i1
  br i1 %20297, label %20298, label %20320

20298:                                            ; preds = %20291
  %20299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20300 = call i32 @fileno(ptr noundef %20299) #11
  %20301 = call i32 @isatty(i32 noundef %20300) #11
  %20302 = icmp ne i32 %20301, 0
  br i1 %20302, label %20303, label %20320

20303:                                            ; preds = %20298
  %20304 = load i32, ptr %416, align 4, !tbaa !5
  %20305 = call ptr @__errno_location() #12
  store i32 %20304, ptr %20305, align 4, !tbaa !5
  %20306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20307 = load i32, ptr @test_count, align 4, !tbaa !5
  %20308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20309 = load i32, ptr %20308, align 4, !tbaa !5
  %20310 = call ptr @s2n_strerror(i32 noundef %20309, ptr noundef @.str.4)
  %20311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20312 = load i32, ptr %20311, align 4, !tbaa !5
  %20313 = call ptr @s2n_strerror_debug(i32 noundef %20312, ptr noundef @.str.4)
  %20314 = call ptr @__errno_location() #12
  %20315 = load i32, ptr %20314, align 4, !tbaa !5
  %20316 = call ptr @strerror(i32 noundef %20315) #11
  %20317 = call ptr @__errno_location() #12
  %20318 = load i32, ptr %20317, align 4, !tbaa !5
  %20319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20306, ptr noundef @.str.2, i32 noundef %20307, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 803, ptr noundef %20310, ptr noundef %20313, ptr noundef %20316, i32 noundef %20318) #11
  br label %20337

20320:                                            ; preds = %20298, %20291
  %20321 = load i32, ptr %416, align 4, !tbaa !5
  %20322 = call ptr @__errno_location() #12
  store i32 %20321, ptr %20322, align 4, !tbaa !5
  %20323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20324 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %20326, ptr noundef @.str.4)
  %20328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20329 = load i32, ptr %20328, align 4, !tbaa !5
  %20330 = call ptr @s2n_strerror_debug(i32 noundef %20329, ptr noundef @.str.4)
  %20331 = call ptr @__errno_location() #12
  %20332 = load i32, ptr %20331, align 4, !tbaa !5
  %20333 = call ptr @strerror(i32 noundef %20332) #11
  %20334 = call ptr @__errno_location() #12
  %20335 = load i32, ptr %20334, align 4, !tbaa !5
  %20336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20323, ptr noundef @.str.5, i32 noundef %20324, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 803, ptr noundef %20327, ptr noundef %20330, ptr noundef %20333, i32 noundef %20335) #11
  br label %20337

20337:                                            ; preds = %20320, %20303
  call void @llvm.lifetime.end.p0(i64 4, ptr %416) #11
  br label %20338

20338:                                            ; preds = %20337
  br label %20339

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

20340:                                            ; No predecessors!
  br label %20341

20341:                                            ; preds = %20340
  br label %20342

20342:                                            ; preds = %20341, %20282
  br label %20343

20343:                                            ; preds = %20342
  br label %20344

20344:                                            ; preds = %20343
  br label %20345

20345:                                            ; preds = %20344
  %20346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %20346, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %20347 = call ptr @__errno_location() #12
  store i32 0, ptr %20347, align 4, !tbaa !5
  br label %20348

20348:                                            ; preds = %20345
  br label %20349

20349:                                            ; preds = %20348
  br label %20350

20350:                                            ; preds = %20349
  br label %20351

20351:                                            ; preds = %20350
  %20352 = load ptr, ptr %406, align 8, !tbaa !9
  %20353 = getelementptr inbounds %struct.s2n_connection, ptr %20352, i32 0, i32 31
  %20354 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %20353, i32 0, i32 4
  %20355 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %20354, i32 0, i32 1
  %20356 = getelementptr inbounds %struct.s2n_kem_params, ptr %20355, i32 0, i32 0
  store ptr @s2n_kyber_512_r3, ptr %20356, align 8, !tbaa !95
  br label %20357

20357:                                            ; preds = %20351
  br label %20358

20358:                                            ; preds = %20357
  %20359 = load i32, ptr @test_count, align 4, !tbaa !5
  %20360 = add nsw i32 %20359, 1
  store i32 %20360, ptr @test_count, align 4, !tbaa !5
  %20361 = load ptr, ptr %406, align 8, !tbaa !9
  %20362 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef %20361)
  %20363 = icmp eq i32 %20362, -1
  br i1 %20363, label %20417, label %20364

20364:                                            ; preds = %20358
  br label %20365

20365:                                            ; preds = %20364
  br label %20366

20366:                                            ; preds = %20365
  call void @llvm.lifetime.start.p0(i64 4, ptr %417) #11
  %20367 = call ptr @__errno_location() #12
  %20368 = load i32, ptr %20367, align 4, !tbaa !5
  store i32 %20368, ptr %417, align 4, !tbaa !5
  %20369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20370 = call i32 @s2n_print_stacktrace(ptr noundef %20369)
  %20371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20372 = trunc i8 %20371 to i1
  br i1 %20372, label %20373, label %20395

20373:                                            ; preds = %20366
  %20374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20375 = call i32 @fileno(ptr noundef %20374) #11
  %20376 = call i32 @isatty(i32 noundef %20375) #11
  %20377 = icmp ne i32 %20376, 0
  br i1 %20377, label %20378, label %20395

20378:                                            ; preds = %20373
  %20379 = load i32, ptr %417, align 4, !tbaa !5
  %20380 = call ptr @__errno_location() #12
  store i32 %20379, ptr %20380, align 4, !tbaa !5
  %20381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20382 = load i32, ptr @test_count, align 4, !tbaa !5
  %20383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20384 = load i32, ptr %20383, align 4, !tbaa !5
  %20385 = call ptr @s2n_strerror(i32 noundef %20384, ptr noundef @.str.4)
  %20386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20387 = load i32, ptr %20386, align 4, !tbaa !5
  %20388 = call ptr @s2n_strerror_debug(i32 noundef %20387, ptr noundef @.str.4)
  %20389 = call ptr @__errno_location() #12
  %20390 = load i32, ptr %20389, align 4, !tbaa !5
  %20391 = call ptr @strerror(i32 noundef %20390) #11
  %20392 = call ptr @__errno_location() #12
  %20393 = load i32, ptr %20392, align 4, !tbaa !5
  %20394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20381, ptr noundef @.str.2, i32 noundef %20382, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 806, ptr noundef %20385, ptr noundef %20388, ptr noundef %20391, i32 noundef %20393) #11
  br label %20412

20395:                                            ; preds = %20373, %20366
  %20396 = load i32, ptr %417, align 4, !tbaa !5
  %20397 = call ptr @__errno_location() #12
  store i32 %20396, ptr %20397, align 4, !tbaa !5
  %20398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20399 = load i32, ptr @test_count, align 4, !tbaa !5
  %20400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20401 = load i32, ptr %20400, align 4, !tbaa !5
  %20402 = call ptr @s2n_strerror(i32 noundef %20401, ptr noundef @.str.4)
  %20403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20404 = load i32, ptr %20403, align 4, !tbaa !5
  %20405 = call ptr @s2n_strerror_debug(i32 noundef %20404, ptr noundef @.str.4)
  %20406 = call ptr @__errno_location() #12
  %20407 = load i32, ptr %20406, align 4, !tbaa !5
  %20408 = call ptr @strerror(i32 noundef %20407) #11
  %20409 = call ptr @__errno_location() #12
  %20410 = load i32, ptr %20409, align 4, !tbaa !5
  %20411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20398, ptr noundef @.str.5, i32 noundef %20399, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 806, ptr noundef %20402, ptr noundef %20405, ptr noundef %20408, i32 noundef %20410) #11
  br label %20412

20412:                                            ; preds = %20395, %20378
  call void @llvm.lifetime.end.p0(i64 4, ptr %417) #11
  br label %20413

20413:                                            ; preds = %20412
  br label %20414

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

20415:                                            ; No predecessors!
  br label %20416

20416:                                            ; preds = %20415
  br label %20417

20417:                                            ; preds = %20416, %20358
  br label %20418

20418:                                            ; preds = %20417
  br label %20419

20419:                                            ; preds = %20418
  br label %20420

20420:                                            ; preds = %20419
  %20421 = load i32, ptr @test_count, align 4, !tbaa !5
  %20422 = add nsw i32 %20421, 1
  store i32 %20422, ptr @test_count, align 4, !tbaa !5
  %20423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20424 = load i32, ptr %20423, align 4, !tbaa !5
  %20425 = icmp eq i32 %20424, 0
  br i1 %20425, label %20426, label %20479

20426:                                            ; preds = %20420
  br label %20427

20427:                                            ; preds = %20426
  br label %20428

20428:                                            ; preds = %20427
  call void @llvm.lifetime.start.p0(i64 4, ptr %418) #11
  %20429 = call ptr @__errno_location() #12
  %20430 = load i32, ptr %20429, align 4, !tbaa !5
  store i32 %20430, ptr %418, align 4, !tbaa !5
  %20431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20432 = call i32 @s2n_print_stacktrace(ptr noundef %20431)
  %20433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20434 = trunc i8 %20433 to i1
  br i1 %20434, label %20435, label %20457

20435:                                            ; preds = %20428
  %20436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20437 = call i32 @fileno(ptr noundef %20436) #11
  %20438 = call i32 @isatty(i32 noundef %20437) #11
  %20439 = icmp ne i32 %20438, 0
  br i1 %20439, label %20440, label %20457

20440:                                            ; preds = %20435
  %20441 = load i32, ptr %418, align 4, !tbaa !5
  %20442 = call ptr @__errno_location() #12
  store i32 %20441, ptr %20442, align 4, !tbaa !5
  %20443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20444 = load i32, ptr @test_count, align 4, !tbaa !5
  %20445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20446 = load i32, ptr %20445, align 4, !tbaa !5
  %20447 = call ptr @s2n_strerror(i32 noundef %20446, ptr noundef @.str.4)
  %20448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20449 = load i32, ptr %20448, align 4, !tbaa !5
  %20450 = call ptr @s2n_strerror_debug(i32 noundef %20449, ptr noundef @.str.4)
  %20451 = call ptr @__errno_location() #12
  %20452 = load i32, ptr %20451, align 4, !tbaa !5
  %20453 = call ptr @strerror(i32 noundef %20452) #11
  %20454 = call ptr @__errno_location() #12
  %20455 = load i32, ptr %20454, align 4, !tbaa !5
  %20456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20443, ptr noundef @.str.2, i32 noundef %20444, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 806, ptr noundef %20447, ptr noundef %20450, ptr noundef %20453, i32 noundef %20455) #11
  br label %20474

20457:                                            ; preds = %20435, %20428
  %20458 = load i32, ptr %418, align 4, !tbaa !5
  %20459 = call ptr @__errno_location() #12
  store i32 %20458, ptr %20459, align 4, !tbaa !5
  %20460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20461 = load i32, ptr @test_count, align 4, !tbaa !5
  %20462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20463 = load i32, ptr %20462, align 4, !tbaa !5
  %20464 = call ptr @s2n_strerror(i32 noundef %20463, ptr noundef @.str.4)
  %20465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20466 = load i32, ptr %20465, align 4, !tbaa !5
  %20467 = call ptr @s2n_strerror_debug(i32 noundef %20466, ptr noundef @.str.4)
  %20468 = call ptr @__errno_location() #12
  %20469 = load i32, ptr %20468, align 4, !tbaa !5
  %20470 = call ptr @strerror(i32 noundef %20469) #11
  %20471 = call ptr @__errno_location() #12
  %20472 = load i32, ptr %20471, align 4, !tbaa !5
  %20473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20460, ptr noundef @.str.5, i32 noundef %20461, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 806, ptr noundef %20464, ptr noundef %20467, ptr noundef %20470, i32 noundef %20472) #11
  br label %20474

20474:                                            ; preds = %20457, %20440
  call void @llvm.lifetime.end.p0(i64 4, ptr %418) #11
  br label %20475

20475:                                            ; preds = %20474
  br label %20476

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

20477:                                            ; No predecessors!
  br label %20478

20478:                                            ; preds = %20477
  br label %20479

20479:                                            ; preds = %20478, %20420
  br label %20480

20480:                                            ; preds = %20479
  br label %20481

20481:                                            ; preds = %20480
  br label %20482

20482:                                            ; preds = %20481
  %20483 = load i32, ptr @test_count, align 4, !tbaa !5
  %20484 = add nsw i32 %20483, 1
  store i32 %20484, ptr @test_count, align 4, !tbaa !5
  %20485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20486 = load i32, ptr %20485, align 4, !tbaa !5
  %20487 = call ptr @s2n_strerror_debug(i32 noundef %20486, ptr noundef @.str.4)
  %20488 = icmp eq ptr %20487, null
  br i1 %20488, label %20489, label %20542

20489:                                            ; preds = %20482
  br label %20490

20490:                                            ; preds = %20489
  br label %20491

20491:                                            ; preds = %20490
  call void @llvm.lifetime.start.p0(i64 4, ptr %419) #11
  %20492 = call ptr @__errno_location() #12
  %20493 = load i32, ptr %20492, align 4, !tbaa !5
  store i32 %20493, ptr %419, align 4, !tbaa !5
  %20494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20495 = call i32 @s2n_print_stacktrace(ptr noundef %20494)
  %20496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20497 = trunc i8 %20496 to i1
  br i1 %20497, label %20498, label %20520

20498:                                            ; preds = %20491
  %20499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20500 = call i32 @fileno(ptr noundef %20499) #11
  %20501 = call i32 @isatty(i32 noundef %20500) #11
  %20502 = icmp ne i32 %20501, 0
  br i1 %20502, label %20503, label %20520

20503:                                            ; preds = %20498
  %20504 = load i32, ptr %419, align 4, !tbaa !5
  %20505 = call ptr @__errno_location() #12
  store i32 %20504, ptr %20505, align 4, !tbaa !5
  %20506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20507 = load i32, ptr @test_count, align 4, !tbaa !5
  %20508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20509 = load i32, ptr %20508, align 4, !tbaa !5
  %20510 = call ptr @s2n_strerror(i32 noundef %20509, ptr noundef @.str.4)
  %20511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20512 = load i32, ptr %20511, align 4, !tbaa !5
  %20513 = call ptr @s2n_strerror_debug(i32 noundef %20512, ptr noundef @.str.4)
  %20514 = call ptr @__errno_location() #12
  %20515 = load i32, ptr %20514, align 4, !tbaa !5
  %20516 = call ptr @strerror(i32 noundef %20515) #11
  %20517 = call ptr @__errno_location() #12
  %20518 = load i32, ptr %20517, align 4, !tbaa !5
  %20519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20506, ptr noundef @.str.2, i32 noundef %20507, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 806, ptr noundef %20510, ptr noundef %20513, ptr noundef %20516, i32 noundef %20518) #11
  br label %20537

20520:                                            ; preds = %20498, %20491
  %20521 = load i32, ptr %419, align 4, !tbaa !5
  %20522 = call ptr @__errno_location() #12
  store i32 %20521, ptr %20522, align 4, !tbaa !5
  %20523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20524 = load i32, ptr @test_count, align 4, !tbaa !5
  %20525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20526 = load i32, ptr %20525, align 4, !tbaa !5
  %20527 = call ptr @s2n_strerror(i32 noundef %20526, ptr noundef @.str.4)
  %20528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20529 = load i32, ptr %20528, align 4, !tbaa !5
  %20530 = call ptr @s2n_strerror_debug(i32 noundef %20529, ptr noundef @.str.4)
  %20531 = call ptr @__errno_location() #12
  %20532 = load i32, ptr %20531, align 4, !tbaa !5
  %20533 = call ptr @strerror(i32 noundef %20532) #11
  %20534 = call ptr @__errno_location() #12
  %20535 = load i32, ptr %20534, align 4, !tbaa !5
  %20536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20523, ptr noundef @.str.5, i32 noundef %20524, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 806, ptr noundef %20527, ptr noundef %20530, ptr noundef %20533, i32 noundef %20535) #11
  br label %20537

20537:                                            ; preds = %20520, %20503
  call void @llvm.lifetime.end.p0(i64 4, ptr %419) #11
  br label %20538

20538:                                            ; preds = %20537
  br label %20539

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

20540:                                            ; No predecessors!
  br label %20541

20541:                                            ; preds = %20540
  br label %20542

20542:                                            ; preds = %20541, %20482
  br label %20543

20543:                                            ; preds = %20542
  br label %20544

20544:                                            ; preds = %20543
  br label %20545

20545:                                            ; preds = %20544
  %20546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %20546, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %20547 = call ptr @__errno_location() #12
  store i32 0, ptr %20547, align 4, !tbaa !5
  br label %20548

20548:                                            ; preds = %20545
  br label %20549

20549:                                            ; preds = %20548
  br label %20550

20550:                                            ; preds = %20549
  br label %20551

20551:                                            ; preds = %20550
  %20552 = load ptr, ptr %406, align 8, !tbaa !9
  %20553 = getelementptr inbounds %struct.s2n_connection, ptr %20552, i32 0, i32 31
  %20554 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %20553, i32 0, i32 4
  %20555 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %20554, i32 0, i32 2
  %20556 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %20555, i32 0, i32 0
  store ptr @s2n_ecc_curve_secp256r1, ptr %20556, align 8, !tbaa !94
  %20557 = load ptr, ptr %406, align 8, !tbaa !9
  %20558 = getelementptr inbounds %struct.s2n_connection, ptr %20557, i32 0, i32 31
  %20559 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %20558, i32 0, i32 4
  %20560 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %20559, i32 0, i32 0
  store ptr @s2n_secp256r1_kyber_512_r3, ptr %20560, align 8, !tbaa !48
  br label %20561

20561:                                            ; preds = %20551
  br label %20562

20562:                                            ; preds = %20561
  br label %20563

20563:                                            ; preds = %20562
  %20564 = load i32, ptr @test_count, align 4, !tbaa !5
  %20565 = add nsw i32 %20564, 1
  store i32 %20565, ptr @test_count, align 4, !tbaa !5
  %20566 = load ptr, ptr %406, align 8, !tbaa !9
  %20567 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef %20566)
  %20568 = icmp eq i32 %20567, -1
  br i1 %20568, label %20622, label %20569

20569:                                            ; preds = %20563
  br label %20570

20570:                                            ; preds = %20569
  br label %20571

20571:                                            ; preds = %20570
  call void @llvm.lifetime.start.p0(i64 4, ptr %420) #11
  %20572 = call ptr @__errno_location() #12
  %20573 = load i32, ptr %20572, align 4, !tbaa !5
  store i32 %20573, ptr %420, align 4, !tbaa !5
  %20574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20575 = call i32 @s2n_print_stacktrace(ptr noundef %20574)
  %20576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20577 = trunc i8 %20576 to i1
  br i1 %20577, label %20578, label %20600

20578:                                            ; preds = %20571
  %20579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20580 = call i32 @fileno(ptr noundef %20579) #11
  %20581 = call i32 @isatty(i32 noundef %20580) #11
  %20582 = icmp ne i32 %20581, 0
  br i1 %20582, label %20583, label %20600

20583:                                            ; preds = %20578
  %20584 = load i32, ptr %420, align 4, !tbaa !5
  %20585 = call ptr @__errno_location() #12
  store i32 %20584, ptr %20585, align 4, !tbaa !5
  %20586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20587 = load i32, ptr @test_count, align 4, !tbaa !5
  %20588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20589 = load i32, ptr %20588, align 4, !tbaa !5
  %20590 = call ptr @s2n_strerror(i32 noundef %20589, ptr noundef @.str.4)
  %20591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20592 = load i32, ptr %20591, align 4, !tbaa !5
  %20593 = call ptr @s2n_strerror_debug(i32 noundef %20592, ptr noundef @.str.4)
  %20594 = call ptr @__errno_location() #12
  %20595 = load i32, ptr %20594, align 4, !tbaa !5
  %20596 = call ptr @strerror(i32 noundef %20595) #11
  %20597 = call ptr @__errno_location() #12
  %20598 = load i32, ptr %20597, align 4, !tbaa !5
  %20599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20586, ptr noundef @.str.2, i32 noundef %20587, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 810, ptr noundef %20590, ptr noundef %20593, ptr noundef %20596, i32 noundef %20598) #11
  br label %20617

20600:                                            ; preds = %20578, %20571
  %20601 = load i32, ptr %420, align 4, !tbaa !5
  %20602 = call ptr @__errno_location() #12
  store i32 %20601, ptr %20602, align 4, !tbaa !5
  %20603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20604 = load i32, ptr @test_count, align 4, !tbaa !5
  %20605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20606 = load i32, ptr %20605, align 4, !tbaa !5
  %20607 = call ptr @s2n_strerror(i32 noundef %20606, ptr noundef @.str.4)
  %20608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20609 = load i32, ptr %20608, align 4, !tbaa !5
  %20610 = call ptr @s2n_strerror_debug(i32 noundef %20609, ptr noundef @.str.4)
  %20611 = call ptr @__errno_location() #12
  %20612 = load i32, ptr %20611, align 4, !tbaa !5
  %20613 = call ptr @strerror(i32 noundef %20612) #11
  %20614 = call ptr @__errno_location() #12
  %20615 = load i32, ptr %20614, align 4, !tbaa !5
  %20616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20603, ptr noundef @.str.5, i32 noundef %20604, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 810, ptr noundef %20607, ptr noundef %20610, ptr noundef %20613, i32 noundef %20615) #11
  br label %20617

20617:                                            ; preds = %20600, %20583
  call void @llvm.lifetime.end.p0(i64 4, ptr %420) #11
  br label %20618

20618:                                            ; preds = %20617
  br label %20619

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

20620:                                            ; No predecessors!
  br label %20621

20621:                                            ; preds = %20620
  br label %20622

20622:                                            ; preds = %20621, %20563
  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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20629 = load i32, ptr %20628, align 4, !tbaa !5
  %20630 = icmp eq i32 %20629, 335544385
  br i1 %20630, label %20684, label %20631

20631:                                            ; preds = %20625
  br label %20632

20632:                                            ; preds = %20631
  br label %20633

20633:                                            ; preds = %20632
  call void @llvm.lifetime.start.p0(i64 4, ptr %421) #11
  %20634 = call ptr @__errno_location() #12
  %20635 = load i32, ptr %20634, align 4, !tbaa !5
  store i32 %20635, ptr %421, align 4, !tbaa !5
  %20636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20637 = call i32 @s2n_print_stacktrace(ptr noundef %20636)
  %20638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20639 = trunc i8 %20638 to i1
  br i1 %20639, label %20640, label %20662

20640:                                            ; preds = %20633
  %20641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20642 = call i32 @fileno(ptr noundef %20641) #11
  %20643 = call i32 @isatty(i32 noundef %20642) #11
  %20644 = icmp ne i32 %20643, 0
  br i1 %20644, label %20645, label %20662

20645:                                            ; preds = %20640
  %20646 = load i32, ptr %421, align 4, !tbaa !5
  %20647 = call ptr @__errno_location() #12
  store i32 %20646, ptr %20647, align 4, !tbaa !5
  %20648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20649 = load i32, ptr @test_count, align 4, !tbaa !5
  %20650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20651 = load i32, ptr %20650, align 4, !tbaa !5
  %20652 = call ptr @s2n_strerror(i32 noundef %20651, ptr noundef @.str.4)
  %20653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20654 = load i32, ptr %20653, align 4, !tbaa !5
  %20655 = call ptr @s2n_strerror_debug(i32 noundef %20654, ptr noundef @.str.4)
  %20656 = call ptr @__errno_location() #12
  %20657 = load i32, ptr %20656, align 4, !tbaa !5
  %20658 = call ptr @strerror(i32 noundef %20657) #11
  %20659 = call ptr @__errno_location() #12
  %20660 = load i32, ptr %20659, align 4, !tbaa !5
  %20661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20648, ptr noundef @.str.2, i32 noundef %20649, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 810, ptr noundef %20652, ptr noundef %20655, ptr noundef %20658, i32 noundef %20660) #11
  br label %20679

20662:                                            ; preds = %20640, %20633
  %20663 = load i32, ptr %421, align 4, !tbaa !5
  %20664 = call ptr @__errno_location() #12
  store i32 %20663, ptr %20664, align 4, !tbaa !5
  %20665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20666 = load i32, ptr @test_count, align 4, !tbaa !5
  %20667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20668 = load i32, ptr %20667, align 4, !tbaa !5
  %20669 = call ptr @s2n_strerror(i32 noundef %20668, ptr noundef @.str.4)
  %20670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20671 = load i32, ptr %20670, align 4, !tbaa !5
  %20672 = call ptr @s2n_strerror_debug(i32 noundef %20671, ptr noundef @.str.4)
  %20673 = call ptr @__errno_location() #12
  %20674 = load i32, ptr %20673, align 4, !tbaa !5
  %20675 = call ptr @strerror(i32 noundef %20674) #11
  %20676 = call ptr @__errno_location() #12
  %20677 = load i32, ptr %20676, align 4, !tbaa !5
  %20678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20665, ptr noundef @.str.5, i32 noundef %20666, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 810, ptr noundef %20669, ptr noundef %20672, ptr noundef %20675, i32 noundef %20677) #11
  br label %20679

20679:                                            ; preds = %20662, %20645
  call void @llvm.lifetime.end.p0(i64 4, ptr %421) #11
  br label %20680

20680:                                            ; preds = %20679
  br label %20681

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

20682:                                            ; No predecessors!
  br label %20683

20683:                                            ; preds = %20682
  br label %20684

20684:                                            ; preds = %20683, %20625
  br label %20685

20685:                                            ; preds = %20684
  br label %20686

20686:                                            ; preds = %20685
  br label %20687

20687:                                            ; preds = %20686
  %20688 = load i32, ptr @test_count, align 4, !tbaa !5
  %20689 = add nsw i32 %20688, 1
  store i32 %20689, ptr @test_count, align 4, !tbaa !5
  %20690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20691 = load i32, ptr %20690, align 4, !tbaa !5
  %20692 = call ptr @s2n_strerror_debug(i32 noundef %20691, ptr noundef @.str.4)
  %20693 = icmp eq ptr %20692, null
  br i1 %20693, label %20694, label %20747

20694:                                            ; preds = %20687
  br label %20695

20695:                                            ; preds = %20694
  br label %20696

20696:                                            ; preds = %20695
  call void @llvm.lifetime.start.p0(i64 4, ptr %422) #11
  %20697 = call ptr @__errno_location() #12
  %20698 = load i32, ptr %20697, align 4, !tbaa !5
  store i32 %20698, ptr %422, align 4, !tbaa !5
  %20699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20700 = call i32 @s2n_print_stacktrace(ptr noundef %20699)
  %20701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20702 = trunc i8 %20701 to i1
  br i1 %20702, label %20703, label %20725

20703:                                            ; preds = %20696
  %20704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20705 = call i32 @fileno(ptr noundef %20704) #11
  %20706 = call i32 @isatty(i32 noundef %20705) #11
  %20707 = icmp ne i32 %20706, 0
  br i1 %20707, label %20708, label %20725

20708:                                            ; preds = %20703
  %20709 = load i32, ptr %422, align 4, !tbaa !5
  %20710 = call ptr @__errno_location() #12
  store i32 %20709, ptr %20710, align 4, !tbaa !5
  %20711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20712 = load i32, ptr @test_count, align 4, !tbaa !5
  %20713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20714 = load i32, ptr %20713, align 4, !tbaa !5
  %20715 = call ptr @s2n_strerror(i32 noundef %20714, ptr noundef @.str.4)
  %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_debug(i32 noundef %20717, ptr noundef @.str.4)
  %20719 = call ptr @__errno_location() #12
  %20720 = load i32, ptr %20719, align 4, !tbaa !5
  %20721 = call ptr @strerror(i32 noundef %20720) #11
  %20722 = call ptr @__errno_location() #12
  %20723 = load i32, ptr %20722, align 4, !tbaa !5
  %20724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20711, ptr noundef @.str.2, i32 noundef %20712, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 810, ptr noundef %20715, ptr noundef %20718, ptr noundef %20721, i32 noundef %20723) #11
  br label %20742

20725:                                            ; preds = %20703, %20696
  %20726 = load i32, ptr %422, align 4, !tbaa !5
  %20727 = call ptr @__errno_location() #12
  store i32 %20726, ptr %20727, align 4, !tbaa !5
  %20728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20729 = load i32, ptr @test_count, align 4, !tbaa !5
  %20730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20731 = load i32, ptr %20730, align 4, !tbaa !5
  %20732 = call ptr @s2n_strerror(i32 noundef %20731, ptr noundef @.str.4)
  %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_debug(i32 noundef %20734, ptr noundef @.str.4)
  %20736 = call ptr @__errno_location() #12
  %20737 = load i32, ptr %20736, align 4, !tbaa !5
  %20738 = call ptr @strerror(i32 noundef %20737) #11
  %20739 = call ptr @__errno_location() #12
  %20740 = load i32, ptr %20739, align 4, !tbaa !5
  %20741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20728, ptr noundef @.str.5, i32 noundef %20729, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 810, ptr noundef %20732, ptr noundef %20735, ptr noundef %20738, i32 noundef %20740) #11
  br label %20742

20742:                                            ; preds = %20725, %20708
  call void @llvm.lifetime.end.p0(i64 4, ptr %422) #11
  br label %20743

20743:                                            ; preds = %20742
  br label %20744

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

20745:                                            ; No predecessors!
  br label %20746

20746:                                            ; preds = %20745
  br label %20747

20747:                                            ; preds = %20746, %20687
  br label %20748

20748:                                            ; preds = %20747
  br label %20749

20749:                                            ; preds = %20748
  br label %20750

20750:                                            ; preds = %20749
  br label %20751

20751:                                            ; preds = %20750
  br label %20752

20752:                                            ; preds = %20751
  %20753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %20753, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %20754 = call ptr @__errno_location() #12
  store i32 0, ptr %20754, align 4, !tbaa !5
  br label %20755

20755:                                            ; preds = %20752
  br label %20756

20756:                                            ; preds = %20755
  br label %20757

20757:                                            ; preds = %20756
  br label %20758

20758:                                            ; preds = %20757
  %20759 = load ptr, ptr %406, align 8, !tbaa !9
  %20760 = getelementptr inbounds %struct.s2n_connection, ptr %20759, i32 0, i32 31
  %20761 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %20760, i32 0, i32 4
  %20762 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %20761, i32 0, i32 0
  store ptr @s2n_secp256r1_kyber_512_r3, ptr %20762, align 8, !tbaa !48
  %20763 = load ptr, ptr %406, align 8, !tbaa !9
  %20764 = getelementptr inbounds %struct.s2n_connection, ptr %20763, i32 0, i32 31
  %20765 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %20764, i32 0, i32 4
  %20766 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %20765, i32 0, i32 1
  %20767 = getelementptr inbounds %struct.s2n_kem_params, ptr %20766, i32 0, i32 0
  store ptr @s2n_kyber_512_r3, ptr %20767, align 8, !tbaa !95
  br label %20768

20768:                                            ; preds = %20758
  br label %20769

20769:                                            ; preds = %20768
  br label %20770

20770:                                            ; preds = %20769
  %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 %406, align 8, !tbaa !9
  %20774 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef %20773)
  %20775 = icmp eq i32 %20774, -1
  br i1 %20775, label %20829, label %20776

20776:                                            ; preds = %20770
  br label %20777

20777:                                            ; preds = %20776
  br label %20778

20778:                                            ; preds = %20777
  call void @llvm.lifetime.start.p0(i64 4, ptr %423) #11
  %20779 = call ptr @__errno_location() #12
  %20780 = load i32, ptr %20779, align 4, !tbaa !5
  store i32 %20780, ptr %423, align 4, !tbaa !5
  %20781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20782 = call i32 @s2n_print_stacktrace(ptr noundef %20781)
  %20783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20784 = trunc i8 %20783 to i1
  br i1 %20784, label %20785, label %20807

20785:                                            ; preds = %20778
  %20786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20787 = call i32 @fileno(ptr noundef %20786) #11
  %20788 = call i32 @isatty(i32 noundef %20787) #11
  %20789 = icmp ne i32 %20788, 0
  br i1 %20789, label %20790, label %20807

20790:                                            ; preds = %20785
  %20791 = load i32, ptr %423, align 4, !tbaa !5
  %20792 = call ptr @__errno_location() #12
  store i32 %20791, ptr %20792, align 4, !tbaa !5
  %20793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20794 = load i32, ptr @test_count, align 4, !tbaa !5
  %20795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20796 = load i32, ptr %20795, align 4, !tbaa !5
  %20797 = call ptr @s2n_strerror(i32 noundef %20796, ptr noundef @.str.4)
  %20798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20799 = load i32, ptr %20798, align 4, !tbaa !5
  %20800 = call ptr @s2n_strerror_debug(i32 noundef %20799, ptr noundef @.str.4)
  %20801 = call ptr @__errno_location() #12
  %20802 = load i32, ptr %20801, align 4, !tbaa !5
  %20803 = call ptr @strerror(i32 noundef %20802) #11
  %20804 = call ptr @__errno_location() #12
  %20805 = load i32, ptr %20804, align 4, !tbaa !5
  %20806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20793, ptr noundef @.str.2, i32 noundef %20794, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 814, ptr noundef %20797, ptr noundef %20800, ptr noundef %20803, i32 noundef %20805) #11
  br label %20824

20807:                                            ; preds = %20785, %20778
  %20808 = load i32, ptr %423, align 4, !tbaa !5
  %20809 = call ptr @__errno_location() #12
  store i32 %20808, ptr %20809, align 4, !tbaa !5
  %20810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20811 = load i32, ptr @test_count, align 4, !tbaa !5
  %20812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20813 = load i32, ptr %20812, align 4, !tbaa !5
  %20814 = call ptr @s2n_strerror(i32 noundef %20813, ptr noundef @.str.4)
  %20815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20816 = load i32, ptr %20815, align 4, !tbaa !5
  %20817 = call ptr @s2n_strerror_debug(i32 noundef %20816, ptr noundef @.str.4)
  %20818 = call ptr @__errno_location() #12
  %20819 = load i32, ptr %20818, align 4, !tbaa !5
  %20820 = call ptr @strerror(i32 noundef %20819) #11
  %20821 = call ptr @__errno_location() #12
  %20822 = load i32, ptr %20821, align 4, !tbaa !5
  %20823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20810, ptr noundef @.str.5, i32 noundef %20811, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 814, ptr noundef %20814, ptr noundef %20817, ptr noundef %20820, i32 noundef %20822) #11
  br label %20824

20824:                                            ; preds = %20807, %20790
  call void @llvm.lifetime.end.p0(i64 4, ptr %423) #11
  br label %20825

20825:                                            ; preds = %20824
  br label %20826

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

20827:                                            ; No predecessors!
  br label %20828

20828:                                            ; preds = %20827
  br label %20829

20829:                                            ; preds = %20828, %20770
  br label %20830

20830:                                            ; preds = %20829
  br label %20831

20831:                                            ; preds = %20830
  br label %20832

20832:                                            ; preds = %20831
  %20833 = load i32, ptr @test_count, align 4, !tbaa !5
  %20834 = add nsw i32 %20833, 1
  store i32 %20834, ptr @test_count, align 4, !tbaa !5
  %20835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20836 = load i32, ptr %20835, align 4, !tbaa !5
  %20837 = icmp eq i32 %20836, 335544385
  br i1 %20837, label %20891, label %20838

20838:                                            ; preds = %20832
  br label %20839

20839:                                            ; preds = %20838
  br label %20840

20840:                                            ; preds = %20839
  call void @llvm.lifetime.start.p0(i64 4, ptr %424) #11
  %20841 = call ptr @__errno_location() #12
  %20842 = load i32, ptr %20841, align 4, !tbaa !5
  store i32 %20842, ptr %424, align 4, !tbaa !5
  %20843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20844 = call i32 @s2n_print_stacktrace(ptr noundef %20843)
  %20845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20846 = trunc i8 %20845 to i1
  br i1 %20846, label %20847, label %20869

20847:                                            ; preds = %20840
  %20848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20849 = call i32 @fileno(ptr noundef %20848) #11
  %20850 = call i32 @isatty(i32 noundef %20849) #11
  %20851 = icmp ne i32 %20850, 0
  br i1 %20851, label %20852, label %20869

20852:                                            ; preds = %20847
  %20853 = load i32, ptr %424, align 4, !tbaa !5
  %20854 = call ptr @__errno_location() #12
  store i32 %20853, ptr %20854, align 4, !tbaa !5
  %20855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20856 = load i32, ptr @test_count, align 4, !tbaa !5
  %20857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20858 = load i32, ptr %20857, align 4, !tbaa !5
  %20859 = call ptr @s2n_strerror(i32 noundef %20858, ptr noundef @.str.4)
  %20860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20861 = load i32, ptr %20860, align 4, !tbaa !5
  %20862 = call ptr @s2n_strerror_debug(i32 noundef %20861, ptr noundef @.str.4)
  %20863 = call ptr @__errno_location() #12
  %20864 = load i32, ptr %20863, align 4, !tbaa !5
  %20865 = call ptr @strerror(i32 noundef %20864) #11
  %20866 = call ptr @__errno_location() #12
  %20867 = load i32, ptr %20866, align 4, !tbaa !5
  %20868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20855, ptr noundef @.str.2, i32 noundef %20856, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 814, ptr noundef %20859, ptr noundef %20862, ptr noundef %20865, i32 noundef %20867) #11
  br label %20886

20869:                                            ; preds = %20847, %20840
  %20870 = load i32, ptr %424, align 4, !tbaa !5
  %20871 = call ptr @__errno_location() #12
  store i32 %20870, ptr %20871, align 4, !tbaa !5
  %20872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20873 = load i32, ptr @test_count, align 4, !tbaa !5
  %20874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20875 = load i32, ptr %20874, align 4, !tbaa !5
  %20876 = call ptr @s2n_strerror(i32 noundef %20875, ptr noundef @.str.4)
  %20877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20878 = load i32, ptr %20877, align 4, !tbaa !5
  %20879 = call ptr @s2n_strerror_debug(i32 noundef %20878, ptr noundef @.str.4)
  %20880 = call ptr @__errno_location() #12
  %20881 = load i32, ptr %20880, align 4, !tbaa !5
  %20882 = call ptr @strerror(i32 noundef %20881) #11
  %20883 = call ptr @__errno_location() #12
  %20884 = load i32, ptr %20883, align 4, !tbaa !5
  %20885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20872, ptr noundef @.str.5, i32 noundef %20873, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 814, ptr noundef %20876, ptr noundef %20879, ptr noundef %20882, i32 noundef %20884) #11
  br label %20886

20886:                                            ; preds = %20869, %20852
  call void @llvm.lifetime.end.p0(i64 4, ptr %424) #11
  br label %20887

20887:                                            ; preds = %20886
  br label %20888

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

20889:                                            ; No predecessors!
  br label %20890

20890:                                            ; preds = %20889
  br label %20891

20891:                                            ; preds = %20890, %20832
  br label %20892

20892:                                            ; preds = %20891
  br label %20893

20893:                                            ; preds = %20892
  br label %20894

20894:                                            ; preds = %20893
  %20895 = load i32, ptr @test_count, align 4, !tbaa !5
  %20896 = add nsw i32 %20895, 1
  store i32 %20896, ptr @test_count, align 4, !tbaa !5
  %20897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20898 = load i32, ptr %20897, align 4, !tbaa !5
  %20899 = call ptr @s2n_strerror_debug(i32 noundef %20898, ptr noundef @.str.4)
  %20900 = icmp eq ptr %20899, null
  br i1 %20900, label %20901, label %20954

20901:                                            ; preds = %20894
  br label %20902

20902:                                            ; preds = %20901
  br label %20903

20903:                                            ; preds = %20902
  call void @llvm.lifetime.start.p0(i64 4, ptr %425) #11
  %20904 = call ptr @__errno_location() #12
  %20905 = load i32, ptr %20904, align 4, !tbaa !5
  store i32 %20905, ptr %425, align 4, !tbaa !5
  %20906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20907 = call i32 @s2n_print_stacktrace(ptr noundef %20906)
  %20908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20909 = trunc i8 %20908 to i1
  br i1 %20909, label %20910, label %20932

20910:                                            ; preds = %20903
  %20911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20912 = call i32 @fileno(ptr noundef %20911) #11
  %20913 = call i32 @isatty(i32 noundef %20912) #11
  %20914 = icmp ne i32 %20913, 0
  br i1 %20914, label %20915, label %20932

20915:                                            ; preds = %20910
  %20916 = load i32, ptr %425, align 4, !tbaa !5
  %20917 = call ptr @__errno_location() #12
  store i32 %20916, ptr %20917, align 4, !tbaa !5
  %20918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20919 = load i32, ptr @test_count, align 4, !tbaa !5
  %20920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20921 = load i32, ptr %20920, align 4, !tbaa !5
  %20922 = call ptr @s2n_strerror(i32 noundef %20921, ptr noundef @.str.4)
  %20923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20924 = load i32, ptr %20923, align 4, !tbaa !5
  %20925 = call ptr @s2n_strerror_debug(i32 noundef %20924, ptr noundef @.str.4)
  %20926 = call ptr @__errno_location() #12
  %20927 = load i32, ptr %20926, align 4, !tbaa !5
  %20928 = call ptr @strerror(i32 noundef %20927) #11
  %20929 = call ptr @__errno_location() #12
  %20930 = load i32, ptr %20929, align 4, !tbaa !5
  %20931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20918, ptr noundef @.str.2, i32 noundef %20919, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 814, ptr noundef %20922, ptr noundef %20925, ptr noundef %20928, i32 noundef %20930) #11
  br label %20949

20932:                                            ; preds = %20910, %20903
  %20933 = load i32, ptr %425, align 4, !tbaa !5
  %20934 = call ptr @__errno_location() #12
  store i32 %20933, ptr %20934, align 4, !tbaa !5
  %20935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20936 = load i32, ptr @test_count, align 4, !tbaa !5
  %20937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20938 = load i32, ptr %20937, align 4, !tbaa !5
  %20939 = call ptr @s2n_strerror(i32 noundef %20938, ptr noundef @.str.4)
  %20940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20941 = load i32, ptr %20940, align 4, !tbaa !5
  %20942 = call ptr @s2n_strerror_debug(i32 noundef %20941, ptr noundef @.str.4)
  %20943 = call ptr @__errno_location() #12
  %20944 = load i32, ptr %20943, align 4, !tbaa !5
  %20945 = call ptr @strerror(i32 noundef %20944) #11
  %20946 = call ptr @__errno_location() #12
  %20947 = load i32, ptr %20946, align 4, !tbaa !5
  %20948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20935, ptr noundef @.str.5, i32 noundef %20936, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 814, ptr noundef %20939, ptr noundef %20942, ptr noundef %20945, i32 noundef %20947) #11
  br label %20949

20949:                                            ; preds = %20932, %20915
  call void @llvm.lifetime.end.p0(i64 4, ptr %425) #11
  br label %20950

20950:                                            ; preds = %20949
  br label %20951

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

20952:                                            ; No predecessors!
  br label %20953

20953:                                            ; preds = %20952
  br label %20954

20954:                                            ; preds = %20953, %20894
  br label %20955

20955:                                            ; preds = %20954
  br label %20956

20956:                                            ; preds = %20955
  br label %20957

20957:                                            ; preds = %20956
  br label %20958

20958:                                            ; preds = %20957
  br label %20959

20959:                                            ; preds = %20958
  %20960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %20960, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %20961 = call ptr @__errno_location() #12
  store i32 0, ptr %20961, align 4, !tbaa !5
  br label %20962

20962:                                            ; preds = %20959
  br label %20963

20963:                                            ; preds = %20962
  br label %20964

20964:                                            ; preds = %20963
  br label %20965

20965:                                            ; preds = %20964
  %20966 = load ptr, ptr %406, align 8, !tbaa !9
  %20967 = getelementptr inbounds %struct.s2n_connection, ptr %20966, i32 0, i32 31
  %20968 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %20967, i32 0, i32 5
  %20969 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %20968, i32 0, i32 0
  store ptr @s2n_secp256r1_kyber_512_r3, ptr %20969, align 8, !tbaa !88
  br label %20970

20970:                                            ; preds = %20965
  br label %20971

20971:                                            ; preds = %20970
  br label %20972

20972:                                            ; preds = %20971
  %20973 = load i32, ptr @test_count, align 4, !tbaa !5
  %20974 = add nsw i32 %20973, 1
  store i32 %20974, ptr @test_count, align 4, !tbaa !5
  %20975 = load ptr, ptr %406, align 8, !tbaa !9
  %20976 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef %20975)
  %20977 = icmp eq i32 %20976, -1
  br i1 %20977, label %21031, label %20978

20978:                                            ; preds = %20972
  br label %20979

20979:                                            ; preds = %20978
  br label %20980

20980:                                            ; preds = %20979
  call void @llvm.lifetime.start.p0(i64 4, ptr %426) #11
  %20981 = call ptr @__errno_location() #12
  %20982 = load i32, ptr %20981, align 4, !tbaa !5
  store i32 %20982, ptr %426, align 4, !tbaa !5
  %20983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20984 = call i32 @s2n_print_stacktrace(ptr noundef %20983)
  %20985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20986 = trunc i8 %20985 to i1
  br i1 %20986, label %20987, label %21009

20987:                                            ; preds = %20980
  %20988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20989 = call i32 @fileno(ptr noundef %20988) #11
  %20990 = call i32 @isatty(i32 noundef %20989) #11
  %20991 = icmp ne i32 %20990, 0
  br i1 %20991, label %20992, label %21009

20992:                                            ; preds = %20987
  %20993 = load i32, ptr %426, align 4, !tbaa !5
  %20994 = call ptr @__errno_location() #12
  store i32 %20993, ptr %20994, align 4, !tbaa !5
  %20995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20996 = load i32, ptr @test_count, align 4, !tbaa !5
  %20997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20998 = load i32, ptr %20997, align 4, !tbaa !5
  %20999 = call ptr @s2n_strerror(i32 noundef %20998, ptr noundef @.str.4)
  %21000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21001 = load i32, ptr %21000, align 4, !tbaa !5
  %21002 = call ptr @s2n_strerror_debug(i32 noundef %21001, ptr noundef @.str.4)
  %21003 = call ptr @__errno_location() #12
  %21004 = load i32, ptr %21003, align 4, !tbaa !5
  %21005 = call ptr @strerror(i32 noundef %21004) #11
  %21006 = call ptr @__errno_location() #12
  %21007 = load i32, ptr %21006, align 4, !tbaa !5
  %21008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20995, ptr noundef @.str.2, i32 noundef %20996, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 817, ptr noundef %20999, ptr noundef %21002, ptr noundef %21005, i32 noundef %21007) #11
  br label %21026

21009:                                            ; preds = %20987, %20980
  %21010 = load i32, ptr %426, align 4, !tbaa !5
  %21011 = call ptr @__errno_location() #12
  store i32 %21010, ptr %21011, align 4, !tbaa !5
  %21012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21013 = load i32, ptr @test_count, align 4, !tbaa !5
  %21014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21015 = load i32, ptr %21014, align 4, !tbaa !5
  %21016 = call ptr @s2n_strerror(i32 noundef %21015, ptr noundef @.str.4)
  %21017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21018 = load i32, ptr %21017, align 4, !tbaa !5
  %21019 = call ptr @s2n_strerror_debug(i32 noundef %21018, ptr noundef @.str.4)
  %21020 = call ptr @__errno_location() #12
  %21021 = load i32, ptr %21020, align 4, !tbaa !5
  %21022 = call ptr @strerror(i32 noundef %21021) #11
  %21023 = call ptr @__errno_location() #12
  %21024 = load i32, ptr %21023, align 4, !tbaa !5
  %21025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21012, ptr noundef @.str.5, i32 noundef %21013, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 817, ptr noundef %21016, ptr noundef %21019, ptr noundef %21022, i32 noundef %21024) #11
  br label %21026

21026:                                            ; preds = %21009, %20992
  call void @llvm.lifetime.end.p0(i64 4, ptr %426) #11
  br label %21027

21027:                                            ; preds = %21026
  br label %21028

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

21029:                                            ; No predecessors!
  br label %21030

21030:                                            ; preds = %21029
  br label %21031

21031:                                            ; preds = %21030, %20972
  br label %21032

21032:                                            ; preds = %21031
  br label %21033

21033:                                            ; preds = %21032
  br label %21034

21034:                                            ; preds = %21033
  %21035 = load i32, ptr @test_count, align 4, !tbaa !5
  %21036 = add nsw i32 %21035, 1
  store i32 %21036, ptr @test_count, align 4, !tbaa !5
  %21037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21038 = load i32, ptr %21037, align 4, !tbaa !5
  %21039 = icmp eq i32 %21038, 335544385
  br i1 %21039, label %21093, label %21040

21040:                                            ; preds = %21034
  br label %21041

21041:                                            ; preds = %21040
  br label %21042

21042:                                            ; preds = %21041
  call void @llvm.lifetime.start.p0(i64 4, ptr %427) #11
  %21043 = call ptr @__errno_location() #12
  %21044 = load i32, ptr %21043, align 4, !tbaa !5
  store i32 %21044, ptr %427, align 4, !tbaa !5
  %21045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21046 = call i32 @s2n_print_stacktrace(ptr noundef %21045)
  %21047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21048 = trunc i8 %21047 to i1
  br i1 %21048, label %21049, label %21071

21049:                                            ; preds = %21042
  %21050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21051 = call i32 @fileno(ptr noundef %21050) #11
  %21052 = call i32 @isatty(i32 noundef %21051) #11
  %21053 = icmp ne i32 %21052, 0
  br i1 %21053, label %21054, label %21071

21054:                                            ; preds = %21049
  %21055 = load i32, ptr %427, align 4, !tbaa !5
  %21056 = call ptr @__errno_location() #12
  store i32 %21055, ptr %21056, align 4, !tbaa !5
  %21057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21058 = load i32, ptr @test_count, align 4, !tbaa !5
  %21059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21060 = load i32, ptr %21059, align 4, !tbaa !5
  %21061 = call ptr @s2n_strerror(i32 noundef %21060, ptr noundef @.str.4)
  %21062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21063 = load i32, ptr %21062, align 4, !tbaa !5
  %21064 = call ptr @s2n_strerror_debug(i32 noundef %21063, ptr noundef @.str.4)
  %21065 = call ptr @__errno_location() #12
  %21066 = load i32, ptr %21065, align 4, !tbaa !5
  %21067 = call ptr @strerror(i32 noundef %21066) #11
  %21068 = call ptr @__errno_location() #12
  %21069 = load i32, ptr %21068, align 4, !tbaa !5
  %21070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21057, ptr noundef @.str.2, i32 noundef %21058, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 817, ptr noundef %21061, ptr noundef %21064, ptr noundef %21067, i32 noundef %21069) #11
  br label %21088

21071:                                            ; preds = %21049, %21042
  %21072 = load i32, ptr %427, align 4, !tbaa !5
  %21073 = call ptr @__errno_location() #12
  store i32 %21072, ptr %21073, align 4, !tbaa !5
  %21074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21075 = load i32, ptr @test_count, align 4, !tbaa !5
  %21076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21077 = load i32, ptr %21076, align 4, !tbaa !5
  %21078 = call ptr @s2n_strerror(i32 noundef %21077, ptr noundef @.str.4)
  %21079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21080 = load i32, ptr %21079, align 4, !tbaa !5
  %21081 = call ptr @s2n_strerror_debug(i32 noundef %21080, ptr noundef @.str.4)
  %21082 = call ptr @__errno_location() #12
  %21083 = load i32, ptr %21082, align 4, !tbaa !5
  %21084 = call ptr @strerror(i32 noundef %21083) #11
  %21085 = call ptr @__errno_location() #12
  %21086 = load i32, ptr %21085, align 4, !tbaa !5
  %21087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21074, ptr noundef @.str.5, i32 noundef %21075, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 817, ptr noundef %21078, ptr noundef %21081, ptr noundef %21084, i32 noundef %21086) #11
  br label %21088

21088:                                            ; preds = %21071, %21054
  call void @llvm.lifetime.end.p0(i64 4, ptr %427) #11
  br label %21089

21089:                                            ; preds = %21088
  br label %21090

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

21091:                                            ; No predecessors!
  br label %21092

21092:                                            ; preds = %21091
  br label %21093

21093:                                            ; preds = %21092, %21034
  br label %21094

21094:                                            ; preds = %21093
  br label %21095

21095:                                            ; preds = %21094
  br label %21096

21096:                                            ; preds = %21095
  %21097 = load i32, ptr @test_count, align 4, !tbaa !5
  %21098 = add nsw i32 %21097, 1
  store i32 %21098, ptr @test_count, align 4, !tbaa !5
  %21099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21100 = load i32, ptr %21099, align 4, !tbaa !5
  %21101 = call ptr @s2n_strerror_debug(i32 noundef %21100, ptr noundef @.str.4)
  %21102 = icmp eq ptr %21101, null
  br i1 %21102, label %21103, label %21156

21103:                                            ; preds = %21096
  br label %21104

21104:                                            ; preds = %21103
  br label %21105

21105:                                            ; preds = %21104
  call void @llvm.lifetime.start.p0(i64 4, ptr %428) #11
  %21106 = call ptr @__errno_location() #12
  %21107 = load i32, ptr %21106, align 4, !tbaa !5
  store i32 %21107, ptr %428, align 4, !tbaa !5
  %21108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21109 = call i32 @s2n_print_stacktrace(ptr noundef %21108)
  %21110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21111 = trunc i8 %21110 to i1
  br i1 %21111, label %21112, label %21134

21112:                                            ; preds = %21105
  %21113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21114 = call i32 @fileno(ptr noundef %21113) #11
  %21115 = call i32 @isatty(i32 noundef %21114) #11
  %21116 = icmp ne i32 %21115, 0
  br i1 %21116, label %21117, label %21134

21117:                                            ; preds = %21112
  %21118 = load i32, ptr %428, align 4, !tbaa !5
  %21119 = call ptr @__errno_location() #12
  store i32 %21118, ptr %21119, align 4, !tbaa !5
  %21120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21121 = load i32, ptr @test_count, align 4, !tbaa !5
  %21122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21123 = load i32, ptr %21122, align 4, !tbaa !5
  %21124 = call ptr @s2n_strerror(i32 noundef %21123, ptr noundef @.str.4)
  %21125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21126 = load i32, ptr %21125, align 4, !tbaa !5
  %21127 = call ptr @s2n_strerror_debug(i32 noundef %21126, ptr noundef @.str.4)
  %21128 = call ptr @__errno_location() #12
  %21129 = load i32, ptr %21128, align 4, !tbaa !5
  %21130 = call ptr @strerror(i32 noundef %21129) #11
  %21131 = call ptr @__errno_location() #12
  %21132 = load i32, ptr %21131, align 4, !tbaa !5
  %21133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21120, ptr noundef @.str.2, i32 noundef %21121, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 817, ptr noundef %21124, ptr noundef %21127, ptr noundef %21130, i32 noundef %21132) #11
  br label %21151

21134:                                            ; preds = %21112, %21105
  %21135 = load i32, ptr %428, align 4, !tbaa !5
  %21136 = call ptr @__errno_location() #12
  store i32 %21135, ptr %21136, align 4, !tbaa !5
  %21137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21138 = load i32, ptr @test_count, align 4, !tbaa !5
  %21139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21140 = load i32, ptr %21139, align 4, !tbaa !5
  %21141 = call ptr @s2n_strerror(i32 noundef %21140, ptr noundef @.str.4)
  %21142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21143 = load i32, ptr %21142, align 4, !tbaa !5
  %21144 = call ptr @s2n_strerror_debug(i32 noundef %21143, ptr noundef @.str.4)
  %21145 = call ptr @__errno_location() #12
  %21146 = load i32, ptr %21145, align 4, !tbaa !5
  %21147 = call ptr @strerror(i32 noundef %21146) #11
  %21148 = call ptr @__errno_location() #12
  %21149 = load i32, ptr %21148, align 4, !tbaa !5
  %21150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21137, ptr noundef @.str.5, i32 noundef %21138, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 817, ptr noundef %21141, ptr noundef %21144, ptr noundef %21147, i32 noundef %21149) #11
  br label %21151

21151:                                            ; preds = %21134, %21117
  call void @llvm.lifetime.end.p0(i64 4, ptr %428) #11
  br label %21152

21152:                                            ; preds = %21151
  br label %21153

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

21154:                                            ; No predecessors!
  br label %21155

21155:                                            ; preds = %21154
  br label %21156

21156:                                            ; preds = %21155, %21096
  br label %21157

21157:                                            ; preds = %21156
  br label %21158

21158:                                            ; preds = %21157
  br label %21159

21159:                                            ; preds = %21158
  br label %21160

21160:                                            ; preds = %21159
  br label %21161

21161:                                            ; preds = %21160
  %21162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %21162, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %21163 = call ptr @__errno_location() #12
  store i32 0, ptr %21163, align 4, !tbaa !5
  br label %21164

21164:                                            ; preds = %21161
  br label %21165

21165:                                            ; preds = %21164
  br label %21166

21166:                                            ; preds = %21165
  br label %21167

21167:                                            ; preds = %21166
  %21168 = load ptr, ptr getelementptr inbounds (%struct.s2n_kem_group, ptr @s2n_secp256r1_kyber_512_r3, i32 0, i32 2), align 8, !tbaa !89
  %21169 = load ptr, ptr %406, align 8, !tbaa !9
  %21170 = getelementptr inbounds %struct.s2n_connection, ptr %21169, i32 0, i32 31
  %21171 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %21170, i32 0, i32 5
  %21172 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %21171, i32 0, i32 2
  %21173 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %21172, i32 0, i32 0
  store ptr %21168, ptr %21173, align 8, !tbaa !90
  br label %21174

21174:                                            ; preds = %21167
  br label %21175

21175:                                            ; preds = %21174
  br label %21176

21176:                                            ; preds = %21175
  %21177 = load i32, ptr @test_count, align 4, !tbaa !5
  %21178 = add nsw i32 %21177, 1
  store i32 %21178, ptr @test_count, align 4, !tbaa !5
  %21179 = load ptr, ptr %406, align 8, !tbaa !9
  %21180 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef %21179)
  %21181 = icmp eq i32 %21180, -1
  br i1 %21181, label %21235, label %21182

21182:                                            ; preds = %21176
  br label %21183

21183:                                            ; preds = %21182
  br label %21184

21184:                                            ; preds = %21183
  call void @llvm.lifetime.start.p0(i64 4, ptr %429) #11
  %21185 = call ptr @__errno_location() #12
  %21186 = load i32, ptr %21185, align 4, !tbaa !5
  store i32 %21186, ptr %429, align 4, !tbaa !5
  %21187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21188 = call i32 @s2n_print_stacktrace(ptr noundef %21187)
  %21189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21190 = trunc i8 %21189 to i1
  br i1 %21190, label %21191, label %21213

21191:                                            ; preds = %21184
  %21192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21193 = call i32 @fileno(ptr noundef %21192) #11
  %21194 = call i32 @isatty(i32 noundef %21193) #11
  %21195 = icmp ne i32 %21194, 0
  br i1 %21195, label %21196, label %21213

21196:                                            ; preds = %21191
  %21197 = load i32, ptr %429, align 4, !tbaa !5
  %21198 = call ptr @__errno_location() #12
  store i32 %21197, ptr %21198, align 4, !tbaa !5
  %21199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21200 = load i32, ptr @test_count, align 4, !tbaa !5
  %21201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21202 = load i32, ptr %21201, align 4, !tbaa !5
  %21203 = call ptr @s2n_strerror(i32 noundef %21202, ptr noundef @.str.4)
  %21204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21205 = load i32, ptr %21204, align 4, !tbaa !5
  %21206 = call ptr @s2n_strerror_debug(i32 noundef %21205, ptr noundef @.str.4)
  %21207 = call ptr @__errno_location() #12
  %21208 = load i32, ptr %21207, align 4, !tbaa !5
  %21209 = call ptr @strerror(i32 noundef %21208) #11
  %21210 = call ptr @__errno_location() #12
  %21211 = load i32, ptr %21210, align 4, !tbaa !5
  %21212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21199, ptr noundef @.str.2, i32 noundef %21200, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 820, ptr noundef %21203, ptr noundef %21206, ptr noundef %21209, i32 noundef %21211) #11
  br label %21230

21213:                                            ; preds = %21191, %21184
  %21214 = load i32, ptr %429, align 4, !tbaa !5
  %21215 = call ptr @__errno_location() #12
  store i32 %21214, ptr %21215, align 4, !tbaa !5
  %21216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21217 = load i32, ptr @test_count, align 4, !tbaa !5
  %21218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21219 = load i32, ptr %21218, align 4, !tbaa !5
  %21220 = call ptr @s2n_strerror(i32 noundef %21219, ptr noundef @.str.4)
  %21221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21222 = load i32, ptr %21221, align 4, !tbaa !5
  %21223 = call ptr @s2n_strerror_debug(i32 noundef %21222, ptr noundef @.str.4)
  %21224 = call ptr @__errno_location() #12
  %21225 = load i32, ptr %21224, align 4, !tbaa !5
  %21226 = call ptr @strerror(i32 noundef %21225) #11
  %21227 = call ptr @__errno_location() #12
  %21228 = load i32, ptr %21227, align 4, !tbaa !5
  %21229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21216, ptr noundef @.str.5, i32 noundef %21217, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 820, ptr noundef %21220, ptr noundef %21223, ptr noundef %21226, i32 noundef %21228) #11
  br label %21230

21230:                                            ; preds = %21213, %21196
  call void @llvm.lifetime.end.p0(i64 4, ptr %429) #11
  br label %21231

21231:                                            ; preds = %21230
  br label %21232

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

21233:                                            ; No predecessors!
  br label %21234

21234:                                            ; preds = %21233
  br label %21235

21235:                                            ; preds = %21234, %21176
  br label %21236

21236:                                            ; preds = %21235
  br label %21237

21237:                                            ; preds = %21236
  br label %21238

21238:                                            ; preds = %21237
  %21239 = load i32, ptr @test_count, align 4, !tbaa !5
  %21240 = add nsw i32 %21239, 1
  store i32 %21240, ptr @test_count, align 4, !tbaa !5
  %21241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21242 = load i32, ptr %21241, align 4, !tbaa !5
  %21243 = icmp eq i32 %21242, 335544385
  br i1 %21243, label %21297, label %21244

21244:                                            ; preds = %21238
  br label %21245

21245:                                            ; preds = %21244
  br label %21246

21246:                                            ; preds = %21245
  call void @llvm.lifetime.start.p0(i64 4, ptr %430) #11
  %21247 = call ptr @__errno_location() #12
  %21248 = load i32, ptr %21247, align 4, !tbaa !5
  store i32 %21248, ptr %430, align 4, !tbaa !5
  %21249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21250 = call i32 @s2n_print_stacktrace(ptr noundef %21249)
  %21251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21252 = trunc i8 %21251 to i1
  br i1 %21252, label %21253, label %21275

21253:                                            ; preds = %21246
  %21254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21255 = call i32 @fileno(ptr noundef %21254) #11
  %21256 = call i32 @isatty(i32 noundef %21255) #11
  %21257 = icmp ne i32 %21256, 0
  br i1 %21257, label %21258, label %21275

21258:                                            ; preds = %21253
  %21259 = load i32, ptr %430, align 4, !tbaa !5
  %21260 = call ptr @__errno_location() #12
  store i32 %21259, ptr %21260, align 4, !tbaa !5
  %21261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21262 = load i32, ptr @test_count, align 4, !tbaa !5
  %21263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21264 = load i32, ptr %21263, align 4, !tbaa !5
  %21265 = call ptr @s2n_strerror(i32 noundef %21264, ptr noundef @.str.4)
  %21266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21267 = load i32, ptr %21266, align 4, !tbaa !5
  %21268 = call ptr @s2n_strerror_debug(i32 noundef %21267, ptr noundef @.str.4)
  %21269 = call ptr @__errno_location() #12
  %21270 = load i32, ptr %21269, align 4, !tbaa !5
  %21271 = call ptr @strerror(i32 noundef %21270) #11
  %21272 = call ptr @__errno_location() #12
  %21273 = load i32, ptr %21272, align 4, !tbaa !5
  %21274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21261, ptr noundef @.str.2, i32 noundef %21262, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 820, ptr noundef %21265, ptr noundef %21268, ptr noundef %21271, i32 noundef %21273) #11
  br label %21292

21275:                                            ; preds = %21253, %21246
  %21276 = load i32, ptr %430, align 4, !tbaa !5
  %21277 = call ptr @__errno_location() #12
  store i32 %21276, ptr %21277, align 4, !tbaa !5
  %21278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21279 = load i32, ptr @test_count, align 4, !tbaa !5
  %21280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21281 = load i32, ptr %21280, align 4, !tbaa !5
  %21282 = call ptr @s2n_strerror(i32 noundef %21281, ptr noundef @.str.4)
  %21283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21284 = load i32, ptr %21283, align 4, !tbaa !5
  %21285 = call ptr @s2n_strerror_debug(i32 noundef %21284, ptr noundef @.str.4)
  %21286 = call ptr @__errno_location() #12
  %21287 = load i32, ptr %21286, align 4, !tbaa !5
  %21288 = call ptr @strerror(i32 noundef %21287) #11
  %21289 = call ptr @__errno_location() #12
  %21290 = load i32, ptr %21289, align 4, !tbaa !5
  %21291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21278, ptr noundef @.str.5, i32 noundef %21279, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 820, ptr noundef %21282, ptr noundef %21285, ptr noundef %21288, i32 noundef %21290) #11
  br label %21292

21292:                                            ; preds = %21275, %21258
  call void @llvm.lifetime.end.p0(i64 4, ptr %430) #11
  br label %21293

21293:                                            ; preds = %21292
  br label %21294

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

21295:                                            ; No predecessors!
  br label %21296

21296:                                            ; preds = %21295
  br label %21297

21297:                                            ; preds = %21296, %21238
  br label %21298

21298:                                            ; preds = %21297
  br label %21299

21299:                                            ; preds = %21298
  br label %21300

21300:                                            ; preds = %21299
  %21301 = load i32, ptr @test_count, align 4, !tbaa !5
  %21302 = add nsw i32 %21301, 1
  store i32 %21302, ptr @test_count, align 4, !tbaa !5
  %21303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21304 = load i32, ptr %21303, align 4, !tbaa !5
  %21305 = call ptr @s2n_strerror_debug(i32 noundef %21304, ptr noundef @.str.4)
  %21306 = icmp eq ptr %21305, null
  br i1 %21306, label %21307, label %21360

21307:                                            ; preds = %21300
  br label %21308

21308:                                            ; preds = %21307
  br label %21309

21309:                                            ; preds = %21308
  call void @llvm.lifetime.start.p0(i64 4, ptr %431) #11
  %21310 = call ptr @__errno_location() #12
  %21311 = load i32, ptr %21310, align 4, !tbaa !5
  store i32 %21311, ptr %431, align 4, !tbaa !5
  %21312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21313 = call i32 @s2n_print_stacktrace(ptr noundef %21312)
  %21314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21315 = trunc i8 %21314 to i1
  br i1 %21315, label %21316, label %21338

21316:                                            ; preds = %21309
  %21317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21318 = call i32 @fileno(ptr noundef %21317) #11
  %21319 = call i32 @isatty(i32 noundef %21318) #11
  %21320 = icmp ne i32 %21319, 0
  br i1 %21320, label %21321, label %21338

21321:                                            ; preds = %21316
  %21322 = load i32, ptr %431, align 4, !tbaa !5
  %21323 = call ptr @__errno_location() #12
  store i32 %21322, ptr %21323, align 4, !tbaa !5
  %21324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21325 = load i32, ptr @test_count, align 4, !tbaa !5
  %21326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21327 = load i32, ptr %21326, align 4, !tbaa !5
  %21328 = call ptr @s2n_strerror(i32 noundef %21327, ptr noundef @.str.4)
  %21329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21330 = load i32, ptr %21329, align 4, !tbaa !5
  %21331 = call ptr @s2n_strerror_debug(i32 noundef %21330, ptr noundef @.str.4)
  %21332 = call ptr @__errno_location() #12
  %21333 = load i32, ptr %21332, align 4, !tbaa !5
  %21334 = call ptr @strerror(i32 noundef %21333) #11
  %21335 = call ptr @__errno_location() #12
  %21336 = load i32, ptr %21335, align 4, !tbaa !5
  %21337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21324, ptr noundef @.str.2, i32 noundef %21325, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 820, ptr noundef %21328, ptr noundef %21331, ptr noundef %21334, i32 noundef %21336) #11
  br label %21355

21338:                                            ; preds = %21316, %21309
  %21339 = load i32, ptr %431, align 4, !tbaa !5
  %21340 = call ptr @__errno_location() #12
  store i32 %21339, ptr %21340, align 4, !tbaa !5
  %21341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21342 = load i32, ptr @test_count, align 4, !tbaa !5
  %21343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21344 = load i32, ptr %21343, align 4, !tbaa !5
  %21345 = call ptr @s2n_strerror(i32 noundef %21344, ptr noundef @.str.4)
  %21346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21347 = load i32, ptr %21346, align 4, !tbaa !5
  %21348 = call ptr @s2n_strerror_debug(i32 noundef %21347, ptr noundef @.str.4)
  %21349 = call ptr @__errno_location() #12
  %21350 = load i32, ptr %21349, align 4, !tbaa !5
  %21351 = call ptr @strerror(i32 noundef %21350) #11
  %21352 = call ptr @__errno_location() #12
  %21353 = load i32, ptr %21352, align 4, !tbaa !5
  %21354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21341, ptr noundef @.str.5, i32 noundef %21342, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 820, ptr noundef %21345, ptr noundef %21348, ptr noundef %21351, i32 noundef %21353) #11
  br label %21355

21355:                                            ; preds = %21338, %21321
  call void @llvm.lifetime.end.p0(i64 4, ptr %431) #11
  br label %21356

21356:                                            ; preds = %21355
  br label %21357

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

21358:                                            ; No predecessors!
  br label %21359

21359:                                            ; preds = %21358
  br label %21360

21360:                                            ; preds = %21359, %21300
  br label %21361

21361:                                            ; preds = %21360
  br label %21362

21362:                                            ; preds = %21361
  br label %21363

21363:                                            ; preds = %21362
  br label %21364

21364:                                            ; preds = %21363
  br label %21365

21365:                                            ; preds = %21364
  %21366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %21366, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %21367 = call ptr @__errno_location() #12
  store i32 0, ptr %21367, align 4, !tbaa !5
  br label %21368

21368:                                            ; preds = %21365
  br label %21369

21369:                                            ; preds = %21368
  br label %21370

21370:                                            ; preds = %21369
  br label %21371

21371:                                            ; preds = %21370
  br label %21372

21372:                                            ; preds = %21371
  %21373 = load i32, ptr @test_count, align 4, !tbaa !5
  %21374 = add nsw i32 %21373, 1
  store i32 %21374, ptr @test_count, align 4, !tbaa !5
  %21375 = load ptr, ptr %406, align 8, !tbaa !9
  %21376 = getelementptr inbounds %struct.s2n_connection, ptr %21375, i32 0, i32 31
  %21377 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %21376, i32 0, i32 5
  %21378 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %21377, i32 0, i32 2
  %21379 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %21378)
  %21380 = icmp eq i32 %21379, -1
  br i1 %21380, label %21381, label %21434

21381:                                            ; preds = %21372
  br label %21382

21382:                                            ; preds = %21381
  br label %21383

21383:                                            ; preds = %21382
  call void @llvm.lifetime.start.p0(i64 4, ptr %432) #11
  %21384 = call ptr @__errno_location() #12
  %21385 = load i32, ptr %21384, align 4, !tbaa !5
  store i32 %21385, ptr %432, align 4, !tbaa !5
  %21386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21387 = call i32 @s2n_print_stacktrace(ptr noundef %21386)
  %21388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21389 = trunc i8 %21388 to i1
  br i1 %21389, label %21390, label %21412

21390:                                            ; preds = %21383
  %21391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21392 = call i32 @fileno(ptr noundef %21391) #11
  %21393 = call i32 @isatty(i32 noundef %21392) #11
  %21394 = icmp ne i32 %21393, 0
  br i1 %21394, label %21395, label %21412

21395:                                            ; preds = %21390
  %21396 = load i32, ptr %432, align 4, !tbaa !5
  %21397 = call ptr @__errno_location() #12
  store i32 %21396, ptr %21397, align 4, !tbaa !5
  %21398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21399 = load i32, ptr @test_count, align 4, !tbaa !5
  %21400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21401 = load i32, ptr %21400, align 4, !tbaa !5
  %21402 = call ptr @s2n_strerror(i32 noundef %21401, ptr noundef @.str.4)
  %21403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21404 = load i32, ptr %21403, align 4, !tbaa !5
  %21405 = call ptr @s2n_strerror_debug(i32 noundef %21404, ptr noundef @.str.4)
  %21406 = call ptr @__errno_location() #12
  %21407 = load i32, ptr %21406, align 4, !tbaa !5
  %21408 = call ptr @strerror(i32 noundef %21407) #11
  %21409 = call ptr @__errno_location() #12
  %21410 = load i32, ptr %21409, align 4, !tbaa !5
  %21411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21398, ptr noundef @.str.2, i32 noundef %21399, ptr noundef @.str.177, ptr noundef @.str.1, i32 noundef 822, ptr noundef %21402, ptr noundef %21405, ptr noundef %21408, i32 noundef %21410) #11
  br label %21429

21412:                                            ; preds = %21390, %21383
  %21413 = load i32, ptr %432, align 4, !tbaa !5
  %21414 = call ptr @__errno_location() #12
  store i32 %21413, ptr %21414, align 4, !tbaa !5
  %21415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21416 = load i32, ptr @test_count, align 4, !tbaa !5
  %21417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21418 = load i32, ptr %21417, align 4, !tbaa !5
  %21419 = call ptr @s2n_strerror(i32 noundef %21418, ptr noundef @.str.4)
  %21420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21421 = load i32, ptr %21420, align 4, !tbaa !5
  %21422 = call ptr @s2n_strerror_debug(i32 noundef %21421, ptr noundef @.str.4)
  %21423 = call ptr @__errno_location() #12
  %21424 = load i32, ptr %21423, align 4, !tbaa !5
  %21425 = call ptr @strerror(i32 noundef %21424) #11
  %21426 = call ptr @__errno_location() #12
  %21427 = load i32, ptr %21426, align 4, !tbaa !5
  %21428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21415, ptr noundef @.str.5, i32 noundef %21416, ptr noundef @.str.177, ptr noundef @.str.1, i32 noundef 822, ptr noundef %21419, ptr noundef %21422, ptr noundef %21425, i32 noundef %21427) #11
  br label %21429

21429:                                            ; preds = %21412, %21395
  call void @llvm.lifetime.end.p0(i64 4, ptr %432) #11
  br label %21430

21430:                                            ; preds = %21429
  br label %21431

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

21432:                                            ; No predecessors!
  br label %21433

21433:                                            ; preds = %21432
  br label %21434

21434:                                            ; preds = %21433, %21372
  br label %21435

21435:                                            ; preds = %21434
  br label %21436

21436:                                            ; preds = %21435
  br label %21437

21437:                                            ; preds = %21436
  br label %21438

21438:                                            ; preds = %21437
  br label %21439

21439:                                            ; preds = %21438
  %21440 = load i32, ptr @test_count, align 4, !tbaa !5
  %21441 = add nsw i32 %21440, 1
  store i32 %21441, ptr @test_count, align 4, !tbaa !5
  %21442 = load ptr, ptr %406, align 8, !tbaa !9
  %21443 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef %21442)
  %21444 = icmp eq i32 %21443, -1
  br i1 %21444, label %21498, label %21445

21445:                                            ; preds = %21439
  br label %21446

21446:                                            ; preds = %21445
  br label %21447

21447:                                            ; preds = %21446
  call void @llvm.lifetime.start.p0(i64 4, ptr %433) #11
  %21448 = call ptr @__errno_location() #12
  %21449 = load i32, ptr %21448, align 4, !tbaa !5
  store i32 %21449, ptr %433, align 4, !tbaa !5
  %21450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21451 = call i32 @s2n_print_stacktrace(ptr noundef %21450)
  %21452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21453 = trunc i8 %21452 to i1
  br i1 %21453, label %21454, label %21476

21454:                                            ; preds = %21447
  %21455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21456 = call i32 @fileno(ptr noundef %21455) #11
  %21457 = call i32 @isatty(i32 noundef %21456) #11
  %21458 = icmp ne i32 %21457, 0
  br i1 %21458, label %21459, label %21476

21459:                                            ; preds = %21454
  %21460 = load i32, ptr %433, align 4, !tbaa !5
  %21461 = call ptr @__errno_location() #12
  store i32 %21460, ptr %21461, align 4, !tbaa !5
  %21462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21463 = load i32, ptr @test_count, align 4, !tbaa !5
  %21464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21465 = load i32, ptr %21464, align 4, !tbaa !5
  %21466 = call ptr @s2n_strerror(i32 noundef %21465, ptr noundef @.str.4)
  %21467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21468 = load i32, ptr %21467, align 4, !tbaa !5
  %21469 = call ptr @s2n_strerror_debug(i32 noundef %21468, ptr noundef @.str.4)
  %21470 = call ptr @__errno_location() #12
  %21471 = load i32, ptr %21470, align 4, !tbaa !5
  %21472 = call ptr @strerror(i32 noundef %21471) #11
  %21473 = call ptr @__errno_location() #12
  %21474 = load i32, ptr %21473, align 4, !tbaa !5
  %21475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21462, ptr noundef @.str.2, i32 noundef %21463, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 823, ptr noundef %21466, ptr noundef %21469, ptr noundef %21472, i32 noundef %21474) #11
  br label %21493

21476:                                            ; preds = %21454, %21447
  %21477 = load i32, ptr %433, align 4, !tbaa !5
  %21478 = call ptr @__errno_location() #12
  store i32 %21477, ptr %21478, align 4, !tbaa !5
  %21479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21480 = load i32, ptr @test_count, align 4, !tbaa !5
  %21481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21482 = load i32, ptr %21481, align 4, !tbaa !5
  %21483 = call ptr @s2n_strerror(i32 noundef %21482, ptr noundef @.str.4)
  %21484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21485 = load i32, ptr %21484, align 4, !tbaa !5
  %21486 = call ptr @s2n_strerror_debug(i32 noundef %21485, ptr noundef @.str.4)
  %21487 = call ptr @__errno_location() #12
  %21488 = load i32, ptr %21487, align 4, !tbaa !5
  %21489 = call ptr @strerror(i32 noundef %21488) #11
  %21490 = call ptr @__errno_location() #12
  %21491 = load i32, ptr %21490, align 4, !tbaa !5
  %21492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21479, ptr noundef @.str.5, i32 noundef %21480, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 823, ptr noundef %21483, ptr noundef %21486, ptr noundef %21489, i32 noundef %21491) #11
  br label %21493

21493:                                            ; preds = %21476, %21459
  call void @llvm.lifetime.end.p0(i64 4, ptr %433) #11
  br label %21494

21494:                                            ; preds = %21493
  br label %21495

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

21496:                                            ; No predecessors!
  br label %21497

21497:                                            ; preds = %21496
  br label %21498

21498:                                            ; preds = %21497, %21439
  br label %21499

21499:                                            ; preds = %21498
  br label %21500

21500:                                            ; preds = %21499
  br label %21501

21501:                                            ; preds = %21500
  %21502 = load i32, ptr @test_count, align 4, !tbaa !5
  %21503 = add nsw i32 %21502, 1
  store i32 %21503, ptr @test_count, align 4, !tbaa !5
  %21504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21505 = load i32, ptr %21504, align 4, !tbaa !5
  %21506 = icmp eq i32 %21505, 335544385
  br i1 %21506, label %21560, label %21507

21507:                                            ; preds = %21501
  br label %21508

21508:                                            ; preds = %21507
  br label %21509

21509:                                            ; preds = %21508
  call void @llvm.lifetime.start.p0(i64 4, ptr %434) #11
  %21510 = call ptr @__errno_location() #12
  %21511 = load i32, ptr %21510, align 4, !tbaa !5
  store i32 %21511, ptr %434, align 4, !tbaa !5
  %21512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21513 = call i32 @s2n_print_stacktrace(ptr noundef %21512)
  %21514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21515 = trunc i8 %21514 to i1
  br i1 %21515, label %21516, label %21538

21516:                                            ; preds = %21509
  %21517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21518 = call i32 @fileno(ptr noundef %21517) #11
  %21519 = call i32 @isatty(i32 noundef %21518) #11
  %21520 = icmp ne i32 %21519, 0
  br i1 %21520, label %21521, label %21538

21521:                                            ; preds = %21516
  %21522 = load i32, ptr %434, align 4, !tbaa !5
  %21523 = call ptr @__errno_location() #12
  store i32 %21522, ptr %21523, align 4, !tbaa !5
  %21524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21525 = load i32, ptr @test_count, align 4, !tbaa !5
  %21526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21527 = load i32, ptr %21526, align 4, !tbaa !5
  %21528 = call ptr @s2n_strerror(i32 noundef %21527, ptr noundef @.str.4)
  %21529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21530 = load i32, ptr %21529, align 4, !tbaa !5
  %21531 = call ptr @s2n_strerror_debug(i32 noundef %21530, ptr noundef @.str.4)
  %21532 = call ptr @__errno_location() #12
  %21533 = load i32, ptr %21532, align 4, !tbaa !5
  %21534 = call ptr @strerror(i32 noundef %21533) #11
  %21535 = call ptr @__errno_location() #12
  %21536 = load i32, ptr %21535, align 4, !tbaa !5
  %21537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21524, ptr noundef @.str.2, i32 noundef %21525, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 823, ptr noundef %21528, ptr noundef %21531, ptr noundef %21534, i32 noundef %21536) #11
  br label %21555

21538:                                            ; preds = %21516, %21509
  %21539 = load i32, ptr %434, align 4, !tbaa !5
  %21540 = call ptr @__errno_location() #12
  store i32 %21539, ptr %21540, align 4, !tbaa !5
  %21541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21542 = load i32, ptr @test_count, align 4, !tbaa !5
  %21543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21544 = load i32, ptr %21543, align 4, !tbaa !5
  %21545 = call ptr @s2n_strerror(i32 noundef %21544, ptr noundef @.str.4)
  %21546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21547 = load i32, ptr %21546, align 4, !tbaa !5
  %21548 = call ptr @s2n_strerror_debug(i32 noundef %21547, ptr noundef @.str.4)
  %21549 = call ptr @__errno_location() #12
  %21550 = load i32, ptr %21549, align 4, !tbaa !5
  %21551 = call ptr @strerror(i32 noundef %21550) #11
  %21552 = call ptr @__errno_location() #12
  %21553 = load i32, ptr %21552, align 4, !tbaa !5
  %21554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21541, ptr noundef @.str.5, i32 noundef %21542, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 823, ptr noundef %21545, ptr noundef %21548, ptr noundef %21551, i32 noundef %21553) #11
  br label %21555

21555:                                            ; preds = %21538, %21521
  call void @llvm.lifetime.end.p0(i64 4, ptr %434) #11
  br label %21556

21556:                                            ; preds = %21555
  br label %21557

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

21558:                                            ; No predecessors!
  br label %21559

21559:                                            ; preds = %21558
  br label %21560

21560:                                            ; preds = %21559, %21501
  br label %21561

21561:                                            ; preds = %21560
  br label %21562

21562:                                            ; preds = %21561
  br label %21563

21563:                                            ; preds = %21562
  %21564 = load i32, ptr @test_count, align 4, !tbaa !5
  %21565 = add nsw i32 %21564, 1
  store i32 %21565, ptr @test_count, align 4, !tbaa !5
  %21566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21567 = load i32, ptr %21566, align 4, !tbaa !5
  %21568 = call ptr @s2n_strerror_debug(i32 noundef %21567, ptr noundef @.str.4)
  %21569 = icmp eq ptr %21568, null
  br i1 %21569, label %21570, label %21623

21570:                                            ; preds = %21563
  br label %21571

21571:                                            ; preds = %21570
  br label %21572

21572:                                            ; preds = %21571
  call void @llvm.lifetime.start.p0(i64 4, ptr %435) #11
  %21573 = call ptr @__errno_location() #12
  %21574 = load i32, ptr %21573, align 4, !tbaa !5
  store i32 %21574, ptr %435, align 4, !tbaa !5
  %21575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21576 = call i32 @s2n_print_stacktrace(ptr noundef %21575)
  %21577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21578 = trunc i8 %21577 to i1
  br i1 %21578, label %21579, label %21601

21579:                                            ; preds = %21572
  %21580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21581 = call i32 @fileno(ptr noundef %21580) #11
  %21582 = call i32 @isatty(i32 noundef %21581) #11
  %21583 = icmp ne i32 %21582, 0
  br i1 %21583, label %21584, label %21601

21584:                                            ; preds = %21579
  %21585 = load i32, ptr %435, align 4, !tbaa !5
  %21586 = call ptr @__errno_location() #12
  store i32 %21585, ptr %21586, align 4, !tbaa !5
  %21587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21588 = load i32, ptr @test_count, align 4, !tbaa !5
  %21589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21590 = load i32, ptr %21589, align 4, !tbaa !5
  %21591 = call ptr @s2n_strerror(i32 noundef %21590, ptr noundef @.str.4)
  %21592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21593 = load i32, ptr %21592, align 4, !tbaa !5
  %21594 = call ptr @s2n_strerror_debug(i32 noundef %21593, ptr noundef @.str.4)
  %21595 = call ptr @__errno_location() #12
  %21596 = load i32, ptr %21595, align 4, !tbaa !5
  %21597 = call ptr @strerror(i32 noundef %21596) #11
  %21598 = call ptr @__errno_location() #12
  %21599 = load i32, ptr %21598, align 4, !tbaa !5
  %21600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21587, ptr noundef @.str.2, i32 noundef %21588, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 823, ptr noundef %21591, ptr noundef %21594, ptr noundef %21597, i32 noundef %21599) #11
  br label %21618

21601:                                            ; preds = %21579, %21572
  %21602 = load i32, ptr %435, align 4, !tbaa !5
  %21603 = call ptr @__errno_location() #12
  store i32 %21602, ptr %21603, align 4, !tbaa !5
  %21604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21605 = load i32, ptr @test_count, align 4, !tbaa !5
  %21606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21607 = load i32, ptr %21606, align 4, !tbaa !5
  %21608 = call ptr @s2n_strerror(i32 noundef %21607, ptr noundef @.str.4)
  %21609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21610 = load i32, ptr %21609, align 4, !tbaa !5
  %21611 = call ptr @s2n_strerror_debug(i32 noundef %21610, ptr noundef @.str.4)
  %21612 = call ptr @__errno_location() #12
  %21613 = load i32, ptr %21612, align 4, !tbaa !5
  %21614 = call ptr @strerror(i32 noundef %21613) #11
  %21615 = call ptr @__errno_location() #12
  %21616 = load i32, ptr %21615, align 4, !tbaa !5
  %21617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21604, ptr noundef @.str.5, i32 noundef %21605, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 823, ptr noundef %21608, ptr noundef %21611, ptr noundef %21614, i32 noundef %21616) #11
  br label %21618

21618:                                            ; preds = %21601, %21584
  call void @llvm.lifetime.end.p0(i64 4, ptr %435) #11
  br label %21619

21619:                                            ; preds = %21618
  br label %21620

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

21621:                                            ; No predecessors!
  br label %21622

21622:                                            ; preds = %21621
  br label %21623

21623:                                            ; preds = %21622, %21563
  br label %21624

21624:                                            ; preds = %21623
  br label %21625

21625:                                            ; preds = %21624
  br label %21626

21626:                                            ; preds = %21625
  br label %21627

21627:                                            ; preds = %21626
  br label %21628

21628:                                            ; preds = %21627
  %21629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %21629, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %21630 = call ptr @__errno_location() #12
  store i32 0, ptr %21630, align 4, !tbaa !5
  br label %21631

21631:                                            ; preds = %21628
  br label %21632

21632:                                            ; preds = %21631
  br label %21633

21633:                                            ; preds = %21632
  br label %21634

21634:                                            ; preds = %21633
  %21635 = load ptr, ptr getelementptr inbounds (%struct.s2n_kem_group, ptr @s2n_secp256r1_kyber_512_r3, i32 0, i32 3), align 8, !tbaa !91
  %21636 = load ptr, ptr %406, align 8, !tbaa !9
  %21637 = getelementptr inbounds %struct.s2n_connection, ptr %21636, i32 0, i32 31
  %21638 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %21637, i32 0, i32 5
  %21639 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %21638, i32 0, i32 1
  %21640 = getelementptr inbounds %struct.s2n_kem_params, ptr %21639, i32 0, i32 0
  store ptr %21635, ptr %21640, align 8, !tbaa !92
  br label %21641

21641:                                            ; preds = %21634
  br label %21642

21642:                                            ; preds = %21641
  br label %21643

21643:                                            ; preds = %21642
  %21644 = load i32, ptr @test_count, align 4, !tbaa !5
  %21645 = add nsw i32 %21644, 1
  store i32 %21645, ptr @test_count, align 4, !tbaa !5
  %21646 = load ptr, ptr %406, align 8, !tbaa !9
  %21647 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef %21646)
  %21648 = icmp eq i32 %21647, -1
  br i1 %21648, label %21702, label %21649

21649:                                            ; preds = %21643
  br label %21650

21650:                                            ; preds = %21649
  br label %21651

21651:                                            ; preds = %21650
  call void @llvm.lifetime.start.p0(i64 4, ptr %436) #11
  %21652 = call ptr @__errno_location() #12
  %21653 = load i32, ptr %21652, align 4, !tbaa !5
  store i32 %21653, ptr %436, align 4, !tbaa !5
  %21654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21655 = call i32 @s2n_print_stacktrace(ptr noundef %21654)
  %21656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21657 = trunc i8 %21656 to i1
  br i1 %21657, label %21658, label %21680

21658:                                            ; preds = %21651
  %21659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21660 = call i32 @fileno(ptr noundef %21659) #11
  %21661 = call i32 @isatty(i32 noundef %21660) #11
  %21662 = icmp ne i32 %21661, 0
  br i1 %21662, label %21663, label %21680

21663:                                            ; preds = %21658
  %21664 = load i32, ptr %436, align 4, !tbaa !5
  %21665 = call ptr @__errno_location() #12
  store i32 %21664, ptr %21665, align 4, !tbaa !5
  %21666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21667 = load i32, ptr @test_count, align 4, !tbaa !5
  %21668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21669 = load i32, ptr %21668, align 4, !tbaa !5
  %21670 = call ptr @s2n_strerror(i32 noundef %21669, ptr noundef @.str.4)
  %21671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21672 = load i32, ptr %21671, align 4, !tbaa !5
  %21673 = call ptr @s2n_strerror_debug(i32 noundef %21672, ptr noundef @.str.4)
  %21674 = call ptr @__errno_location() #12
  %21675 = load i32, ptr %21674, align 4, !tbaa !5
  %21676 = call ptr @strerror(i32 noundef %21675) #11
  %21677 = call ptr @__errno_location() #12
  %21678 = load i32, ptr %21677, align 4, !tbaa !5
  %21679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21666, ptr noundef @.str.2, i32 noundef %21667, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 826, ptr noundef %21670, ptr noundef %21673, ptr noundef %21676, i32 noundef %21678) #11
  br label %21697

21680:                                            ; preds = %21658, %21651
  %21681 = load i32, ptr %436, align 4, !tbaa !5
  %21682 = call ptr @__errno_location() #12
  store i32 %21681, ptr %21682, align 4, !tbaa !5
  %21683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21684 = load i32, ptr @test_count, align 4, !tbaa !5
  %21685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21686 = load i32, ptr %21685, align 4, !tbaa !5
  %21687 = call ptr @s2n_strerror(i32 noundef %21686, ptr noundef @.str.4)
  %21688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21689 = load i32, ptr %21688, align 4, !tbaa !5
  %21690 = call ptr @s2n_strerror_debug(i32 noundef %21689, ptr noundef @.str.4)
  %21691 = call ptr @__errno_location() #12
  %21692 = load i32, ptr %21691, align 4, !tbaa !5
  %21693 = call ptr @strerror(i32 noundef %21692) #11
  %21694 = call ptr @__errno_location() #12
  %21695 = load i32, ptr %21694, align 4, !tbaa !5
  %21696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21683, ptr noundef @.str.5, i32 noundef %21684, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 826, ptr noundef %21687, ptr noundef %21690, ptr noundef %21693, i32 noundef %21695) #11
  br label %21697

21697:                                            ; preds = %21680, %21663
  call void @llvm.lifetime.end.p0(i64 4, ptr %436) #11
  br label %21698

21698:                                            ; preds = %21697
  br label %21699

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

21700:                                            ; No predecessors!
  br label %21701

21701:                                            ; preds = %21700
  br label %21702

21702:                                            ; preds = %21701, %21643
  br label %21703

21703:                                            ; preds = %21702
  br label %21704

21704:                                            ; preds = %21703
  br label %21705

21705:                                            ; preds = %21704
  %21706 = load i32, ptr @test_count, align 4, !tbaa !5
  %21707 = add nsw i32 %21706, 1
  store i32 %21707, ptr @test_count, align 4, !tbaa !5
  %21708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21709 = load i32, ptr %21708, align 4, !tbaa !5
  %21710 = icmp eq i32 %21709, 335544385
  br i1 %21710, label %21764, label %21711

21711:                                            ; preds = %21705
  br label %21712

21712:                                            ; preds = %21711
  br label %21713

21713:                                            ; preds = %21712
  call void @llvm.lifetime.start.p0(i64 4, ptr %437) #11
  %21714 = call ptr @__errno_location() #12
  %21715 = load i32, ptr %21714, align 4, !tbaa !5
  store i32 %21715, ptr %437, align 4, !tbaa !5
  %21716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21717 = call i32 @s2n_print_stacktrace(ptr noundef %21716)
  %21718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21719 = trunc i8 %21718 to i1
  br i1 %21719, label %21720, label %21742

21720:                                            ; preds = %21713
  %21721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21722 = call i32 @fileno(ptr noundef %21721) #11
  %21723 = call i32 @isatty(i32 noundef %21722) #11
  %21724 = icmp ne i32 %21723, 0
  br i1 %21724, label %21725, label %21742

21725:                                            ; preds = %21720
  %21726 = load i32, ptr %437, align 4, !tbaa !5
  %21727 = call ptr @__errno_location() #12
  store i32 %21726, ptr %21727, align 4, !tbaa !5
  %21728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21729 = load i32, ptr @test_count, align 4, !tbaa !5
  %21730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21731 = load i32, ptr %21730, align 4, !tbaa !5
  %21732 = call ptr @s2n_strerror(i32 noundef %21731, ptr noundef @.str.4)
  %21733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21734 = load i32, ptr %21733, align 4, !tbaa !5
  %21735 = call ptr @s2n_strerror_debug(i32 noundef %21734, ptr noundef @.str.4)
  %21736 = call ptr @__errno_location() #12
  %21737 = load i32, ptr %21736, align 4, !tbaa !5
  %21738 = call ptr @strerror(i32 noundef %21737) #11
  %21739 = call ptr @__errno_location() #12
  %21740 = load i32, ptr %21739, align 4, !tbaa !5
  %21741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21728, ptr noundef @.str.2, i32 noundef %21729, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 826, ptr noundef %21732, ptr noundef %21735, ptr noundef %21738, i32 noundef %21740) #11
  br label %21759

21742:                                            ; preds = %21720, %21713
  %21743 = load i32, ptr %437, align 4, !tbaa !5
  %21744 = call ptr @__errno_location() #12
  store i32 %21743, ptr %21744, align 4, !tbaa !5
  %21745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21746 = load i32, ptr @test_count, align 4, !tbaa !5
  %21747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21748 = load i32, ptr %21747, align 4, !tbaa !5
  %21749 = call ptr @s2n_strerror(i32 noundef %21748, ptr noundef @.str.4)
  %21750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21751 = load i32, ptr %21750, align 4, !tbaa !5
  %21752 = call ptr @s2n_strerror_debug(i32 noundef %21751, ptr noundef @.str.4)
  %21753 = call ptr @__errno_location() #12
  %21754 = load i32, ptr %21753, align 4, !tbaa !5
  %21755 = call ptr @strerror(i32 noundef %21754) #11
  %21756 = call ptr @__errno_location() #12
  %21757 = load i32, ptr %21756, align 4, !tbaa !5
  %21758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21745, ptr noundef @.str.5, i32 noundef %21746, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 826, ptr noundef %21749, ptr noundef %21752, ptr noundef %21755, i32 noundef %21757) #11
  br label %21759

21759:                                            ; preds = %21742, %21725
  call void @llvm.lifetime.end.p0(i64 4, ptr %437) #11
  br label %21760

21760:                                            ; preds = %21759
  br label %21761

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

21762:                                            ; No predecessors!
  br label %21763

21763:                                            ; preds = %21762
  br label %21764

21764:                                            ; preds = %21763, %21705
  br label %21765

21765:                                            ; preds = %21764
  br label %21766

21766:                                            ; preds = %21765
  br label %21767

21767:                                            ; preds = %21766
  %21768 = load i32, ptr @test_count, align 4, !tbaa !5
  %21769 = add nsw i32 %21768, 1
  store i32 %21769, ptr @test_count, align 4, !tbaa !5
  %21770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21771 = load i32, ptr %21770, align 4, !tbaa !5
  %21772 = call ptr @s2n_strerror_debug(i32 noundef %21771, ptr noundef @.str.4)
  %21773 = icmp eq ptr %21772, null
  br i1 %21773, label %21774, label %21827

21774:                                            ; preds = %21767
  br label %21775

21775:                                            ; preds = %21774
  br label %21776

21776:                                            ; preds = %21775
  call void @llvm.lifetime.start.p0(i64 4, ptr %438) #11
  %21777 = call ptr @__errno_location() #12
  %21778 = load i32, ptr %21777, align 4, !tbaa !5
  store i32 %21778, ptr %438, align 4, !tbaa !5
  %21779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21780 = call i32 @s2n_print_stacktrace(ptr noundef %21779)
  %21781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21782 = trunc i8 %21781 to i1
  br i1 %21782, label %21783, label %21805

21783:                                            ; preds = %21776
  %21784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21785 = call i32 @fileno(ptr noundef %21784) #11
  %21786 = call i32 @isatty(i32 noundef %21785) #11
  %21787 = icmp ne i32 %21786, 0
  br i1 %21787, label %21788, label %21805

21788:                                            ; preds = %21783
  %21789 = load i32, ptr %438, align 4, !tbaa !5
  %21790 = call ptr @__errno_location() #12
  store i32 %21789, ptr %21790, align 4, !tbaa !5
  %21791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21792 = load i32, ptr @test_count, align 4, !tbaa !5
  %21793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21794 = load i32, ptr %21793, align 4, !tbaa !5
  %21795 = call ptr @s2n_strerror(i32 noundef %21794, ptr noundef @.str.4)
  %21796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21797 = load i32, ptr %21796, align 4, !tbaa !5
  %21798 = call ptr @s2n_strerror_debug(i32 noundef %21797, ptr noundef @.str.4)
  %21799 = call ptr @__errno_location() #12
  %21800 = load i32, ptr %21799, align 4, !tbaa !5
  %21801 = call ptr @strerror(i32 noundef %21800) #11
  %21802 = call ptr @__errno_location() #12
  %21803 = load i32, ptr %21802, align 4, !tbaa !5
  %21804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21791, ptr noundef @.str.2, i32 noundef %21792, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 826, ptr noundef %21795, ptr noundef %21798, ptr noundef %21801, i32 noundef %21803) #11
  br label %21822

21805:                                            ; preds = %21783, %21776
  %21806 = load i32, ptr %438, align 4, !tbaa !5
  %21807 = call ptr @__errno_location() #12
  store i32 %21806, ptr %21807, align 4, !tbaa !5
  %21808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21809 = load i32, ptr @test_count, align 4, !tbaa !5
  %21810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21811 = load i32, ptr %21810, align 4, !tbaa !5
  %21812 = call ptr @s2n_strerror(i32 noundef %21811, ptr noundef @.str.4)
  %21813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21814 = load i32, ptr %21813, align 4, !tbaa !5
  %21815 = call ptr @s2n_strerror_debug(i32 noundef %21814, ptr noundef @.str.4)
  %21816 = call ptr @__errno_location() #12
  %21817 = load i32, ptr %21816, align 4, !tbaa !5
  %21818 = call ptr @strerror(i32 noundef %21817) #11
  %21819 = call ptr @__errno_location() #12
  %21820 = load i32, ptr %21819, align 4, !tbaa !5
  %21821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21808, ptr noundef @.str.5, i32 noundef %21809, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 826, ptr noundef %21812, ptr noundef %21815, ptr noundef %21818, i32 noundef %21820) #11
  br label %21822

21822:                                            ; preds = %21805, %21788
  call void @llvm.lifetime.end.p0(i64 4, ptr %438) #11
  br label %21823

21823:                                            ; preds = %21822
  br label %21824

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

21825:                                            ; No predecessors!
  br label %21826

21826:                                            ; preds = %21825
  br label %21827

21827:                                            ; preds = %21826, %21767
  br label %21828

21828:                                            ; preds = %21827
  br label %21829

21829:                                            ; preds = %21828
  br label %21830

21830:                                            ; preds = %21829
  br label %21831

21831:                                            ; preds = %21830
  br label %21832

21832:                                            ; preds = %21831
  %21833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %21833, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %21834 = call ptr @__errno_location() #12
  store i32 0, ptr %21834, align 4, !tbaa !5
  br label %21835

21835:                                            ; preds = %21832
  br label %21836

21836:                                            ; preds = %21835
  br label %21837

21837:                                            ; preds = %21836
  br label %21838

21838:                                            ; preds = %21837
  br label %21839

21839:                                            ; preds = %21838
  %21840 = load i32, ptr @test_count, align 4, !tbaa !5
  %21841 = add nsw i32 %21840, 1
  store i32 %21841, ptr @test_count, align 4, !tbaa !5
  %21842 = load ptr, ptr %406, align 8, !tbaa !9
  %21843 = getelementptr inbounds %struct.s2n_connection, ptr %21842, i32 0, i32 31
  %21844 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %21843, i32 0, i32 5
  %21845 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %21844, i32 0, i32 1
  %21846 = getelementptr inbounds %struct.s2n_kem_params, ptr %21845, i32 0, i32 1
  %21847 = load ptr, ptr getelementptr inbounds (%struct.s2n_kem_group, ptr @s2n_secp256r1_kyber_512_r3, i32 0, i32 3), align 8, !tbaa !91
  %21848 = getelementptr inbounds %struct.s2n_kem, ptr %21847, i32 0, i32 3
  %21849 = load i16, ptr %21848, align 2, !tbaa !110
  %21850 = zext i16 %21849 to i32
  %21851 = call i32 @s2n_alloc(ptr noundef %21846, i32 noundef %21850)
  %21852 = icmp eq i32 %21851, -1
  br i1 %21852, label %21853, label %21906

21853:                                            ; preds = %21839
  br label %21854

21854:                                            ; preds = %21853
  br label %21855

21855:                                            ; preds = %21854
  call void @llvm.lifetime.start.p0(i64 4, ptr %439) #11
  %21856 = call ptr @__errno_location() #12
  %21857 = load i32, ptr %21856, align 4, !tbaa !5
  store i32 %21857, ptr %439, align 4, !tbaa !5
  %21858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21859 = call i32 @s2n_print_stacktrace(ptr noundef %21858)
  %21860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21861 = trunc i8 %21860 to i1
  br i1 %21861, label %21862, label %21884

21862:                                            ; preds = %21855
  %21863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21864 = call i32 @fileno(ptr noundef %21863) #11
  %21865 = call i32 @isatty(i32 noundef %21864) #11
  %21866 = icmp ne i32 %21865, 0
  br i1 %21866, label %21867, label %21884

21867:                                            ; preds = %21862
  %21868 = load i32, ptr %439, align 4, !tbaa !5
  %21869 = call ptr @__errno_location() #12
  store i32 %21868, ptr %21869, align 4, !tbaa !5
  %21870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21871 = load i32, ptr @test_count, align 4, !tbaa !5
  %21872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21873 = load i32, ptr %21872, align 4, !tbaa !5
  %21874 = call ptr @s2n_strerror(i32 noundef %21873, ptr noundef @.str.4)
  %21875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21876 = load i32, ptr %21875, align 4, !tbaa !5
  %21877 = call ptr @s2n_strerror_debug(i32 noundef %21876, ptr noundef @.str.4)
  %21878 = call ptr @__errno_location() #12
  %21879 = load i32, ptr %21878, align 4, !tbaa !5
  %21880 = call ptr @strerror(i32 noundef %21879) #11
  %21881 = call ptr @__errno_location() #12
  %21882 = load i32, ptr %21881, align 4, !tbaa !5
  %21883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21870, ptr noundef @.str.2, i32 noundef %21871, ptr noundef @.str.178, ptr noundef @.str.1, i32 noundef 829, ptr noundef %21874, ptr noundef %21877, ptr noundef %21880, i32 noundef %21882) #11
  br label %21901

21884:                                            ; preds = %21862, %21855
  %21885 = load i32, ptr %439, align 4, !tbaa !5
  %21886 = call ptr @__errno_location() #12
  store i32 %21885, ptr %21886, align 4, !tbaa !5
  %21887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21888 = load i32, ptr @test_count, align 4, !tbaa !5
  %21889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21890 = load i32, ptr %21889, align 4, !tbaa !5
  %21891 = call ptr @s2n_strerror(i32 noundef %21890, ptr noundef @.str.4)
  %21892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21893 = load i32, ptr %21892, align 4, !tbaa !5
  %21894 = call ptr @s2n_strerror_debug(i32 noundef %21893, ptr noundef @.str.4)
  %21895 = call ptr @__errno_location() #12
  %21896 = load i32, ptr %21895, align 4, !tbaa !5
  %21897 = call ptr @strerror(i32 noundef %21896) #11
  %21898 = call ptr @__errno_location() #12
  %21899 = load i32, ptr %21898, align 4, !tbaa !5
  %21900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21887, ptr noundef @.str.5, i32 noundef %21888, ptr noundef @.str.178, ptr noundef @.str.1, i32 noundef 829, ptr noundef %21891, ptr noundef %21894, ptr noundef %21897, i32 noundef %21899) #11
  br label %21901

21901:                                            ; preds = %21884, %21867
  call void @llvm.lifetime.end.p0(i64 4, ptr %439) #11
  br label %21902

21902:                                            ; preds = %21901
  br label %21903

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

21904:                                            ; No predecessors!
  br label %21905

21905:                                            ; preds = %21904
  br label %21906

21906:                                            ; preds = %21905, %21839
  br label %21907

21907:                                            ; preds = %21906
  br label %21908

21908:                                            ; preds = %21907
  br label %21909

21909:                                            ; preds = %21908
  %21910 = load i32, ptr @test_count, align 4, !tbaa !5
  %21911 = add nsw i32 %21910, 1
  store i32 %21911, ptr @test_count, align 4, !tbaa !5
  %21912 = load ptr, ptr %406, align 8, !tbaa !9
  %21913 = getelementptr inbounds %struct.s2n_connection, ptr %21912, i32 0, i32 31
  %21914 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %21913, i32 0, i32 5
  %21915 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %21914, i32 0, i32 1
  %21916 = call i32 @s2n_kem_generate_keypair(ptr noundef %21915)
  %21917 = getelementptr inbounds %struct.s2n_result, ptr %440, i32 0, i32 0
  store i32 %21916, ptr %21917, align 4
  %21918 = getelementptr inbounds %struct.s2n_result, ptr %440, i32 0, i32 0
  %21919 = load i32, ptr %21918, align 4
  %21920 = call zeroext i1 @s2n_result_is_ok(i32 %21919)
  br i1 %21920, label %21974, label %21921

21921:                                            ; preds = %21909
  br label %21922

21922:                                            ; preds = %21921
  br label %21923

21923:                                            ; preds = %21922
  call void @llvm.lifetime.start.p0(i64 4, ptr %441) #11
  %21924 = call ptr @__errno_location() #12
  %21925 = load i32, ptr %21924, align 4, !tbaa !5
  store i32 %21925, ptr %441, align 4, !tbaa !5
  %21926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21927 = call i32 @s2n_print_stacktrace(ptr noundef %21926)
  %21928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21929 = trunc i8 %21928 to i1
  br i1 %21929, label %21930, label %21952

21930:                                            ; preds = %21923
  %21931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21932 = call i32 @fileno(ptr noundef %21931) #11
  %21933 = call i32 @isatty(i32 noundef %21932) #11
  %21934 = icmp ne i32 %21933, 0
  br i1 %21934, label %21935, label %21952

21935:                                            ; preds = %21930
  %21936 = load i32, ptr %441, align 4, !tbaa !5
  %21937 = call ptr @__errno_location() #12
  store i32 %21936, ptr %21937, align 4, !tbaa !5
  %21938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21939 = load i32, ptr @test_count, align 4, !tbaa !5
  %21940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21941 = load i32, ptr %21940, align 4, !tbaa !5
  %21942 = call ptr @s2n_strerror(i32 noundef %21941, ptr noundef @.str.4)
  %21943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21944 = load i32, ptr %21943, align 4, !tbaa !5
  %21945 = call ptr @s2n_strerror_debug(i32 noundef %21944, ptr noundef @.str.4)
  %21946 = call ptr @__errno_location() #12
  %21947 = load i32, ptr %21946, align 4, !tbaa !5
  %21948 = call ptr @strerror(i32 noundef %21947) #11
  %21949 = call ptr @__errno_location() #12
  %21950 = load i32, ptr %21949, align 4, !tbaa !5
  %21951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21938, ptr noundef @.str.2, i32 noundef %21939, ptr noundef @.str.179, ptr noundef @.str.1, i32 noundef 830, ptr noundef %21942, ptr noundef %21945, ptr noundef %21948, i32 noundef %21950) #11
  br label %21969

21952:                                            ; preds = %21930, %21923
  %21953 = load i32, ptr %441, align 4, !tbaa !5
  %21954 = call ptr @__errno_location() #12
  store i32 %21953, ptr %21954, align 4, !tbaa !5
  %21955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21956 = load i32, ptr @test_count, align 4, !tbaa !5
  %21957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21958 = load i32, ptr %21957, align 4, !tbaa !5
  %21959 = call ptr @s2n_strerror(i32 noundef %21958, ptr noundef @.str.4)
  %21960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21961 = load i32, ptr %21960, align 4, !tbaa !5
  %21962 = call ptr @s2n_strerror_debug(i32 noundef %21961, ptr noundef @.str.4)
  %21963 = call ptr @__errno_location() #12
  %21964 = load i32, ptr %21963, align 4, !tbaa !5
  %21965 = call ptr @strerror(i32 noundef %21964) #11
  %21966 = call ptr @__errno_location() #12
  %21967 = load i32, ptr %21966, align 4, !tbaa !5
  %21968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21955, ptr noundef @.str.5, i32 noundef %21956, ptr noundef @.str.179, ptr noundef @.str.1, i32 noundef 830, ptr noundef %21959, ptr noundef %21962, ptr noundef %21965, i32 noundef %21967) #11
  br label %21969

21969:                                            ; preds = %21952, %21935
  call void @llvm.lifetime.end.p0(i64 4, ptr %441) #11
  br label %21970

21970:                                            ; preds = %21969
  br label %21971

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

21972:                                            ; No predecessors!
  br label %21973

21973:                                            ; preds = %21972
  br label %21974

21974:                                            ; preds = %21973, %21909
  br label %21975

21975:                                            ; preds = %21974
  br label %21976

21976:                                            ; preds = %21975
  br label %21977

21977:                                            ; preds = %21976
  %21978 = load i32, ptr @test_count, align 4, !tbaa !5
  %21979 = add nsw i32 %21978, 1
  store i32 %21979, ptr @test_count, align 4, !tbaa !5
  %21980 = load ptr, ptr %406, align 8, !tbaa !9
  %21981 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef %21980)
  %21982 = icmp eq i32 %21981, -1
  br i1 %21982, label %21983, label %22036

21983:                                            ; preds = %21977
  br label %21984

21984:                                            ; preds = %21983
  br label %21985

21985:                                            ; preds = %21984
  call void @llvm.lifetime.start.p0(i64 4, ptr %442) #11
  %21986 = call ptr @__errno_location() #12
  %21987 = load i32, ptr %21986, align 4, !tbaa !5
  store i32 %21987, ptr %442, align 4, !tbaa !5
  %21988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21989 = call i32 @s2n_print_stacktrace(ptr noundef %21988)
  %21990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21991 = trunc i8 %21990 to i1
  br i1 %21991, label %21992, label %22014

21992:                                            ; preds = %21985
  %21993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21994 = call i32 @fileno(ptr noundef %21993) #11
  %21995 = call i32 @isatty(i32 noundef %21994) #11
  %21996 = icmp ne i32 %21995, 0
  br i1 %21996, label %21997, label %22014

21997:                                            ; preds = %21992
  %21998 = load i32, ptr %442, align 4, !tbaa !5
  %21999 = call ptr @__errno_location() #12
  store i32 %21998, ptr %21999, align 4, !tbaa !5
  %22000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22001 = load i32, ptr @test_count, align 4, !tbaa !5
  %22002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22003 = load i32, ptr %22002, align 4, !tbaa !5
  %22004 = call ptr @s2n_strerror(i32 noundef %22003, ptr noundef @.str.4)
  %22005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22006 = load i32, ptr %22005, align 4, !tbaa !5
  %22007 = call ptr @s2n_strerror_debug(i32 noundef %22006, ptr noundef @.str.4)
  %22008 = call ptr @__errno_location() #12
  %22009 = load i32, ptr %22008, align 4, !tbaa !5
  %22010 = call ptr @strerror(i32 noundef %22009) #11
  %22011 = call ptr @__errno_location() #12
  %22012 = load i32, ptr %22011, align 4, !tbaa !5
  %22013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22000, ptr noundef @.str.2, i32 noundef %22001, ptr noundef @.str.180, ptr noundef @.str.1, i32 noundef 831, ptr noundef %22004, ptr noundef %22007, ptr noundef %22010, i32 noundef %22012) #11
  br label %22031

22014:                                            ; preds = %21992, %21985
  %22015 = load i32, ptr %442, align 4, !tbaa !5
  %22016 = call ptr @__errno_location() #12
  store i32 %22015, ptr %22016, align 4, !tbaa !5
  %22017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22018 = load i32, ptr @test_count, align 4, !tbaa !5
  %22019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22020 = load i32, ptr %22019, align 4, !tbaa !5
  %22021 = call ptr @s2n_strerror(i32 noundef %22020, ptr noundef @.str.4)
  %22022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22023 = load i32, ptr %22022, align 4, !tbaa !5
  %22024 = call ptr @s2n_strerror_debug(i32 noundef %22023, ptr noundef @.str.4)
  %22025 = call ptr @__errno_location() #12
  %22026 = load i32, ptr %22025, align 4, !tbaa !5
  %22027 = call ptr @strerror(i32 noundef %22026) #11
  %22028 = call ptr @__errno_location() #12
  %22029 = load i32, ptr %22028, align 4, !tbaa !5
  %22030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22017, ptr noundef @.str.5, i32 noundef %22018, ptr noundef @.str.180, ptr noundef @.str.1, i32 noundef 831, ptr noundef %22021, ptr noundef %22024, ptr noundef %22027, i32 noundef %22029) #11
  br label %22031

22031:                                            ; preds = %22014, %21997
  call void @llvm.lifetime.end.p0(i64 4, ptr %442) #11
  br label %22032

22032:                                            ; preds = %22031
  br label %22033

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

22034:                                            ; No predecessors!
  br label %22035

22035:                                            ; preds = %22034
  br label %22036

22036:                                            ; preds = %22035, %21977
  br label %22037

22037:                                            ; preds = %22036
  br label %22038

22038:                                            ; preds = %22037
  br label %22039

22039:                                            ; preds = %22038, %20152
  br label %22040

22040:                                            ; preds = %22039
  %22041 = load i32, ptr @test_count, align 4, !tbaa !5
  %22042 = add nsw i32 %22041, 1
  store i32 %22042, ptr @test_count, align 4, !tbaa !5
  %22043 = load ptr, ptr %406, align 8, !tbaa !9
  %22044 = call i32 @s2n_connection_free(ptr noundef %22043)
  %22045 = icmp eq i32 %22044, -1
  br i1 %22045, label %22046, label %22099

22046:                                            ; preds = %22040
  br label %22047

22047:                                            ; preds = %22046
  br label %22048

22048:                                            ; preds = %22047
  call void @llvm.lifetime.start.p0(i64 4, ptr %443) #11
  %22049 = call ptr @__errno_location() #12
  %22050 = load i32, ptr %22049, align 4, !tbaa !5
  store i32 %22050, ptr %443, align 4, !tbaa !5
  %22051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22052 = call i32 @s2n_print_stacktrace(ptr noundef %22051)
  %22053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22054 = trunc i8 %22053 to i1
  br i1 %22054, label %22055, label %22077

22055:                                            ; preds = %22048
  %22056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22057 = call i32 @fileno(ptr noundef %22056) #11
  %22058 = call i32 @isatty(i32 noundef %22057) #11
  %22059 = icmp ne i32 %22058, 0
  br i1 %22059, label %22060, label %22077

22060:                                            ; preds = %22055
  %22061 = load i32, ptr %443, align 4, !tbaa !5
  %22062 = call ptr @__errno_location() #12
  store i32 %22061, ptr %22062, align 4, !tbaa !5
  %22063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22064 = load i32, ptr @test_count, align 4, !tbaa !5
  %22065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22066 = load i32, ptr %22065, align 4, !tbaa !5
  %22067 = call ptr @s2n_strerror(i32 noundef %22066, ptr noundef @.str.4)
  %22068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22069 = load i32, ptr %22068, align 4, !tbaa !5
  %22070 = call ptr @s2n_strerror_debug(i32 noundef %22069, ptr noundef @.str.4)
  %22071 = call ptr @__errno_location() #12
  %22072 = load i32, ptr %22071, align 4, !tbaa !5
  %22073 = call ptr @strerror(i32 noundef %22072) #11
  %22074 = call ptr @__errno_location() #12
  %22075 = load i32, ptr %22074, align 4, !tbaa !5
  %22076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22063, ptr noundef @.str.2, i32 noundef %22064, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 834, ptr noundef %22067, ptr noundef %22070, ptr noundef %22073, i32 noundef %22075) #11
  br label %22094

22077:                                            ; preds = %22055, %22048
  %22078 = load i32, ptr %443, align 4, !tbaa !5
  %22079 = call ptr @__errno_location() #12
  store i32 %22078, ptr %22079, align 4, !tbaa !5
  %22080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22081 = load i32, ptr @test_count, align 4, !tbaa !5
  %22082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22083 = load i32, ptr %22082, align 4, !tbaa !5
  %22084 = call ptr @s2n_strerror(i32 noundef %22083, ptr noundef @.str.4)
  %22085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22086 = load i32, ptr %22085, align 4, !tbaa !5
  %22087 = call ptr @s2n_strerror_debug(i32 noundef %22086, ptr noundef @.str.4)
  %22088 = call ptr @__errno_location() #12
  %22089 = load i32, ptr %22088, align 4, !tbaa !5
  %22090 = call ptr @strerror(i32 noundef %22089) #11
  %22091 = call ptr @__errno_location() #12
  %22092 = load i32, ptr %22091, align 4, !tbaa !5
  %22093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22080, ptr noundef @.str.5, i32 noundef %22081, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 834, ptr noundef %22084, ptr noundef %22087, ptr noundef %22090, i32 noundef %22092) #11
  br label %22094

22094:                                            ; preds = %22077, %22060
  call void @llvm.lifetime.end.p0(i64 4, ptr %443) #11
  br label %22095

22095:                                            ; preds = %22094
  br label %22096

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

22097:                                            ; No predecessors!
  br label %22098

22098:                                            ; preds = %22097
  br label %22099

22099:                                            ; preds = %22098, %22040
  br label %22100

22100:                                            ; preds = %22099
  br label %22101

22101:                                            ; preds = %22100
  call void @llvm.lifetime.end.p0(i64 8, ptr %406) #11
  %22102 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %22102, label %22103, label %24052

22103:                                            ; preds = %22101
  call void @llvm.lifetime.start.p0(i64 4, ptr %444) #11
  store i32 0, ptr %444, align 4, !tbaa !5
  br label %22104

22104:                                            ; preds = %24048, %22103
  %22105 = load i32, ptr %444, align 4, !tbaa !5
  %22106 = icmp slt i32 %22105, 2
  br i1 %22106, label %22108, label %22107

22107:                                            ; preds = %22104
  store i32 2143, ptr %300, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %444) #11
  br label %24051

22108:                                            ; preds = %22104
  call void @llvm.lifetime.start.p0(i64 8, ptr %445) #11
  store i64 0, ptr %445, align 8, !tbaa !49
  br label %22109

22109:                                            ; preds = %24044, %22108
  %22110 = load i64, ptr %445, align 8, !tbaa !49
  %22111 = icmp ult i64 %22110, 8
  br i1 %22111, label %22113, label %22112

22112:                                            ; preds = %22109
  store i32 2146, ptr %300, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %445) #11
  br label %24047

22113:                                            ; preds = %22109
  call void @llvm.lifetime.start.p0(i64 8, ptr %446) #11
  store ptr null, ptr %446, align 8, !tbaa !9
  br label %22114

22114:                                            ; preds = %22113
  %22115 = load i32, ptr @test_count, align 4, !tbaa !5
  %22116 = add nsw i32 %22115, 1
  store i32 %22116, ptr @test_count, align 4, !tbaa !5
  %22117 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %22117, ptr %446, align 8, !tbaa !9
  %22118 = icmp eq ptr %22117, null
  br i1 %22118, label %22119, label %22172

22119:                                            ; preds = %22114
  br label %22120

22120:                                            ; preds = %22119
  br label %22121

22121:                                            ; preds = %22120
  call void @llvm.lifetime.start.p0(i64 4, ptr %447) #11
  %22122 = call ptr @__errno_location() #12
  %22123 = load i32, ptr %22122, align 4, !tbaa !5
  store i32 %22123, ptr %447, align 4, !tbaa !5
  %22124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22125 = call i32 @s2n_print_stacktrace(ptr noundef %22124)
  %22126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22127 = trunc i8 %22126 to i1
  br i1 %22127, label %22128, label %22150

22128:                                            ; preds = %22121
  %22129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22130 = call i32 @fileno(ptr noundef %22129) #11
  %22131 = call i32 @isatty(i32 noundef %22130) #11
  %22132 = icmp ne i32 %22131, 0
  br i1 %22132, label %22133, label %22150

22133:                                            ; preds = %22128
  %22134 = load i32, ptr %447, align 4, !tbaa !5
  %22135 = call ptr @__errno_location() #12
  store i32 %22134, ptr %22135, align 4, !tbaa !5
  %22136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22137 = load i32, ptr @test_count, align 4, !tbaa !5
  %22138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22139 = load i32, ptr %22138, align 4, !tbaa !5
  %22140 = call ptr @s2n_strerror(i32 noundef %22139, ptr noundef @.str.4)
  %22141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22142 = load i32, ptr %22141, align 4, !tbaa !5
  %22143 = call ptr @s2n_strerror_debug(i32 noundef %22142, ptr noundef @.str.4)
  %22144 = call ptr @__errno_location() #12
  %22145 = load i32, ptr %22144, align 4, !tbaa !5
  %22146 = call ptr @strerror(i32 noundef %22145) #11
  %22147 = call ptr @__errno_location() #12
  %22148 = load i32, ptr %22147, align 4, !tbaa !5
  %22149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22136, ptr noundef @.str.2, i32 noundef %22137, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 842, ptr noundef %22140, ptr noundef %22143, ptr noundef %22146, i32 noundef %22148) #11
  br label %22167

22150:                                            ; preds = %22128, %22121
  %22151 = load i32, ptr %447, align 4, !tbaa !5
  %22152 = call ptr @__errno_location() #12
  store i32 %22151, ptr %22152, align 4, !tbaa !5
  %22153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22154 = load i32, ptr @test_count, align 4, !tbaa !5
  %22155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22156 = load i32, ptr %22155, align 4, !tbaa !5
  %22157 = call ptr @s2n_strerror(i32 noundef %22156, ptr noundef @.str.4)
  %22158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22159 = load i32, ptr %22158, align 4, !tbaa !5
  %22160 = call ptr @s2n_strerror_debug(i32 noundef %22159, ptr noundef @.str.4)
  %22161 = call ptr @__errno_location() #12
  %22162 = load i32, ptr %22161, align 4, !tbaa !5
  %22163 = call ptr @strerror(i32 noundef %22162) #11
  %22164 = call ptr @__errno_location() #12
  %22165 = load i32, ptr %22164, align 4, !tbaa !5
  %22166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22153, ptr noundef @.str.5, i32 noundef %22154, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 842, ptr noundef %22157, ptr noundef %22160, ptr noundef %22163, i32 noundef %22165) #11
  br label %22167

22167:                                            ; preds = %22150, %22133
  call void @llvm.lifetime.end.p0(i64 4, ptr %447) #11
  br label %22168

22168:                                            ; preds = %22167
  br label %22169

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

22170:                                            ; No predecessors!
  br label %22171

22171:                                            ; preds = %22170
  br label %22172

22172:                                            ; preds = %22171, %22114
  br label %22173

22173:                                            ; preds = %22172
  br label %22174

22174:                                            ; preds = %22173
  %22175 = load ptr, ptr %446, align 8, !tbaa !9
  %22176 = getelementptr inbounds %struct.s2n_connection, ptr %22175, i32 0, i32 2
  store ptr %281, ptr %22176, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %448) #11
  store ptr null, ptr %448, align 8, !tbaa !9
  br label %22177

22177:                                            ; preds = %22174
  %22178 = load i32, ptr @test_count, align 4, !tbaa !5
  %22179 = add nsw i32 %22178, 1
  store i32 %22179, ptr @test_count, align 4, !tbaa !5
  %22180 = load ptr, ptr %446, align 8, !tbaa !9
  %22181 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %22180, ptr noundef %448)
  %22182 = icmp eq i32 %22181, -1
  br i1 %22182, label %22183, label %22236

22183:                                            ; preds = %22177
  br label %22184

22184:                                            ; preds = %22183
  br label %22185

22185:                                            ; preds = %22184
  call void @llvm.lifetime.start.p0(i64 4, ptr %449) #11
  %22186 = call ptr @__errno_location() #12
  %22187 = load i32, ptr %22186, align 4, !tbaa !5
  store i32 %22187, ptr %449, align 4, !tbaa !5
  %22188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22189 = call i32 @s2n_print_stacktrace(ptr noundef %22188)
  %22190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22191 = trunc i8 %22190 to i1
  br i1 %22191, label %22192, label %22214

22192:                                            ; preds = %22185
  %22193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22194 = call i32 @fileno(ptr noundef %22193) #11
  %22195 = call i32 @isatty(i32 noundef %22194) #11
  %22196 = icmp ne i32 %22195, 0
  br i1 %22196, label %22197, label %22214

22197:                                            ; preds = %22192
  %22198 = load i32, ptr %449, align 4, !tbaa !5
  %22199 = call ptr @__errno_location() #12
  store i32 %22198, ptr %22199, align 4, !tbaa !5
  %22200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22201 = load i32, ptr @test_count, align 4, !tbaa !5
  %22202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22203 = load i32, ptr %22202, align 4, !tbaa !5
  %22204 = call ptr @s2n_strerror(i32 noundef %22203, ptr noundef @.str.4)
  %22205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22206 = load i32, ptr %22205, align 4, !tbaa !5
  %22207 = call ptr @s2n_strerror_debug(i32 noundef %22206, ptr noundef @.str.4)
  %22208 = call ptr @__errno_location() #12
  %22209 = load i32, ptr %22208, align 4, !tbaa !5
  %22210 = call ptr @strerror(i32 noundef %22209) #11
  %22211 = call ptr @__errno_location() #12
  %22212 = load i32, ptr %22211, align 4, !tbaa !5
  %22213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22200, ptr noundef @.str.2, i32 noundef %22201, ptr noundef @.str.181, ptr noundef @.str.1, i32 noundef 846, ptr noundef %22204, ptr noundef %22207, ptr noundef %22210, i32 noundef %22212) #11
  br label %22231

22214:                                            ; preds = %22192, %22185
  %22215 = load i32, ptr %449, align 4, !tbaa !5
  %22216 = call ptr @__errno_location() #12
  store i32 %22215, ptr %22216, align 4, !tbaa !5
  %22217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22218 = load i32, ptr @test_count, align 4, !tbaa !5
  %22219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22220 = load i32, ptr %22219, align 4, !tbaa !5
  %22221 = call ptr @s2n_strerror(i32 noundef %22220, ptr noundef @.str.4)
  %22222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22223 = load i32, ptr %22222, align 4, !tbaa !5
  %22224 = call ptr @s2n_strerror_debug(i32 noundef %22223, ptr noundef @.str.4)
  %22225 = call ptr @__errno_location() #12
  %22226 = load i32, ptr %22225, align 4, !tbaa !5
  %22227 = call ptr @strerror(i32 noundef %22226) #11
  %22228 = call ptr @__errno_location() #12
  %22229 = load i32, ptr %22228, align 4, !tbaa !5
  %22230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22217, ptr noundef @.str.5, i32 noundef %22218, ptr noundef @.str.181, ptr noundef @.str.1, i32 noundef 846, ptr noundef %22221, ptr noundef %22224, ptr noundef %22227, i32 noundef %22229) #11
  br label %22231

22231:                                            ; preds = %22214, %22197
  call void @llvm.lifetime.end.p0(i64 4, ptr %449) #11
  br label %22232

22232:                                            ; preds = %22231
  br label %22233

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

22234:                                            ; No predecessors!
  br label %22235

22235:                                            ; preds = %22234
  br label %22236

22236:                                            ; preds = %22235, %22177
  br label %22237

22237:                                            ; preds = %22236
  br label %22238

22238:                                            ; preds = %22237
  br label %22239

22239:                                            ; preds = %22238
  %22240 = load i32, ptr @test_count, align 4, !tbaa !5
  %22241 = add nsw i32 %22240, 1
  store i32 %22241, ptr @test_count, align 4, !tbaa !5
  %22242 = load ptr, ptr %448, align 8, !tbaa !9
  %22243 = icmp eq ptr %22242, null
  br i1 %22243, label %22244, label %22297

22244:                                            ; preds = %22239
  br label %22245

22245:                                            ; preds = %22244
  br label %22246

22246:                                            ; preds = %22245
  call void @llvm.lifetime.start.p0(i64 4, ptr %450) #11
  %22247 = call ptr @__errno_location() #12
  %22248 = load i32, ptr %22247, align 4, !tbaa !5
  store i32 %22248, ptr %450, align 4, !tbaa !5
  %22249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22250 = call i32 @s2n_print_stacktrace(ptr noundef %22249)
  %22251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22252 = trunc i8 %22251 to i1
  br i1 %22252, label %22253, label %22275

22253:                                            ; preds = %22246
  %22254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22255 = call i32 @fileno(ptr noundef %22254) #11
  %22256 = call i32 @isatty(i32 noundef %22255) #11
  %22257 = icmp ne i32 %22256, 0
  br i1 %22257, label %22258, label %22275

22258:                                            ; preds = %22253
  %22259 = load i32, ptr %450, align 4, !tbaa !5
  %22260 = call ptr @__errno_location() #12
  store i32 %22259, ptr %22260, align 4, !tbaa !5
  %22261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22262 = load i32, ptr @test_count, align 4, !tbaa !5
  %22263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22264 = load i32, ptr %22263, align 4, !tbaa !5
  %22265 = call ptr @s2n_strerror(i32 noundef %22264, ptr noundef @.str.4)
  %22266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22267 = load i32, ptr %22266, align 4, !tbaa !5
  %22268 = call ptr @s2n_strerror_debug(i32 noundef %22267, ptr noundef @.str.4)
  %22269 = call ptr @__errno_location() #12
  %22270 = load i32, ptr %22269, align 4, !tbaa !5
  %22271 = call ptr @strerror(i32 noundef %22270) #11
  %22272 = call ptr @__errno_location() #12
  %22273 = load i32, ptr %22272, align 4, !tbaa !5
  %22274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22261, ptr noundef @.str.2, i32 noundef %22262, ptr noundef @.str.182, ptr noundef @.str.1, i32 noundef 847, ptr noundef %22265, ptr noundef %22268, ptr noundef %22271, i32 noundef %22273) #11
  br label %22292

22275:                                            ; preds = %22253, %22246
  %22276 = load i32, ptr %450, align 4, !tbaa !5
  %22277 = call ptr @__errno_location() #12
  store i32 %22276, ptr %22277, align 4, !tbaa !5
  %22278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22279 = load i32, ptr @test_count, align 4, !tbaa !5
  %22280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22281 = load i32, ptr %22280, align 4, !tbaa !5
  %22282 = call ptr @s2n_strerror(i32 noundef %22281, ptr noundef @.str.4)
  %22283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22284 = load i32, ptr %22283, align 4, !tbaa !5
  %22285 = call ptr @s2n_strerror_debug(i32 noundef %22284, ptr noundef @.str.4)
  %22286 = call ptr @__errno_location() #12
  %22287 = load i32, ptr %22286, align 4, !tbaa !5
  %22288 = call ptr @strerror(i32 noundef %22287) #11
  %22289 = call ptr @__errno_location() #12
  %22290 = load i32, ptr %22289, align 4, !tbaa !5
  %22291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22278, ptr noundef @.str.5, i32 noundef %22279, ptr noundef @.str.182, ptr noundef @.str.1, i32 noundef 847, ptr noundef %22282, ptr noundef %22285, ptr noundef %22288, i32 noundef %22290) #11
  br label %22292

22292:                                            ; preds = %22275, %22258
  call void @llvm.lifetime.end.p0(i64 4, ptr %450) #11
  br label %22293

22293:                                            ; preds = %22292
  br label %22294

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

22295:                                            ; No predecessors!
  br label %22296

22296:                                            ; preds = %22295
  br label %22297

22297:                                            ; preds = %22296, %22239
  br label %22298

22298:                                            ; preds = %22297
  br label %22299

22299:                                            ; preds = %22298
  call void @llvm.lifetime.start.p0(i64 40, ptr %451) #11
  call void @llvm.memset.p0.i64(ptr align 8 %451, i8 0, i64 40, i1 false)
  br label %22300

22300:                                            ; preds = %22299
  %22301 = load i32, ptr @test_count, align 4, !tbaa !5
  %22302 = add nsw i32 %22301, 1
  store i32 %22302, ptr @test_count, align 4, !tbaa !5
  %22303 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %451, i32 noundef 4096)
  %22304 = icmp eq i32 %22303, -1
  br i1 %22304, label %22305, label %22358

22305:                                            ; preds = %22300
  br label %22306

22306:                                            ; preds = %22305
  br label %22307

22307:                                            ; preds = %22306
  call void @llvm.lifetime.start.p0(i64 4, ptr %452) #11
  %22308 = call ptr @__errno_location() #12
  %22309 = load i32, ptr %22308, align 4, !tbaa !5
  store i32 %22309, ptr %452, align 4, !tbaa !5
  %22310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22311 = call i32 @s2n_print_stacktrace(ptr noundef %22310)
  %22312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22313 = trunc i8 %22312 to i1
  br i1 %22313, label %22314, label %22336

22314:                                            ; preds = %22307
  %22315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22316 = call i32 @fileno(ptr noundef %22315) #11
  %22317 = call i32 @isatty(i32 noundef %22316) #11
  %22318 = icmp ne i32 %22317, 0
  br i1 %22318, label %22319, label %22336

22319:                                            ; preds = %22314
  %22320 = load i32, ptr %452, align 4, !tbaa !5
  %22321 = call ptr @__errno_location() #12
  store i32 %22320, ptr %22321, align 4, !tbaa !5
  %22322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22323 = load i32, ptr @test_count, align 4, !tbaa !5
  %22324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22325 = load i32, ptr %22324, align 4, !tbaa !5
  %22326 = call ptr @s2n_strerror(i32 noundef %22325, ptr noundef @.str.4)
  %22327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22328 = load i32, ptr %22327, align 4, !tbaa !5
  %22329 = call ptr @s2n_strerror_debug(i32 noundef %22328, ptr noundef @.str.4)
  %22330 = call ptr @__errno_location() #12
  %22331 = load i32, ptr %22330, align 4, !tbaa !5
  %22332 = call ptr @strerror(i32 noundef %22331) #11
  %22333 = call ptr @__errno_location() #12
  %22334 = load i32, ptr %22333, align 4, !tbaa !5
  %22335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22322, ptr noundef @.str.2, i32 noundef %22323, ptr noundef @.str.183, ptr noundef @.str.1, i32 noundef 850, ptr noundef %22326, ptr noundef %22329, ptr noundef %22332, i32 noundef %22334) #11
  br label %22353

22336:                                            ; preds = %22314, %22307
  %22337 = load i32, ptr %452, align 4, !tbaa !5
  %22338 = call ptr @__errno_location() #12
  store i32 %22337, ptr %22338, align 4, !tbaa !5
  %22339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22340 = load i32, ptr @test_count, align 4, !tbaa !5
  %22341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22342 = load i32, ptr %22341, align 4, !tbaa !5
  %22343 = call ptr @s2n_strerror(i32 noundef %22342, ptr noundef @.str.4)
  %22344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22345 = load i32, ptr %22344, align 4, !tbaa !5
  %22346 = call ptr @s2n_strerror_debug(i32 noundef %22345, ptr noundef @.str.4)
  %22347 = call ptr @__errno_location() #12
  %22348 = load i32, ptr %22347, align 4, !tbaa !5
  %22349 = call ptr @strerror(i32 noundef %22348) #11
  %22350 = call ptr @__errno_location() #12
  %22351 = load i32, ptr %22350, align 4, !tbaa !5
  %22352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22339, ptr noundef @.str.5, i32 noundef %22340, ptr noundef @.str.183, ptr noundef @.str.1, i32 noundef 850, ptr noundef %22343, ptr noundef %22346, ptr noundef %22349, i32 noundef %22351) #11
  br label %22353

22353:                                            ; preds = %22336, %22319
  call void @llvm.lifetime.end.p0(i64 4, ptr %452) #11
  br label %22354

22354:                                            ; preds = %22353
  br label %22355

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

22356:                                            ; No predecessors!
  br label %22357

22357:                                            ; preds = %22356
  br label %22358

22358:                                            ; preds = %22357, %22300
  br label %22359

22359:                                            ; preds = %22358
  br label %22360

22360:                                            ; preds = %22359
  %22361 = load ptr, ptr %446, align 8, !tbaa !9
  %22362 = getelementptr inbounds %struct.s2n_connection, ptr %22361, i32 0, i32 31
  %22363 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %22362, i32 0, i32 1
  %22364 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %22363, i32 0, i32 0
  store ptr null, ptr %22364, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr %453) #11
  %22365 = load ptr, ptr %446, align 8, !tbaa !9
  %22366 = getelementptr inbounds %struct.s2n_connection, ptr %22365, i32 0, i32 31
  %22367 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %22366, i32 0, i32 4
  store ptr %22367, ptr %453, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %454) #11
  %22368 = load ptr, ptr %448, align 8, !tbaa !9
  %22369 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %22368, i32 0, i32 3
  %22370 = load ptr, ptr %22369, align 8, !tbaa !75
  %22371 = load i64, ptr %445, align 8, !tbaa !49
  %22372 = getelementptr inbounds ptr, ptr %22370, i64 %22371
  %22373 = load ptr, ptr %22372, align 8, !tbaa !9
  store ptr %22373, ptr %454, align 8, !tbaa !9
  %22374 = load ptr, ptr %454, align 8, !tbaa !9
  %22375 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %22374)
  br i1 %22375, label %22439, label %22376

22376:                                            ; preds = %22360
  br label %22377

22377:                                            ; preds = %22376
  %22378 = load i32, ptr @test_count, align 4, !tbaa !5
  %22379 = add nsw i32 %22378, 1
  store i32 %22379, ptr @test_count, align 4, !tbaa !5
  %22380 = load ptr, ptr %446, align 8, !tbaa !9
  %22381 = call i32 @s2n_connection_free(ptr noundef %22380)
  %22382 = icmp eq i32 %22381, -1
  br i1 %22382, label %22383, label %22436

22383:                                            ; preds = %22377
  br label %22384

22384:                                            ; preds = %22383
  br label %22385

22385:                                            ; preds = %22384
  call void @llvm.lifetime.start.p0(i64 4, ptr %455) #11
  %22386 = call ptr @__errno_location() #12
  %22387 = load i32, ptr %22386, align 4, !tbaa !5
  store i32 %22387, ptr %455, align 4, !tbaa !5
  %22388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22389 = call i32 @s2n_print_stacktrace(ptr noundef %22388)
  %22390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22391 = trunc i8 %22390 to i1
  br i1 %22391, label %22392, label %22414

22392:                                            ; preds = %22385
  %22393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22394 = call i32 @fileno(ptr noundef %22393) #11
  %22395 = call i32 @isatty(i32 noundef %22394) #11
  %22396 = icmp ne i32 %22395, 0
  br i1 %22396, label %22397, label %22414

22397:                                            ; preds = %22392
  %22398 = load i32, ptr %455, align 4, !tbaa !5
  %22399 = call ptr @__errno_location() #12
  store i32 %22398, ptr %22399, align 4, !tbaa !5
  %22400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22401 = load i32, ptr @test_count, align 4, !tbaa !5
  %22402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22403 = load i32, ptr %22402, align 4, !tbaa !5
  %22404 = call ptr @s2n_strerror(i32 noundef %22403, ptr noundef @.str.4)
  %22405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22406 = load i32, ptr %22405, align 4, !tbaa !5
  %22407 = call ptr @s2n_strerror_debug(i32 noundef %22406, ptr noundef @.str.4)
  %22408 = call ptr @__errno_location() #12
  %22409 = load i32, ptr %22408, align 4, !tbaa !5
  %22410 = call ptr @strerror(i32 noundef %22409) #11
  %22411 = call ptr @__errno_location() #12
  %22412 = load i32, ptr %22411, align 4, !tbaa !5
  %22413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22400, ptr noundef @.str.2, i32 noundef %22401, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 859, ptr noundef %22404, ptr noundef %22407, ptr noundef %22410, i32 noundef %22412) #11
  br label %22431

22414:                                            ; preds = %22392, %22385
  %22415 = load i32, ptr %455, align 4, !tbaa !5
  %22416 = call ptr @__errno_location() #12
  store i32 %22415, ptr %22416, align 4, !tbaa !5
  %22417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22418 = load i32, ptr @test_count, align 4, !tbaa !5
  %22419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22420 = load i32, ptr %22419, align 4, !tbaa !5
  %22421 = call ptr @s2n_strerror(i32 noundef %22420, ptr noundef @.str.4)
  %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_debug(i32 noundef %22423, ptr noundef @.str.4)
  %22425 = call ptr @__errno_location() #12
  %22426 = load i32, ptr %22425, align 4, !tbaa !5
  %22427 = call ptr @strerror(i32 noundef %22426) #11
  %22428 = call ptr @__errno_location() #12
  %22429 = load i32, ptr %22428, align 4, !tbaa !5
  %22430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22417, ptr noundef @.str.5, i32 noundef %22418, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 859, ptr noundef %22421, ptr noundef %22424, ptr noundef %22427, i32 noundef %22429) #11
  br label %22431

22431:                                            ; preds = %22414, %22397
  call void @llvm.lifetime.end.p0(i64 4, ptr %455) #11
  br label %22432

22432:                                            ; preds = %22431
  br label %22433

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

22434:                                            ; No predecessors!
  br label %22435

22435:                                            ; preds = %22434
  br label %22436

22436:                                            ; preds = %22435, %22377
  br label %22437

22437:                                            ; preds = %22436
  br label %22438

22438:                                            ; preds = %22437
  store i32 2148, ptr %300, align 4
  br label %24040

22439:                                            ; preds = %22360
  %22440 = load ptr, ptr %454, align 8, !tbaa !9
  %22441 = load ptr, ptr %453, align 8, !tbaa !9
  %22442 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %22441, i32 0, i32 0
  store ptr %22440, ptr %22442, align 8, !tbaa !111
  %22443 = load ptr, ptr %454, align 8, !tbaa !9
  %22444 = getelementptr inbounds %struct.s2n_kem_group, ptr %22443, i32 0, i32 3
  %22445 = load ptr, ptr %22444, align 8, !tbaa !91
  %22446 = load ptr, ptr %453, align 8, !tbaa !9
  %22447 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %22446, i32 0, i32 1
  %22448 = getelementptr inbounds %struct.s2n_kem_params, ptr %22447, i32 0, i32 0
  store ptr %22445, ptr %22448, align 8, !tbaa !112
  %22449 = load ptr, ptr %454, align 8, !tbaa !9
  %22450 = getelementptr inbounds %struct.s2n_kem_group, ptr %22449, i32 0, i32 2
  %22451 = load ptr, ptr %22450, align 8, !tbaa !89
  %22452 = load ptr, ptr %453, align 8, !tbaa !9
  %22453 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %22452, i32 0, i32 2
  %22454 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %22453, i32 0, i32 0
  store ptr %22451, ptr %22454, align 8, !tbaa !113
  call void @llvm.lifetime.start.p0(i64 8, ptr %456) #11
  %22455 = load ptr, ptr %446, align 8, !tbaa !9
  %22456 = getelementptr inbounds %struct.s2n_connection, ptr %22455, i32 0, i32 31
  %22457 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %22456, i32 0, i32 5
  store ptr %22457, ptr %456, align 8, !tbaa !9
  %22458 = load ptr, ptr %454, align 8, !tbaa !9
  %22459 = load ptr, ptr %456, align 8, !tbaa !9
  %22460 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %22459, i32 0, i32 0
  store ptr %22458, ptr %22460, align 8, !tbaa !111
  %22461 = load ptr, ptr %454, align 8, !tbaa !9
  %22462 = getelementptr inbounds %struct.s2n_kem_group, ptr %22461, i32 0, i32 3
  %22463 = load ptr, ptr %22462, align 8, !tbaa !91
  %22464 = load ptr, ptr %456, align 8, !tbaa !9
  %22465 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %22464, i32 0, i32 1
  %22466 = getelementptr inbounds %struct.s2n_kem_params, ptr %22465, i32 0, i32 0
  store ptr %22463, ptr %22466, align 8, !tbaa !112
  %22467 = load i32, ptr %444, align 4, !tbaa !5
  %22468 = icmp ne i32 %22467, 0
  %22469 = load ptr, ptr %456, align 8, !tbaa !9
  %22470 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %22469, i32 0, i32 1
  %22471 = getelementptr inbounds %struct.s2n_kem_params, ptr %22470, i32 0, i32 4
  %22472 = zext i1 %22468 to i8
  store i8 %22472, ptr %22471, align 8, !tbaa !114
  %22473 = load ptr, ptr %454, align 8, !tbaa !9
  %22474 = getelementptr inbounds %struct.s2n_kem_group, ptr %22473, i32 0, i32 2
  %22475 = load ptr, ptr %22474, align 8, !tbaa !89
  %22476 = load ptr, ptr %456, align 8, !tbaa !9
  %22477 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %22476, i32 0, i32 2
  %22478 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %22477, i32 0, i32 0
  store ptr %22475, ptr %22478, align 8, !tbaa !113
  br label %22479

22479:                                            ; preds = %22439
  %22480 = load i32, ptr @test_count, align 4, !tbaa !5
  %22481 = add nsw i32 %22480, 1
  store i32 %22481, ptr @test_count, align 4, !tbaa !5
  %22482 = load ptr, ptr %456, align 8, !tbaa !9
  %22483 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %22482, i32 0, i32 2
  %22484 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %22483)
  %22485 = icmp eq i32 %22484, -1
  br i1 %22485, label %22486, label %22539

22486:                                            ; preds = %22479
  br label %22487

22487:                                            ; preds = %22486
  br label %22488

22488:                                            ; preds = %22487
  call void @llvm.lifetime.start.p0(i64 4, ptr %457) #11
  %22489 = call ptr @__errno_location() #12
  %22490 = load i32, ptr %22489, align 4, !tbaa !5
  store i32 %22490, ptr %457, align 4, !tbaa !5
  %22491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22492 = call i32 @s2n_print_stacktrace(ptr noundef %22491)
  %22493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22494 = trunc i8 %22493 to i1
  br i1 %22494, label %22495, label %22517

22495:                                            ; preds = %22488
  %22496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22497 = call i32 @fileno(ptr noundef %22496) #11
  %22498 = call i32 @isatty(i32 noundef %22497) #11
  %22499 = icmp ne i32 %22498, 0
  br i1 %22499, label %22500, label %22517

22500:                                            ; preds = %22495
  %22501 = load i32, ptr %457, align 4, !tbaa !5
  %22502 = call ptr @__errno_location() #12
  store i32 %22501, ptr %22502, align 4, !tbaa !5
  %22503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22504 = load i32, ptr @test_count, align 4, !tbaa !5
  %22505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22506 = load i32, ptr %22505, align 4, !tbaa !5
  %22507 = call ptr @s2n_strerror(i32 noundef %22506, ptr noundef @.str.4)
  %22508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22509 = load i32, ptr %22508, align 4, !tbaa !5
  %22510 = call ptr @s2n_strerror_debug(i32 noundef %22509, ptr noundef @.str.4)
  %22511 = call ptr @__errno_location() #12
  %22512 = load i32, ptr %22511, align 4, !tbaa !5
  %22513 = call ptr @strerror(i32 noundef %22512) #11
  %22514 = call ptr @__errno_location() #12
  %22515 = load i32, ptr %22514, align 4, !tbaa !5
  %22516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22503, ptr noundef @.str.2, i32 noundef %22504, ptr noundef @.str.184, ptr noundef @.str.1, i32 noundef 872, ptr noundef %22507, ptr noundef %22510, ptr noundef %22513, i32 noundef %22515) #11
  br label %22534

22517:                                            ; preds = %22495, %22488
  %22518 = load i32, ptr %457, align 4, !tbaa !5
  %22519 = call ptr @__errno_location() #12
  store i32 %22518, ptr %22519, align 4, !tbaa !5
  %22520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22521 = load i32, ptr @test_count, align 4, !tbaa !5
  %22522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22523 = load i32, ptr %22522, align 4, !tbaa !5
  %22524 = call ptr @s2n_strerror(i32 noundef %22523, ptr noundef @.str.4)
  %22525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22526 = load i32, ptr %22525, align 4, !tbaa !5
  %22527 = call ptr @s2n_strerror_debug(i32 noundef %22526, ptr noundef @.str.4)
  %22528 = call ptr @__errno_location() #12
  %22529 = load i32, ptr %22528, align 4, !tbaa !5
  %22530 = call ptr @strerror(i32 noundef %22529) #11
  %22531 = call ptr @__errno_location() #12
  %22532 = load i32, ptr %22531, align 4, !tbaa !5
  %22533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22520, ptr noundef @.str.5, i32 noundef %22521, ptr noundef @.str.184, ptr noundef @.str.1, i32 noundef 872, ptr noundef %22524, ptr noundef %22527, ptr noundef %22530, i32 noundef %22532) #11
  br label %22534

22534:                                            ; preds = %22517, %22500
  call void @llvm.lifetime.end.p0(i64 4, ptr %457) #11
  br label %22535

22535:                                            ; preds = %22534
  br label %22536

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

22537:                                            ; No predecessors!
  br label %22538

22538:                                            ; preds = %22537
  br label %22539

22539:                                            ; preds = %22538, %22479
  br label %22540

22540:                                            ; preds = %22539
  br label %22541

22541:                                            ; preds = %22540
  br label %22542

22542:                                            ; preds = %22541
  %22543 = load i32, ptr @test_count, align 4, !tbaa !5
  %22544 = add nsw i32 %22543, 1
  store i32 %22544, ptr @test_count, align 4, !tbaa !5
  %22545 = load ptr, ptr %456, align 8, !tbaa !9
  %22546 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %22545, i32 0, i32 1
  %22547 = getelementptr inbounds %struct.s2n_kem_params, ptr %22546, i32 0, i32 1
  %22548 = load ptr, ptr %454, align 8, !tbaa !9
  %22549 = getelementptr inbounds %struct.s2n_kem_group, ptr %22548, i32 0, i32 3
  %22550 = load ptr, ptr %22549, align 8, !tbaa !91
  %22551 = getelementptr inbounds %struct.s2n_kem, ptr %22550, i32 0, i32 3
  %22552 = load i16, ptr %22551, align 2, !tbaa !110
  %22553 = zext i16 %22552 to i32
  %22554 = call i32 @s2n_alloc(ptr noundef %22547, i32 noundef %22553)
  %22555 = icmp eq i32 %22554, -1
  br i1 %22555, label %22556, label %22609

22556:                                            ; preds = %22542
  br label %22557

22557:                                            ; preds = %22556
  br label %22558

22558:                                            ; preds = %22557
  call void @llvm.lifetime.start.p0(i64 4, ptr %458) #11
  %22559 = call ptr @__errno_location() #12
  %22560 = load i32, ptr %22559, align 4, !tbaa !5
  store i32 %22560, ptr %458, align 4, !tbaa !5
  %22561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22562 = call i32 @s2n_print_stacktrace(ptr noundef %22561)
  %22563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22564 = trunc i8 %22563 to i1
  br i1 %22564, label %22565, label %22587

22565:                                            ; preds = %22558
  %22566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22567 = call i32 @fileno(ptr noundef %22566) #11
  %22568 = call i32 @isatty(i32 noundef %22567) #11
  %22569 = icmp ne i32 %22568, 0
  br i1 %22569, label %22570, label %22587

22570:                                            ; preds = %22565
  %22571 = load i32, ptr %458, align 4, !tbaa !5
  %22572 = call ptr @__errno_location() #12
  store i32 %22571, ptr %22572, align 4, !tbaa !5
  %22573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22574 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %22576, ptr noundef @.str.4)
  %22578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22579 = load i32, ptr %22578, align 4, !tbaa !5
  %22580 = call ptr @s2n_strerror_debug(i32 noundef %22579, ptr noundef @.str.4)
  %22581 = call ptr @__errno_location() #12
  %22582 = load i32, ptr %22581, align 4, !tbaa !5
  %22583 = call ptr @strerror(i32 noundef %22582) #11
  %22584 = call ptr @__errno_location() #12
  %22585 = load i32, ptr %22584, align 4, !tbaa !5
  %22586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22573, ptr noundef @.str.2, i32 noundef %22574, ptr noundef @.str.185, ptr noundef @.str.1, i32 noundef 873, ptr noundef %22577, ptr noundef %22580, ptr noundef %22583, i32 noundef %22585) #11
  br label %22604

22587:                                            ; preds = %22565, %22558
  %22588 = load i32, ptr %458, align 4, !tbaa !5
  %22589 = call ptr @__errno_location() #12
  store i32 %22588, ptr %22589, align 4, !tbaa !5
  %22590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22591 = load i32, ptr @test_count, align 4, !tbaa !5
  %22592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22593 = load i32, ptr %22592, align 4, !tbaa !5
  %22594 = call ptr @s2n_strerror(i32 noundef %22593, ptr noundef @.str.4)
  %22595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22596 = load i32, ptr %22595, align 4, !tbaa !5
  %22597 = call ptr @s2n_strerror_debug(i32 noundef %22596, ptr noundef @.str.4)
  %22598 = call ptr @__errno_location() #12
  %22599 = load i32, ptr %22598, align 4, !tbaa !5
  %22600 = call ptr @strerror(i32 noundef %22599) #11
  %22601 = call ptr @__errno_location() #12
  %22602 = load i32, ptr %22601, align 4, !tbaa !5
  %22603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22590, ptr noundef @.str.5, i32 noundef %22591, ptr noundef @.str.185, ptr noundef @.str.1, i32 noundef 873, ptr noundef %22594, ptr noundef %22597, ptr noundef %22600, i32 noundef %22602) #11
  br label %22604

22604:                                            ; preds = %22587, %22570
  call void @llvm.lifetime.end.p0(i64 4, ptr %458) #11
  br label %22605

22605:                                            ; preds = %22604
  br label %22606

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

22607:                                            ; No predecessors!
  br label %22608

22608:                                            ; preds = %22607
  br label %22609

22609:                                            ; preds = %22608, %22542
  br label %22610

22610:                                            ; preds = %22609
  br label %22611

22611:                                            ; preds = %22610
  br label %22612

22612:                                            ; preds = %22611
  %22613 = load i32, ptr @test_count, align 4, !tbaa !5
  %22614 = add nsw i32 %22613, 1
  store i32 %22614, ptr @test_count, align 4, !tbaa !5
  %22615 = load ptr, ptr %456, align 8, !tbaa !9
  %22616 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %22615, i32 0, i32 1
  %22617 = call i32 @s2n_kem_generate_keypair(ptr noundef %22616)
  %22618 = getelementptr inbounds %struct.s2n_result, ptr %459, i32 0, i32 0
  store i32 %22617, ptr %22618, align 4
  %22619 = getelementptr inbounds %struct.s2n_result, ptr %459, i32 0, i32 0
  %22620 = load i32, ptr %22619, align 4
  %22621 = call zeroext i1 @s2n_result_is_ok(i32 %22620)
  br i1 %22621, label %22675, label %22622

22622:                                            ; preds = %22612
  br label %22623

22623:                                            ; preds = %22622
  br label %22624

22624:                                            ; preds = %22623
  call void @llvm.lifetime.start.p0(i64 4, ptr %460) #11
  %22625 = call ptr @__errno_location() #12
  %22626 = load i32, ptr %22625, align 4, !tbaa !5
  store i32 %22626, ptr %460, align 4, !tbaa !5
  %22627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22628 = call i32 @s2n_print_stacktrace(ptr noundef %22627)
  %22629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22630 = trunc i8 %22629 to i1
  br i1 %22630, label %22631, label %22653

22631:                                            ; preds = %22624
  %22632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22633 = call i32 @fileno(ptr noundef %22632) #11
  %22634 = call i32 @isatty(i32 noundef %22633) #11
  %22635 = icmp ne i32 %22634, 0
  br i1 %22635, label %22636, label %22653

22636:                                            ; preds = %22631
  %22637 = load i32, ptr %460, align 4, !tbaa !5
  %22638 = call ptr @__errno_location() #12
  store i32 %22637, ptr %22638, align 4, !tbaa !5
  %22639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22640 = load i32, ptr @test_count, align 4, !tbaa !5
  %22641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22642 = load i32, ptr %22641, align 4, !tbaa !5
  %22643 = call ptr @s2n_strerror(i32 noundef %22642, ptr noundef @.str.4)
  %22644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22645 = load i32, ptr %22644, align 4, !tbaa !5
  %22646 = call ptr @s2n_strerror_debug(i32 noundef %22645, ptr noundef @.str.4)
  %22647 = call ptr @__errno_location() #12
  %22648 = load i32, ptr %22647, align 4, !tbaa !5
  %22649 = call ptr @strerror(i32 noundef %22648) #11
  %22650 = call ptr @__errno_location() #12
  %22651 = load i32, ptr %22650, align 4, !tbaa !5
  %22652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22639, ptr noundef @.str.2, i32 noundef %22640, ptr noundef @.str.186, ptr noundef @.str.1, i32 noundef 874, ptr noundef %22643, ptr noundef %22646, ptr noundef %22649, i32 noundef %22651) #11
  br label %22670

22653:                                            ; preds = %22631, %22624
  %22654 = load i32, ptr %460, align 4, !tbaa !5
  %22655 = call ptr @__errno_location() #12
  store i32 %22654, ptr %22655, align 4, !tbaa !5
  %22656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22657 = load i32, ptr @test_count, align 4, !tbaa !5
  %22658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22659 = load i32, ptr %22658, align 4, !tbaa !5
  %22660 = call ptr @s2n_strerror(i32 noundef %22659, ptr noundef @.str.4)
  %22661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22662 = load i32, ptr %22661, align 4, !tbaa !5
  %22663 = call ptr @s2n_strerror_debug(i32 noundef %22662, ptr noundef @.str.4)
  %22664 = call ptr @__errno_location() #12
  %22665 = load i32, ptr %22664, align 4, !tbaa !5
  %22666 = call ptr @strerror(i32 noundef %22665) #11
  %22667 = call ptr @__errno_location() #12
  %22668 = load i32, ptr %22667, align 4, !tbaa !5
  %22669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22656, ptr noundef @.str.5, i32 noundef %22657, ptr noundef @.str.186, ptr noundef @.str.1, i32 noundef 874, ptr noundef %22660, ptr noundef %22663, ptr noundef %22666, i32 noundef %22668) #11
  br label %22670

22670:                                            ; preds = %22653, %22636
  call void @llvm.lifetime.end.p0(i64 4, ptr %460) #11
  br label %22671

22671:                                            ; preds = %22670
  br label %22672

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

22673:                                            ; No predecessors!
  br label %22674

22674:                                            ; preds = %22673
  br label %22675

22675:                                            ; preds = %22674, %22612
  br label %22676

22676:                                            ; preds = %22675
  br label %22677

22677:                                            ; preds = %22676
  br label %22678

22678:                                            ; preds = %22677
  %22679 = load i32, ptr @test_count, align 4, !tbaa !5
  %22680 = add nsw i32 %22679, 1
  store i32 %22680, ptr @test_count, align 4, !tbaa !5
  %22681 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %22682 = load ptr, ptr %446, align 8, !tbaa !9
  %22683 = call i32 %22681(ptr noundef %22682, ptr noundef %451)
  %22684 = icmp eq i32 %22683, -1
  br i1 %22684, label %22685, label %22738

22685:                                            ; preds = %22678
  br label %22686

22686:                                            ; preds = %22685
  br label %22687

22687:                                            ; preds = %22686
  call void @llvm.lifetime.start.p0(i64 4, ptr %461) #11
  %22688 = call ptr @__errno_location() #12
  %22689 = load i32, ptr %22688, align 4, !tbaa !5
  store i32 %22689, ptr %461, align 4, !tbaa !5
  %22690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22691 = call i32 @s2n_print_stacktrace(ptr noundef %22690)
  %22692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22693 = trunc i8 %22692 to i1
  br i1 %22693, label %22694, label %22716

22694:                                            ; preds = %22687
  %22695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22696 = call i32 @fileno(ptr noundef %22695) #11
  %22697 = call i32 @isatty(i32 noundef %22696) #11
  %22698 = icmp ne i32 %22697, 0
  br i1 %22698, label %22699, label %22716

22699:                                            ; preds = %22694
  %22700 = load i32, ptr %461, align 4, !tbaa !5
  %22701 = call ptr @__errno_location() #12
  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() #12
  %22711 = load i32, ptr %22710, align 4, !tbaa !5
  %22712 = call ptr @strerror(i32 noundef %22711) #11
  %22713 = call ptr @__errno_location() #12
  %22714 = load i32, ptr %22713, align 4, !tbaa !5
  %22715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22702, ptr noundef @.str.2, i32 noundef %22703, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 875, ptr noundef %22706, ptr noundef %22709, ptr noundef %22712, i32 noundef %22714) #11
  br label %22733

22716:                                            ; preds = %22694, %22687
  %22717 = load i32, ptr %461, align 4, !tbaa !5
  %22718 = call ptr @__errno_location() #12
  store i32 %22717, ptr %22718, align 4, !tbaa !5
  %22719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22720 = load i32, ptr @test_count, align 4, !tbaa !5
  %22721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22722 = load i32, ptr %22721, align 4, !tbaa !5
  %22723 = call ptr @s2n_strerror(i32 noundef %22722, ptr noundef @.str.4)
  %22724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22725 = load i32, ptr %22724, align 4, !tbaa !5
  %22726 = call ptr @s2n_strerror_debug(i32 noundef %22725, ptr noundef @.str.4)
  %22727 = call ptr @__errno_location() #12
  %22728 = load i32, ptr %22727, align 4, !tbaa !5
  %22729 = call ptr @strerror(i32 noundef %22728) #11
  %22730 = call ptr @__errno_location() #12
  %22731 = load i32, ptr %22730, align 4, !tbaa !5
  %22732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22719, ptr noundef @.str.5, i32 noundef %22720, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 875, ptr noundef %22723, ptr noundef %22726, ptr noundef %22729, i32 noundef %22731) #11
  br label %22733

22733:                                            ; preds = %22716, %22699
  call void @llvm.lifetime.end.p0(i64 4, ptr %461) #11
  br label %22734

22734:                                            ; preds = %22733
  br label %22735

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

22736:                                            ; No predecessors!
  br label %22737

22737:                                            ; preds = %22736
  br label %22738

22738:                                            ; preds = %22737, %22678
  br label %22739

22739:                                            ; preds = %22738
  br label %22740

22740:                                            ; preds = %22739
  call void @llvm.lifetime.start.p0(i64 2, ptr %462) #11
  %22741 = load ptr, ptr %454, align 8, !tbaa !9
  %22742 = getelementptr inbounds %struct.s2n_kem_group, ptr %22741, i32 0, i32 2
  %22743 = load ptr, ptr %22742, align 8, !tbaa !89
  %22744 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %22743, i32 0, i32 3
  %22745 = load i8, ptr %22744, align 8, !tbaa !46
  %22746 = zext i8 %22745 to i32
  %22747 = load ptr, ptr %454, align 8, !tbaa !9
  %22748 = getelementptr inbounds %struct.s2n_kem_group, ptr %22747, i32 0, i32 3
  %22749 = load ptr, ptr %22748, align 8, !tbaa !91
  %22750 = getelementptr inbounds %struct.s2n_kem, ptr %22749, i32 0, i32 6
  %22751 = load i16, ptr %22750, align 4, !tbaa !115
  %22752 = zext i16 %22751 to i32
  %22753 = add nsw i32 %22746, %22752
  %22754 = trunc i32 %22753 to i16
  store i16 %22754, ptr %462, align 2, !tbaa !53
  %22755 = load ptr, ptr %456, align 8, !tbaa !9
  %22756 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %22755, i32 0, i32 1
  %22757 = getelementptr inbounds %struct.s2n_kem_params, ptr %22756, i32 0, i32 4
  %22758 = load i8, ptr %22757, align 8, !tbaa !114, !range !13, !noundef !14
  %22759 = trunc i8 %22758 to i1
  br i1 %22759, label %22760, label %22765

22760:                                            ; preds = %22740
  %22761 = load i16, ptr %462, align 2, !tbaa !53
  %22762 = zext i16 %22761 to i32
  %22763 = add nsw i32 %22762, 4
  %22764 = trunc i32 %22763 to i16
  store i16 %22764, ptr %462, align 2, !tbaa !53
  br label %22765

22765:                                            ; preds = %22760, %22740
  br label %22766

22766:                                            ; preds = %22765
  %22767 = load i32, ptr @test_count, align 4, !tbaa !5
  %22768 = add nsw i32 %22767, 1
  store i32 %22768, ptr @test_count, align 4, !tbaa !5
  %22769 = getelementptr inbounds %struct.s2n_stuffer, ptr %451, i32 0, i32 2
  %22770 = load i32, ptr %22769, align 4, !tbaa !55
  %22771 = getelementptr inbounds %struct.s2n_stuffer, ptr %451, i32 0, i32 1
  %22772 = load i32, ptr %22771, align 8, !tbaa !56
  %22773 = sub i32 %22770, %22772
  %22774 = zext i32 %22773 to i64
  %22775 = load i16, ptr %462, align 2, !tbaa !53
  %22776 = zext i16 %22775 to i64
  %22777 = add i64 4, %22776
  %22778 = icmp eq i64 %22774, %22777
  br i1 %22778, label %22832, label %22779

22779:                                            ; preds = %22766
  br label %22780

22780:                                            ; preds = %22779
  br label %22781

22781:                                            ; preds = %22780
  call void @llvm.lifetime.start.p0(i64 4, ptr %463) #11
  %22782 = call ptr @__errno_location() #12
  %22783 = load i32, ptr %22782, align 4, !tbaa !5
  store i32 %22783, ptr %463, align 4, !tbaa !5
  %22784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22785 = call i32 @s2n_print_stacktrace(ptr noundef %22784)
  %22786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22787 = trunc i8 %22786 to i1
  br i1 %22787, label %22788, label %22810

22788:                                            ; preds = %22781
  %22789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22790 = call i32 @fileno(ptr noundef %22789) #11
  %22791 = call i32 @isatty(i32 noundef %22790) #11
  %22792 = icmp ne i32 %22791, 0
  br i1 %22792, label %22793, label %22810

22793:                                            ; preds = %22788
  %22794 = load i32, ptr %463, align 4, !tbaa !5
  %22795 = call ptr @__errno_location() #12
  store i32 %22794, ptr %22795, align 4, !tbaa !5
  %22796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22797 = load i32, ptr @test_count, align 4, !tbaa !5
  %22798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22799 = load i32, ptr %22798, align 4, !tbaa !5
  %22800 = call ptr @s2n_strerror(i32 noundef %22799, ptr noundef @.str.4)
  %22801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22802 = load i32, ptr %22801, align 4, !tbaa !5
  %22803 = call ptr @s2n_strerror_debug(i32 noundef %22802, ptr noundef @.str.4)
  %22804 = call ptr @__errno_location() #12
  %22805 = load i32, ptr %22804, align 4, !tbaa !5
  %22806 = call ptr @strerror(i32 noundef %22805) #11
  %22807 = call ptr @__errno_location() #12
  %22808 = load i32, ptr %22807, align 4, !tbaa !5
  %22809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22796, ptr noundef @.str.2, i32 noundef %22797, ptr noundef @.str.187, ptr noundef @.str.1, i32 noundef 883, ptr noundef %22800, ptr noundef %22803, ptr noundef %22806, i32 noundef %22808) #11
  br label %22827

22810:                                            ; preds = %22788, %22781
  %22811 = load i32, ptr %463, align 4, !tbaa !5
  %22812 = call ptr @__errno_location() #12
  store i32 %22811, ptr %22812, align 4, !tbaa !5
  %22813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22814 = load i32, ptr @test_count, align 4, !tbaa !5
  %22815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22816 = load i32, ptr %22815, align 4, !tbaa !5
  %22817 = call ptr @s2n_strerror(i32 noundef %22816, ptr noundef @.str.4)
  %22818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22819 = load i32, ptr %22818, align 4, !tbaa !5
  %22820 = call ptr @s2n_strerror_debug(i32 noundef %22819, ptr noundef @.str.4)
  %22821 = call ptr @__errno_location() #12
  %22822 = load i32, ptr %22821, align 4, !tbaa !5
  %22823 = call ptr @strerror(i32 noundef %22822) #11
  %22824 = call ptr @__errno_location() #12
  %22825 = load i32, ptr %22824, align 4, !tbaa !5
  %22826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22813, ptr noundef @.str.5, i32 noundef %22814, ptr noundef @.str.187, ptr noundef @.str.1, i32 noundef 883, ptr noundef %22817, ptr noundef %22820, ptr noundef %22823, i32 noundef %22825) #11
  br label %22827

22827:                                            ; preds = %22810, %22793
  call void @llvm.lifetime.end.p0(i64 4, ptr %463) #11
  br label %22828

22828:                                            ; preds = %22827
  br label %22829

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

22830:                                            ; No predecessors!
  br label %22831

22831:                                            ; preds = %22830
  br label %22832

22832:                                            ; preds = %22831, %22766
  br label %22833

22833:                                            ; preds = %22832
  br label %22834

22834:                                            ; preds = %22833
  br label %22835

22835:                                            ; preds = %22834
  call void @llvm.lifetime.start.p0(i64 2, ptr %464) #11
  br label %22836

22836:                                            ; preds = %22835
  %22837 = load i32, ptr @test_count, align 4, !tbaa !5
  %22838 = add nsw i32 %22837, 1
  store i32 %22838, ptr @test_count, align 4, !tbaa !5
  %22839 = call i32 @s2n_stuffer_read_uint16(ptr noundef %451, ptr noundef %464)
  %22840 = icmp eq i32 %22839, -1
  br i1 %22840, label %22841, label %22894

22841:                                            ; preds = %22836
  br label %22842

22842:                                            ; preds = %22841
  br label %22843

22843:                                            ; preds = %22842
  call void @llvm.lifetime.start.p0(i64 4, ptr %465) #11
  %22844 = call ptr @__errno_location() #12
  %22845 = load i32, ptr %22844, align 4, !tbaa !5
  store i32 %22845, ptr %465, align 4, !tbaa !5
  %22846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22847 = call i32 @s2n_print_stacktrace(ptr noundef %22846)
  %22848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22849 = trunc i8 %22848 to i1
  br i1 %22849, label %22850, label %22872

22850:                                            ; preds = %22843
  %22851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22852 = call i32 @fileno(ptr noundef %22851) #11
  %22853 = call i32 @isatty(i32 noundef %22852) #11
  %22854 = icmp ne i32 %22853, 0
  br i1 %22854, label %22855, label %22872

22855:                                            ; preds = %22850
  %22856 = load i32, ptr %465, align 4, !tbaa !5
  %22857 = call ptr @__errno_location() #12
  store i32 %22856, ptr %22857, align 4, !tbaa !5
  %22858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22859 = load i32, ptr @test_count, align 4, !tbaa !5
  %22860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22861 = load i32, ptr %22860, align 4, !tbaa !5
  %22862 = call ptr @s2n_strerror(i32 noundef %22861, ptr noundef @.str.4)
  %22863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22864 = load i32, ptr %22863, align 4, !tbaa !5
  %22865 = call ptr @s2n_strerror_debug(i32 noundef %22864, ptr noundef @.str.4)
  %22866 = call ptr @__errno_location() #12
  %22867 = load i32, ptr %22866, align 4, !tbaa !5
  %22868 = call ptr @strerror(i32 noundef %22867) #11
  %22869 = call ptr @__errno_location() #12
  %22870 = load i32, ptr %22869, align 4, !tbaa !5
  %22871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22858, ptr noundef @.str.2, i32 noundef %22859, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 886, ptr noundef %22862, ptr noundef %22865, ptr noundef %22868, i32 noundef %22870) #11
  br label %22889

22872:                                            ; preds = %22850, %22843
  %22873 = load i32, ptr %465, align 4, !tbaa !5
  %22874 = call ptr @__errno_location() #12
  store i32 %22873, ptr %22874, align 4, !tbaa !5
  %22875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22876 = load i32, ptr @test_count, align 4, !tbaa !5
  %22877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22878 = load i32, ptr %22877, align 4, !tbaa !5
  %22879 = call ptr @s2n_strerror(i32 noundef %22878, ptr noundef @.str.4)
  %22880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22881 = load i32, ptr %22880, align 4, !tbaa !5
  %22882 = call ptr @s2n_strerror_debug(i32 noundef %22881, ptr noundef @.str.4)
  %22883 = call ptr @__errno_location() #12
  %22884 = load i32, ptr %22883, align 4, !tbaa !5
  %22885 = call ptr @strerror(i32 noundef %22884) #11
  %22886 = call ptr @__errno_location() #12
  %22887 = load i32, ptr %22886, align 4, !tbaa !5
  %22888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22875, ptr noundef @.str.5, i32 noundef %22876, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 886, ptr noundef %22879, ptr noundef %22882, ptr noundef %22885, i32 noundef %22887) #11
  br label %22889

22889:                                            ; preds = %22872, %22855
  call void @llvm.lifetime.end.p0(i64 4, ptr %465) #11
  br label %22890

22890:                                            ; preds = %22889
  br label %22891

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

22892:                                            ; No predecessors!
  br label %22893

22893:                                            ; preds = %22892
  br label %22894

22894:                                            ; preds = %22893, %22836
  br label %22895

22895:                                            ; preds = %22894
  br label %22896

22896:                                            ; preds = %22895
  br label %22897

22897:                                            ; preds = %22896
  %22898 = load i32, ptr @test_count, align 4, !tbaa !5
  %22899 = add nsw i32 %22898, 1
  store i32 %22899, ptr @test_count, align 4, !tbaa !5
  %22900 = load i16, ptr %464, align 2, !tbaa !53
  %22901 = zext i16 %22900 to i32
  %22902 = load ptr, ptr %454, align 8, !tbaa !9
  %22903 = getelementptr inbounds %struct.s2n_kem_group, ptr %22902, i32 0, i32 1
  %22904 = load i16, ptr %22903, align 8, !tbaa !86
  %22905 = zext i16 %22904 to i32
  %22906 = icmp eq i32 %22901, %22905
  br i1 %22906, label %22960, label %22907

22907:                                            ; preds = %22897
  br label %22908

22908:                                            ; preds = %22907
  br label %22909

22909:                                            ; preds = %22908
  call void @llvm.lifetime.start.p0(i64 4, ptr %466) #11
  %22910 = call ptr @__errno_location() #12
  %22911 = load i32, ptr %22910, align 4, !tbaa !5
  store i32 %22911, ptr %466, align 4, !tbaa !5
  %22912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22913 = call i32 @s2n_print_stacktrace(ptr noundef %22912)
  %22914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22915 = trunc i8 %22914 to i1
  br i1 %22915, label %22916, label %22938

22916:                                            ; preds = %22909
  %22917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22918 = call i32 @fileno(ptr noundef %22917) #11
  %22919 = call i32 @isatty(i32 noundef %22918) #11
  %22920 = icmp ne i32 %22919, 0
  br i1 %22920, label %22921, label %22938

22921:                                            ; preds = %22916
  %22922 = load i32, ptr %466, align 4, !tbaa !5
  %22923 = call ptr @__errno_location() #12
  store i32 %22922, ptr %22923, align 4, !tbaa !5
  %22924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22925 = load i32, ptr @test_count, align 4, !tbaa !5
  %22926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22927 = load i32, ptr %22926, align 4, !tbaa !5
  %22928 = call ptr @s2n_strerror(i32 noundef %22927, ptr noundef @.str.4)
  %22929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22930 = load i32, ptr %22929, align 4, !tbaa !5
  %22931 = call ptr @s2n_strerror_debug(i32 noundef %22930, ptr noundef @.str.4)
  %22932 = call ptr @__errno_location() #12
  %22933 = load i32, ptr %22932, align 4, !tbaa !5
  %22934 = call ptr @strerror(i32 noundef %22933) #11
  %22935 = call ptr @__errno_location() #12
  %22936 = load i32, ptr %22935, align 4, !tbaa !5
  %22937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22924, ptr noundef @.str.2, i32 noundef %22925, ptr noundef @.str.188, ptr noundef @.str.1, i32 noundef 886, ptr noundef %22928, ptr noundef %22931, ptr noundef %22934, i32 noundef %22936) #11
  br label %22955

22938:                                            ; preds = %22916, %22909
  %22939 = load i32, ptr %466, align 4, !tbaa !5
  %22940 = call ptr @__errno_location() #12
  store i32 %22939, ptr %22940, align 4, !tbaa !5
  %22941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22942 = load i32, ptr @test_count, align 4, !tbaa !5
  %22943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22944 = load i32, ptr %22943, align 4, !tbaa !5
  %22945 = call ptr @s2n_strerror(i32 noundef %22944, ptr noundef @.str.4)
  %22946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22947 = load i32, ptr %22946, align 4, !tbaa !5
  %22948 = call ptr @s2n_strerror_debug(i32 noundef %22947, ptr noundef @.str.4)
  %22949 = call ptr @__errno_location() #12
  %22950 = load i32, ptr %22949, align 4, !tbaa !5
  %22951 = call ptr @strerror(i32 noundef %22950) #11
  %22952 = call ptr @__errno_location() #12
  %22953 = load i32, ptr %22952, align 4, !tbaa !5
  %22954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22941, ptr noundef @.str.5, i32 noundef %22942, ptr noundef @.str.188, ptr noundef @.str.1, i32 noundef 886, ptr noundef %22945, ptr noundef %22948, ptr noundef %22951, i32 noundef %22953) #11
  br label %22955

22955:                                            ; preds = %22938, %22921
  call void @llvm.lifetime.end.p0(i64 4, ptr %466) #11
  br label %22956

22956:                                            ; preds = %22955
  br label %22957

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

22958:                                            ; No predecessors!
  br label %22959

22959:                                            ; preds = %22958
  br label %22960

22960:                                            ; preds = %22959, %22897
  br label %22961

22961:                                            ; preds = %22960
  br label %22962

22962:                                            ; preds = %22961
  call void @llvm.lifetime.end.p0(i64 2, ptr %464) #11
  br label %22963

22963:                                            ; preds = %22962
  br label %22964

22964:                                            ; preds = %22963
  br label %22965

22965:                                            ; preds = %22964
  call void @llvm.lifetime.start.p0(i64 2, ptr %467) #11
  br label %22966

22966:                                            ; preds = %22965
  %22967 = load i32, ptr @test_count, align 4, !tbaa !5
  %22968 = add nsw i32 %22967, 1
  store i32 %22968, ptr @test_count, align 4, !tbaa !5
  %22969 = call i32 @s2n_stuffer_read_uint16(ptr noundef %451, ptr noundef %467)
  %22970 = icmp eq i32 %22969, -1
  br i1 %22970, label %22971, label %23024

22971:                                            ; preds = %22966
  br label %22972

22972:                                            ; preds = %22971
  br label %22973

22973:                                            ; preds = %22972
  call void @llvm.lifetime.start.p0(i64 4, ptr %468) #11
  %22974 = call ptr @__errno_location() #12
  %22975 = load i32, ptr %22974, align 4, !tbaa !5
  store i32 %22975, ptr %468, align 4, !tbaa !5
  %22976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22977 = call i32 @s2n_print_stacktrace(ptr noundef %22976)
  %22978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22979 = trunc i8 %22978 to i1
  br i1 %22979, label %22980, label %23002

22980:                                            ; preds = %22973
  %22981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22982 = call i32 @fileno(ptr noundef %22981) #11
  %22983 = call i32 @isatty(i32 noundef %22982) #11
  %22984 = icmp ne i32 %22983, 0
  br i1 %22984, label %22985, label %23002

22985:                                            ; preds = %22980
  %22986 = load i32, ptr %468, align 4, !tbaa !5
  %22987 = call ptr @__errno_location() #12
  store i32 %22986, ptr %22987, align 4, !tbaa !5
  %22988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22989 = load i32, ptr @test_count, align 4, !tbaa !5
  %22990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22991 = load i32, ptr %22990, align 4, !tbaa !5
  %22992 = call ptr @s2n_strerror(i32 noundef %22991, ptr noundef @.str.4)
  %22993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22994 = load i32, ptr %22993, align 4, !tbaa !5
  %22995 = call ptr @s2n_strerror_debug(i32 noundef %22994, ptr noundef @.str.4)
  %22996 = call ptr @__errno_location() #12
  %22997 = load i32, ptr %22996, align 4, !tbaa !5
  %22998 = call ptr @strerror(i32 noundef %22997) #11
  %22999 = call ptr @__errno_location() #12
  %23000 = load i32, ptr %22999, align 4, !tbaa !5
  %23001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22988, ptr noundef @.str.2, i32 noundef %22989, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 887, ptr noundef %22992, ptr noundef %22995, ptr noundef %22998, i32 noundef %23000) #11
  br label %23019

23002:                                            ; preds = %22980, %22973
  %23003 = load i32, ptr %468, align 4, !tbaa !5
  %23004 = call ptr @__errno_location() #12
  store i32 %23003, ptr %23004, align 4, !tbaa !5
  %23005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23006 = load i32, ptr @test_count, align 4, !tbaa !5
  %23007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23008 = load i32, ptr %23007, align 4, !tbaa !5
  %23009 = call ptr @s2n_strerror(i32 noundef %23008, ptr noundef @.str.4)
  %23010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23011 = load i32, ptr %23010, align 4, !tbaa !5
  %23012 = call ptr @s2n_strerror_debug(i32 noundef %23011, ptr noundef @.str.4)
  %23013 = call ptr @__errno_location() #12
  %23014 = load i32, ptr %23013, align 4, !tbaa !5
  %23015 = call ptr @strerror(i32 noundef %23014) #11
  %23016 = call ptr @__errno_location() #12
  %23017 = load i32, ptr %23016, align 4, !tbaa !5
  %23018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23005, ptr noundef @.str.5, i32 noundef %23006, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 887, ptr noundef %23009, ptr noundef %23012, ptr noundef %23015, i32 noundef %23017) #11
  br label %23019

23019:                                            ; preds = %23002, %22985
  call void @llvm.lifetime.end.p0(i64 4, ptr %468) #11
  br label %23020

23020:                                            ; preds = %23019
  br label %23021

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

23022:                                            ; No predecessors!
  br label %23023

23023:                                            ; preds = %23022
  br label %23024

23024:                                            ; preds = %23023, %22966
  br label %23025

23025:                                            ; preds = %23024
  br label %23026

23026:                                            ; preds = %23025
  br label %23027

23027:                                            ; preds = %23026
  %23028 = load i32, ptr @test_count, align 4, !tbaa !5
  %23029 = add nsw i32 %23028, 1
  store i32 %23029, ptr @test_count, align 4, !tbaa !5
  %23030 = load i16, ptr %467, align 2, !tbaa !53
  %23031 = zext i16 %23030 to i32
  %23032 = load i16, ptr %462, align 2, !tbaa !53
  %23033 = zext i16 %23032 to i32
  %23034 = icmp eq i32 %23031, %23033
  br i1 %23034, label %23088, label %23035

23035:                                            ; preds = %23027
  br label %23036

23036:                                            ; preds = %23035
  br label %23037

23037:                                            ; preds = %23036
  call void @llvm.lifetime.start.p0(i64 4, ptr %469) #11
  %23038 = call ptr @__errno_location() #12
  %23039 = load i32, ptr %23038, align 4, !tbaa !5
  store i32 %23039, ptr %469, align 4, !tbaa !5
  %23040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23041 = call i32 @s2n_print_stacktrace(ptr noundef %23040)
  %23042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23043 = trunc i8 %23042 to i1
  br i1 %23043, label %23044, label %23066

23044:                                            ; preds = %23037
  %23045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23046 = call i32 @fileno(ptr noundef %23045) #11
  %23047 = call i32 @isatty(i32 noundef %23046) #11
  %23048 = icmp ne i32 %23047, 0
  br i1 %23048, label %23049, label %23066

23049:                                            ; preds = %23044
  %23050 = load i32, ptr %469, align 4, !tbaa !5
  %23051 = call ptr @__errno_location() #12
  store i32 %23050, ptr %23051, align 4, !tbaa !5
  %23052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23053 = load i32, ptr @test_count, align 4, !tbaa !5
  %23054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23055 = load i32, ptr %23054, align 4, !tbaa !5
  %23056 = call ptr @s2n_strerror(i32 noundef %23055, ptr noundef @.str.4)
  %23057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23058 = load i32, ptr %23057, align 4, !tbaa !5
  %23059 = call ptr @s2n_strerror_debug(i32 noundef %23058, ptr noundef @.str.4)
  %23060 = call ptr @__errno_location() #12
  %23061 = load i32, ptr %23060, align 4, !tbaa !5
  %23062 = call ptr @strerror(i32 noundef %23061) #11
  %23063 = call ptr @__errno_location() #12
  %23064 = load i32, ptr %23063, align 4, !tbaa !5
  %23065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23052, ptr noundef @.str.2, i32 noundef %23053, ptr noundef @.str.189, ptr noundef @.str.1, i32 noundef 887, ptr noundef %23056, ptr noundef %23059, ptr noundef %23062, i32 noundef %23064) #11
  br label %23083

23066:                                            ; preds = %23044, %23037
  %23067 = load i32, ptr %469, align 4, !tbaa !5
  %23068 = call ptr @__errno_location() #12
  store i32 %23067, ptr %23068, align 4, !tbaa !5
  %23069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23070 = load i32, ptr @test_count, align 4, !tbaa !5
  %23071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23072 = load i32, ptr %23071, align 4, !tbaa !5
  %23073 = call ptr @s2n_strerror(i32 noundef %23072, ptr noundef @.str.4)
  %23074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23075 = load i32, ptr %23074, align 4, !tbaa !5
  %23076 = call ptr @s2n_strerror_debug(i32 noundef %23075, ptr noundef @.str.4)
  %23077 = call ptr @__errno_location() #12
  %23078 = load i32, ptr %23077, align 4, !tbaa !5
  %23079 = call ptr @strerror(i32 noundef %23078) #11
  %23080 = call ptr @__errno_location() #12
  %23081 = load i32, ptr %23080, align 4, !tbaa !5
  %23082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23069, ptr noundef @.str.5, i32 noundef %23070, ptr noundef @.str.189, ptr noundef @.str.1, i32 noundef 887, ptr noundef %23073, ptr noundef %23076, ptr noundef %23079, i32 noundef %23081) #11
  br label %23083

23083:                                            ; preds = %23066, %23049
  call void @llvm.lifetime.end.p0(i64 4, ptr %469) #11
  br label %23084

23084:                                            ; preds = %23083
  br label %23085

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

23086:                                            ; No predecessors!
  br label %23087

23087:                                            ; preds = %23086
  br label %23088

23088:                                            ; preds = %23087, %23027
  br label %23089

23089:                                            ; preds = %23088
  br label %23090

23090:                                            ; preds = %23089
  call void @llvm.lifetime.end.p0(i64 2, ptr %467) #11
  br label %23091

23091:                                            ; preds = %23090
  br label %23092

23092:                                            ; preds = %23091
  call void @llvm.lifetime.start.p0(i64 2, ptr %470) #11
  %23093 = load ptr, ptr %454, align 8, !tbaa !9
  %23094 = getelementptr inbounds %struct.s2n_kem_group, ptr %23093, i32 0, i32 2
  %23095 = load ptr, ptr %23094, align 8, !tbaa !89
  %23096 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %23095, i32 0, i32 3
  %23097 = load i8, ptr %23096, align 8, !tbaa !46
  %23098 = zext i8 %23097 to i16
  store i16 %23098, ptr %470, align 2, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 2, ptr %471) #11
  %23099 = load ptr, ptr %454, align 8, !tbaa !9
  %23100 = getelementptr inbounds %struct.s2n_kem_group, ptr %23099, i32 0, i32 3
  %23101 = load ptr, ptr %23100, align 8, !tbaa !91
  %23102 = getelementptr inbounds %struct.s2n_kem, ptr %23101, i32 0, i32 6
  %23103 = load i16, ptr %23102, align 4, !tbaa !115
  store i16 %23103, ptr %471, align 2, !tbaa !53
  %23104 = load ptr, ptr %454, align 8, !tbaa !9
  %23105 = getelementptr inbounds %struct.s2n_kem_group, ptr %23104, i32 0, i32 4
  %23106 = load i8, ptr %23105, align 8, !tbaa !116, !range !13, !noundef !14
  %23107 = trunc i8 %23106 to i1
  br i1 %23107, label %23108, label %23120

23108:                                            ; preds = %23092
  %23109 = load ptr, ptr %454, align 8, !tbaa !9
  %23110 = getelementptr inbounds %struct.s2n_kem_group, ptr %23109, i32 0, i32 3
  %23111 = load ptr, ptr %23110, align 8, !tbaa !91
  %23112 = getelementptr inbounds %struct.s2n_kem, ptr %23111, i32 0, i32 6
  %23113 = load i16, ptr %23112, align 4, !tbaa !115
  store i16 %23113, ptr %470, align 2, !tbaa !53
  %23114 = load ptr, ptr %454, align 8, !tbaa !9
  %23115 = getelementptr inbounds %struct.s2n_kem_group, ptr %23114, i32 0, i32 2
  %23116 = load ptr, ptr %23115, align 8, !tbaa !89
  %23117 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %23116, i32 0, i32 3
  %23118 = load i8, ptr %23117, align 8, !tbaa !46
  %23119 = zext i8 %23118 to i16
  store i16 %23119, ptr %471, align 2, !tbaa !53
  br label %23120

23120:                                            ; preds = %23108, %23092
  %23121 = load i32, ptr %444, align 4, !tbaa !5
  %23122 = icmp ne i32 %23121, 0
  br i1 %23122, label %23123, label %23252

23123:                                            ; preds = %23120
  br label %23124

23124:                                            ; preds = %23123
  call void @llvm.lifetime.start.p0(i64 2, ptr %472) #11
  br label %23125

23125:                                            ; preds = %23124
  %23126 = load i32, ptr @test_count, align 4, !tbaa !5
  %23127 = add nsw i32 %23126, 1
  store i32 %23127, ptr @test_count, align 4, !tbaa !5
  %23128 = call i32 @s2n_stuffer_read_uint16(ptr noundef %451, ptr noundef %472)
  %23129 = icmp eq i32 %23128, -1
  br i1 %23129, label %23130, label %23183

23130:                                            ; preds = %23125
  br label %23131

23131:                                            ; preds = %23130
  br label %23132

23132:                                            ; preds = %23131
  call void @llvm.lifetime.start.p0(i64 4, ptr %473) #11
  %23133 = call ptr @__errno_location() #12
  %23134 = load i32, ptr %23133, align 4, !tbaa !5
  store i32 %23134, ptr %473, align 4, !tbaa !5
  %23135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23136 = call i32 @s2n_print_stacktrace(ptr noundef %23135)
  %23137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23138 = trunc i8 %23137 to i1
  br i1 %23138, label %23139, label %23161

23139:                                            ; preds = %23132
  %23140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23141 = call i32 @fileno(ptr noundef %23140) #11
  %23142 = call i32 @isatty(i32 noundef %23141) #11
  %23143 = icmp ne i32 %23142, 0
  br i1 %23143, label %23144, label %23161

23144:                                            ; preds = %23139
  %23145 = load i32, ptr %473, align 4, !tbaa !5
  %23146 = call ptr @__errno_location() #12
  store i32 %23145, ptr %23146, align 4, !tbaa !5
  %23147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23148 = load i32, ptr @test_count, align 4, !tbaa !5
  %23149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23150 = load i32, ptr %23149, align 4, !tbaa !5
  %23151 = call ptr @s2n_strerror(i32 noundef %23150, ptr noundef @.str.4)
  %23152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23153 = load i32, ptr %23152, align 4, !tbaa !5
  %23154 = call ptr @s2n_strerror_debug(i32 noundef %23153, ptr noundef @.str.4)
  %23155 = call ptr @__errno_location() #12
  %23156 = load i32, ptr %23155, align 4, !tbaa !5
  %23157 = call ptr @strerror(i32 noundef %23156) #11
  %23158 = call ptr @__errno_location() #12
  %23159 = load i32, ptr %23158, align 4, !tbaa !5
  %23160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23147, ptr noundef @.str.2, i32 noundef %23148, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 898, ptr noundef %23151, ptr noundef %23154, ptr noundef %23157, i32 noundef %23159) #11
  br label %23178

23161:                                            ; preds = %23139, %23132
  %23162 = load i32, ptr %473, align 4, !tbaa !5
  %23163 = call ptr @__errno_location() #12
  store i32 %23162, ptr %23163, align 4, !tbaa !5
  %23164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23165 = load i32, ptr @test_count, align 4, !tbaa !5
  %23166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23167 = load i32, ptr %23166, align 4, !tbaa !5
  %23168 = call ptr @s2n_strerror(i32 noundef %23167, ptr noundef @.str.4)
  %23169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23170 = load i32, ptr %23169, align 4, !tbaa !5
  %23171 = call ptr @s2n_strerror_debug(i32 noundef %23170, ptr noundef @.str.4)
  %23172 = call ptr @__errno_location() #12
  %23173 = load i32, ptr %23172, align 4, !tbaa !5
  %23174 = call ptr @strerror(i32 noundef %23173) #11
  %23175 = call ptr @__errno_location() #12
  %23176 = load i32, ptr %23175, align 4, !tbaa !5
  %23177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23164, ptr noundef @.str.5, i32 noundef %23165, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 898, ptr noundef %23168, ptr noundef %23171, ptr noundef %23174, i32 noundef %23176) #11
  br label %23178

23178:                                            ; preds = %23161, %23144
  call void @llvm.lifetime.end.p0(i64 4, ptr %473) #11
  br label %23179

23179:                                            ; preds = %23178
  br label %23180

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

23181:                                            ; No predecessors!
  br label %23182

23182:                                            ; preds = %23181
  br label %23183

23183:                                            ; preds = %23182, %23125
  br label %23184

23184:                                            ; preds = %23183
  br label %23185

23185:                                            ; preds = %23184
  br label %23186

23186:                                            ; preds = %23185
  %23187 = load i32, ptr @test_count, align 4, !tbaa !5
  %23188 = add nsw i32 %23187, 1
  store i32 %23188, ptr @test_count, align 4, !tbaa !5
  %23189 = load i16, ptr %472, align 2, !tbaa !53
  %23190 = zext i16 %23189 to i32
  %23191 = load i16, ptr %470, align 2, !tbaa !53
  %23192 = zext i16 %23191 to i32
  %23193 = icmp eq i32 %23190, %23192
  br i1 %23193, label %23247, label %23194

23194:                                            ; preds = %23186
  br label %23195

23195:                                            ; preds = %23194
  br label %23196

23196:                                            ; preds = %23195
  call void @llvm.lifetime.start.p0(i64 4, ptr %474) #11
  %23197 = call ptr @__errno_location() #12
  %23198 = load i32, ptr %23197, align 4, !tbaa !5
  store i32 %23198, ptr %474, align 4, !tbaa !5
  %23199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23200 = call i32 @s2n_print_stacktrace(ptr noundef %23199)
  %23201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23202 = trunc i8 %23201 to i1
  br i1 %23202, label %23203, label %23225

23203:                                            ; preds = %23196
  %23204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23205 = call i32 @fileno(ptr noundef %23204) #11
  %23206 = call i32 @isatty(i32 noundef %23205) #11
  %23207 = icmp ne i32 %23206, 0
  br i1 %23207, label %23208, label %23225

23208:                                            ; preds = %23203
  %23209 = load i32, ptr %474, align 4, !tbaa !5
  %23210 = call ptr @__errno_location() #12
  store i32 %23209, ptr %23210, align 4, !tbaa !5
  %23211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23212 = load i32, ptr @test_count, align 4, !tbaa !5
  %23213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23214 = load i32, ptr %23213, align 4, !tbaa !5
  %23215 = call ptr @s2n_strerror(i32 noundef %23214, ptr noundef @.str.4)
  %23216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23217 = load i32, ptr %23216, align 4, !tbaa !5
  %23218 = call ptr @s2n_strerror_debug(i32 noundef %23217, ptr noundef @.str.4)
  %23219 = call ptr @__errno_location() #12
  %23220 = load i32, ptr %23219, align 4, !tbaa !5
  %23221 = call ptr @strerror(i32 noundef %23220) #11
  %23222 = call ptr @__errno_location() #12
  %23223 = load i32, ptr %23222, align 4, !tbaa !5
  %23224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23211, ptr noundef @.str.2, i32 noundef %23212, ptr noundef @.str.190, ptr noundef @.str.1, i32 noundef 898, ptr noundef %23215, ptr noundef %23218, ptr noundef %23221, i32 noundef %23223) #11
  br label %23242

23225:                                            ; preds = %23203, %23196
  %23226 = load i32, ptr %474, align 4, !tbaa !5
  %23227 = call ptr @__errno_location() #12
  store i32 %23226, ptr %23227, align 4, !tbaa !5
  %23228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23229 = load i32, ptr @test_count, align 4, !tbaa !5
  %23230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23231 = load i32, ptr %23230, align 4, !tbaa !5
  %23232 = call ptr @s2n_strerror(i32 noundef %23231, ptr noundef @.str.4)
  %23233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23234 = load i32, ptr %23233, align 4, !tbaa !5
  %23235 = call ptr @s2n_strerror_debug(i32 noundef %23234, ptr noundef @.str.4)
  %23236 = call ptr @__errno_location() #12
  %23237 = load i32, ptr %23236, align 4, !tbaa !5
  %23238 = call ptr @strerror(i32 noundef %23237) #11
  %23239 = call ptr @__errno_location() #12
  %23240 = load i32, ptr %23239, align 4, !tbaa !5
  %23241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23228, ptr noundef @.str.5, i32 noundef %23229, ptr noundef @.str.190, ptr noundef @.str.1, i32 noundef 898, ptr noundef %23232, ptr noundef %23235, ptr noundef %23238, i32 noundef %23240) #11
  br label %23242

23242:                                            ; preds = %23225, %23208
  call void @llvm.lifetime.end.p0(i64 4, ptr %474) #11
  br label %23243

23243:                                            ; preds = %23242
  br label %23244

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

23245:                                            ; No predecessors!
  br label %23246

23246:                                            ; preds = %23245
  br label %23247

23247:                                            ; preds = %23246, %23186
  br label %23248

23248:                                            ; preds = %23247
  br label %23249

23249:                                            ; preds = %23248
  call void @llvm.lifetime.end.p0(i64 2, ptr %472) #11
  br label %23250

23250:                                            ; preds = %23249
  br label %23251

23251:                                            ; preds = %23250
  br label %23252

23252:                                            ; preds = %23251, %23120
  br label %23253

23253:                                            ; preds = %23252
  %23254 = load i32, ptr @test_count, align 4, !tbaa !5
  %23255 = add nsw i32 %23254, 1
  store i32 %23255, ptr @test_count, align 4, !tbaa !5
  %23256 = load i16, ptr %470, align 2, !tbaa !53
  %23257 = zext i16 %23256 to i32
  %23258 = call i32 @s2n_stuffer_skip_read(ptr noundef %451, i32 noundef %23257)
  %23259 = icmp eq i32 %23258, -1
  br i1 %23259, label %23260, label %23313

23260:                                            ; preds = %23253
  br label %23261

23261:                                            ; preds = %23260
  br label %23262

23262:                                            ; preds = %23261
  call void @llvm.lifetime.start.p0(i64 4, ptr %475) #11
  %23263 = call ptr @__errno_location() #12
  %23264 = load i32, ptr %23263, align 4, !tbaa !5
  store i32 %23264, ptr %475, align 4, !tbaa !5
  %23265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23266 = call i32 @s2n_print_stacktrace(ptr noundef %23265)
  %23267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23268 = trunc i8 %23267 to i1
  br i1 %23268, label %23269, label %23291

23269:                                            ; preds = %23262
  %23270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23271 = call i32 @fileno(ptr noundef %23270) #11
  %23272 = call i32 @isatty(i32 noundef %23271) #11
  %23273 = icmp ne i32 %23272, 0
  br i1 %23273, label %23274, label %23291

23274:                                            ; preds = %23269
  %23275 = load i32, ptr %475, align 4, !tbaa !5
  %23276 = call ptr @__errno_location() #12
  store i32 %23275, ptr %23276, align 4, !tbaa !5
  %23277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23278 = load i32, ptr @test_count, align 4, !tbaa !5
  %23279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23280 = load i32, ptr %23279, align 4, !tbaa !5
  %23281 = call ptr @s2n_strerror(i32 noundef %23280, ptr noundef @.str.4)
  %23282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23283 = load i32, ptr %23282, align 4, !tbaa !5
  %23284 = call ptr @s2n_strerror_debug(i32 noundef %23283, ptr noundef @.str.4)
  %23285 = call ptr @__errno_location() #12
  %23286 = load i32, ptr %23285, align 4, !tbaa !5
  %23287 = call ptr @strerror(i32 noundef %23286) #11
  %23288 = call ptr @__errno_location() #12
  %23289 = load i32, ptr %23288, align 4, !tbaa !5
  %23290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23277, ptr noundef @.str.2, i32 noundef %23278, ptr noundef @.str.191, ptr noundef @.str.1, i32 noundef 900, ptr noundef %23281, ptr noundef %23284, ptr noundef %23287, i32 noundef %23289) #11
  br label %23308

23291:                                            ; preds = %23269, %23262
  %23292 = load i32, ptr %475, align 4, !tbaa !5
  %23293 = call ptr @__errno_location() #12
  store i32 %23292, ptr %23293, align 4, !tbaa !5
  %23294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23295 = load i32, ptr @test_count, align 4, !tbaa !5
  %23296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23297 = load i32, ptr %23296, align 4, !tbaa !5
  %23298 = call ptr @s2n_strerror(i32 noundef %23297, ptr noundef @.str.4)
  %23299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23300 = load i32, ptr %23299, align 4, !tbaa !5
  %23301 = call ptr @s2n_strerror_debug(i32 noundef %23300, ptr noundef @.str.4)
  %23302 = call ptr @__errno_location() #12
  %23303 = load i32, ptr %23302, align 4, !tbaa !5
  %23304 = call ptr @strerror(i32 noundef %23303) #11
  %23305 = call ptr @__errno_location() #12
  %23306 = load i32, ptr %23305, align 4, !tbaa !5
  %23307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23294, ptr noundef @.str.5, i32 noundef %23295, ptr noundef @.str.191, ptr noundef @.str.1, i32 noundef 900, ptr noundef %23298, ptr noundef %23301, ptr noundef %23304, i32 noundef %23306) #11
  br label %23308

23308:                                            ; preds = %23291, %23274
  call void @llvm.lifetime.end.p0(i64 4, ptr %475) #11
  br label %23309

23309:                                            ; preds = %23308
  br label %23310

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

23311:                                            ; No predecessors!
  br label %23312

23312:                                            ; preds = %23311
  br label %23313

23313:                                            ; preds = %23312, %23253
  br label %23314

23314:                                            ; preds = %23313
  br label %23315

23315:                                            ; preds = %23314
  %23316 = load i32, ptr %444, align 4, !tbaa !5
  %23317 = icmp ne i32 %23316, 0
  br i1 %23317, label %23318, label %23447

23318:                                            ; preds = %23315
  br label %23319

23319:                                            ; preds = %23318
  call void @llvm.lifetime.start.p0(i64 2, ptr %476) #11
  br label %23320

23320:                                            ; preds = %23319
  %23321 = load i32, ptr @test_count, align 4, !tbaa !5
  %23322 = add nsw i32 %23321, 1
  store i32 %23322, ptr @test_count, align 4, !tbaa !5
  %23323 = call i32 @s2n_stuffer_read_uint16(ptr noundef %451, ptr noundef %476)
  %23324 = icmp eq i32 %23323, -1
  br i1 %23324, label %23325, label %23378

23325:                                            ; preds = %23320
  br label %23326

23326:                                            ; preds = %23325
  br label %23327

23327:                                            ; preds = %23326
  call void @llvm.lifetime.start.p0(i64 4, ptr %477) #11
  %23328 = call ptr @__errno_location() #12
  %23329 = load i32, ptr %23328, align 4, !tbaa !5
  store i32 %23329, ptr %477, align 4, !tbaa !5
  %23330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23331 = call i32 @s2n_print_stacktrace(ptr noundef %23330)
  %23332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23333 = trunc i8 %23332 to i1
  br i1 %23333, label %23334, label %23356

23334:                                            ; preds = %23327
  %23335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23336 = call i32 @fileno(ptr noundef %23335) #11
  %23337 = call i32 @isatty(i32 noundef %23336) #11
  %23338 = icmp ne i32 %23337, 0
  br i1 %23338, label %23339, label %23356

23339:                                            ; preds = %23334
  %23340 = load i32, ptr %477, align 4, !tbaa !5
  %23341 = call ptr @__errno_location() #12
  store i32 %23340, ptr %23341, align 4, !tbaa !5
  %23342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23343 = load i32, ptr @test_count, align 4, !tbaa !5
  %23344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23345 = load i32, ptr %23344, align 4, !tbaa !5
  %23346 = call ptr @s2n_strerror(i32 noundef %23345, ptr noundef @.str.4)
  %23347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23348 = load i32, ptr %23347, align 4, !tbaa !5
  %23349 = call ptr @s2n_strerror_debug(i32 noundef %23348, ptr noundef @.str.4)
  %23350 = call ptr @__errno_location() #12
  %23351 = load i32, ptr %23350, align 4, !tbaa !5
  %23352 = call ptr @strerror(i32 noundef %23351) #11
  %23353 = call ptr @__errno_location() #12
  %23354 = load i32, ptr %23353, align 4, !tbaa !5
  %23355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23342, ptr noundef @.str.2, i32 noundef %23343, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 903, ptr noundef %23346, ptr noundef %23349, ptr noundef %23352, i32 noundef %23354) #11
  br label %23373

23356:                                            ; preds = %23334, %23327
  %23357 = load i32, ptr %477, align 4, !tbaa !5
  %23358 = call ptr @__errno_location() #12
  store i32 %23357, ptr %23358, align 4, !tbaa !5
  %23359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23360 = load i32, ptr @test_count, align 4, !tbaa !5
  %23361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23362 = load i32, ptr %23361, align 4, !tbaa !5
  %23363 = call ptr @s2n_strerror(i32 noundef %23362, ptr noundef @.str.4)
  %23364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23365 = load i32, ptr %23364, align 4, !tbaa !5
  %23366 = call ptr @s2n_strerror_debug(i32 noundef %23365, ptr noundef @.str.4)
  %23367 = call ptr @__errno_location() #12
  %23368 = load i32, ptr %23367, align 4, !tbaa !5
  %23369 = call ptr @strerror(i32 noundef %23368) #11
  %23370 = call ptr @__errno_location() #12
  %23371 = load i32, ptr %23370, align 4, !tbaa !5
  %23372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23359, ptr noundef @.str.5, i32 noundef %23360, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 903, ptr noundef %23363, ptr noundef %23366, ptr noundef %23369, i32 noundef %23371) #11
  br label %23373

23373:                                            ; preds = %23356, %23339
  call void @llvm.lifetime.end.p0(i64 4, ptr %477) #11
  br label %23374

23374:                                            ; preds = %23373
  br label %23375

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

23376:                                            ; No predecessors!
  br label %23377

23377:                                            ; preds = %23376
  br label %23378

23378:                                            ; preds = %23377, %23320
  br label %23379

23379:                                            ; preds = %23378
  br label %23380

23380:                                            ; preds = %23379
  br label %23381

23381:                                            ; preds = %23380
  %23382 = load i32, ptr @test_count, align 4, !tbaa !5
  %23383 = add nsw i32 %23382, 1
  store i32 %23383, ptr @test_count, align 4, !tbaa !5
  %23384 = load i16, ptr %476, align 2, !tbaa !53
  %23385 = zext i16 %23384 to i32
  %23386 = load i16, ptr %471, align 2, !tbaa !53
  %23387 = zext i16 %23386 to i32
  %23388 = icmp eq i32 %23385, %23387
  br i1 %23388, label %23442, label %23389

23389:                                            ; preds = %23381
  br label %23390

23390:                                            ; preds = %23389
  br label %23391

23391:                                            ; preds = %23390
  call void @llvm.lifetime.start.p0(i64 4, ptr %478) #11
  %23392 = call ptr @__errno_location() #12
  %23393 = load i32, ptr %23392, align 4, !tbaa !5
  store i32 %23393, ptr %478, align 4, !tbaa !5
  %23394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23395 = call i32 @s2n_print_stacktrace(ptr noundef %23394)
  %23396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23397 = trunc i8 %23396 to i1
  br i1 %23397, label %23398, label %23420

23398:                                            ; preds = %23391
  %23399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23400 = call i32 @fileno(ptr noundef %23399) #11
  %23401 = call i32 @isatty(i32 noundef %23400) #11
  %23402 = icmp ne i32 %23401, 0
  br i1 %23402, label %23403, label %23420

23403:                                            ; preds = %23398
  %23404 = load i32, ptr %478, align 4, !tbaa !5
  %23405 = call ptr @__errno_location() #12
  store i32 %23404, ptr %23405, align 4, !tbaa !5
  %23406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23407 = load i32, ptr @test_count, align 4, !tbaa !5
  %23408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23409 = load i32, ptr %23408, align 4, !tbaa !5
  %23410 = call ptr @s2n_strerror(i32 noundef %23409, ptr noundef @.str.4)
  %23411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23412 = load i32, ptr %23411, align 4, !tbaa !5
  %23413 = call ptr @s2n_strerror_debug(i32 noundef %23412, ptr noundef @.str.4)
  %23414 = call ptr @__errno_location() #12
  %23415 = load i32, ptr %23414, align 4, !tbaa !5
  %23416 = call ptr @strerror(i32 noundef %23415) #11
  %23417 = call ptr @__errno_location() #12
  %23418 = load i32, ptr %23417, align 4, !tbaa !5
  %23419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23406, ptr noundef @.str.2, i32 noundef %23407, ptr noundef @.str.192, ptr noundef @.str.1, i32 noundef 903, ptr noundef %23410, ptr noundef %23413, ptr noundef %23416, i32 noundef %23418) #11
  br label %23437

23420:                                            ; preds = %23398, %23391
  %23421 = load i32, ptr %478, align 4, !tbaa !5
  %23422 = call ptr @__errno_location() #12
  store i32 %23421, ptr %23422, align 4, !tbaa !5
  %23423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23424 = load i32, ptr @test_count, align 4, !tbaa !5
  %23425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23426 = load i32, ptr %23425, align 4, !tbaa !5
  %23427 = call ptr @s2n_strerror(i32 noundef %23426, ptr noundef @.str.4)
  %23428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23429 = load i32, ptr %23428, align 4, !tbaa !5
  %23430 = call ptr @s2n_strerror_debug(i32 noundef %23429, ptr noundef @.str.4)
  %23431 = call ptr @__errno_location() #12
  %23432 = load i32, ptr %23431, align 4, !tbaa !5
  %23433 = call ptr @strerror(i32 noundef %23432) #11
  %23434 = call ptr @__errno_location() #12
  %23435 = load i32, ptr %23434, align 4, !tbaa !5
  %23436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23423, ptr noundef @.str.5, i32 noundef %23424, ptr noundef @.str.192, ptr noundef @.str.1, i32 noundef 903, ptr noundef %23427, ptr noundef %23430, ptr noundef %23433, i32 noundef %23435) #11
  br label %23437

23437:                                            ; preds = %23420, %23403
  call void @llvm.lifetime.end.p0(i64 4, ptr %478) #11
  br label %23438

23438:                                            ; preds = %23437
  br label %23439

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

23440:                                            ; No predecessors!
  br label %23441

23441:                                            ; preds = %23440
  br label %23442

23442:                                            ; preds = %23441, %23381
  br label %23443

23443:                                            ; preds = %23442
  br label %23444

23444:                                            ; preds = %23443
  call void @llvm.lifetime.end.p0(i64 2, ptr %476) #11
  br label %23445

23445:                                            ; preds = %23444
  br label %23446

23446:                                            ; preds = %23445
  br label %23447

23447:                                            ; preds = %23446, %23315
  br label %23448

23448:                                            ; preds = %23447
  br label %23449

23449:                                            ; preds = %23448
  %23450 = load i32, ptr @test_count, align 4, !tbaa !5
  %23451 = add nsw i32 %23450, 1
  store i32 %23451, ptr @test_count, align 4, !tbaa !5
  %23452 = load i16, ptr %471, align 2, !tbaa !53
  %23453 = zext i16 %23452 to i32
  %23454 = call i32 @s2n_stuffer_skip_read(ptr noundef %451, i32 noundef %23453)
  %23455 = icmp eq i32 %23454, -1
  br i1 %23455, label %23456, label %23509

23456:                                            ; preds = %23449
  br label %23457

23457:                                            ; preds = %23456
  br label %23458

23458:                                            ; preds = %23457
  call void @llvm.lifetime.start.p0(i64 4, ptr %479) #11
  %23459 = call ptr @__errno_location() #12
  %23460 = load i32, ptr %23459, align 4, !tbaa !5
  store i32 %23460, ptr %479, align 4, !tbaa !5
  %23461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23462 = call i32 @s2n_print_stacktrace(ptr noundef %23461)
  %23463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23464 = trunc i8 %23463 to i1
  br i1 %23464, label %23465, label %23487

23465:                                            ; preds = %23458
  %23466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23467 = call i32 @fileno(ptr noundef %23466) #11
  %23468 = call i32 @isatty(i32 noundef %23467) #11
  %23469 = icmp ne i32 %23468, 0
  br i1 %23469, label %23470, label %23487

23470:                                            ; preds = %23465
  %23471 = load i32, ptr %479, align 4, !tbaa !5
  %23472 = call ptr @__errno_location() #12
  store i32 %23471, ptr %23472, align 4, !tbaa !5
  %23473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23474 = load i32, ptr @test_count, align 4, !tbaa !5
  %23475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23476 = load i32, ptr %23475, align 4, !tbaa !5
  %23477 = call ptr @s2n_strerror(i32 noundef %23476, ptr noundef @.str.4)
  %23478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23479 = load i32, ptr %23478, align 4, !tbaa !5
  %23480 = call ptr @s2n_strerror_debug(i32 noundef %23479, ptr noundef @.str.4)
  %23481 = call ptr @__errno_location() #12
  %23482 = load i32, ptr %23481, align 4, !tbaa !5
  %23483 = call ptr @strerror(i32 noundef %23482) #11
  %23484 = call ptr @__errno_location() #12
  %23485 = load i32, ptr %23484, align 4, !tbaa !5
  %23486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23473, ptr noundef @.str.2, i32 noundef %23474, ptr noundef @.str.193, ptr noundef @.str.1, i32 noundef 905, ptr noundef %23477, ptr noundef %23480, ptr noundef %23483, i32 noundef %23485) #11
  br label %23504

23487:                                            ; preds = %23465, %23458
  %23488 = load i32, ptr %479, align 4, !tbaa !5
  %23489 = call ptr @__errno_location() #12
  store i32 %23488, ptr %23489, align 4, !tbaa !5
  %23490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23491 = load i32, ptr @test_count, align 4, !tbaa !5
  %23492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23493 = load i32, ptr %23492, align 4, !tbaa !5
  %23494 = call ptr @s2n_strerror(i32 noundef %23493, ptr noundef @.str.4)
  %23495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23496 = load i32, ptr %23495, align 4, !tbaa !5
  %23497 = call ptr @s2n_strerror_debug(i32 noundef %23496, ptr noundef @.str.4)
  %23498 = call ptr @__errno_location() #12
  %23499 = load i32, ptr %23498, align 4, !tbaa !5
  %23500 = call ptr @strerror(i32 noundef %23499) #11
  %23501 = call ptr @__errno_location() #12
  %23502 = load i32, ptr %23501, align 4, !tbaa !5
  %23503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23490, ptr noundef @.str.5, i32 noundef %23491, ptr noundef @.str.193, ptr noundef @.str.1, i32 noundef 905, ptr noundef %23494, ptr noundef %23497, ptr noundef %23500, i32 noundef %23502) #11
  br label %23504

23504:                                            ; preds = %23487, %23470
  call void @llvm.lifetime.end.p0(i64 4, ptr %479) #11
  br label %23505

23505:                                            ; preds = %23504
  br label %23506

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

23507:                                            ; No predecessors!
  br label %23508

23508:                                            ; preds = %23507
  br label %23509

23509:                                            ; preds = %23508, %23449
  br label %23510

23510:                                            ; preds = %23509
  br label %23511

23511:                                            ; preds = %23510
  br label %23512

23512:                                            ; preds = %23511
  %23513 = load i32, ptr @test_count, align 4, !tbaa !5
  %23514 = add nsw i32 %23513, 1
  store i32 %23514, ptr @test_count, align 4, !tbaa !5
  %23515 = getelementptr inbounds %struct.s2n_stuffer, ptr %451, i32 0, i32 2
  %23516 = load i32, ptr %23515, align 4, !tbaa !55
  %23517 = getelementptr inbounds %struct.s2n_stuffer, ptr %451, i32 0, i32 1
  %23518 = load i32, ptr %23517, align 8, !tbaa !56
  %23519 = sub i32 %23516, %23518
  %23520 = icmp eq i32 %23519, 0
  br i1 %23520, label %23574, label %23521

23521:                                            ; preds = %23512
  br label %23522

23522:                                            ; preds = %23521
  br label %23523

23523:                                            ; preds = %23522
  call void @llvm.lifetime.start.p0(i64 4, ptr %480) #11
  %23524 = call ptr @__errno_location() #12
  %23525 = load i32, ptr %23524, align 4, !tbaa !5
  store i32 %23525, ptr %480, align 4, !tbaa !5
  %23526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23527 = call i32 @s2n_print_stacktrace(ptr noundef %23526)
  %23528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23529 = trunc i8 %23528 to i1
  br i1 %23529, label %23530, label %23552

23530:                                            ; preds = %23523
  %23531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23532 = call i32 @fileno(ptr noundef %23531) #11
  %23533 = call i32 @isatty(i32 noundef %23532) #11
  %23534 = icmp ne i32 %23533, 0
  br i1 %23534, label %23535, label %23552

23535:                                            ; preds = %23530
  %23536 = load i32, ptr %480, align 4, !tbaa !5
  %23537 = call ptr @__errno_location() #12
  store i32 %23536, ptr %23537, align 4, !tbaa !5
  %23538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23539 = load i32, ptr @test_count, align 4, !tbaa !5
  %23540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23541 = load i32, ptr %23540, align 4, !tbaa !5
  %23542 = call ptr @s2n_strerror(i32 noundef %23541, ptr noundef @.str.4)
  %23543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23544 = load i32, ptr %23543, align 4, !tbaa !5
  %23545 = call ptr @s2n_strerror_debug(i32 noundef %23544, ptr noundef @.str.4)
  %23546 = call ptr @__errno_location() #12
  %23547 = load i32, ptr %23546, align 4, !tbaa !5
  %23548 = call ptr @strerror(i32 noundef %23547) #11
  %23549 = call ptr @__errno_location() #12
  %23550 = load i32, ptr %23549, align 4, !tbaa !5
  %23551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23538, ptr noundef @.str.2, i32 noundef %23539, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 905, ptr noundef %23542, ptr noundef %23545, ptr noundef %23548, i32 noundef %23550) #11
  br label %23569

23552:                                            ; preds = %23530, %23523
  %23553 = load i32, ptr %480, align 4, !tbaa !5
  %23554 = call ptr @__errno_location() #12
  store i32 %23553, ptr %23554, align 4, !tbaa !5
  %23555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23556 = load i32, ptr @test_count, align 4, !tbaa !5
  %23557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23558 = load i32, ptr %23557, align 4, !tbaa !5
  %23559 = call ptr @s2n_strerror(i32 noundef %23558, ptr noundef @.str.4)
  %23560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23561 = load i32, ptr %23560, align 4, !tbaa !5
  %23562 = call ptr @s2n_strerror_debug(i32 noundef %23561, ptr noundef @.str.4)
  %23563 = call ptr @__errno_location() #12
  %23564 = load i32, ptr %23563, align 4, !tbaa !5
  %23565 = call ptr @strerror(i32 noundef %23564) #11
  %23566 = call ptr @__errno_location() #12
  %23567 = load i32, ptr %23566, align 4, !tbaa !5
  %23568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23555, ptr noundef @.str.5, i32 noundef %23556, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 905, ptr noundef %23559, ptr noundef %23562, ptr noundef %23565, i32 noundef %23567) #11
  br label %23569

23569:                                            ; preds = %23552, %23535
  call void @llvm.lifetime.end.p0(i64 4, ptr %480) #11
  br label %23570

23570:                                            ; preds = %23569
  br label %23571

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

23572:                                            ; No predecessors!
  br label %23573

23573:                                            ; preds = %23572
  br label %23574

23574:                                            ; preds = %23573, %23512
  br label %23575

23575:                                            ; preds = %23574
  br label %23576

23576:                                            ; preds = %23575
  br label %23577

23577:                                            ; preds = %23576
  br label %23578

23578:                                            ; preds = %23577
  br label %23579

23579:                                            ; preds = %23578
  %23580 = load i32, ptr @test_count, align 4, !tbaa !5
  %23581 = add nsw i32 %23580, 1
  store i32 %23581, ptr @test_count, align 4, !tbaa !5
  %23582 = load ptr, ptr %446, align 8, !tbaa !9
  %23583 = getelementptr inbounds %struct.s2n_connection, ptr %23582, i32 0, i32 31
  %23584 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %23583, i32 0, i32 1
  %23585 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %23584, i32 0, i32 0
  %23586 = load ptr, ptr %23585, align 8, !tbaa !42
  %23587 = icmp eq ptr %23586, null
  br i1 %23587, label %23641, label %23588

23588:                                            ; preds = %23579
  br label %23589

23589:                                            ; preds = %23588
  br label %23590

23590:                                            ; preds = %23589
  call void @llvm.lifetime.start.p0(i64 4, ptr %481) #11
  %23591 = call ptr @__errno_location() #12
  %23592 = load i32, ptr %23591, align 4, !tbaa !5
  store i32 %23592, ptr %481, align 4, !tbaa !5
  %23593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23594 = call i32 @s2n_print_stacktrace(ptr noundef %23593)
  %23595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23596 = trunc i8 %23595 to i1
  br i1 %23596, label %23597, label %23619

23597:                                            ; preds = %23590
  %23598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23599 = call i32 @fileno(ptr noundef %23598) #11
  %23600 = call i32 @isatty(i32 noundef %23599) #11
  %23601 = icmp ne i32 %23600, 0
  br i1 %23601, label %23602, label %23619

23602:                                            ; preds = %23597
  %23603 = load i32, ptr %481, align 4, !tbaa !5
  %23604 = call ptr @__errno_location() #12
  store i32 %23603, ptr %23604, align 4, !tbaa !5
  %23605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23606 = load i32, ptr @test_count, align 4, !tbaa !5
  %23607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23608 = load i32, ptr %23607, align 4, !tbaa !5
  %23609 = call ptr @s2n_strerror(i32 noundef %23608, ptr noundef @.str.4)
  %23610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23611 = load i32, ptr %23610, align 4, !tbaa !5
  %23612 = call ptr @s2n_strerror_debug(i32 noundef %23611, ptr noundef @.str.4)
  %23613 = call ptr @__errno_location() #12
  %23614 = load i32, ptr %23613, align 4, !tbaa !5
  %23615 = call ptr @strerror(i32 noundef %23614) #11
  %23616 = call ptr @__errno_location() #12
  %23617 = load i32, ptr %23616, align 4, !tbaa !5
  %23618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23605, ptr noundef @.str.2, i32 noundef %23606, ptr noundef @.str.194, ptr noundef @.str.1, i32 noundef 907, ptr noundef %23609, ptr noundef %23612, ptr noundef %23615, i32 noundef %23617) #11
  br label %23636

23619:                                            ; preds = %23597, %23590
  %23620 = load i32, ptr %481, align 4, !tbaa !5
  %23621 = call ptr @__errno_location() #12
  store i32 %23620, ptr %23621, align 4, !tbaa !5
  %23622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23623 = load i32, ptr @test_count, align 4, !tbaa !5
  %23624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23625 = load i32, ptr %23624, align 4, !tbaa !5
  %23626 = call ptr @s2n_strerror(i32 noundef %23625, ptr noundef @.str.4)
  %23627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23628 = load i32, ptr %23627, align 4, !tbaa !5
  %23629 = call ptr @s2n_strerror_debug(i32 noundef %23628, ptr noundef @.str.4)
  %23630 = call ptr @__errno_location() #12
  %23631 = load i32, ptr %23630, align 4, !tbaa !5
  %23632 = call ptr @strerror(i32 noundef %23631) #11
  %23633 = call ptr @__errno_location() #12
  %23634 = load i32, ptr %23633, align 4, !tbaa !5
  %23635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23622, ptr noundef @.str.5, i32 noundef %23623, ptr noundef @.str.194, ptr noundef @.str.1, i32 noundef 907, ptr noundef %23626, ptr noundef %23629, ptr noundef %23632, i32 noundef %23634) #11
  br label %23636

23636:                                            ; preds = %23619, %23602
  call void @llvm.lifetime.end.p0(i64 4, ptr %481) #11
  br label %23637

23637:                                            ; preds = %23636
  br label %23638

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

23639:                                            ; No predecessors!
  br label %23640

23640:                                            ; preds = %23639
  br label %23641

23641:                                            ; preds = %23640, %23579
  br label %23642

23642:                                            ; preds = %23641
  br label %23643

23643:                                            ; preds = %23642
  br label %23644

23644:                                            ; preds = %23643
  %23645 = load i32, ptr @test_count, align 4, !tbaa !5
  %23646 = add nsw i32 %23645, 1
  store i32 %23646, ptr @test_count, align 4, !tbaa !5
  %23647 = load ptr, ptr %453, align 8, !tbaa !9
  %23648 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %23647, i32 0, i32 0
  %23649 = load ptr, ptr %23648, align 8, !tbaa !111
  %23650 = load ptr, ptr %454, align 8, !tbaa !9
  %23651 = icmp eq ptr %23649, %23650
  br i1 %23651, label %23705, label %23652

23652:                                            ; preds = %23644
  br label %23653

23653:                                            ; preds = %23652
  br label %23654

23654:                                            ; preds = %23653
  call void @llvm.lifetime.start.p0(i64 4, ptr %482) #11
  %23655 = call ptr @__errno_location() #12
  %23656 = load i32, ptr %23655, align 4, !tbaa !5
  store i32 %23656, ptr %482, align 4, !tbaa !5
  %23657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23658 = call i32 @s2n_print_stacktrace(ptr noundef %23657)
  %23659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23660 = trunc i8 %23659 to i1
  br i1 %23660, label %23661, label %23683

23661:                                            ; preds = %23654
  %23662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23663 = call i32 @fileno(ptr noundef %23662) #11
  %23664 = call i32 @isatty(i32 noundef %23663) #11
  %23665 = icmp ne i32 %23664, 0
  br i1 %23665, label %23666, label %23683

23666:                                            ; preds = %23661
  %23667 = load i32, ptr %482, align 4, !tbaa !5
  %23668 = call ptr @__errno_location() #12
  store i32 %23667, ptr %23668, align 4, !tbaa !5
  %23669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23670 = load i32, ptr @test_count, align 4, !tbaa !5
  %23671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23672 = load i32, ptr %23671, align 4, !tbaa !5
  %23673 = call ptr @s2n_strerror(i32 noundef %23672, ptr noundef @.str.4)
  %23674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23675 = load i32, ptr %23674, align 4, !tbaa !5
  %23676 = call ptr @s2n_strerror_debug(i32 noundef %23675, ptr noundef @.str.4)
  %23677 = call ptr @__errno_location() #12
  %23678 = load i32, ptr %23677, align 4, !tbaa !5
  %23679 = call ptr @strerror(i32 noundef %23678) #11
  %23680 = call ptr @__errno_location() #12
  %23681 = load i32, ptr %23680, align 4, !tbaa !5
  %23682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23669, ptr noundef @.str.2, i32 noundef %23670, ptr noundef @.str.195, ptr noundef @.str.1, i32 noundef 908, ptr noundef %23673, ptr noundef %23676, ptr noundef %23679, i32 noundef %23681) #11
  br label %23700

23683:                                            ; preds = %23661, %23654
  %23684 = load i32, ptr %482, align 4, !tbaa !5
  %23685 = call ptr @__errno_location() #12
  store i32 %23684, ptr %23685, align 4, !tbaa !5
  %23686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23687 = load i32, ptr @test_count, align 4, !tbaa !5
  %23688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23689 = load i32, ptr %23688, align 4, !tbaa !5
  %23690 = call ptr @s2n_strerror(i32 noundef %23689, ptr noundef @.str.4)
  %23691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23692 = load i32, ptr %23691, align 4, !tbaa !5
  %23693 = call ptr @s2n_strerror_debug(i32 noundef %23692, ptr noundef @.str.4)
  %23694 = call ptr @__errno_location() #12
  %23695 = load i32, ptr %23694, align 4, !tbaa !5
  %23696 = call ptr @strerror(i32 noundef %23695) #11
  %23697 = call ptr @__errno_location() #12
  %23698 = load i32, ptr %23697, align 4, !tbaa !5
  %23699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23686, ptr noundef @.str.5, i32 noundef %23687, ptr noundef @.str.195, ptr noundef @.str.1, i32 noundef 908, ptr noundef %23690, ptr noundef %23693, ptr noundef %23696, i32 noundef %23698) #11
  br label %23700

23700:                                            ; preds = %23683, %23666
  call void @llvm.lifetime.end.p0(i64 4, ptr %482) #11
  br label %23701

23701:                                            ; preds = %23700
  br label %23702

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

23703:                                            ; No predecessors!
  br label %23704

23704:                                            ; preds = %23703
  br label %23705

23705:                                            ; preds = %23704, %23644
  br label %23706

23706:                                            ; preds = %23705
  br label %23707

23707:                                            ; preds = %23706
  br label %23708

23708:                                            ; preds = %23707
  %23709 = load i32, ptr @test_count, align 4, !tbaa !5
  %23710 = add nsw i32 %23709, 1
  store i32 %23710, ptr @test_count, align 4, !tbaa !5
  %23711 = load ptr, ptr %453, align 8, !tbaa !9
  %23712 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %23711, i32 0, i32 1
  %23713 = getelementptr inbounds %struct.s2n_kem_params, ptr %23712, i32 0, i32 0
  %23714 = load ptr, ptr %23713, align 8, !tbaa !112
  %23715 = load ptr, ptr %454, align 8, !tbaa !9
  %23716 = getelementptr inbounds %struct.s2n_kem_group, ptr %23715, i32 0, i32 3
  %23717 = load ptr, ptr %23716, align 8, !tbaa !91
  %23718 = icmp eq ptr %23714, %23717
  br i1 %23718, label %23772, label %23719

23719:                                            ; preds = %23708
  br label %23720

23720:                                            ; preds = %23719
  br label %23721

23721:                                            ; preds = %23720
  call void @llvm.lifetime.start.p0(i64 4, ptr %483) #11
  %23722 = call ptr @__errno_location() #12
  %23723 = load i32, ptr %23722, align 4, !tbaa !5
  store i32 %23723, ptr %483, align 4, !tbaa !5
  %23724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23725 = call i32 @s2n_print_stacktrace(ptr noundef %23724)
  %23726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23727 = trunc i8 %23726 to i1
  br i1 %23727, label %23728, label %23750

23728:                                            ; preds = %23721
  %23729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23730 = call i32 @fileno(ptr noundef %23729) #11
  %23731 = call i32 @isatty(i32 noundef %23730) #11
  %23732 = icmp ne i32 %23731, 0
  br i1 %23732, label %23733, label %23750

23733:                                            ; preds = %23728
  %23734 = load i32, ptr %483, align 4, !tbaa !5
  %23735 = call ptr @__errno_location() #12
  store i32 %23734, ptr %23735, align 4, !tbaa !5
  %23736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23737 = load i32, ptr @test_count, align 4, !tbaa !5
  %23738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23739 = load i32, ptr %23738, align 4, !tbaa !5
  %23740 = call ptr @s2n_strerror(i32 noundef %23739, ptr noundef @.str.4)
  %23741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23742 = load i32, ptr %23741, align 4, !tbaa !5
  %23743 = call ptr @s2n_strerror_debug(i32 noundef %23742, ptr noundef @.str.4)
  %23744 = call ptr @__errno_location() #12
  %23745 = load i32, ptr %23744, align 4, !tbaa !5
  %23746 = call ptr @strerror(i32 noundef %23745) #11
  %23747 = call ptr @__errno_location() #12
  %23748 = load i32, ptr %23747, align 4, !tbaa !5
  %23749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23736, ptr noundef @.str.2, i32 noundef %23737, ptr noundef @.str.196, ptr noundef @.str.1, i32 noundef 909, ptr noundef %23740, ptr noundef %23743, ptr noundef %23746, i32 noundef %23748) #11
  br label %23767

23750:                                            ; preds = %23728, %23721
  %23751 = load i32, ptr %483, align 4, !tbaa !5
  %23752 = call ptr @__errno_location() #12
  store i32 %23751, ptr %23752, align 4, !tbaa !5
  %23753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23754 = load i32, ptr @test_count, align 4, !tbaa !5
  %23755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23756 = load i32, ptr %23755, align 4, !tbaa !5
  %23757 = call ptr @s2n_strerror(i32 noundef %23756, ptr noundef @.str.4)
  %23758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23759 = load i32, ptr %23758, align 4, !tbaa !5
  %23760 = call ptr @s2n_strerror_debug(i32 noundef %23759, ptr noundef @.str.4)
  %23761 = call ptr @__errno_location() #12
  %23762 = load i32, ptr %23761, align 4, !tbaa !5
  %23763 = call ptr @strerror(i32 noundef %23762) #11
  %23764 = call ptr @__errno_location() #12
  %23765 = load i32, ptr %23764, align 4, !tbaa !5
  %23766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23753, ptr noundef @.str.5, i32 noundef %23754, ptr noundef @.str.196, ptr noundef @.str.1, i32 noundef 909, ptr noundef %23757, ptr noundef %23760, ptr noundef %23763, i32 noundef %23765) #11
  br label %23767

23767:                                            ; preds = %23750, %23733
  call void @llvm.lifetime.end.p0(i64 4, ptr %483) #11
  br label %23768

23768:                                            ; preds = %23767
  br label %23769

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

23770:                                            ; No predecessors!
  br label %23771

23771:                                            ; preds = %23770
  br label %23772

23772:                                            ; preds = %23771, %23708
  br label %23773

23773:                                            ; preds = %23772
  br label %23774

23774:                                            ; preds = %23773
  br label %23775

23775:                                            ; preds = %23774
  %23776 = load i32, ptr @test_count, align 4, !tbaa !5
  %23777 = add nsw i32 %23776, 1
  store i32 %23777, ptr @test_count, align 4, !tbaa !5
  %23778 = load ptr, ptr %453, align 8, !tbaa !9
  %23779 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %23778, i32 0, i32 2
  %23780 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %23779, i32 0, i32 0
  %23781 = load ptr, ptr %23780, align 8, !tbaa !113
  %23782 = load ptr, ptr %454, align 8, !tbaa !9
  %23783 = getelementptr inbounds %struct.s2n_kem_group, ptr %23782, i32 0, i32 2
  %23784 = load ptr, ptr %23783, align 8, !tbaa !89
  %23785 = icmp eq ptr %23781, %23784
  br i1 %23785, label %23839, label %23786

23786:                                            ; preds = %23775
  br label %23787

23787:                                            ; preds = %23786
  br label %23788

23788:                                            ; preds = %23787
  call void @llvm.lifetime.start.p0(i64 4, ptr %484) #11
  %23789 = call ptr @__errno_location() #12
  %23790 = load i32, ptr %23789, align 4, !tbaa !5
  store i32 %23790, ptr %484, align 4, !tbaa !5
  %23791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23792 = call i32 @s2n_print_stacktrace(ptr noundef %23791)
  %23793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23794 = trunc i8 %23793 to i1
  br i1 %23794, label %23795, label %23817

23795:                                            ; preds = %23788
  %23796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23797 = call i32 @fileno(ptr noundef %23796) #11
  %23798 = call i32 @isatty(i32 noundef %23797) #11
  %23799 = icmp ne i32 %23798, 0
  br i1 %23799, label %23800, label %23817

23800:                                            ; preds = %23795
  %23801 = load i32, ptr %484, align 4, !tbaa !5
  %23802 = call ptr @__errno_location() #12
  store i32 %23801, ptr %23802, align 4, !tbaa !5
  %23803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23804 = load i32, ptr @test_count, align 4, !tbaa !5
  %23805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23806 = load i32, ptr %23805, align 4, !tbaa !5
  %23807 = call ptr @s2n_strerror(i32 noundef %23806, ptr noundef @.str.4)
  %23808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23809 = load i32, ptr %23808, align 4, !tbaa !5
  %23810 = call ptr @s2n_strerror_debug(i32 noundef %23809, ptr noundef @.str.4)
  %23811 = call ptr @__errno_location() #12
  %23812 = load i32, ptr %23811, align 4, !tbaa !5
  %23813 = call ptr @strerror(i32 noundef %23812) #11
  %23814 = call ptr @__errno_location() #12
  %23815 = load i32, ptr %23814, align 4, !tbaa !5
  %23816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23803, ptr noundef @.str.2, i32 noundef %23804, ptr noundef @.str.197, ptr noundef @.str.1, i32 noundef 910, ptr noundef %23807, ptr noundef %23810, ptr noundef %23813, i32 noundef %23815) #11
  br label %23834

23817:                                            ; preds = %23795, %23788
  %23818 = load i32, ptr %484, align 4, !tbaa !5
  %23819 = call ptr @__errno_location() #12
  store i32 %23818, ptr %23819, align 4, !tbaa !5
  %23820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23821 = load i32, ptr @test_count, align 4, !tbaa !5
  %23822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23823 = load i32, ptr %23822, align 4, !tbaa !5
  %23824 = call ptr @s2n_strerror(i32 noundef %23823, ptr noundef @.str.4)
  %23825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23826 = load i32, ptr %23825, align 4, !tbaa !5
  %23827 = call ptr @s2n_strerror_debug(i32 noundef %23826, ptr noundef @.str.4)
  %23828 = call ptr @__errno_location() #12
  %23829 = load i32, ptr %23828, align 4, !tbaa !5
  %23830 = call ptr @strerror(i32 noundef %23829) #11
  %23831 = call ptr @__errno_location() #12
  %23832 = load i32, ptr %23831, align 4, !tbaa !5
  %23833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23820, ptr noundef @.str.5, i32 noundef %23821, ptr noundef @.str.197, ptr noundef @.str.1, i32 noundef 910, ptr noundef %23824, ptr noundef %23827, ptr noundef %23830, i32 noundef %23832) #11
  br label %23834

23834:                                            ; preds = %23817, %23800
  call void @llvm.lifetime.end.p0(i64 4, ptr %484) #11
  br label %23835

23835:                                            ; preds = %23834
  br label %23836

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

23837:                                            ; No predecessors!
  br label %23838

23838:                                            ; preds = %23837
  br label %23839

23839:                                            ; preds = %23838, %23775
  br label %23840

23840:                                            ; preds = %23839
  br label %23841

23841:                                            ; preds = %23840
  br label %23842

23842:                                            ; preds = %23841
  %23843 = load i32, ptr @test_count, align 4, !tbaa !5
  %23844 = add nsw i32 %23843, 1
  store i32 %23844, ptr @test_count, align 4, !tbaa !5
  %23845 = load ptr, ptr %456, align 8, !tbaa !9
  %23846 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %23845, i32 0, i32 1
  %23847 = getelementptr inbounds %struct.s2n_kem_params, ptr %23846, i32 0, i32 3
  %23848 = getelementptr inbounds %struct.s2n_blob, ptr %23847, i32 0, i32 1
  %23849 = load i32, ptr %23848, align 8, !tbaa !117
  %23850 = load ptr, ptr %454, align 8, !tbaa !9
  %23851 = getelementptr inbounds %struct.s2n_kem_group, ptr %23850, i32 0, i32 3
  %23852 = load ptr, ptr %23851, align 8, !tbaa !91
  %23853 = getelementptr inbounds %struct.s2n_kem, ptr %23852, i32 0, i32 5
  %23854 = load i16, ptr %23853, align 2, !tbaa !98
  %23855 = zext i16 %23854 to i32
  %23856 = icmp eq i32 %23849, %23855
  br i1 %23856, label %23910, label %23857

23857:                                            ; preds = %23842
  br label %23858

23858:                                            ; preds = %23857
  br label %23859

23859:                                            ; preds = %23858
  call void @llvm.lifetime.start.p0(i64 4, ptr %485) #11
  %23860 = call ptr @__errno_location() #12
  %23861 = load i32, ptr %23860, align 4, !tbaa !5
  store i32 %23861, ptr %485, align 4, !tbaa !5
  %23862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23863 = call i32 @s2n_print_stacktrace(ptr noundef %23862)
  %23864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23865 = trunc i8 %23864 to i1
  br i1 %23865, label %23866, label %23888

23866:                                            ; preds = %23859
  %23867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23868 = call i32 @fileno(ptr noundef %23867) #11
  %23869 = call i32 @isatty(i32 noundef %23868) #11
  %23870 = icmp ne i32 %23869, 0
  br i1 %23870, label %23871, label %23888

23871:                                            ; preds = %23866
  %23872 = load i32, ptr %485, align 4, !tbaa !5
  %23873 = call ptr @__errno_location() #12
  store i32 %23872, ptr %23873, align 4, !tbaa !5
  %23874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23875 = load i32, ptr @test_count, align 4, !tbaa !5
  %23876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23877 = load i32, ptr %23876, align 4, !tbaa !5
  %23878 = call ptr @s2n_strerror(i32 noundef %23877, ptr noundef @.str.4)
  %23879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23880 = load i32, ptr %23879, align 4, !tbaa !5
  %23881 = call ptr @s2n_strerror_debug(i32 noundef %23880, ptr noundef @.str.4)
  %23882 = call ptr @__errno_location() #12
  %23883 = load i32, ptr %23882, align 4, !tbaa !5
  %23884 = call ptr @strerror(i32 noundef %23883) #11
  %23885 = call ptr @__errno_location() #12
  %23886 = load i32, ptr %23885, align 4, !tbaa !5
  %23887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23874, ptr noundef @.str.2, i32 noundef %23875, ptr noundef @.str.198, ptr noundef @.str.1, i32 noundef 911, ptr noundef %23878, ptr noundef %23881, ptr noundef %23884, i32 noundef %23886) #11
  br label %23905

23888:                                            ; preds = %23866, %23859
  %23889 = load i32, ptr %485, align 4, !tbaa !5
  %23890 = call ptr @__errno_location() #12
  store i32 %23889, ptr %23890, align 4, !tbaa !5
  %23891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23892 = load i32, ptr @test_count, align 4, !tbaa !5
  %23893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23894 = load i32, ptr %23893, align 4, !tbaa !5
  %23895 = call ptr @s2n_strerror(i32 noundef %23894, ptr noundef @.str.4)
  %23896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23897 = load i32, ptr %23896, align 4, !tbaa !5
  %23898 = call ptr @s2n_strerror_debug(i32 noundef %23897, ptr noundef @.str.4)
  %23899 = call ptr @__errno_location() #12
  %23900 = load i32, ptr %23899, align 4, !tbaa !5
  %23901 = call ptr @strerror(i32 noundef %23900) #11
  %23902 = call ptr @__errno_location() #12
  %23903 = load i32, ptr %23902, align 4, !tbaa !5
  %23904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23891, ptr noundef @.str.5, i32 noundef %23892, ptr noundef @.str.198, ptr noundef @.str.1, i32 noundef 911, ptr noundef %23895, ptr noundef %23898, ptr noundef %23901, i32 noundef %23903) #11
  br label %23905

23905:                                            ; preds = %23888, %23871
  call void @llvm.lifetime.end.p0(i64 4, ptr %485) #11
  br label %23906

23906:                                            ; preds = %23905
  br label %23907

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

23908:                                            ; No predecessors!
  br label %23909

23909:                                            ; preds = %23908
  br label %23910

23910:                                            ; preds = %23909, %23842
  br label %23911

23911:                                            ; preds = %23910
  br label %23912

23912:                                            ; preds = %23911
  br label %23913

23913:                                            ; preds = %23912
  %23914 = load i32, ptr @test_count, align 4, !tbaa !5
  %23915 = add nsw i32 %23914, 1
  store i32 %23915, ptr @test_count, align 4, !tbaa !5
  %23916 = load ptr, ptr %456, align 8, !tbaa !9
  %23917 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %23916, i32 0, i32 1
  %23918 = getelementptr inbounds %struct.s2n_kem_params, ptr %23917, i32 0, i32 3
  %23919 = getelementptr inbounds %struct.s2n_blob, ptr %23918, i32 0, i32 0
  %23920 = load ptr, ptr %23919, align 8, !tbaa !118
  %23921 = icmp eq ptr %23920, null
  br i1 %23921, label %23922, label %23975

23922:                                            ; preds = %23913
  br label %23923

23923:                                            ; preds = %23922
  br label %23924

23924:                                            ; preds = %23923
  call void @llvm.lifetime.start.p0(i64 4, ptr %486) #11
  %23925 = call ptr @__errno_location() #12
  %23926 = load i32, ptr %23925, align 4, !tbaa !5
  store i32 %23926, ptr %486, align 4, !tbaa !5
  %23927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23928 = call i32 @s2n_print_stacktrace(ptr noundef %23927)
  %23929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23930 = trunc i8 %23929 to i1
  br i1 %23930, label %23931, label %23953

23931:                                            ; preds = %23924
  %23932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23933 = call i32 @fileno(ptr noundef %23932) #11
  %23934 = call i32 @isatty(i32 noundef %23933) #11
  %23935 = icmp ne i32 %23934, 0
  br i1 %23935, label %23936, label %23953

23936:                                            ; preds = %23931
  %23937 = load i32, ptr %486, align 4, !tbaa !5
  %23938 = call ptr @__errno_location() #12
  store i32 %23937, ptr %23938, align 4, !tbaa !5
  %23939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23940 = load i32, ptr @test_count, align 4, !tbaa !5
  %23941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23942 = load i32, ptr %23941, align 4, !tbaa !5
  %23943 = call ptr @s2n_strerror(i32 noundef %23942, ptr noundef @.str.4)
  %23944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23945 = load i32, ptr %23944, align 4, !tbaa !5
  %23946 = call ptr @s2n_strerror_debug(i32 noundef %23945, ptr noundef @.str.4)
  %23947 = call ptr @__errno_location() #12
  %23948 = load i32, ptr %23947, align 4, !tbaa !5
  %23949 = call ptr @strerror(i32 noundef %23948) #11
  %23950 = call ptr @__errno_location() #12
  %23951 = load i32, ptr %23950, align 4, !tbaa !5
  %23952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23939, ptr noundef @.str.2, i32 noundef %23940, ptr noundef @.str.199, ptr noundef @.str.1, i32 noundef 912, ptr noundef %23943, ptr noundef %23946, ptr noundef %23949, i32 noundef %23951) #11
  br label %23970

23953:                                            ; preds = %23931, %23924
  %23954 = load i32, ptr %486, align 4, !tbaa !5
  %23955 = call ptr @__errno_location() #12
  store i32 %23954, ptr %23955, align 4, !tbaa !5
  %23956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23957 = load i32, ptr @test_count, align 4, !tbaa !5
  %23958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23959 = load i32, ptr %23958, align 4, !tbaa !5
  %23960 = call ptr @s2n_strerror(i32 noundef %23959, ptr noundef @.str.4)
  %23961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23962 = load i32, ptr %23961, align 4, !tbaa !5
  %23963 = call ptr @s2n_strerror_debug(i32 noundef %23962, ptr noundef @.str.4)
  %23964 = call ptr @__errno_location() #12
  %23965 = load i32, ptr %23964, align 4, !tbaa !5
  %23966 = call ptr @strerror(i32 noundef %23965) #11
  %23967 = call ptr @__errno_location() #12
  %23968 = load i32, ptr %23967, align 4, !tbaa !5
  %23969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23956, ptr noundef @.str.5, i32 noundef %23957, ptr noundef @.str.199, ptr noundef @.str.1, i32 noundef 912, ptr noundef %23960, ptr noundef %23963, ptr noundef %23966, i32 noundef %23968) #11
  br label %23970

23970:                                            ; preds = %23953, %23936
  call void @llvm.lifetime.end.p0(i64 4, ptr %486) #11
  br label %23971

23971:                                            ; preds = %23970
  br label %23972

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

23973:                                            ; No predecessors!
  br label %23974

23974:                                            ; preds = %23973
  br label %23975

23975:                                            ; preds = %23974, %23913
  br label %23976

23976:                                            ; preds = %23975
  br label %23977

23977:                                            ; preds = %23976
  br label %23978

23978:                                            ; preds = %23977
  %23979 = load i32, ptr @test_count, align 4, !tbaa !5
  %23980 = add nsw i32 %23979, 1
  store i32 %23980, ptr @test_count, align 4, !tbaa !5
  %23981 = load ptr, ptr %446, align 8, !tbaa !9
  %23982 = call i32 @s2n_connection_free(ptr noundef %23981)
  %23983 = icmp eq i32 %23982, -1
  br i1 %23983, label %23984, label %24037

23984:                                            ; preds = %23978
  br label %23985

23985:                                            ; preds = %23984
  br label %23986

23986:                                            ; preds = %23985
  call void @llvm.lifetime.start.p0(i64 4, ptr %487) #11
  %23987 = call ptr @__errno_location() #12
  %23988 = load i32, ptr %23987, align 4, !tbaa !5
  store i32 %23988, ptr %487, align 4, !tbaa !5
  %23989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23990 = call i32 @s2n_print_stacktrace(ptr noundef %23989)
  %23991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23992 = trunc i8 %23991 to i1
  br i1 %23992, label %23993, label %24015

23993:                                            ; preds = %23986
  %23994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23995 = call i32 @fileno(ptr noundef %23994) #11
  %23996 = call i32 @isatty(i32 noundef %23995) #11
  %23997 = icmp ne i32 %23996, 0
  br i1 %23997, label %23998, label %24015

23998:                                            ; preds = %23993
  %23999 = load i32, ptr %487, align 4, !tbaa !5
  %24000 = call ptr @__errno_location() #12
  store i32 %23999, ptr %24000, align 4, !tbaa !5
  %24001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24002 = load i32, ptr @test_count, align 4, !tbaa !5
  %24003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24004 = load i32, ptr %24003, align 4, !tbaa !5
  %24005 = call ptr @s2n_strerror(i32 noundef %24004, ptr noundef @.str.4)
  %24006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24007 = load i32, ptr %24006, align 4, !tbaa !5
  %24008 = call ptr @s2n_strerror_debug(i32 noundef %24007, ptr noundef @.str.4)
  %24009 = call ptr @__errno_location() #12
  %24010 = load i32, ptr %24009, align 4, !tbaa !5
  %24011 = call ptr @strerror(i32 noundef %24010) #11
  %24012 = call ptr @__errno_location() #12
  %24013 = load i32, ptr %24012, align 4, !tbaa !5
  %24014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24001, ptr noundef @.str.2, i32 noundef %24002, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 914, ptr noundef %24005, ptr noundef %24008, ptr noundef %24011, i32 noundef %24013) #11
  br label %24032

24015:                                            ; preds = %23993, %23986
  %24016 = load i32, ptr %487, align 4, !tbaa !5
  %24017 = call ptr @__errno_location() #12
  store i32 %24016, ptr %24017, align 4, !tbaa !5
  %24018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24019 = load i32, ptr @test_count, align 4, !tbaa !5
  %24020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24021 = load i32, ptr %24020, align 4, !tbaa !5
  %24022 = call ptr @s2n_strerror(i32 noundef %24021, ptr noundef @.str.4)
  %24023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24024 = load i32, ptr %24023, align 4, !tbaa !5
  %24025 = call ptr @s2n_strerror_debug(i32 noundef %24024, ptr noundef @.str.4)
  %24026 = call ptr @__errno_location() #12
  %24027 = load i32, ptr %24026, align 4, !tbaa !5
  %24028 = call ptr @strerror(i32 noundef %24027) #11
  %24029 = call ptr @__errno_location() #12
  %24030 = load i32, ptr %24029, align 4, !tbaa !5
  %24031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24018, ptr noundef @.str.5, i32 noundef %24019, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 914, ptr noundef %24022, ptr noundef %24025, ptr noundef %24028, i32 noundef %24030) #11
  br label %24032

24032:                                            ; preds = %24015, %23998
  call void @llvm.lifetime.end.p0(i64 4, ptr %487) #11
  br label %24033

24033:                                            ; preds = %24032
  br label %24034

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

24035:                                            ; No predecessors!
  br label %24036

24036:                                            ; preds = %24035
  br label %24037

24037:                                            ; preds = %24036, %23978
  br label %24038

24038:                                            ; preds = %24037
  br label %24039

24039:                                            ; preds = %24038
  call void @llvm.lifetime.end.p0(i64 2, ptr %471) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %470) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %462) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %456) #11
  store i32 0, ptr %300, align 4
  br label %24040

24040:                                            ; preds = %24039, %22438
  call void @llvm.lifetime.end.p0(i64 8, ptr %454) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %453) #11
  %24041 = call i32 @s2n_stuffer_free(ptr noundef %451)
  call void @llvm.lifetime.end.p0(i64 40, ptr %451) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %448) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %446) #11
  %24042 = load i32, ptr %300, align 4
  switch i32 %24042, label %26252 [
    i32 0, label %24043
    i32 2148, label %24044
  ]

24043:                                            ; preds = %24040
  br label %24044

24044:                                            ; preds = %24043, %24040
  %24045 = load i64, ptr %445, align 8, !tbaa !49
  %24046 = add i64 %24045, 1
  store i64 %24046, ptr %445, align 8, !tbaa !49
  br label %22109, !llvm.loop !119

24047:                                            ; preds = %22112
  br label %24048

24048:                                            ; preds = %24047
  %24049 = load i32, ptr %444, align 4, !tbaa !5
  %24050 = add nsw i32 %24049, 1
  store i32 %24050, ptr %444, align 4, !tbaa !5
  br label %22104, !llvm.loop !120

24051:                                            ; preds = %22107
  br label %24052

24052:                                            ; preds = %24051, %22101
  call void @llvm.lifetime.start.p0(i64 8, ptr %488) #11
  store ptr null, ptr %488, align 8, !tbaa !9
  br label %24053

24053:                                            ; preds = %24052
  %24054 = load i32, ptr @test_count, align 4, !tbaa !5
  %24055 = add nsw i32 %24054, 1
  store i32 %24055, ptr @test_count, align 4, !tbaa !5
  %24056 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %24056, ptr %488, align 8, !tbaa !9
  %24057 = icmp eq ptr %24056, null
  br i1 %24057, label %24058, label %24111

24058:                                            ; preds = %24053
  br label %24059

24059:                                            ; preds = %24058
  br label %24060

24060:                                            ; preds = %24059
  call void @llvm.lifetime.start.p0(i64 4, ptr %489) #11
  %24061 = call ptr @__errno_location() #12
  %24062 = load i32, ptr %24061, align 4, !tbaa !5
  store i32 %24062, ptr %489, align 4, !tbaa !5
  %24063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24064 = call i32 @s2n_print_stacktrace(ptr noundef %24063)
  %24065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24066 = trunc i8 %24065 to i1
  br i1 %24066, label %24067, label %24089

24067:                                            ; preds = %24060
  %24068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24069 = call i32 @fileno(ptr noundef %24068) #11
  %24070 = call i32 @isatty(i32 noundef %24069) #11
  %24071 = icmp ne i32 %24070, 0
  br i1 %24071, label %24072, label %24089

24072:                                            ; preds = %24067
  %24073 = load i32, ptr %489, align 4, !tbaa !5
  %24074 = call ptr @__errno_location() #12
  store i32 %24073, ptr %24074, align 4, !tbaa !5
  %24075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24076 = load i32, ptr @test_count, align 4, !tbaa !5
  %24077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24078 = load i32, ptr %24077, align 4, !tbaa !5
  %24079 = call ptr @s2n_strerror(i32 noundef %24078, ptr noundef @.str.4)
  %24080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24081 = load i32, ptr %24080, align 4, !tbaa !5
  %24082 = call ptr @s2n_strerror_debug(i32 noundef %24081, ptr noundef @.str.4)
  %24083 = call ptr @__errno_location() #12
  %24084 = load i32, ptr %24083, align 4, !tbaa !5
  %24085 = call ptr @strerror(i32 noundef %24084) #11
  %24086 = call ptr @__errno_location() #12
  %24087 = load i32, ptr %24086, align 4, !tbaa !5
  %24088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24075, ptr noundef @.str.2, i32 noundef %24076, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 922, ptr noundef %24079, ptr noundef %24082, ptr noundef %24085, i32 noundef %24087) #11
  br label %24106

24089:                                            ; preds = %24067, %24060
  %24090 = load i32, ptr %489, align 4, !tbaa !5
  %24091 = call ptr @__errno_location() #12
  store i32 %24090, ptr %24091, align 4, !tbaa !5
  %24092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24093 = load i32, ptr @test_count, align 4, !tbaa !5
  %24094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24095 = load i32, ptr %24094, align 4, !tbaa !5
  %24096 = call ptr @s2n_strerror(i32 noundef %24095, ptr noundef @.str.4)
  %24097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24098 = load i32, ptr %24097, align 4, !tbaa !5
  %24099 = call ptr @s2n_strerror_debug(i32 noundef %24098, ptr noundef @.str.4)
  %24100 = call ptr @__errno_location() #12
  %24101 = load i32, ptr %24100, align 4, !tbaa !5
  %24102 = call ptr @strerror(i32 noundef %24101) #11
  %24103 = call ptr @__errno_location() #12
  %24104 = load i32, ptr %24103, align 4, !tbaa !5
  %24105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24092, ptr noundef @.str.5, i32 noundef %24093, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 922, ptr noundef %24096, ptr noundef %24099, ptr noundef %24102, i32 noundef %24104) #11
  br label %24106

24106:                                            ; preds = %24089, %24072
  call void @llvm.lifetime.end.p0(i64 4, ptr %489) #11
  br label %24107

24107:                                            ; preds = %24106
  br label %24108

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

24109:                                            ; No predecessors!
  br label %24110

24110:                                            ; preds = %24109
  br label %24111

24111:                                            ; preds = %24110, %24053
  br label %24112

24112:                                            ; preds = %24111
  br label %24113

24113:                                            ; preds = %24112
  %24114 = load ptr, ptr %488, align 8, !tbaa !9
  %24115 = getelementptr inbounds %struct.s2n_connection, ptr %24114, i32 0, i32 2
  store ptr %281, ptr %24115, align 8, !tbaa !15
  %24116 = load ptr, ptr %488, align 8, !tbaa !9
  %24117 = getelementptr inbounds %struct.s2n_connection, ptr %24116, i32 0, i32 23
  store i8 34, ptr %24117, align 4, !tbaa !59
  br label %24118

24118:                                            ; preds = %24113
  %24119 = load i32, ptr @test_count, align 4, !tbaa !5
  %24120 = add nsw i32 %24119, 1
  store i32 %24120, ptr @test_count, align 4, !tbaa !5
  %24121 = load ptr, ptr %488, align 8, !tbaa !9
  %24122 = call i32 @s2n_conn_choose_state_machine(ptr noundef %24121, i8 noundef zeroext 34)
  %24123 = getelementptr inbounds %struct.s2n_result, ptr %490, i32 0, i32 0
  store i32 %24122, ptr %24123, align 4
  %24124 = getelementptr inbounds %struct.s2n_result, ptr %490, i32 0, i32 0
  %24125 = load i32, ptr %24124, align 4
  %24126 = call zeroext i1 @s2n_result_is_ok(i32 %24125)
  br i1 %24126, label %24180, label %24127

24127:                                            ; preds = %24118
  br label %24128

24128:                                            ; preds = %24127
  br label %24129

24129:                                            ; preds = %24128
  call void @llvm.lifetime.start.p0(i64 4, ptr %491) #11
  %24130 = call ptr @__errno_location() #12
  %24131 = load i32, ptr %24130, align 4, !tbaa !5
  store i32 %24131, ptr %491, align 4, !tbaa !5
  %24132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24133 = call i32 @s2n_print_stacktrace(ptr noundef %24132)
  %24134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24135 = trunc i8 %24134 to i1
  br i1 %24135, label %24136, label %24158

24136:                                            ; preds = %24129
  %24137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24138 = call i32 @fileno(ptr noundef %24137) #11
  %24139 = call i32 @isatty(i32 noundef %24138) #11
  %24140 = icmp ne i32 %24139, 0
  br i1 %24140, label %24141, label %24158

24141:                                            ; preds = %24136
  %24142 = load i32, ptr %491, align 4, !tbaa !5
  %24143 = call ptr @__errno_location() #12
  store i32 %24142, ptr %24143, align 4, !tbaa !5
  %24144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24145 = load i32, ptr @test_count, align 4, !tbaa !5
  %24146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24147 = load i32, ptr %24146, align 4, !tbaa !5
  %24148 = call ptr @s2n_strerror(i32 noundef %24147, ptr noundef @.str.4)
  %24149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24150 = load i32, ptr %24149, align 4, !tbaa !5
  %24151 = call ptr @s2n_strerror_debug(i32 noundef %24150, ptr noundef @.str.4)
  %24152 = call ptr @__errno_location() #12
  %24153 = load i32, ptr %24152, align 4, !tbaa !5
  %24154 = call ptr @strerror(i32 noundef %24153) #11
  %24155 = call ptr @__errno_location() #12
  %24156 = load i32, ptr %24155, align 4, !tbaa !5
  %24157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24144, ptr noundef @.str.2, i32 noundef %24145, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 925, ptr noundef %24148, ptr noundef %24151, ptr noundef %24154, i32 noundef %24156) #11
  br label %24175

24158:                                            ; preds = %24136, %24129
  %24159 = load i32, ptr %491, align 4, !tbaa !5
  %24160 = call ptr @__errno_location() #12
  store i32 %24159, ptr %24160, align 4, !tbaa !5
  %24161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24162 = load i32, ptr @test_count, align 4, !tbaa !5
  %24163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24164 = load i32, ptr %24163, align 4, !tbaa !5
  %24165 = call ptr @s2n_strerror(i32 noundef %24164, ptr noundef @.str.4)
  %24166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24167 = load i32, ptr %24166, align 4, !tbaa !5
  %24168 = call ptr @s2n_strerror_debug(i32 noundef %24167, ptr noundef @.str.4)
  %24169 = call ptr @__errno_location() #12
  %24170 = load i32, ptr %24169, align 4, !tbaa !5
  %24171 = call ptr @strerror(i32 noundef %24170) #11
  %24172 = call ptr @__errno_location() #12
  %24173 = load i32, ptr %24172, align 4, !tbaa !5
  %24174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24161, ptr noundef @.str.5, i32 noundef %24162, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 925, ptr noundef %24165, ptr noundef %24168, ptr noundef %24171, i32 noundef %24173) #11
  br label %24175

24175:                                            ; preds = %24158, %24141
  call void @llvm.lifetime.end.p0(i64 4, ptr %491) #11
  br label %24176

24176:                                            ; preds = %24175
  br label %24177

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

24178:                                            ; No predecessors!
  br label %24179

24179:                                            ; preds = %24178
  br label %24180

24180:                                            ; preds = %24179, %24118
  br label %24181

24181:                                            ; preds = %24180
  br label %24182

24182:                                            ; preds = %24181
  %24183 = load ptr, ptr %488, align 8, !tbaa !9
  %24184 = getelementptr inbounds %struct.s2n_connection, ptr %24183, i32 0, i32 52
  %24185 = getelementptr inbounds %struct.s2n_handshake, ptr %24184, i32 0, i32 6
  store i32 16, ptr %24185, align 4, !tbaa !60
  %24186 = load ptr, ptr %488, align 8, !tbaa !9
  %24187 = getelementptr inbounds %struct.s2n_connection, ptr %24186, i32 0, i32 52
  %24188 = getelementptr inbounds %struct.s2n_handshake, ptr %24187, i32 0, i32 7
  store i32 1, ptr %24188, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 8, ptr %492) #11
  store ptr null, ptr %492, align 8, !tbaa !9
  br label %24189

24189:                                            ; preds = %24182
  %24190 = load i32, ptr @test_count, align 4, !tbaa !5
  %24191 = add nsw i32 %24190, 1
  store i32 %24191, ptr @test_count, align 4, !tbaa !5
  %24192 = load ptr, ptr %488, align 8, !tbaa !9
  %24193 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %24192, ptr noundef %492)
  %24194 = icmp eq i32 %24193, -1
  br i1 %24194, label %24195, label %24248

24195:                                            ; preds = %24189
  br label %24196

24196:                                            ; preds = %24195
  br label %24197

24197:                                            ; preds = %24196
  call void @llvm.lifetime.start.p0(i64 4, ptr %493) #11
  %24198 = call ptr @__errno_location() #12
  %24199 = load i32, ptr %24198, align 4, !tbaa !5
  store i32 %24199, ptr %493, align 4, !tbaa !5
  %24200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24201 = call i32 @s2n_print_stacktrace(ptr noundef %24200)
  %24202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24203 = trunc i8 %24202 to i1
  br i1 %24203, label %24204, label %24226

24204:                                            ; preds = %24197
  %24205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24206 = call i32 @fileno(ptr noundef %24205) #11
  %24207 = call i32 @isatty(i32 noundef %24206) #11
  %24208 = icmp ne i32 %24207, 0
  br i1 %24208, label %24209, label %24226

24209:                                            ; preds = %24204
  %24210 = load i32, ptr %493, align 4, !tbaa !5
  %24211 = call ptr @__errno_location() #12
  store i32 %24210, ptr %24211, align 4, !tbaa !5
  %24212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24213 = load i32, ptr @test_count, align 4, !tbaa !5
  %24214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24215 = load i32, ptr %24214, align 4, !tbaa !5
  %24216 = call ptr @s2n_strerror(i32 noundef %24215, ptr noundef @.str.4)
  %24217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24218 = load i32, ptr %24217, align 4, !tbaa !5
  %24219 = call ptr @s2n_strerror_debug(i32 noundef %24218, ptr noundef @.str.4)
  %24220 = call ptr @__errno_location() #12
  %24221 = load i32, ptr %24220, align 4, !tbaa !5
  %24222 = call ptr @strerror(i32 noundef %24221) #11
  %24223 = call ptr @__errno_location() #12
  %24224 = load i32, ptr %24223, align 4, !tbaa !5
  %24225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24212, ptr noundef @.str.2, i32 noundef %24213, ptr noundef @.str.181, ptr noundef @.str.1, i32 noundef 930, ptr noundef %24216, ptr noundef %24219, ptr noundef %24222, i32 noundef %24224) #11
  br label %24243

24226:                                            ; preds = %24204, %24197
  %24227 = load i32, ptr %493, align 4, !tbaa !5
  %24228 = call ptr @__errno_location() #12
  store i32 %24227, ptr %24228, align 4, !tbaa !5
  %24229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24230 = load i32, ptr @test_count, align 4, !tbaa !5
  %24231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24232 = load i32, ptr %24231, align 4, !tbaa !5
  %24233 = call ptr @s2n_strerror(i32 noundef %24232, ptr noundef @.str.4)
  %24234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24235 = load i32, ptr %24234, align 4, !tbaa !5
  %24236 = call ptr @s2n_strerror_debug(i32 noundef %24235, ptr noundef @.str.4)
  %24237 = call ptr @__errno_location() #12
  %24238 = load i32, ptr %24237, align 4, !tbaa !5
  %24239 = call ptr @strerror(i32 noundef %24238) #11
  %24240 = call ptr @__errno_location() #12
  %24241 = load i32, ptr %24240, align 4, !tbaa !5
  %24242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24229, ptr noundef @.str.5, i32 noundef %24230, ptr noundef @.str.181, ptr noundef @.str.1, i32 noundef 930, ptr noundef %24233, ptr noundef %24236, ptr noundef %24239, i32 noundef %24241) #11
  br label %24243

24243:                                            ; preds = %24226, %24209
  call void @llvm.lifetime.end.p0(i64 4, ptr %493) #11
  br label %24244

24244:                                            ; preds = %24243
  br label %24245

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

24246:                                            ; No predecessors!
  br label %24247

24247:                                            ; preds = %24246
  br label %24248

24248:                                            ; preds = %24247, %24189
  br label %24249

24249:                                            ; preds = %24248
  br label %24250

24250:                                            ; preds = %24249
  br label %24251

24251:                                            ; preds = %24250
  %24252 = load i32, ptr @test_count, align 4, !tbaa !5
  %24253 = add nsw i32 %24252, 1
  store i32 %24253, ptr @test_count, align 4, !tbaa !5
  %24254 = load ptr, ptr %492, align 8, !tbaa !9
  %24255 = icmp eq ptr %24254, null
  br i1 %24255, label %24256, label %24309

24256:                                            ; preds = %24251
  br label %24257

24257:                                            ; preds = %24256
  br label %24258

24258:                                            ; preds = %24257
  call void @llvm.lifetime.start.p0(i64 4, ptr %494) #11
  %24259 = call ptr @__errno_location() #12
  %24260 = load i32, ptr %24259, align 4, !tbaa !5
  store i32 %24260, ptr %494, align 4, !tbaa !5
  %24261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24262 = call i32 @s2n_print_stacktrace(ptr noundef %24261)
  %24263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24264 = trunc i8 %24263 to i1
  br i1 %24264, label %24265, label %24287

24265:                                            ; preds = %24258
  %24266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24267 = call i32 @fileno(ptr noundef %24266) #11
  %24268 = call i32 @isatty(i32 noundef %24267) #11
  %24269 = icmp ne i32 %24268, 0
  br i1 %24269, label %24270, label %24287

24270:                                            ; preds = %24265
  %24271 = load i32, ptr %494, align 4, !tbaa !5
  %24272 = call ptr @__errno_location() #12
  store i32 %24271, ptr %24272, align 4, !tbaa !5
  %24273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24274 = load i32, ptr @test_count, align 4, !tbaa !5
  %24275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24276 = load i32, ptr %24275, align 4, !tbaa !5
  %24277 = call ptr @s2n_strerror(i32 noundef %24276, ptr noundef @.str.4)
  %24278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24279 = load i32, ptr %24278, align 4, !tbaa !5
  %24280 = call ptr @s2n_strerror_debug(i32 noundef %24279, ptr noundef @.str.4)
  %24281 = call ptr @__errno_location() #12
  %24282 = load i32, ptr %24281, align 4, !tbaa !5
  %24283 = call ptr @strerror(i32 noundef %24282) #11
  %24284 = call ptr @__errno_location() #12
  %24285 = load i32, ptr %24284, align 4, !tbaa !5
  %24286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24273, ptr noundef @.str.2, i32 noundef %24274, ptr noundef @.str.182, ptr noundef @.str.1, i32 noundef 931, ptr noundef %24277, ptr noundef %24280, ptr noundef %24283, i32 noundef %24285) #11
  br label %24304

24287:                                            ; preds = %24265, %24258
  %24288 = load i32, ptr %494, align 4, !tbaa !5
  %24289 = call ptr @__errno_location() #12
  store i32 %24288, ptr %24289, align 4, !tbaa !5
  %24290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24291 = load i32, ptr @test_count, align 4, !tbaa !5
  %24292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24293 = load i32, ptr %24292, align 4, !tbaa !5
  %24294 = call ptr @s2n_strerror(i32 noundef %24293, ptr noundef @.str.4)
  %24295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24296 = load i32, ptr %24295, align 4, !tbaa !5
  %24297 = call ptr @s2n_strerror_debug(i32 noundef %24296, ptr noundef @.str.4)
  %24298 = call ptr @__errno_location() #12
  %24299 = load i32, ptr %24298, align 4, !tbaa !5
  %24300 = call ptr @strerror(i32 noundef %24299) #11
  %24301 = call ptr @__errno_location() #12
  %24302 = load i32, ptr %24301, align 4, !tbaa !5
  %24303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24290, ptr noundef @.str.5, i32 noundef %24291, ptr noundef @.str.182, ptr noundef @.str.1, i32 noundef 931, ptr noundef %24294, ptr noundef %24297, ptr noundef %24300, i32 noundef %24302) #11
  br label %24304

24304:                                            ; preds = %24287, %24270
  call void @llvm.lifetime.end.p0(i64 4, ptr %494) #11
  br label %24305

24305:                                            ; preds = %24304
  br label %24306

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

24307:                                            ; No predecessors!
  br label %24308

24308:                                            ; preds = %24307
  br label %24309

24309:                                            ; preds = %24308, %24251
  br label %24310

24310:                                            ; preds = %24309
  br label %24311

24311:                                            ; preds = %24310
  br label %24312

24312:                                            ; preds = %24311
  %24313 = load i32, ptr @test_count, align 4, !tbaa !5
  %24314 = add nsw i32 %24313, 1
  store i32 %24314, ptr @test_count, align 4, !tbaa !5
  %24315 = load ptr, ptr %488, align 8, !tbaa !9
  %24316 = getelementptr inbounds %struct.s2n_connection, ptr %24315, i32 0, i32 31
  %24317 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %24316, i32 0, i32 1
  %24318 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %24317, i32 0, i32 0
  %24319 = load ptr, ptr %24318, align 8, !tbaa !42
  %24320 = icmp eq ptr %24319, null
  br i1 %24320, label %24374, label %24321

24321:                                            ; preds = %24312
  br label %24322

24322:                                            ; preds = %24321
  br label %24323

24323:                                            ; preds = %24322
  call void @llvm.lifetime.start.p0(i64 4, ptr %495) #11
  %24324 = call ptr @__errno_location() #12
  %24325 = load i32, ptr %24324, align 4, !tbaa !5
  store i32 %24325, ptr %495, align 4, !tbaa !5
  %24326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24327 = call i32 @s2n_print_stacktrace(ptr noundef %24326)
  %24328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24329 = trunc i8 %24328 to i1
  br i1 %24329, label %24330, label %24352

24330:                                            ; preds = %24323
  %24331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24332 = call i32 @fileno(ptr noundef %24331) #11
  %24333 = call i32 @isatty(i32 noundef %24332) #11
  %24334 = icmp ne i32 %24333, 0
  br i1 %24334, label %24335, label %24352

24335:                                            ; preds = %24330
  %24336 = load i32, ptr %495, align 4, !tbaa !5
  %24337 = call ptr @__errno_location() #12
  store i32 %24336, ptr %24337, align 4, !tbaa !5
  %24338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24339 = load i32, ptr @test_count, align 4, !tbaa !5
  %24340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24341 = load i32, ptr %24340, align 4, !tbaa !5
  %24342 = call ptr @s2n_strerror(i32 noundef %24341, ptr noundef @.str.4)
  %24343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24344 = load i32, ptr %24343, align 4, !tbaa !5
  %24345 = call ptr @s2n_strerror_debug(i32 noundef %24344, ptr noundef @.str.4)
  %24346 = call ptr @__errno_location() #12
  %24347 = load i32, ptr %24346, align 4, !tbaa !5
  %24348 = call ptr @strerror(i32 noundef %24347) #11
  %24349 = call ptr @__errno_location() #12
  %24350 = load i32, ptr %24349, align 4, !tbaa !5
  %24351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24338, ptr noundef @.str.2, i32 noundef %24339, ptr noundef @.str.194, ptr noundef @.str.1, i32 noundef 933, ptr noundef %24342, ptr noundef %24345, ptr noundef %24348, i32 noundef %24350) #11
  br label %24369

24352:                                            ; preds = %24330, %24323
  %24353 = load i32, ptr %495, align 4, !tbaa !5
  %24354 = call ptr @__errno_location() #12
  store i32 %24353, ptr %24354, align 4, !tbaa !5
  %24355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24356 = load i32, ptr @test_count, align 4, !tbaa !5
  %24357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24358 = load i32, ptr %24357, align 4, !tbaa !5
  %24359 = call ptr @s2n_strerror(i32 noundef %24358, ptr noundef @.str.4)
  %24360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24361 = load i32, ptr %24360, align 4, !tbaa !5
  %24362 = call ptr @s2n_strerror_debug(i32 noundef %24361, ptr noundef @.str.4)
  %24363 = call ptr @__errno_location() #12
  %24364 = load i32, ptr %24363, align 4, !tbaa !5
  %24365 = call ptr @strerror(i32 noundef %24364) #11
  %24366 = call ptr @__errno_location() #12
  %24367 = load i32, ptr %24366, align 4, !tbaa !5
  %24368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24355, ptr noundef @.str.5, i32 noundef %24356, ptr noundef @.str.194, ptr noundef @.str.1, i32 noundef 933, ptr noundef %24359, ptr noundef %24362, ptr noundef %24365, i32 noundef %24367) #11
  br label %24369

24369:                                            ; preds = %24352, %24335
  call void @llvm.lifetime.end.p0(i64 4, ptr %495) #11
  br label %24370

24370:                                            ; preds = %24369
  br label %24371

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

24372:                                            ; No predecessors!
  br label %24373

24373:                                            ; preds = %24372
  br label %24374

24374:                                            ; preds = %24373, %24312
  br label %24375

24375:                                            ; preds = %24374
  br label %24376

24376:                                            ; preds = %24375
  call void @llvm.lifetime.start.p0(i64 40, ptr %496) #11
  call void @llvm.memset.p0.i64(ptr align 8 %496, i8 0, i64 40, i1 false)
  br label %24377

24377:                                            ; preds = %24376
  %24378 = load i32, ptr @test_count, align 4, !tbaa !5
  %24379 = add nsw i32 %24378, 1
  store i32 %24379, ptr @test_count, align 4, !tbaa !5
  %24380 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %496, i32 noundef 1024)
  %24381 = icmp eq i32 %24380, -1
  br i1 %24381, label %24382, label %24435

24382:                                            ; preds = %24377
  br label %24383

24383:                                            ; preds = %24382
  br label %24384

24384:                                            ; preds = %24383
  call void @llvm.lifetime.start.p0(i64 4, ptr %497) #11
  %24385 = call ptr @__errno_location() #12
  %24386 = load i32, ptr %24385, align 4, !tbaa !5
  store i32 %24386, ptr %497, align 4, !tbaa !5
  %24387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24388 = call i32 @s2n_print_stacktrace(ptr noundef %24387)
  %24389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24390 = trunc i8 %24389 to i1
  br i1 %24390, label %24391, label %24413

24391:                                            ; preds = %24384
  %24392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24393 = call i32 @fileno(ptr noundef %24392) #11
  %24394 = call i32 @isatty(i32 noundef %24393) #11
  %24395 = icmp ne i32 %24394, 0
  br i1 %24395, label %24396, label %24413

24396:                                            ; preds = %24391
  %24397 = load i32, ptr %497, align 4, !tbaa !5
  %24398 = call ptr @__errno_location() #12
  store i32 %24397, ptr %24398, align 4, !tbaa !5
  %24399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24400 = load i32, ptr @test_count, align 4, !tbaa !5
  %24401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24402 = load i32, ptr %24401, align 4, !tbaa !5
  %24403 = call ptr @s2n_strerror(i32 noundef %24402, ptr noundef @.str.4)
  %24404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24405 = load i32, ptr %24404, align 4, !tbaa !5
  %24406 = call ptr @s2n_strerror_debug(i32 noundef %24405, ptr noundef @.str.4)
  %24407 = call ptr @__errno_location() #12
  %24408 = load i32, ptr %24407, align 4, !tbaa !5
  %24409 = call ptr @strerror(i32 noundef %24408) #11
  %24410 = call ptr @__errno_location() #12
  %24411 = load i32, ptr %24410, align 4, !tbaa !5
  %24412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24399, ptr noundef @.str.2, i32 noundef %24400, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 935, ptr noundef %24403, ptr noundef %24406, ptr noundef %24409, i32 noundef %24411) #11
  br label %24430

24413:                                            ; preds = %24391, %24384
  %24414 = load i32, ptr %497, align 4, !tbaa !5
  %24415 = call ptr @__errno_location() #12
  store i32 %24414, ptr %24415, align 4, !tbaa !5
  %24416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24417 = load i32, ptr @test_count, align 4, !tbaa !5
  %24418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24419 = load i32, ptr %24418, align 4, !tbaa !5
  %24420 = call ptr @s2n_strerror(i32 noundef %24419, ptr noundef @.str.4)
  %24421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24422 = load i32, ptr %24421, align 4, !tbaa !5
  %24423 = call ptr @s2n_strerror_debug(i32 noundef %24422, ptr noundef @.str.4)
  %24424 = call ptr @__errno_location() #12
  %24425 = load i32, ptr %24424, align 4, !tbaa !5
  %24426 = call ptr @strerror(i32 noundef %24425) #11
  %24427 = call ptr @__errno_location() #12
  %24428 = load i32, ptr %24427, align 4, !tbaa !5
  %24429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24416, ptr noundef @.str.5, i32 noundef %24417, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 935, ptr noundef %24420, ptr noundef %24423, ptr noundef %24426, i32 noundef %24428) #11
  br label %24430

24430:                                            ; preds = %24413, %24396
  call void @llvm.lifetime.end.p0(i64 4, ptr %497) #11
  br label %24431

24431:                                            ; preds = %24430
  br label %24432

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

24433:                                            ; No predecessors!
  br label %24434

24434:                                            ; preds = %24433
  br label %24435

24435:                                            ; preds = %24434, %24377
  br label %24436

24436:                                            ; preds = %24435
  br label %24437

24437:                                            ; preds = %24436
  call void @llvm.lifetime.start.p0(i64 8, ptr %498) #11
  store i64 0, ptr %498, align 8, !tbaa !49
  br label %24438

24438:                                            ; preds = %25388, %24437
  %24439 = load i64, ptr %498, align 8, !tbaa !49
  %24440 = load ptr, ptr %492, align 8, !tbaa !9
  %24441 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %24440, i32 0, i32 2
  %24442 = load i8, ptr %24441, align 8, !tbaa !73
  %24443 = zext i8 %24442 to i64
  %24444 = icmp ult i64 %24439, %24443
  br i1 %24444, label %24446, label %24445

24445:                                            ; preds = %24438
  store i32 2363, ptr %300, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %498) #11
  br label %25391

24446:                                            ; preds = %24438
  call void @llvm.lifetime.start.p0(i64 8, ptr %499) #11
  %24447 = load ptr, ptr %488, align 8, !tbaa !9
  %24448 = getelementptr inbounds %struct.s2n_connection, ptr %24447, i32 0, i32 31
  %24449 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %24448, i32 0, i32 4
  store ptr %24449, ptr %499, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %500) #11
  %24450 = load ptr, ptr %492, align 8, !tbaa !9
  %24451 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %24450, i32 0, i32 3
  %24452 = load ptr, ptr %24451, align 8, !tbaa !75
  %24453 = load i64, ptr %498, align 8, !tbaa !49
  %24454 = getelementptr inbounds ptr, ptr %24452, i64 %24453
  %24455 = load ptr, ptr %24454, align 8, !tbaa !9
  store ptr %24455, ptr %500, align 8, !tbaa !9
  %24456 = load ptr, ptr %500, align 8, !tbaa !9
  %24457 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %24456)
  br i1 %24457, label %24459, label %24458

24458:                                            ; preds = %24446
  store i32 2365, ptr %300, align 4
  br label %25385

24459:                                            ; preds = %24446
  %24460 = load ptr, ptr %500, align 8, !tbaa !9
  %24461 = load ptr, ptr %499, align 8, !tbaa !9
  %24462 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %24461, i32 0, i32 0
  store ptr %24460, ptr %24462, align 8, !tbaa !111
  %24463 = load ptr, ptr %500, align 8, !tbaa !9
  %24464 = getelementptr inbounds %struct.s2n_kem_group, ptr %24463, i32 0, i32 3
  %24465 = load ptr, ptr %24464, align 8, !tbaa !91
  %24466 = load ptr, ptr %499, align 8, !tbaa !9
  %24467 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %24466, i32 0, i32 1
  %24468 = getelementptr inbounds %struct.s2n_kem_params, ptr %24467, i32 0, i32 0
  store ptr %24465, ptr %24468, align 8, !tbaa !112
  %24469 = load ptr, ptr %500, align 8, !tbaa !9
  %24470 = getelementptr inbounds %struct.s2n_kem_group, ptr %24469, i32 0, i32 2
  %24471 = load ptr, ptr %24470, align 8, !tbaa !89
  %24472 = load ptr, ptr %499, align 8, !tbaa !9
  %24473 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %24472, i32 0, i32 2
  %24474 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %24473, i32 0, i32 0
  store ptr %24471, ptr %24474, align 8, !tbaa !113
  br label %24475

24475:                                            ; preds = %24459
  %24476 = load i32, ptr @test_count, align 4, !tbaa !5
  %24477 = add nsw i32 %24476, 1
  store i32 %24477, ptr @test_count, align 4, !tbaa !5
  %24478 = load ptr, ptr %488, align 8, !tbaa !9
  %24479 = getelementptr inbounds %struct.s2n_connection, ptr %24478, i32 0, i32 31
  %24480 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %24479, i32 0, i32 1
  %24481 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %24480, i32 0, i32 1
  %24482 = load ptr, ptr %24481, align 8, !tbaa !62
  %24483 = icmp eq ptr %24482, null
  br i1 %24483, label %24537, label %24484

24484:                                            ; preds = %24475
  br label %24485

24485:                                            ; preds = %24484
  br label %24486

24486:                                            ; preds = %24485
  call void @llvm.lifetime.start.p0(i64 4, ptr %501) #11
  %24487 = call ptr @__errno_location() #12
  %24488 = load i32, ptr %24487, align 4, !tbaa !5
  store i32 %24488, ptr %501, align 4, !tbaa !5
  %24489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24490 = call i32 @s2n_print_stacktrace(ptr noundef %24489)
  %24491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24492 = trunc i8 %24491 to i1
  br i1 %24492, label %24493, label %24515

24493:                                            ; preds = %24486
  %24494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24495 = call i32 @fileno(ptr noundef %24494) #11
  %24496 = call i32 @isatty(i32 noundef %24495) #11
  %24497 = icmp ne i32 %24496, 0
  br i1 %24497, label %24498, label %24515

24498:                                            ; preds = %24493
  %24499 = load i32, ptr %501, align 4, !tbaa !5
  %24500 = call ptr @__errno_location() #12
  store i32 %24499, ptr %24500, align 4, !tbaa !5
  %24501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24502 = load i32, ptr @test_count, align 4, !tbaa !5
  %24503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24504 = load i32, ptr %24503, align 4, !tbaa !5
  %24505 = call ptr @s2n_strerror(i32 noundef %24504, ptr noundef @.str.4)
  %24506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24507 = load i32, ptr %24506, align 4, !tbaa !5
  %24508 = call ptr @s2n_strerror_debug(i32 noundef %24507, ptr noundef @.str.4)
  %24509 = call ptr @__errno_location() #12
  %24510 = load i32, ptr %24509, align 4, !tbaa !5
  %24511 = call ptr @strerror(i32 noundef %24510) #11
  %24512 = call ptr @__errno_location() #12
  %24513 = load i32, ptr %24512, align 4, !tbaa !5
  %24514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24501, ptr noundef @.str.2, i32 noundef %24502, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 947, ptr noundef %24505, ptr noundef %24508, ptr noundef %24511, i32 noundef %24513) #11
  br label %24532

24515:                                            ; preds = %24493, %24486
  %24516 = load i32, ptr %501, align 4, !tbaa !5
  %24517 = call ptr @__errno_location() #12
  store i32 %24516, ptr %24517, align 4, !tbaa !5
  %24518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24519 = load i32, ptr @test_count, align 4, !tbaa !5
  %24520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24521 = load i32, ptr %24520, align 4, !tbaa !5
  %24522 = call ptr @s2n_strerror(i32 noundef %24521, ptr noundef @.str.4)
  %24523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24524 = load i32, ptr %24523, align 4, !tbaa !5
  %24525 = call ptr @s2n_strerror_debug(i32 noundef %24524, ptr noundef @.str.4)
  %24526 = call ptr @__errno_location() #12
  %24527 = load i32, ptr %24526, align 4, !tbaa !5
  %24528 = call ptr @strerror(i32 noundef %24527) #11
  %24529 = call ptr @__errno_location() #12
  %24530 = load i32, ptr %24529, align 4, !tbaa !5
  %24531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24518, ptr noundef @.str.5, i32 noundef %24519, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 947, ptr noundef %24522, ptr noundef %24525, ptr noundef %24528, i32 noundef %24530) #11
  br label %24532

24532:                                            ; preds = %24515, %24498
  call void @llvm.lifetime.end.p0(i64 4, ptr %501) #11
  br label %24533

24533:                                            ; preds = %24532
  br label %24534

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

24535:                                            ; No predecessors!
  br label %24536

24536:                                            ; preds = %24535
  br label %24537

24537:                                            ; preds = %24536, %24475
  br label %24538

24538:                                            ; preds = %24537
  br label %24539

24539:                                            ; preds = %24538
  br label %24540

24540:                                            ; preds = %24539
  %24541 = load i32, ptr @test_count, align 4, !tbaa !5
  %24542 = add nsw i32 %24541, 1
  store i32 %24542, ptr @test_count, align 4, !tbaa !5
  %24543 = load ptr, ptr %488, align 8, !tbaa !9
  %24544 = getelementptr inbounds %struct.s2n_connection, ptr %24543, i32 0, i32 31
  %24545 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %24544, i32 0, i32 1
  %24546 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %24545, i32 0, i32 0
  %24547 = load ptr, ptr %24546, align 8, !tbaa !42
  %24548 = icmp eq ptr %24547, null
  br i1 %24548, label %24602, label %24549

24549:                                            ; preds = %24540
  br label %24550

24550:                                            ; preds = %24549
  br label %24551

24551:                                            ; preds = %24550
  call void @llvm.lifetime.start.p0(i64 4, ptr %502) #11
  %24552 = call ptr @__errno_location() #12
  %24553 = load i32, ptr %24552, align 4, !tbaa !5
  store i32 %24553, ptr %502, align 4, !tbaa !5
  %24554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24555 = call i32 @s2n_print_stacktrace(ptr noundef %24554)
  %24556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24557 = trunc i8 %24556 to i1
  br i1 %24557, label %24558, label %24580

24558:                                            ; preds = %24551
  %24559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24560 = call i32 @fileno(ptr noundef %24559) #11
  %24561 = call i32 @isatty(i32 noundef %24560) #11
  %24562 = icmp ne i32 %24561, 0
  br i1 %24562, label %24563, label %24580

24563:                                            ; preds = %24558
  %24564 = load i32, ptr %502, align 4, !tbaa !5
  %24565 = call ptr @__errno_location() #12
  store i32 %24564, ptr %24565, align 4, !tbaa !5
  %24566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24567 = load i32, ptr @test_count, align 4, !tbaa !5
  %24568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24569 = load i32, ptr %24568, align 4, !tbaa !5
  %24570 = call ptr @s2n_strerror(i32 noundef %24569, ptr noundef @.str.4)
  %24571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24572 = load i32, ptr %24571, align 4, !tbaa !5
  %24573 = call ptr @s2n_strerror_debug(i32 noundef %24572, ptr noundef @.str.4)
  %24574 = call ptr @__errno_location() #12
  %24575 = load i32, ptr %24574, align 4, !tbaa !5
  %24576 = call ptr @strerror(i32 noundef %24575) #11
  %24577 = call ptr @__errno_location() #12
  %24578 = load i32, ptr %24577, align 4, !tbaa !5
  %24579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24566, ptr noundef @.str.2, i32 noundef %24567, ptr noundef @.str.194, ptr noundef @.str.1, i32 noundef 948, ptr noundef %24570, ptr noundef %24573, ptr noundef %24576, i32 noundef %24578) #11
  br label %24597

24580:                                            ; preds = %24558, %24551
  %24581 = load i32, ptr %502, align 4, !tbaa !5
  %24582 = call ptr @__errno_location() #12
  store i32 %24581, ptr %24582, align 4, !tbaa !5
  %24583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24584 = load i32, ptr @test_count, align 4, !tbaa !5
  %24585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24586 = load i32, ptr %24585, align 4, !tbaa !5
  %24587 = call ptr @s2n_strerror(i32 noundef %24586, ptr noundef @.str.4)
  %24588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24589 = load i32, ptr %24588, align 4, !tbaa !5
  %24590 = call ptr @s2n_strerror_debug(i32 noundef %24589, ptr noundef @.str.4)
  %24591 = call ptr @__errno_location() #12
  %24592 = load i32, ptr %24591, align 4, !tbaa !5
  %24593 = call ptr @strerror(i32 noundef %24592) #11
  %24594 = call ptr @__errno_location() #12
  %24595 = load i32, ptr %24594, align 4, !tbaa !5
  %24596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24583, ptr noundef @.str.5, i32 noundef %24584, ptr noundef @.str.194, ptr noundef @.str.1, i32 noundef 948, ptr noundef %24587, ptr noundef %24590, ptr noundef %24593, i32 noundef %24595) #11
  br label %24597

24597:                                            ; preds = %24580, %24563
  call void @llvm.lifetime.end.p0(i64 4, ptr %502) #11
  br label %24598

24598:                                            ; preds = %24597
  br label %24599

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

24600:                                            ; No predecessors!
  br label %24601

24601:                                            ; preds = %24600
  br label %24602

24602:                                            ; preds = %24601, %24540
  br label %24603

24603:                                            ; preds = %24602
  br label %24604

24604:                                            ; preds = %24603
  br label %24605

24605:                                            ; preds = %24604
  %24606 = load i32, ptr @test_count, align 4, !tbaa !5
  %24607 = add nsw i32 %24606, 1
  store i32 %24607, ptr @test_count, align 4, !tbaa !5
  %24608 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %24609 = load ptr, ptr %488, align 8, !tbaa !9
  %24610 = call i32 %24608(ptr noundef %24609, ptr noundef %496)
  %24611 = icmp eq i32 %24610, -1
  br i1 %24611, label %24612, label %24665

24612:                                            ; preds = %24605
  br label %24613

24613:                                            ; preds = %24612
  br label %24614

24614:                                            ; preds = %24613
  call void @llvm.lifetime.start.p0(i64 4, ptr %503) #11
  %24615 = call ptr @__errno_location() #12
  %24616 = load i32, ptr %24615, align 4, !tbaa !5
  store i32 %24616, ptr %503, align 4, !tbaa !5
  %24617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24618 = call i32 @s2n_print_stacktrace(ptr noundef %24617)
  %24619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24620 = trunc i8 %24619 to i1
  br i1 %24620, label %24621, label %24643

24621:                                            ; preds = %24614
  %24622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24623 = call i32 @fileno(ptr noundef %24622) #11
  %24624 = call i32 @isatty(i32 noundef %24623) #11
  %24625 = icmp ne i32 %24624, 0
  br i1 %24625, label %24626, label %24643

24626:                                            ; preds = %24621
  %24627 = load i32, ptr %503, align 4, !tbaa !5
  %24628 = call ptr @__errno_location() #12
  store i32 %24627, ptr %24628, align 4, !tbaa !5
  %24629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24630 = load i32, ptr @test_count, align 4, !tbaa !5
  %24631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24632 = load i32, ptr %24631, align 4, !tbaa !5
  %24633 = call ptr @s2n_strerror(i32 noundef %24632, ptr noundef @.str.4)
  %24634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24635 = load i32, ptr %24634, align 4, !tbaa !5
  %24636 = call ptr @s2n_strerror_debug(i32 noundef %24635, ptr noundef @.str.4)
  %24637 = call ptr @__errno_location() #12
  %24638 = load i32, ptr %24637, align 4, !tbaa !5
  %24639 = call ptr @strerror(i32 noundef %24638) #11
  %24640 = call ptr @__errno_location() #12
  %24641 = load i32, ptr %24640, align 4, !tbaa !5
  %24642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24629, ptr noundef @.str.2, i32 noundef %24630, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 950, ptr noundef %24633, ptr noundef %24636, ptr noundef %24639, i32 noundef %24641) #11
  br label %24660

24643:                                            ; preds = %24621, %24614
  %24644 = load i32, ptr %503, align 4, !tbaa !5
  %24645 = call ptr @__errno_location() #12
  store i32 %24644, ptr %24645, align 4, !tbaa !5
  %24646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24647 = load i32, ptr @test_count, align 4, !tbaa !5
  %24648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24649 = load i32, ptr %24648, align 4, !tbaa !5
  %24650 = call ptr @s2n_strerror(i32 noundef %24649, ptr noundef @.str.4)
  %24651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24652 = load i32, ptr %24651, align 4, !tbaa !5
  %24653 = call ptr @s2n_strerror_debug(i32 noundef %24652, ptr noundef @.str.4)
  %24654 = call ptr @__errno_location() #12
  %24655 = load i32, ptr %24654, align 4, !tbaa !5
  %24656 = call ptr @strerror(i32 noundef %24655) #11
  %24657 = call ptr @__errno_location() #12
  %24658 = load i32, ptr %24657, align 4, !tbaa !5
  %24659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24646, ptr noundef @.str.5, i32 noundef %24647, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 950, ptr noundef %24650, ptr noundef %24653, ptr noundef %24656, i32 noundef %24658) #11
  br label %24660

24660:                                            ; preds = %24643, %24626
  call void @llvm.lifetime.end.p0(i64 4, ptr %503) #11
  br label %24661

24661:                                            ; preds = %24660
  br label %24662

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

24663:                                            ; No predecessors!
  br label %24664

24664:                                            ; preds = %24663
  br label %24665

24665:                                            ; preds = %24664, %24605
  br label %24666

24666:                                            ; preds = %24665
  br label %24667

24667:                                            ; preds = %24666
  br label %24668

24668:                                            ; preds = %24667
  call void @llvm.lifetime.start.p0(i64 2, ptr %504) #11
  br label %24669

24669:                                            ; preds = %24668
  %24670 = load i32, ptr @test_count, align 4, !tbaa !5
  %24671 = add nsw i32 %24670, 1
  store i32 %24671, ptr @test_count, align 4, !tbaa !5
  %24672 = call i32 @s2n_stuffer_read_uint16(ptr noundef %496, ptr noundef %504)
  %24673 = icmp eq i32 %24672, -1
  br i1 %24673, label %24674, label %24727

24674:                                            ; preds = %24669
  br label %24675

24675:                                            ; preds = %24674
  br label %24676

24676:                                            ; preds = %24675
  call void @llvm.lifetime.start.p0(i64 4, ptr %505) #11
  %24677 = call ptr @__errno_location() #12
  %24678 = load i32, ptr %24677, align 4, !tbaa !5
  store i32 %24678, ptr %505, align 4, !tbaa !5
  %24679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24680 = call i32 @s2n_print_stacktrace(ptr noundef %24679)
  %24681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24682 = trunc i8 %24681 to i1
  br i1 %24682, label %24683, label %24705

24683:                                            ; preds = %24676
  %24684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24685 = call i32 @fileno(ptr noundef %24684) #11
  %24686 = call i32 @isatty(i32 noundef %24685) #11
  %24687 = icmp ne i32 %24686, 0
  br i1 %24687, label %24688, label %24705

24688:                                            ; preds = %24683
  %24689 = load i32, ptr %505, align 4, !tbaa !5
  %24690 = call ptr @__errno_location() #12
  store i32 %24689, ptr %24690, align 4, !tbaa !5
  %24691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24692 = load i32, ptr @test_count, align 4, !tbaa !5
  %24693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24694 = load i32, ptr %24693, align 4, !tbaa !5
  %24695 = call ptr @s2n_strerror(i32 noundef %24694, ptr noundef @.str.4)
  %24696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24697 = load i32, ptr %24696, align 4, !tbaa !5
  %24698 = call ptr @s2n_strerror_debug(i32 noundef %24697, ptr noundef @.str.4)
  %24699 = call ptr @__errno_location() #12
  %24700 = load i32, ptr %24699, align 4, !tbaa !5
  %24701 = call ptr @strerror(i32 noundef %24700) #11
  %24702 = call ptr @__errno_location() #12
  %24703 = load i32, ptr %24702, align 4, !tbaa !5
  %24704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24691, ptr noundef @.str.2, i32 noundef %24692, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 952, ptr noundef %24695, ptr noundef %24698, ptr noundef %24701, i32 noundef %24703) #11
  br label %24722

24705:                                            ; preds = %24683, %24676
  %24706 = load i32, ptr %505, align 4, !tbaa !5
  %24707 = call ptr @__errno_location() #12
  store i32 %24706, ptr %24707, align 4, !tbaa !5
  %24708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24709 = load i32, ptr @test_count, align 4, !tbaa !5
  %24710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24711 = load i32, ptr %24710, align 4, !tbaa !5
  %24712 = call ptr @s2n_strerror(i32 noundef %24711, ptr noundef @.str.4)
  %24713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24714 = load i32, ptr %24713, align 4, !tbaa !5
  %24715 = call ptr @s2n_strerror_debug(i32 noundef %24714, ptr noundef @.str.4)
  %24716 = call ptr @__errno_location() #12
  %24717 = load i32, ptr %24716, align 4, !tbaa !5
  %24718 = call ptr @strerror(i32 noundef %24717) #11
  %24719 = call ptr @__errno_location() #12
  %24720 = load i32, ptr %24719, align 4, !tbaa !5
  %24721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24708, ptr noundef @.str.5, i32 noundef %24709, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 952, ptr noundef %24712, ptr noundef %24715, ptr noundef %24718, i32 noundef %24720) #11
  br label %24722

24722:                                            ; preds = %24705, %24688
  call void @llvm.lifetime.end.p0(i64 4, ptr %505) #11
  br label %24723

24723:                                            ; preds = %24722
  br label %24724

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

24725:                                            ; No predecessors!
  br label %24726

24726:                                            ; preds = %24725
  br label %24727

24727:                                            ; preds = %24726, %24669
  br label %24728

24728:                                            ; preds = %24727
  br label %24729

24729:                                            ; preds = %24728
  br label %24730

24730:                                            ; preds = %24729
  %24731 = load i32, ptr @test_count, align 4, !tbaa !5
  %24732 = add nsw i32 %24731, 1
  store i32 %24732, ptr @test_count, align 4, !tbaa !5
  %24733 = load i16, ptr %504, align 2, !tbaa !53
  %24734 = zext i16 %24733 to i32
  %24735 = load ptr, ptr %500, align 8, !tbaa !9
  %24736 = getelementptr inbounds %struct.s2n_kem_group, ptr %24735, i32 0, i32 1
  %24737 = load i16, ptr %24736, align 8, !tbaa !86
  %24738 = zext i16 %24737 to i32
  %24739 = icmp eq i32 %24734, %24738
  br i1 %24739, label %24793, label %24740

24740:                                            ; preds = %24730
  br label %24741

24741:                                            ; preds = %24740
  br label %24742

24742:                                            ; preds = %24741
  call void @llvm.lifetime.start.p0(i64 4, ptr %506) #11
  %24743 = call ptr @__errno_location() #12
  %24744 = load i32, ptr %24743, align 4, !tbaa !5
  store i32 %24744, ptr %506, align 4, !tbaa !5
  %24745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24746 = call i32 @s2n_print_stacktrace(ptr noundef %24745)
  %24747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24748 = trunc i8 %24747 to i1
  br i1 %24748, label %24749, label %24771

24749:                                            ; preds = %24742
  %24750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24751 = call i32 @fileno(ptr noundef %24750) #11
  %24752 = call i32 @isatty(i32 noundef %24751) #11
  %24753 = icmp ne i32 %24752, 0
  br i1 %24753, label %24754, label %24771

24754:                                            ; preds = %24749
  %24755 = load i32, ptr %506, align 4, !tbaa !5
  %24756 = call ptr @__errno_location() #12
  store i32 %24755, ptr %24756, align 4, !tbaa !5
  %24757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24758 = load i32, ptr @test_count, align 4, !tbaa !5
  %24759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24760 = load i32, ptr %24759, align 4, !tbaa !5
  %24761 = call ptr @s2n_strerror(i32 noundef %24760, ptr noundef @.str.4)
  %24762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24763 = load i32, ptr %24762, align 4, !tbaa !5
  %24764 = call ptr @s2n_strerror_debug(i32 noundef %24763, ptr noundef @.str.4)
  %24765 = call ptr @__errno_location() #12
  %24766 = load i32, ptr %24765, align 4, !tbaa !5
  %24767 = call ptr @strerror(i32 noundef %24766) #11
  %24768 = call ptr @__errno_location() #12
  %24769 = load i32, ptr %24768, align 4, !tbaa !5
  %24770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24757, ptr noundef @.str.2, i32 noundef %24758, ptr noundef @.str.188, ptr noundef @.str.1, i32 noundef 952, ptr noundef %24761, ptr noundef %24764, ptr noundef %24767, i32 noundef %24769) #11
  br label %24788

24771:                                            ; preds = %24749, %24742
  %24772 = load i32, ptr %506, align 4, !tbaa !5
  %24773 = call ptr @__errno_location() #12
  store i32 %24772, ptr %24773, align 4, !tbaa !5
  %24774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24775 = load i32, ptr @test_count, align 4, !tbaa !5
  %24776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24777 = load i32, ptr %24776, align 4, !tbaa !5
  %24778 = call ptr @s2n_strerror(i32 noundef %24777, ptr noundef @.str.4)
  %24779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24780 = load i32, ptr %24779, align 4, !tbaa !5
  %24781 = call ptr @s2n_strerror_debug(i32 noundef %24780, ptr noundef @.str.4)
  %24782 = call ptr @__errno_location() #12
  %24783 = load i32, ptr %24782, align 4, !tbaa !5
  %24784 = call ptr @strerror(i32 noundef %24783) #11
  %24785 = call ptr @__errno_location() #12
  %24786 = load i32, ptr %24785, align 4, !tbaa !5
  %24787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24774, ptr noundef @.str.5, i32 noundef %24775, ptr noundef @.str.188, ptr noundef @.str.1, i32 noundef 952, ptr noundef %24778, ptr noundef %24781, ptr noundef %24784, i32 noundef %24786) #11
  br label %24788

24788:                                            ; preds = %24771, %24754
  call void @llvm.lifetime.end.p0(i64 4, ptr %506) #11
  br label %24789

24789:                                            ; preds = %24788
  br label %24790

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

24791:                                            ; No predecessors!
  br label %24792

24792:                                            ; preds = %24791
  br label %24793

24793:                                            ; preds = %24792, %24730
  br label %24794

24794:                                            ; preds = %24793
  br label %24795

24795:                                            ; preds = %24794
  call void @llvm.lifetime.end.p0(i64 2, ptr %504) #11
  br label %24796

24796:                                            ; preds = %24795
  br label %24797

24797:                                            ; preds = %24796
  br label %24798

24798:                                            ; preds = %24797
  %24799 = load i32, ptr @test_count, align 4, !tbaa !5
  %24800 = add nsw i32 %24799, 1
  store i32 %24800, ptr @test_count, align 4, !tbaa !5
  %24801 = getelementptr inbounds %struct.s2n_stuffer, ptr %496, i32 0, i32 2
  %24802 = load i32, ptr %24801, align 4, !tbaa !55
  %24803 = getelementptr inbounds %struct.s2n_stuffer, ptr %496, i32 0, i32 1
  %24804 = load i32, ptr %24803, align 8, !tbaa !56
  %24805 = sub i32 %24802, %24804
  %24806 = icmp eq i32 0, %24805
  br i1 %24806, label %24860, label %24807

24807:                                            ; preds = %24798
  br label %24808

24808:                                            ; preds = %24807
  br label %24809

24809:                                            ; preds = %24808
  call void @llvm.lifetime.start.p0(i64 4, ptr %507) #11
  %24810 = call ptr @__errno_location() #12
  %24811 = load i32, ptr %24810, align 4, !tbaa !5
  store i32 %24811, ptr %507, align 4, !tbaa !5
  %24812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24813 = call i32 @s2n_print_stacktrace(ptr noundef %24812)
  %24814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24815 = trunc i8 %24814 to i1
  br i1 %24815, label %24816, label %24838

24816:                                            ; preds = %24809
  %24817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24818 = call i32 @fileno(ptr noundef %24817) #11
  %24819 = call i32 @isatty(i32 noundef %24818) #11
  %24820 = icmp ne i32 %24819, 0
  br i1 %24820, label %24821, label %24838

24821:                                            ; preds = %24816
  %24822 = load i32, ptr %507, align 4, !tbaa !5
  %24823 = call ptr @__errno_location() #12
  store i32 %24822, ptr %24823, align 4, !tbaa !5
  %24824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24825 = load i32, ptr @test_count, align 4, !tbaa !5
  %24826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24827 = load i32, ptr %24826, align 4, !tbaa !5
  %24828 = call ptr @s2n_strerror(i32 noundef %24827, ptr noundef @.str.4)
  %24829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24830 = load i32, ptr %24829, align 4, !tbaa !5
  %24831 = call ptr @s2n_strerror_debug(i32 noundef %24830, ptr noundef @.str.4)
  %24832 = call ptr @__errno_location() #12
  %24833 = load i32, ptr %24832, align 4, !tbaa !5
  %24834 = call ptr @strerror(i32 noundef %24833) #11
  %24835 = call ptr @__errno_location() #12
  %24836 = load i32, ptr %24835, align 4, !tbaa !5
  %24837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24824, ptr noundef @.str.2, i32 noundef %24825, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 953, ptr noundef %24828, ptr noundef %24831, ptr noundef %24834, i32 noundef %24836) #11
  br label %24855

24838:                                            ; preds = %24816, %24809
  %24839 = load i32, ptr %507, align 4, !tbaa !5
  %24840 = call ptr @__errno_location() #12
  store i32 %24839, ptr %24840, align 4, !tbaa !5
  %24841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24842 = load i32, ptr @test_count, align 4, !tbaa !5
  %24843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24844 = load i32, ptr %24843, align 4, !tbaa !5
  %24845 = call ptr @s2n_strerror(i32 noundef %24844, ptr noundef @.str.4)
  %24846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24847 = load i32, ptr %24846, align 4, !tbaa !5
  %24848 = call ptr @s2n_strerror_debug(i32 noundef %24847, ptr noundef @.str.4)
  %24849 = call ptr @__errno_location() #12
  %24850 = load i32, ptr %24849, align 4, !tbaa !5
  %24851 = call ptr @strerror(i32 noundef %24850) #11
  %24852 = call ptr @__errno_location() #12
  %24853 = load i32, ptr %24852, align 4, !tbaa !5
  %24854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24841, ptr noundef @.str.5, i32 noundef %24842, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 953, ptr noundef %24845, ptr noundef %24848, ptr noundef %24851, i32 noundef %24853) #11
  br label %24855

24855:                                            ; preds = %24838, %24821
  call void @llvm.lifetime.end.p0(i64 4, ptr %507) #11
  br label %24856

24856:                                            ; preds = %24855
  br label %24857

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

24858:                                            ; No predecessors!
  br label %24859

24859:                                            ; preds = %24858
  br label %24860

24860:                                            ; preds = %24859, %24798
  br label %24861

24861:                                            ; preds = %24860
  br label %24862

24862:                                            ; preds = %24861
  br label %24863

24863:                                            ; preds = %24862
  %24864 = load i32, ptr @test_count, align 4, !tbaa !5
  %24865 = add nsw i32 %24864, 1
  store i32 %24865, ptr @test_count, align 4, !tbaa !5
  %24866 = load ptr, ptr %499, align 8, !tbaa !9
  %24867 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %24866, i32 0, i32 0
  %24868 = load ptr, ptr %24867, align 8, !tbaa !111
  %24869 = load ptr, ptr %500, align 8, !tbaa !9
  %24870 = icmp eq ptr %24868, %24869
  br i1 %24870, label %24924, label %24871

24871:                                            ; preds = %24863
  br label %24872

24872:                                            ; preds = %24871
  br label %24873

24873:                                            ; preds = %24872
  call void @llvm.lifetime.start.p0(i64 4, ptr %508) #11
  %24874 = call ptr @__errno_location() #12
  %24875 = load i32, ptr %24874, align 4, !tbaa !5
  store i32 %24875, ptr %508, align 4, !tbaa !5
  %24876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24877 = call i32 @s2n_print_stacktrace(ptr noundef %24876)
  %24878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24879 = trunc i8 %24878 to i1
  br i1 %24879, label %24880, label %24902

24880:                                            ; preds = %24873
  %24881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24882 = call i32 @fileno(ptr noundef %24881) #11
  %24883 = call i32 @isatty(i32 noundef %24882) #11
  %24884 = icmp ne i32 %24883, 0
  br i1 %24884, label %24885, label %24902

24885:                                            ; preds = %24880
  %24886 = load i32, ptr %508, align 4, !tbaa !5
  %24887 = call ptr @__errno_location() #12
  store i32 %24886, ptr %24887, align 4, !tbaa !5
  %24888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24889 = load i32, ptr @test_count, align 4, !tbaa !5
  %24890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24891 = load i32, ptr %24890, align 4, !tbaa !5
  %24892 = call ptr @s2n_strerror(i32 noundef %24891, ptr noundef @.str.4)
  %24893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24894 = load i32, ptr %24893, align 4, !tbaa !5
  %24895 = call ptr @s2n_strerror_debug(i32 noundef %24894, ptr noundef @.str.4)
  %24896 = call ptr @__errno_location() #12
  %24897 = load i32, ptr %24896, align 4, !tbaa !5
  %24898 = call ptr @strerror(i32 noundef %24897) #11
  %24899 = call ptr @__errno_location() #12
  %24900 = load i32, ptr %24899, align 4, !tbaa !5
  %24901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24888, ptr noundef @.str.2, i32 noundef %24889, ptr noundef @.str.195, ptr noundef @.str.1, i32 noundef 955, ptr noundef %24892, ptr noundef %24895, ptr noundef %24898, i32 noundef %24900) #11
  br label %24919

24902:                                            ; preds = %24880, %24873
  %24903 = load i32, ptr %508, align 4, !tbaa !5
  %24904 = call ptr @__errno_location() #12
  store i32 %24903, ptr %24904, align 4, !tbaa !5
  %24905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24906 = load i32, ptr @test_count, align 4, !tbaa !5
  %24907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24908 = load i32, ptr %24907, align 4, !tbaa !5
  %24909 = call ptr @s2n_strerror(i32 noundef %24908, ptr noundef @.str.4)
  %24910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24911 = load i32, ptr %24910, align 4, !tbaa !5
  %24912 = call ptr @s2n_strerror_debug(i32 noundef %24911, ptr noundef @.str.4)
  %24913 = call ptr @__errno_location() #12
  %24914 = load i32, ptr %24913, align 4, !tbaa !5
  %24915 = call ptr @strerror(i32 noundef %24914) #11
  %24916 = call ptr @__errno_location() #12
  %24917 = load i32, ptr %24916, align 4, !tbaa !5
  %24918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24905, ptr noundef @.str.5, i32 noundef %24906, ptr noundef @.str.195, ptr noundef @.str.1, i32 noundef 955, ptr noundef %24909, ptr noundef %24912, ptr noundef %24915, i32 noundef %24917) #11
  br label %24919

24919:                                            ; preds = %24902, %24885
  call void @llvm.lifetime.end.p0(i64 4, ptr %508) #11
  br label %24920

24920:                                            ; preds = %24919
  br label %24921

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

24922:                                            ; No predecessors!
  br label %24923

24923:                                            ; preds = %24922
  br label %24924

24924:                                            ; preds = %24923, %24863
  br label %24925

24925:                                            ; preds = %24924
  br label %24926

24926:                                            ; preds = %24925
  br label %24927

24927:                                            ; preds = %24926
  %24928 = load i32, ptr @test_count, align 4, !tbaa !5
  %24929 = add nsw i32 %24928, 1
  store i32 %24929, ptr @test_count, align 4, !tbaa !5
  %24930 = load ptr, ptr %499, align 8, !tbaa !9
  %24931 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %24930, i32 0, i32 1
  %24932 = getelementptr inbounds %struct.s2n_kem_params, ptr %24931, i32 0, i32 0
  %24933 = load ptr, ptr %24932, align 8, !tbaa !112
  %24934 = load ptr, ptr %500, align 8, !tbaa !9
  %24935 = getelementptr inbounds %struct.s2n_kem_group, ptr %24934, i32 0, i32 3
  %24936 = load ptr, ptr %24935, align 8, !tbaa !91
  %24937 = icmp eq ptr %24933, %24936
  br i1 %24937, label %24991, label %24938

24938:                                            ; preds = %24927
  br label %24939

24939:                                            ; preds = %24938
  br label %24940

24940:                                            ; preds = %24939
  call void @llvm.lifetime.start.p0(i64 4, ptr %509) #11
  %24941 = call ptr @__errno_location() #12
  %24942 = load i32, ptr %24941, align 4, !tbaa !5
  store i32 %24942, ptr %509, align 4, !tbaa !5
  %24943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24944 = call i32 @s2n_print_stacktrace(ptr noundef %24943)
  %24945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24946 = trunc i8 %24945 to i1
  br i1 %24946, label %24947, label %24969

24947:                                            ; preds = %24940
  %24948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24949 = call i32 @fileno(ptr noundef %24948) #11
  %24950 = call i32 @isatty(i32 noundef %24949) #11
  %24951 = icmp ne i32 %24950, 0
  br i1 %24951, label %24952, label %24969

24952:                                            ; preds = %24947
  %24953 = load i32, ptr %509, align 4, !tbaa !5
  %24954 = call ptr @__errno_location() #12
  store i32 %24953, ptr %24954, align 4, !tbaa !5
  %24955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24956 = load i32, ptr @test_count, align 4, !tbaa !5
  %24957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24958 = load i32, ptr %24957, align 4, !tbaa !5
  %24959 = call ptr @s2n_strerror(i32 noundef %24958, ptr noundef @.str.4)
  %24960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24961 = load i32, ptr %24960, align 4, !tbaa !5
  %24962 = call ptr @s2n_strerror_debug(i32 noundef %24961, ptr noundef @.str.4)
  %24963 = call ptr @__errno_location() #12
  %24964 = load i32, ptr %24963, align 4, !tbaa !5
  %24965 = call ptr @strerror(i32 noundef %24964) #11
  %24966 = call ptr @__errno_location() #12
  %24967 = load i32, ptr %24966, align 4, !tbaa !5
  %24968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24955, ptr noundef @.str.2, i32 noundef %24956, ptr noundef @.str.196, ptr noundef @.str.1, i32 noundef 956, ptr noundef %24959, ptr noundef %24962, ptr noundef %24965, i32 noundef %24967) #11
  br label %24986

24969:                                            ; preds = %24947, %24940
  %24970 = load i32, ptr %509, align 4, !tbaa !5
  %24971 = call ptr @__errno_location() #12
  store i32 %24970, ptr %24971, align 4, !tbaa !5
  %24972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24973 = load i32, ptr @test_count, align 4, !tbaa !5
  %24974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24975 = load i32, ptr %24974, align 4, !tbaa !5
  %24976 = call ptr @s2n_strerror(i32 noundef %24975, ptr noundef @.str.4)
  %24977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24978 = load i32, ptr %24977, align 4, !tbaa !5
  %24979 = call ptr @s2n_strerror_debug(i32 noundef %24978, ptr noundef @.str.4)
  %24980 = call ptr @__errno_location() #12
  %24981 = load i32, ptr %24980, align 4, !tbaa !5
  %24982 = call ptr @strerror(i32 noundef %24981) #11
  %24983 = call ptr @__errno_location() #12
  %24984 = load i32, ptr %24983, align 4, !tbaa !5
  %24985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24972, ptr noundef @.str.5, i32 noundef %24973, ptr noundef @.str.196, ptr noundef @.str.1, i32 noundef 956, ptr noundef %24976, ptr noundef %24979, ptr noundef %24982, i32 noundef %24984) #11
  br label %24986

24986:                                            ; preds = %24969, %24952
  call void @llvm.lifetime.end.p0(i64 4, ptr %509) #11
  br label %24987

24987:                                            ; preds = %24986
  br label %24988

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

24989:                                            ; No predecessors!
  br label %24990

24990:                                            ; preds = %24989
  br label %24991

24991:                                            ; preds = %24990, %24927
  br label %24992

24992:                                            ; preds = %24991
  br label %24993

24993:                                            ; preds = %24992
  br label %24994

24994:                                            ; preds = %24993
  %24995 = load i32, ptr @test_count, align 4, !tbaa !5
  %24996 = add nsw i32 %24995, 1
  store i32 %24996, ptr @test_count, align 4, !tbaa !5
  %24997 = load ptr, ptr %499, align 8, !tbaa !9
  %24998 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %24997, i32 0, i32 2
  %24999 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %24998, i32 0, i32 0
  %25000 = load ptr, ptr %24999, align 8, !tbaa !113
  %25001 = load ptr, ptr %500, align 8, !tbaa !9
  %25002 = getelementptr inbounds %struct.s2n_kem_group, ptr %25001, i32 0, i32 2
  %25003 = load ptr, ptr %25002, align 8, !tbaa !89
  %25004 = icmp eq ptr %25000, %25003
  br i1 %25004, label %25058, label %25005

25005:                                            ; preds = %24994
  br label %25006

25006:                                            ; preds = %25005
  br label %25007

25007:                                            ; preds = %25006
  call void @llvm.lifetime.start.p0(i64 4, ptr %510) #11
  %25008 = call ptr @__errno_location() #12
  %25009 = load i32, ptr %25008, align 4, !tbaa !5
  store i32 %25009, ptr %510, align 4, !tbaa !5
  %25010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25011 = call i32 @s2n_print_stacktrace(ptr noundef %25010)
  %25012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25013 = trunc i8 %25012 to i1
  br i1 %25013, label %25014, label %25036

25014:                                            ; preds = %25007
  %25015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25016 = call i32 @fileno(ptr noundef %25015) #11
  %25017 = call i32 @isatty(i32 noundef %25016) #11
  %25018 = icmp ne i32 %25017, 0
  br i1 %25018, label %25019, label %25036

25019:                                            ; preds = %25014
  %25020 = load i32, ptr %510, align 4, !tbaa !5
  %25021 = call ptr @__errno_location() #12
  store i32 %25020, ptr %25021, align 4, !tbaa !5
  %25022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25023 = load i32, ptr @test_count, align 4, !tbaa !5
  %25024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25025 = load i32, ptr %25024, align 4, !tbaa !5
  %25026 = call ptr @s2n_strerror(i32 noundef %25025, ptr noundef @.str.4)
  %25027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25028 = load i32, ptr %25027, align 4, !tbaa !5
  %25029 = call ptr @s2n_strerror_debug(i32 noundef %25028, ptr noundef @.str.4)
  %25030 = call ptr @__errno_location() #12
  %25031 = load i32, ptr %25030, align 4, !tbaa !5
  %25032 = call ptr @strerror(i32 noundef %25031) #11
  %25033 = call ptr @__errno_location() #12
  %25034 = load i32, ptr %25033, align 4, !tbaa !5
  %25035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25022, ptr noundef @.str.2, i32 noundef %25023, ptr noundef @.str.197, ptr noundef @.str.1, i32 noundef 957, ptr noundef %25026, ptr noundef %25029, ptr noundef %25032, i32 noundef %25034) #11
  br label %25053

25036:                                            ; preds = %25014, %25007
  %25037 = load i32, ptr %510, align 4, !tbaa !5
  %25038 = call ptr @__errno_location() #12
  store i32 %25037, ptr %25038, align 4, !tbaa !5
  %25039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25040 = load i32, ptr @test_count, align 4, !tbaa !5
  %25041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25042 = load i32, ptr %25041, align 4, !tbaa !5
  %25043 = call ptr @s2n_strerror(i32 noundef %25042, ptr noundef @.str.4)
  %25044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25045 = load i32, ptr %25044, align 4, !tbaa !5
  %25046 = call ptr @s2n_strerror_debug(i32 noundef %25045, ptr noundef @.str.4)
  %25047 = call ptr @__errno_location() #12
  %25048 = load i32, ptr %25047, align 4, !tbaa !5
  %25049 = call ptr @strerror(i32 noundef %25048) #11
  %25050 = call ptr @__errno_location() #12
  %25051 = load i32, ptr %25050, align 4, !tbaa !5
  %25052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25039, ptr noundef @.str.5, i32 noundef %25040, ptr noundef @.str.197, ptr noundef @.str.1, i32 noundef 957, ptr noundef %25043, ptr noundef %25046, ptr noundef %25049, i32 noundef %25051) #11
  br label %25053

25053:                                            ; preds = %25036, %25019
  call void @llvm.lifetime.end.p0(i64 4, ptr %510) #11
  br label %25054

25054:                                            ; preds = %25053
  br label %25055

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

25056:                                            ; No predecessors!
  br label %25057

25057:                                            ; preds = %25056
  br label %25058

25058:                                            ; preds = %25057, %24994
  br label %25059

25059:                                            ; preds = %25058
  br label %25060

25060:                                            ; preds = %25059
  br label %25061

25061:                                            ; preds = %25060
  %25062 = load i32, ptr @test_count, align 4, !tbaa !5
  %25063 = add nsw i32 %25062, 1
  store i32 %25063, ptr @test_count, align 4, !tbaa !5
  %25064 = load ptr, ptr %499, align 8, !tbaa !9
  %25065 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %25064, i32 0, i32 1
  %25066 = getelementptr inbounds %struct.s2n_kem_params, ptr %25065, i32 0, i32 3
  %25067 = getelementptr inbounds %struct.s2n_blob, ptr %25066, i32 0, i32 0
  %25068 = load ptr, ptr %25067, align 8, !tbaa !118
  %25069 = icmp eq ptr %25068, null
  br i1 %25069, label %25123, label %25070

25070:                                            ; preds = %25061
  br label %25071

25071:                                            ; preds = %25070
  br label %25072

25072:                                            ; preds = %25071
  call void @llvm.lifetime.start.p0(i64 4, ptr %511) #11
  %25073 = call ptr @__errno_location() #12
  %25074 = load i32, ptr %25073, align 4, !tbaa !5
  store i32 %25074, ptr %511, align 4, !tbaa !5
  %25075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25076 = call i32 @s2n_print_stacktrace(ptr noundef %25075)
  %25077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25078 = trunc i8 %25077 to i1
  br i1 %25078, label %25079, label %25101

25079:                                            ; preds = %25072
  %25080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25081 = call i32 @fileno(ptr noundef %25080) #11
  %25082 = call i32 @isatty(i32 noundef %25081) #11
  %25083 = icmp ne i32 %25082, 0
  br i1 %25083, label %25084, label %25101

25084:                                            ; preds = %25079
  %25085 = load i32, ptr %511, align 4, !tbaa !5
  %25086 = call ptr @__errno_location() #12
  store i32 %25085, ptr %25086, align 4, !tbaa !5
  %25087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25088 = load i32, ptr @test_count, align 4, !tbaa !5
  %25089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25090 = load i32, ptr %25089, align 4, !tbaa !5
  %25091 = call ptr @s2n_strerror(i32 noundef %25090, ptr noundef @.str.4)
  %25092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25093 = load i32, ptr %25092, align 4, !tbaa !5
  %25094 = call ptr @s2n_strerror_debug(i32 noundef %25093, ptr noundef @.str.4)
  %25095 = call ptr @__errno_location() #12
  %25096 = load i32, ptr %25095, align 4, !tbaa !5
  %25097 = call ptr @strerror(i32 noundef %25096) #11
  %25098 = call ptr @__errno_location() #12
  %25099 = load i32, ptr %25098, align 4, !tbaa !5
  %25100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25087, ptr noundef @.str.2, i32 noundef %25088, ptr noundef @.str.200, ptr noundef @.str.1, i32 noundef 958, ptr noundef %25091, ptr noundef %25094, ptr noundef %25097, i32 noundef %25099) #11
  br label %25118

25101:                                            ; preds = %25079, %25072
  %25102 = load i32, ptr %511, align 4, !tbaa !5
  %25103 = call ptr @__errno_location() #12
  store i32 %25102, ptr %25103, align 4, !tbaa !5
  %25104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25105 = load i32, ptr @test_count, align 4, !tbaa !5
  %25106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25107 = load i32, ptr %25106, align 4, !tbaa !5
  %25108 = call ptr @s2n_strerror(i32 noundef %25107, ptr noundef @.str.4)
  %25109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25110 = load i32, ptr %25109, align 4, !tbaa !5
  %25111 = call ptr @s2n_strerror_debug(i32 noundef %25110, ptr noundef @.str.4)
  %25112 = call ptr @__errno_location() #12
  %25113 = load i32, ptr %25112, align 4, !tbaa !5
  %25114 = call ptr @strerror(i32 noundef %25113) #11
  %25115 = call ptr @__errno_location() #12
  %25116 = load i32, ptr %25115, align 4, !tbaa !5
  %25117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25104, ptr noundef @.str.5, i32 noundef %25105, ptr noundef @.str.200, ptr noundef @.str.1, i32 noundef 958, ptr noundef %25108, ptr noundef %25111, ptr noundef %25114, i32 noundef %25116) #11
  br label %25118

25118:                                            ; preds = %25101, %25084
  call void @llvm.lifetime.end.p0(i64 4, ptr %511) #11
  br label %25119

25119:                                            ; preds = %25118
  br label %25120

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

25121:                                            ; No predecessors!
  br label %25122

25122:                                            ; preds = %25121
  br label %25123

25123:                                            ; preds = %25122, %25061
  br label %25124

25124:                                            ; preds = %25123
  br label %25125

25125:                                            ; preds = %25124
  br label %25126

25126:                                            ; preds = %25125
  %25127 = load i32, ptr @test_count, align 4, !tbaa !5
  %25128 = add nsw i32 %25127, 1
  store i32 %25128, ptr @test_count, align 4, !tbaa !5
  %25129 = load ptr, ptr %499, align 8, !tbaa !9
  %25130 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %25129, i32 0, i32 1
  %25131 = getelementptr inbounds %struct.s2n_kem_params, ptr %25130, i32 0, i32 3
  %25132 = getelementptr inbounds %struct.s2n_blob, ptr %25131, i32 0, i32 1
  %25133 = load i32, ptr %25132, align 8, !tbaa !117
  %25134 = icmp eq i32 0, %25133
  br i1 %25134, label %25188, label %25135

25135:                                            ; preds = %25126
  br label %25136

25136:                                            ; preds = %25135
  br label %25137

25137:                                            ; preds = %25136
  call void @llvm.lifetime.start.p0(i64 4, ptr %512) #11
  %25138 = call ptr @__errno_location() #12
  %25139 = load i32, ptr %25138, align 4, !tbaa !5
  store i32 %25139, ptr %512, align 4, !tbaa !5
  %25140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25141 = call i32 @s2n_print_stacktrace(ptr noundef %25140)
  %25142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25143 = trunc i8 %25142 to i1
  br i1 %25143, label %25144, label %25166

25144:                                            ; preds = %25137
  %25145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25146 = call i32 @fileno(ptr noundef %25145) #11
  %25147 = call i32 @isatty(i32 noundef %25146) #11
  %25148 = icmp ne i32 %25147, 0
  br i1 %25148, label %25149, label %25166

25149:                                            ; preds = %25144
  %25150 = load i32, ptr %512, align 4, !tbaa !5
  %25151 = call ptr @__errno_location() #12
  store i32 %25150, ptr %25151, align 4, !tbaa !5
  %25152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25153 = load i32, ptr @test_count, align 4, !tbaa !5
  %25154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25155 = load i32, ptr %25154, align 4, !tbaa !5
  %25156 = call ptr @s2n_strerror(i32 noundef %25155, ptr noundef @.str.4)
  %25157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25158 = load i32, ptr %25157, align 4, !tbaa !5
  %25159 = call ptr @s2n_strerror_debug(i32 noundef %25158, ptr noundef @.str.4)
  %25160 = call ptr @__errno_location() #12
  %25161 = load i32, ptr %25160, align 4, !tbaa !5
  %25162 = call ptr @strerror(i32 noundef %25161) #11
  %25163 = call ptr @__errno_location() #12
  %25164 = load i32, ptr %25163, align 4, !tbaa !5
  %25165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25152, ptr noundef @.str.2, i32 noundef %25153, ptr noundef @.str.201, ptr noundef @.str.1, i32 noundef 959, ptr noundef %25156, ptr noundef %25159, ptr noundef %25162, i32 noundef %25164) #11
  br label %25183

25166:                                            ; preds = %25144, %25137
  %25167 = load i32, ptr %512, align 4, !tbaa !5
  %25168 = call ptr @__errno_location() #12
  store i32 %25167, ptr %25168, align 4, !tbaa !5
  %25169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25170 = load i32, ptr @test_count, align 4, !tbaa !5
  %25171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25172 = load i32, ptr %25171, align 4, !tbaa !5
  %25173 = call ptr @s2n_strerror(i32 noundef %25172, ptr noundef @.str.4)
  %25174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25175 = load i32, ptr %25174, align 4, !tbaa !5
  %25176 = call ptr @s2n_strerror_debug(i32 noundef %25175, ptr noundef @.str.4)
  %25177 = call ptr @__errno_location() #12
  %25178 = load i32, ptr %25177, align 4, !tbaa !5
  %25179 = call ptr @strerror(i32 noundef %25178) #11
  %25180 = call ptr @__errno_location() #12
  %25181 = load i32, ptr %25180, align 4, !tbaa !5
  %25182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25169, ptr noundef @.str.5, i32 noundef %25170, ptr noundef @.str.201, ptr noundef @.str.1, i32 noundef 959, ptr noundef %25173, ptr noundef %25176, ptr noundef %25179, i32 noundef %25181) #11
  br label %25183

25183:                                            ; preds = %25166, %25149
  call void @llvm.lifetime.end.p0(i64 4, ptr %512) #11
  br label %25184

25184:                                            ; preds = %25183
  br label %25185

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

25186:                                            ; No predecessors!
  br label %25187

25187:                                            ; preds = %25186
  br label %25188

25188:                                            ; preds = %25187, %25126
  br label %25189

25189:                                            ; preds = %25188
  br label %25190

25190:                                            ; preds = %25189
  br label %25191

25191:                                            ; preds = %25190
  %25192 = load i32, ptr @test_count, align 4, !tbaa !5
  %25193 = add nsw i32 %25192, 1
  store i32 %25193, ptr @test_count, align 4, !tbaa !5
  %25194 = load ptr, ptr %499, align 8, !tbaa !9
  %25195 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %25194, i32 0, i32 2
  %25196 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %25195, i32 0, i32 1
  %25197 = load ptr, ptr %25196, align 8, !tbaa !121
  %25198 = icmp eq ptr %25197, null
  br i1 %25198, label %25252, label %25199

25199:                                            ; preds = %25191
  br label %25200

25200:                                            ; preds = %25199
  br label %25201

25201:                                            ; preds = %25200
  call void @llvm.lifetime.start.p0(i64 4, ptr %513) #11
  %25202 = call ptr @__errno_location() #12
  %25203 = load i32, ptr %25202, align 4, !tbaa !5
  store i32 %25203, ptr %513, align 4, !tbaa !5
  %25204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25205 = call i32 @s2n_print_stacktrace(ptr noundef %25204)
  %25206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25207 = trunc i8 %25206 to i1
  br i1 %25207, label %25208, label %25230

25208:                                            ; preds = %25201
  %25209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25210 = call i32 @fileno(ptr noundef %25209) #11
  %25211 = call i32 @isatty(i32 noundef %25210) #11
  %25212 = icmp ne i32 %25211, 0
  br i1 %25212, label %25213, label %25230

25213:                                            ; preds = %25208
  %25214 = load i32, ptr %513, align 4, !tbaa !5
  %25215 = call ptr @__errno_location() #12
  store i32 %25214, ptr %25215, align 4, !tbaa !5
  %25216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25217 = load i32, ptr @test_count, align 4, !tbaa !5
  %25218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25219 = load i32, ptr %25218, align 4, !tbaa !5
  %25220 = call ptr @s2n_strerror(i32 noundef %25219, ptr noundef @.str.4)
  %25221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25222 = load i32, ptr %25221, align 4, !tbaa !5
  %25223 = call ptr @s2n_strerror_debug(i32 noundef %25222, ptr noundef @.str.4)
  %25224 = call ptr @__errno_location() #12
  %25225 = load i32, ptr %25224, align 4, !tbaa !5
  %25226 = call ptr @strerror(i32 noundef %25225) #11
  %25227 = call ptr @__errno_location() #12
  %25228 = load i32, ptr %25227, align 4, !tbaa !5
  %25229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25216, ptr noundef @.str.2, i32 noundef %25217, ptr noundef @.str.202, ptr noundef @.str.1, i32 noundef 960, ptr noundef %25220, ptr noundef %25223, ptr noundef %25226, i32 noundef %25228) #11
  br label %25247

25230:                                            ; preds = %25208, %25201
  %25231 = load i32, ptr %513, align 4, !tbaa !5
  %25232 = call ptr @__errno_location() #12
  store i32 %25231, ptr %25232, align 4, !tbaa !5
  %25233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25234 = load i32, ptr @test_count, align 4, !tbaa !5
  %25235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25236 = load i32, ptr %25235, align 4, !tbaa !5
  %25237 = call ptr @s2n_strerror(i32 noundef %25236, ptr noundef @.str.4)
  %25238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25239 = load i32, ptr %25238, align 4, !tbaa !5
  %25240 = call ptr @s2n_strerror_debug(i32 noundef %25239, ptr noundef @.str.4)
  %25241 = call ptr @__errno_location() #12
  %25242 = load i32, ptr %25241, align 4, !tbaa !5
  %25243 = call ptr @strerror(i32 noundef %25242) #11
  %25244 = call ptr @__errno_location() #12
  %25245 = load i32, ptr %25244, align 4, !tbaa !5
  %25246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25233, ptr noundef @.str.5, i32 noundef %25234, ptr noundef @.str.202, ptr noundef @.str.1, i32 noundef 960, ptr noundef %25237, ptr noundef %25240, ptr noundef %25243, i32 noundef %25245) #11
  br label %25247

25247:                                            ; preds = %25230, %25213
  call void @llvm.lifetime.end.p0(i64 4, ptr %513) #11
  br label %25248

25248:                                            ; preds = %25247
  br label %25249

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

25250:                                            ; No predecessors!
  br label %25251

25251:                                            ; preds = %25250
  br label %25252

25252:                                            ; preds = %25251, %25191
  br label %25253

25253:                                            ; preds = %25252
  br label %25254

25254:                                            ; preds = %25253
  br label %25255

25255:                                            ; preds = %25254
  %25256 = load i32, ptr @test_count, align 4, !tbaa !5
  %25257 = add nsw i32 %25256, 1
  store i32 %25257, ptr @test_count, align 4, !tbaa !5
  %25258 = load ptr, ptr %488, align 8, !tbaa !9
  %25259 = getelementptr inbounds %struct.s2n_connection, ptr %25258, i32 0, i32 31
  %25260 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %25259, i32 0, i32 1
  %25261 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %25260, i32 0, i32 0
  %25262 = load ptr, ptr %25261, align 8, !tbaa !42
  %25263 = icmp eq ptr %25262, null
  br i1 %25263, label %25317, label %25264

25264:                                            ; preds = %25255
  br label %25265

25265:                                            ; preds = %25264
  br label %25266

25266:                                            ; preds = %25265
  call void @llvm.lifetime.start.p0(i64 4, ptr %514) #11
  %25267 = call ptr @__errno_location() #12
  %25268 = load i32, ptr %25267, align 4, !tbaa !5
  store i32 %25268, ptr %514, align 4, !tbaa !5
  %25269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25270 = call i32 @s2n_print_stacktrace(ptr noundef %25269)
  %25271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25272 = trunc i8 %25271 to i1
  br i1 %25272, label %25273, label %25295

25273:                                            ; preds = %25266
  %25274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25275 = call i32 @fileno(ptr noundef %25274) #11
  %25276 = call i32 @isatty(i32 noundef %25275) #11
  %25277 = icmp ne i32 %25276, 0
  br i1 %25277, label %25278, label %25295

25278:                                            ; preds = %25273
  %25279 = load i32, ptr %514, align 4, !tbaa !5
  %25280 = call ptr @__errno_location() #12
  store i32 %25279, ptr %25280, align 4, !tbaa !5
  %25281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25282 = load i32, ptr @test_count, align 4, !tbaa !5
  %25283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25284 = load i32, ptr %25283, align 4, !tbaa !5
  %25285 = call ptr @s2n_strerror(i32 noundef %25284, ptr noundef @.str.4)
  %25286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25287 = load i32, ptr %25286, align 4, !tbaa !5
  %25288 = call ptr @s2n_strerror_debug(i32 noundef %25287, ptr noundef @.str.4)
  %25289 = call ptr @__errno_location() #12
  %25290 = load i32, ptr %25289, align 4, !tbaa !5
  %25291 = call ptr @strerror(i32 noundef %25290) #11
  %25292 = call ptr @__errno_location() #12
  %25293 = load i32, ptr %25292, align 4, !tbaa !5
  %25294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25281, ptr noundef @.str.2, i32 noundef %25282, ptr noundef @.str.194, ptr noundef @.str.1, i32 noundef 962, ptr noundef %25285, ptr noundef %25288, ptr noundef %25291, i32 noundef %25293) #11
  br label %25312

25295:                                            ; preds = %25273, %25266
  %25296 = load i32, ptr %514, align 4, !tbaa !5
  %25297 = call ptr @__errno_location() #12
  store i32 %25296, ptr %25297, align 4, !tbaa !5
  %25298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25299 = load i32, ptr @test_count, align 4, !tbaa !5
  %25300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25301 = load i32, ptr %25300, align 4, !tbaa !5
  %25302 = call ptr @s2n_strerror(i32 noundef %25301, ptr noundef @.str.4)
  %25303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25304 = load i32, ptr %25303, align 4, !tbaa !5
  %25305 = call ptr @s2n_strerror_debug(i32 noundef %25304, ptr noundef @.str.4)
  %25306 = call ptr @__errno_location() #12
  %25307 = load i32, ptr %25306, align 4, !tbaa !5
  %25308 = call ptr @strerror(i32 noundef %25307) #11
  %25309 = call ptr @__errno_location() #12
  %25310 = load i32, ptr %25309, align 4, !tbaa !5
  %25311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25298, ptr noundef @.str.5, i32 noundef %25299, ptr noundef @.str.194, ptr noundef @.str.1, i32 noundef 962, ptr noundef %25302, ptr noundef %25305, ptr noundef %25308, i32 noundef %25310) #11
  br label %25312

25312:                                            ; preds = %25295, %25278
  call void @llvm.lifetime.end.p0(i64 4, ptr %514) #11
  br label %25313

25313:                                            ; preds = %25312
  br label %25314

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

25315:                                            ; No predecessors!
  br label %25316

25316:                                            ; preds = %25315
  br label %25317

25317:                                            ; preds = %25316, %25255
  br label %25318

25318:                                            ; preds = %25317
  br label %25319

25319:                                            ; preds = %25318
  br label %25320

25320:                                            ; preds = %25319
  %25321 = load i32, ptr @test_count, align 4, !tbaa !5
  %25322 = add nsw i32 %25321, 1
  store i32 %25322, ptr @test_count, align 4, !tbaa !5
  %25323 = load ptr, ptr %488, align 8, !tbaa !9
  %25324 = getelementptr inbounds %struct.s2n_connection, ptr %25323, i32 0, i32 31
  %25325 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %25324, i32 0, i32 1
  %25326 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %25325, i32 0, i32 1
  %25327 = load ptr, ptr %25326, align 8, !tbaa !62
  %25328 = icmp eq ptr %25327, null
  br i1 %25328, label %25382, label %25329

25329:                                            ; preds = %25320
  br label %25330

25330:                                            ; preds = %25329
  br label %25331

25331:                                            ; preds = %25330
  call void @llvm.lifetime.start.p0(i64 4, ptr %515) #11
  %25332 = call ptr @__errno_location() #12
  %25333 = load i32, ptr %25332, align 4, !tbaa !5
  store i32 %25333, ptr %515, align 4, !tbaa !5
  %25334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25335 = call i32 @s2n_print_stacktrace(ptr noundef %25334)
  %25336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25337 = trunc i8 %25336 to i1
  br i1 %25337, label %25338, label %25360

25338:                                            ; preds = %25331
  %25339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25340 = call i32 @fileno(ptr noundef %25339) #11
  %25341 = call i32 @isatty(i32 noundef %25340) #11
  %25342 = icmp ne i32 %25341, 0
  br i1 %25342, label %25343, label %25360

25343:                                            ; preds = %25338
  %25344 = load i32, ptr %515, align 4, !tbaa !5
  %25345 = call ptr @__errno_location() #12
  store i32 %25344, ptr %25345, align 4, !tbaa !5
  %25346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25347 = load i32, ptr @test_count, align 4, !tbaa !5
  %25348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25349 = load i32, ptr %25348, align 4, !tbaa !5
  %25350 = call ptr @s2n_strerror(i32 noundef %25349, ptr noundef @.str.4)
  %25351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25352 = load i32, ptr %25351, align 4, !tbaa !5
  %25353 = call ptr @s2n_strerror_debug(i32 noundef %25352, ptr noundef @.str.4)
  %25354 = call ptr @__errno_location() #12
  %25355 = load i32, ptr %25354, align 4, !tbaa !5
  %25356 = call ptr @strerror(i32 noundef %25355) #11
  %25357 = call ptr @__errno_location() #12
  %25358 = load i32, ptr %25357, align 4, !tbaa !5
  %25359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25346, ptr noundef @.str.2, i32 noundef %25347, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 963, ptr noundef %25350, ptr noundef %25353, ptr noundef %25356, i32 noundef %25358) #11
  br label %25377

25360:                                            ; preds = %25338, %25331
  %25361 = load i32, ptr %515, align 4, !tbaa !5
  %25362 = call ptr @__errno_location() #12
  store i32 %25361, ptr %25362, align 4, !tbaa !5
  %25363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25364 = load i32, ptr @test_count, align 4, !tbaa !5
  %25365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25366 = load i32, ptr %25365, align 4, !tbaa !5
  %25367 = call ptr @s2n_strerror(i32 noundef %25366, ptr noundef @.str.4)
  %25368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25369 = load i32, ptr %25368, align 4, !tbaa !5
  %25370 = call ptr @s2n_strerror_debug(i32 noundef %25369, ptr noundef @.str.4)
  %25371 = call ptr @__errno_location() #12
  %25372 = load i32, ptr %25371, align 4, !tbaa !5
  %25373 = call ptr @strerror(i32 noundef %25372) #11
  %25374 = call ptr @__errno_location() #12
  %25375 = load i32, ptr %25374, align 4, !tbaa !5
  %25376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25363, ptr noundef @.str.5, i32 noundef %25364, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 963, ptr noundef %25367, ptr noundef %25370, ptr noundef %25373, i32 noundef %25375) #11
  br label %25377

25377:                                            ; preds = %25360, %25343
  call void @llvm.lifetime.end.p0(i64 4, ptr %515) #11
  br label %25378

25378:                                            ; preds = %25377
  br label %25379

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

25380:                                            ; No predecessors!
  br label %25381

25381:                                            ; preds = %25380
  br label %25382

25382:                                            ; preds = %25381, %25320
  br label %25383

25383:                                            ; preds = %25382
  br label %25384

25384:                                            ; preds = %25383
  store i32 0, ptr %300, align 4
  br label %25385

25385:                                            ; preds = %25384, %24458
  call void @llvm.lifetime.end.p0(i64 8, ptr %500) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %499) #11
  %25386 = load i32, ptr %300, align 4
  switch i32 %25386, label %26252 [
    i32 0, label %25387
    i32 2365, label %25388
  ]

25387:                                            ; preds = %25385
  br label %25388

25388:                                            ; preds = %25387, %25385
  %25389 = load i64, ptr %498, align 8, !tbaa !49
  %25390 = add i64 %25389, 1
  store i64 %25390, ptr %498, align 8, !tbaa !49
  br label %24438, !llvm.loop !122

25391:                                            ; preds = %24445
  br label %25392

25392:                                            ; preds = %25391
  %25393 = load i32, ptr @test_count, align 4, !tbaa !5
  %25394 = add nsw i32 %25393, 1
  store i32 %25394, ptr @test_count, align 4, !tbaa !5
  %25395 = load ptr, ptr %488, align 8, !tbaa !9
  %25396 = call i32 @s2n_connection_free(ptr noundef %25395)
  %25397 = icmp eq i32 %25396, -1
  br i1 %25397, label %25398, label %25451

25398:                                            ; preds = %25392
  br label %25399

25399:                                            ; preds = %25398
  br label %25400

25400:                                            ; preds = %25399
  call void @llvm.lifetime.start.p0(i64 4, ptr %516) #11
  %25401 = call ptr @__errno_location() #12
  %25402 = load i32, ptr %25401, align 4, !tbaa !5
  store i32 %25402, ptr %516, align 4, !tbaa !5
  %25403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25404 = call i32 @s2n_print_stacktrace(ptr noundef %25403)
  %25405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25406 = trunc i8 %25405 to i1
  br i1 %25406, label %25407, label %25429

25407:                                            ; preds = %25400
  %25408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25409 = call i32 @fileno(ptr noundef %25408) #11
  %25410 = call i32 @isatty(i32 noundef %25409) #11
  %25411 = icmp ne i32 %25410, 0
  br i1 %25411, label %25412, label %25429

25412:                                            ; preds = %25407
  %25413 = load i32, ptr %516, align 4, !tbaa !5
  %25414 = call ptr @__errno_location() #12
  store i32 %25413, ptr %25414, align 4, !tbaa !5
  %25415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25416 = load i32, ptr @test_count, align 4, !tbaa !5
  %25417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25418 = load i32, ptr %25417, align 4, !tbaa !5
  %25419 = call ptr @s2n_strerror(i32 noundef %25418, ptr noundef @.str.4)
  %25420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25421 = load i32, ptr %25420, align 4, !tbaa !5
  %25422 = call ptr @s2n_strerror_debug(i32 noundef %25421, ptr noundef @.str.4)
  %25423 = call ptr @__errno_location() #12
  %25424 = load i32, ptr %25423, align 4, !tbaa !5
  %25425 = call ptr @strerror(i32 noundef %25424) #11
  %25426 = call ptr @__errno_location() #12
  %25427 = load i32, ptr %25426, align 4, !tbaa !5
  %25428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25415, ptr noundef @.str.2, i32 noundef %25416, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 966, ptr noundef %25419, ptr noundef %25422, ptr noundef %25425, i32 noundef %25427) #11
  br label %25446

25429:                                            ; preds = %25407, %25400
  %25430 = load i32, ptr %516, align 4, !tbaa !5
  %25431 = call ptr @__errno_location() #12
  store i32 %25430, ptr %25431, align 4, !tbaa !5
  %25432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25433 = load i32, ptr @test_count, align 4, !tbaa !5
  %25434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25435 = load i32, ptr %25434, align 4, !tbaa !5
  %25436 = call ptr @s2n_strerror(i32 noundef %25435, ptr noundef @.str.4)
  %25437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25438 = load i32, ptr %25437, align 4, !tbaa !5
  %25439 = call ptr @s2n_strerror_debug(i32 noundef %25438, ptr noundef @.str.4)
  %25440 = call ptr @__errno_location() #12
  %25441 = load i32, ptr %25440, align 4, !tbaa !5
  %25442 = call ptr @strerror(i32 noundef %25441) #11
  %25443 = call ptr @__errno_location() #12
  %25444 = load i32, ptr %25443, align 4, !tbaa !5
  %25445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25432, ptr noundef @.str.5, i32 noundef %25433, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 966, ptr noundef %25436, ptr noundef %25439, ptr noundef %25442, i32 noundef %25444) #11
  br label %25446

25446:                                            ; preds = %25429, %25412
  call void @llvm.lifetime.end.p0(i64 4, ptr %516) #11
  br label %25447

25447:                                            ; preds = %25446
  br label %25448

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

25449:                                            ; No predecessors!
  br label %25450

25450:                                            ; preds = %25449
  br label %25451

25451:                                            ; preds = %25450, %25392
  br label %25452

25452:                                            ; preds = %25451
  br label %25453

25453:                                            ; preds = %25452
  %25454 = call i32 @s2n_stuffer_free(ptr noundef %496)
  call void @llvm.lifetime.end.p0(i64 40, ptr %496) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %492) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %488) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %517) #11
  store ptr null, ptr %517, align 8, !tbaa !9
  br label %25455

25455:                                            ; preds = %25453
  %25456 = load i32, ptr @test_count, align 4, !tbaa !5
  %25457 = add nsw i32 %25456, 1
  store i32 %25457, ptr @test_count, align 4, !tbaa !5
  %25458 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %25458, ptr %517, align 8, !tbaa !9
  %25459 = icmp eq ptr %25458, null
  br i1 %25459, label %25460, label %25513

25460:                                            ; preds = %25455
  br label %25461

25461:                                            ; preds = %25460
  br label %25462

25462:                                            ; preds = %25461
  call void @llvm.lifetime.start.p0(i64 4, ptr %518) #11
  %25463 = call ptr @__errno_location() #12
  %25464 = load i32, ptr %25463, align 4, !tbaa !5
  store i32 %25464, ptr %518, align 4, !tbaa !5
  %25465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25466 = call i32 @s2n_print_stacktrace(ptr noundef %25465)
  %25467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25468 = trunc i8 %25467 to i1
  br i1 %25468, label %25469, label %25491

25469:                                            ; preds = %25462
  %25470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25471 = call i32 @fileno(ptr noundef %25470) #11
  %25472 = call i32 @isatty(i32 noundef %25471) #11
  %25473 = icmp ne i32 %25472, 0
  br i1 %25473, label %25474, label %25491

25474:                                            ; preds = %25469
  %25475 = load i32, ptr %518, align 4, !tbaa !5
  %25476 = call ptr @__errno_location() #12
  store i32 %25475, ptr %25476, align 4, !tbaa !5
  %25477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25478 = load i32, ptr @test_count, align 4, !tbaa !5
  %25479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25480 = load i32, ptr %25479, align 4, !tbaa !5
  %25481 = call ptr @s2n_strerror(i32 noundef %25480, ptr noundef @.str.4)
  %25482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25483 = load i32, ptr %25482, align 4, !tbaa !5
  %25484 = call ptr @s2n_strerror_debug(i32 noundef %25483, ptr noundef @.str.4)
  %25485 = call ptr @__errno_location() #12
  %25486 = load i32, ptr %25485, align 4, !tbaa !5
  %25487 = call ptr @strerror(i32 noundef %25486) #11
  %25488 = call ptr @__errno_location() #12
  %25489 = load i32, ptr %25488, align 4, !tbaa !5
  %25490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25477, ptr noundef @.str.2, i32 noundef %25478, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 972, ptr noundef %25481, ptr noundef %25484, ptr noundef %25487, i32 noundef %25489) #11
  br label %25508

25491:                                            ; preds = %25469, %25462
  %25492 = load i32, ptr %518, align 4, !tbaa !5
  %25493 = call ptr @__errno_location() #12
  store i32 %25492, ptr %25493, align 4, !tbaa !5
  %25494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25495 = load i32, ptr @test_count, align 4, !tbaa !5
  %25496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25497 = load i32, ptr %25496, align 4, !tbaa !5
  %25498 = call ptr @s2n_strerror(i32 noundef %25497, ptr noundef @.str.4)
  %25499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25500 = load i32, ptr %25499, align 4, !tbaa !5
  %25501 = call ptr @s2n_strerror_debug(i32 noundef %25500, ptr noundef @.str.4)
  %25502 = call ptr @__errno_location() #12
  %25503 = load i32, ptr %25502, align 4, !tbaa !5
  %25504 = call ptr @strerror(i32 noundef %25503) #11
  %25505 = call ptr @__errno_location() #12
  %25506 = load i32, ptr %25505, align 4, !tbaa !5
  %25507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25494, ptr noundef @.str.5, i32 noundef %25495, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 972, ptr noundef %25498, ptr noundef %25501, ptr noundef %25504, i32 noundef %25506) #11
  br label %25508

25508:                                            ; preds = %25491, %25474
  call void @llvm.lifetime.end.p0(i64 4, ptr %518) #11
  br label %25509

25509:                                            ; preds = %25508
  br label %25510

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

25511:                                            ; No predecessors!
  br label %25512

25512:                                            ; preds = %25511
  br label %25513

25513:                                            ; preds = %25512, %25455
  br label %25514

25514:                                            ; preds = %25513
  br label %25515

25515:                                            ; preds = %25514
  %25516 = load ptr, ptr %517, align 8, !tbaa !9
  %25517 = getelementptr inbounds %struct.s2n_connection, ptr %25516, i32 0, i32 2
  store ptr %281, ptr %25517, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %519) #11
  store ptr null, ptr %519, align 8, !tbaa !9
  br label %25518

25518:                                            ; preds = %25515
  %25519 = load i32, ptr @test_count, align 4, !tbaa !5
  %25520 = add nsw i32 %25519, 1
  store i32 %25520, ptr @test_count, align 4, !tbaa !5
  %25521 = load ptr, ptr %517, align 8, !tbaa !9
  %25522 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %25521, ptr noundef %519)
  %25523 = icmp eq i32 %25522, -1
  br i1 %25523, label %25524, label %25577

25524:                                            ; preds = %25518
  br label %25525

25525:                                            ; preds = %25524
  br label %25526

25526:                                            ; preds = %25525
  call void @llvm.lifetime.start.p0(i64 4, ptr %520) #11
  %25527 = call ptr @__errno_location() #12
  %25528 = load i32, ptr %25527, align 4, !tbaa !5
  store i32 %25528, ptr %520, align 4, !tbaa !5
  %25529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25530 = call i32 @s2n_print_stacktrace(ptr noundef %25529)
  %25531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25532 = trunc i8 %25531 to i1
  br i1 %25532, label %25533, label %25555

25533:                                            ; preds = %25526
  %25534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25535 = call i32 @fileno(ptr noundef %25534) #11
  %25536 = call i32 @isatty(i32 noundef %25535) #11
  %25537 = icmp ne i32 %25536, 0
  br i1 %25537, label %25538, label %25555

25538:                                            ; preds = %25533
  %25539 = load i32, ptr %520, align 4, !tbaa !5
  %25540 = call ptr @__errno_location() #12
  store i32 %25539, ptr %25540, align 4, !tbaa !5
  %25541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25542 = load i32, ptr @test_count, align 4, !tbaa !5
  %25543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25544 = load i32, ptr %25543, align 4, !tbaa !5
  %25545 = call ptr @s2n_strerror(i32 noundef %25544, ptr noundef @.str.4)
  %25546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25547 = load i32, ptr %25546, align 4, !tbaa !5
  %25548 = call ptr @s2n_strerror_debug(i32 noundef %25547, ptr noundef @.str.4)
  %25549 = call ptr @__errno_location() #12
  %25550 = load i32, ptr %25549, align 4, !tbaa !5
  %25551 = call ptr @strerror(i32 noundef %25550) #11
  %25552 = call ptr @__errno_location() #12
  %25553 = load i32, ptr %25552, align 4, !tbaa !5
  %25554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25541, ptr noundef @.str.2, i32 noundef %25542, ptr noundef @.str.181, ptr noundef @.str.1, i32 noundef 976, ptr noundef %25545, ptr noundef %25548, ptr noundef %25551, i32 noundef %25553) #11
  br label %25572

25555:                                            ; preds = %25533, %25526
  %25556 = load i32, ptr %520, align 4, !tbaa !5
  %25557 = call ptr @__errno_location() #12
  store i32 %25556, ptr %25557, align 4, !tbaa !5
  %25558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25559 = load i32, ptr @test_count, align 4, !tbaa !5
  %25560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25561 = load i32, ptr %25560, align 4, !tbaa !5
  %25562 = call ptr @s2n_strerror(i32 noundef %25561, ptr noundef @.str.4)
  %25563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25564 = load i32, ptr %25563, align 4, !tbaa !5
  %25565 = call ptr @s2n_strerror_debug(i32 noundef %25564, ptr noundef @.str.4)
  %25566 = call ptr @__errno_location() #12
  %25567 = load i32, ptr %25566, align 4, !tbaa !5
  %25568 = call ptr @strerror(i32 noundef %25567) #11
  %25569 = call ptr @__errno_location() #12
  %25570 = load i32, ptr %25569, align 4, !tbaa !5
  %25571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25558, ptr noundef @.str.5, i32 noundef %25559, ptr noundef @.str.181, ptr noundef @.str.1, i32 noundef 976, ptr noundef %25562, ptr noundef %25565, ptr noundef %25568, i32 noundef %25570) #11
  br label %25572

25572:                                            ; preds = %25555, %25538
  call void @llvm.lifetime.end.p0(i64 4, ptr %520) #11
  br label %25573

25573:                                            ; preds = %25572
  br label %25574

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

25575:                                            ; No predecessors!
  br label %25576

25576:                                            ; preds = %25575
  br label %25577

25577:                                            ; preds = %25576, %25518
  br label %25578

25578:                                            ; preds = %25577
  br label %25579

25579:                                            ; preds = %25578
  br label %25580

25580:                                            ; preds = %25579
  %25581 = load i32, ptr @test_count, align 4, !tbaa !5
  %25582 = add nsw i32 %25581, 1
  store i32 %25582, ptr @test_count, align 4, !tbaa !5
  %25583 = load ptr, ptr %519, align 8, !tbaa !9
  %25584 = icmp eq ptr %25583, null
  br i1 %25584, label %25585, label %25638

25585:                                            ; preds = %25580
  br label %25586

25586:                                            ; preds = %25585
  br label %25587

25587:                                            ; preds = %25586
  call void @llvm.lifetime.start.p0(i64 4, ptr %521) #11
  %25588 = call ptr @__errno_location() #12
  %25589 = load i32, ptr %25588, align 4, !tbaa !5
  store i32 %25589, ptr %521, align 4, !tbaa !5
  %25590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25591 = call i32 @s2n_print_stacktrace(ptr noundef %25590)
  %25592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25593 = trunc i8 %25592 to i1
  br i1 %25593, label %25594, label %25616

25594:                                            ; preds = %25587
  %25595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25596 = call i32 @fileno(ptr noundef %25595) #11
  %25597 = call i32 @isatty(i32 noundef %25596) #11
  %25598 = icmp ne i32 %25597, 0
  br i1 %25598, label %25599, label %25616

25599:                                            ; preds = %25594
  %25600 = load i32, ptr %521, align 4, !tbaa !5
  %25601 = call ptr @__errno_location() #12
  store i32 %25600, ptr %25601, align 4, !tbaa !5
  %25602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25603 = load i32, ptr @test_count, align 4, !tbaa !5
  %25604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25605 = load i32, ptr %25604, align 4, !tbaa !5
  %25606 = call ptr @s2n_strerror(i32 noundef %25605, ptr noundef @.str.4)
  %25607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25608 = load i32, ptr %25607, align 4, !tbaa !5
  %25609 = call ptr @s2n_strerror_debug(i32 noundef %25608, ptr noundef @.str.4)
  %25610 = call ptr @__errno_location() #12
  %25611 = load i32, ptr %25610, align 4, !tbaa !5
  %25612 = call ptr @strerror(i32 noundef %25611) #11
  %25613 = call ptr @__errno_location() #12
  %25614 = load i32, ptr %25613, align 4, !tbaa !5
  %25615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25602, ptr noundef @.str.2, i32 noundef %25603, ptr noundef @.str.182, ptr noundef @.str.1, i32 noundef 977, ptr noundef %25606, ptr noundef %25609, ptr noundef %25612, i32 noundef %25614) #11
  br label %25633

25616:                                            ; preds = %25594, %25587
  %25617 = load i32, ptr %521, align 4, !tbaa !5
  %25618 = call ptr @__errno_location() #12
  store i32 %25617, ptr %25618, align 4, !tbaa !5
  %25619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25620 = load i32, ptr @test_count, align 4, !tbaa !5
  %25621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25622 = load i32, ptr %25621, align 4, !tbaa !5
  %25623 = call ptr @s2n_strerror(i32 noundef %25622, ptr noundef @.str.4)
  %25624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25625 = load i32, ptr %25624, align 4, !tbaa !5
  %25626 = call ptr @s2n_strerror_debug(i32 noundef %25625, ptr noundef @.str.4)
  %25627 = call ptr @__errno_location() #12
  %25628 = load i32, ptr %25627, align 4, !tbaa !5
  %25629 = call ptr @strerror(i32 noundef %25628) #11
  %25630 = call ptr @__errno_location() #12
  %25631 = load i32, ptr %25630, align 4, !tbaa !5
  %25632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25619, ptr noundef @.str.5, i32 noundef %25620, ptr noundef @.str.182, ptr noundef @.str.1, i32 noundef 977, ptr noundef %25623, ptr noundef %25626, ptr noundef %25629, i32 noundef %25631) #11
  br label %25633

25633:                                            ; preds = %25616, %25599
  call void @llvm.lifetime.end.p0(i64 4, ptr %521) #11
  br label %25634

25634:                                            ; preds = %25633
  br label %25635

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

25636:                                            ; No predecessors!
  br label %25637

25637:                                            ; preds = %25636
  br label %25638

25638:                                            ; preds = %25637, %25580
  br label %25639

25639:                                            ; preds = %25638
  br label %25640

25640:                                            ; preds = %25639
  call void @llvm.lifetime.start.p0(i64 8, ptr %522) #11
  store ptr null, ptr %522, align 8, !tbaa !9
  br label %25641

25641:                                            ; preds = %25640
  %25642 = load i32, ptr @test_count, align 4, !tbaa !5
  %25643 = add nsw i32 %25642, 1
  store i32 %25643, ptr @test_count, align 4, !tbaa !5
  %25644 = load ptr, ptr %517, align 8, !tbaa !9
  %25645 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %25644, ptr noundef %522)
  %25646 = icmp eq i32 %25645, -1
  br i1 %25646, label %25647, label %25700

25647:                                            ; preds = %25641
  br label %25648

25648:                                            ; preds = %25647
  br label %25649

25649:                                            ; preds = %25648
  call void @llvm.lifetime.start.p0(i64 4, ptr %523) #11
  %25650 = call ptr @__errno_location() #12
  %25651 = load i32, ptr %25650, align 4, !tbaa !5
  store i32 %25651, ptr %523, align 4, !tbaa !5
  %25652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25653 = call i32 @s2n_print_stacktrace(ptr noundef %25652)
  %25654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25655 = trunc i8 %25654 to i1
  br i1 %25655, label %25656, label %25678

25656:                                            ; preds = %25649
  %25657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25658 = call i32 @fileno(ptr noundef %25657) #11
  %25659 = call i32 @isatty(i32 noundef %25658) #11
  %25660 = icmp ne i32 %25659, 0
  br i1 %25660, label %25661, label %25678

25661:                                            ; preds = %25656
  %25662 = load i32, ptr %523, align 4, !tbaa !5
  %25663 = call ptr @__errno_location() #12
  store i32 %25662, ptr %25663, align 4, !tbaa !5
  %25664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25665 = load i32, ptr @test_count, align 4, !tbaa !5
  %25666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25667 = load i32, ptr %25666, align 4, !tbaa !5
  %25668 = call ptr @s2n_strerror(i32 noundef %25667, ptr noundef @.str.4)
  %25669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25670 = load i32, ptr %25669, align 4, !tbaa !5
  %25671 = call ptr @s2n_strerror_debug(i32 noundef %25670, ptr noundef @.str.4)
  %25672 = call ptr @__errno_location() #12
  %25673 = load i32, ptr %25672, align 4, !tbaa !5
  %25674 = call ptr @strerror(i32 noundef %25673) #11
  %25675 = call ptr @__errno_location() #12
  %25676 = load i32, ptr %25675, align 4, !tbaa !5
  %25677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25664, ptr noundef @.str.2, i32 noundef %25665, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 980, ptr noundef %25668, ptr noundef %25671, ptr noundef %25674, i32 noundef %25676) #11
  br label %25695

25678:                                            ; preds = %25656, %25649
  %25679 = load i32, ptr %523, align 4, !tbaa !5
  %25680 = call ptr @__errno_location() #12
  store i32 %25679, ptr %25680, align 4, !tbaa !5
  %25681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25682 = load i32, ptr @test_count, align 4, !tbaa !5
  %25683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25684 = load i32, ptr %25683, align 4, !tbaa !5
  %25685 = call ptr @s2n_strerror(i32 noundef %25684, ptr noundef @.str.4)
  %25686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25687 = load i32, ptr %25686, align 4, !tbaa !5
  %25688 = call ptr @s2n_strerror_debug(i32 noundef %25687, ptr noundef @.str.4)
  %25689 = call ptr @__errno_location() #12
  %25690 = load i32, ptr %25689, align 4, !tbaa !5
  %25691 = call ptr @strerror(i32 noundef %25690) #11
  %25692 = call ptr @__errno_location() #12
  %25693 = load i32, ptr %25692, align 4, !tbaa !5
  %25694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25681, ptr noundef @.str.5, i32 noundef %25682, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 980, ptr noundef %25685, ptr noundef %25688, ptr noundef %25691, i32 noundef %25693) #11
  br label %25695

25695:                                            ; preds = %25678, %25661
  call void @llvm.lifetime.end.p0(i64 4, ptr %523) #11
  br label %25696

25696:                                            ; preds = %25695
  br label %25697

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

25698:                                            ; No predecessors!
  br label %25699

25699:                                            ; preds = %25698
  br label %25700

25700:                                            ; preds = %25699, %25641
  br label %25701

25701:                                            ; preds = %25700
  br label %25702

25702:                                            ; preds = %25701
  br label %25703

25703:                                            ; preds = %25702
  %25704 = load i32, ptr @test_count, align 4, !tbaa !5
  %25705 = add nsw i32 %25704, 1
  store i32 %25705, ptr @test_count, align 4, !tbaa !5
  %25706 = load ptr, ptr %522, align 8, !tbaa !9
  %25707 = icmp eq ptr %25706, null
  br i1 %25707, label %25708, label %25761

25708:                                            ; preds = %25703
  br label %25709

25709:                                            ; preds = %25708
  br label %25710

25710:                                            ; preds = %25709
  call void @llvm.lifetime.start.p0(i64 4, ptr %524) #11
  %25711 = call ptr @__errno_location() #12
  %25712 = load i32, ptr %25711, align 4, !tbaa !5
  store i32 %25712, ptr %524, align 4, !tbaa !5
  %25713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25714 = call i32 @s2n_print_stacktrace(ptr noundef %25713)
  %25715 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25716 = trunc i8 %25715 to i1
  br i1 %25716, label %25717, label %25739

25717:                                            ; preds = %25710
  %25718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25719 = call i32 @fileno(ptr noundef %25718) #11
  %25720 = call i32 @isatty(i32 noundef %25719) #11
  %25721 = icmp ne i32 %25720, 0
  br i1 %25721, label %25722, label %25739

25722:                                            ; preds = %25717
  %25723 = load i32, ptr %524, align 4, !tbaa !5
  %25724 = call ptr @__errno_location() #12
  store i32 %25723, ptr %25724, align 4, !tbaa !5
  %25725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25726 = load i32, ptr @test_count, align 4, !tbaa !5
  %25727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25728 = load i32, ptr %25727, align 4, !tbaa !5
  %25729 = call ptr @s2n_strerror(i32 noundef %25728, ptr noundef @.str.4)
  %25730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25731 = load i32, ptr %25730, align 4, !tbaa !5
  %25732 = call ptr @s2n_strerror_debug(i32 noundef %25731, ptr noundef @.str.4)
  %25733 = call ptr @__errno_location() #12
  %25734 = load i32, ptr %25733, align 4, !tbaa !5
  %25735 = call ptr @strerror(i32 noundef %25734) #11
  %25736 = call ptr @__errno_location() #12
  %25737 = load i32, ptr %25736, align 4, !tbaa !5
  %25738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25725, ptr noundef @.str.2, i32 noundef %25726, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 981, ptr noundef %25729, ptr noundef %25732, ptr noundef %25735, i32 noundef %25737) #11
  br label %25756

25739:                                            ; preds = %25717, %25710
  %25740 = load i32, ptr %524, align 4, !tbaa !5
  %25741 = call ptr @__errno_location() #12
  store i32 %25740, ptr %25741, align 4, !tbaa !5
  %25742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25743 = load i32, ptr @test_count, align 4, !tbaa !5
  %25744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25745 = load i32, ptr %25744, align 4, !tbaa !5
  %25746 = call ptr @s2n_strerror(i32 noundef %25745, ptr noundef @.str.4)
  %25747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25748 = load i32, ptr %25747, align 4, !tbaa !5
  %25749 = call ptr @s2n_strerror_debug(i32 noundef %25748, ptr noundef @.str.4)
  %25750 = call ptr @__errno_location() #12
  %25751 = load i32, ptr %25750, align 4, !tbaa !5
  %25752 = call ptr @strerror(i32 noundef %25751) #11
  %25753 = call ptr @__errno_location() #12
  %25754 = load i32, ptr %25753, align 4, !tbaa !5
  %25755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25742, ptr noundef @.str.5, i32 noundef %25743, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 981, ptr noundef %25746, ptr noundef %25749, ptr noundef %25752, i32 noundef %25754) #11
  br label %25756

25756:                                            ; preds = %25739, %25722
  call void @llvm.lifetime.end.p0(i64 4, ptr %524) #11
  br label %25757

25757:                                            ; preds = %25756
  br label %25758

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

25759:                                            ; No predecessors!
  br label %25760

25760:                                            ; preds = %25759
  br label %25761

25761:                                            ; preds = %25760, %25703
  br label %25762

25762:                                            ; preds = %25761
  br label %25763

25763:                                            ; preds = %25762
  %25764 = load ptr, ptr %522, align 8, !tbaa !9
  %25765 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %25764, i32 0, i32 1
  %25766 = load ptr, ptr %25765, align 8, !tbaa !43
  %25767 = getelementptr inbounds ptr, ptr %25766, i64 0
  %25768 = load ptr, ptr %25767, align 8, !tbaa !9
  %25769 = load ptr, ptr %517, align 8, !tbaa !9
  %25770 = getelementptr inbounds %struct.s2n_connection, ptr %25769, i32 0, i32 31
  %25771 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %25770, i32 0, i32 1
  %25772 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %25771, i32 0, i32 0
  store ptr %25768, ptr %25772, align 8, !tbaa !42
  %25773 = load ptr, ptr %519, align 8, !tbaa !9
  %25774 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %25773, i32 0, i32 3
  %25775 = load ptr, ptr %25774, align 8, !tbaa !75
  %25776 = getelementptr inbounds ptr, ptr %25775, i64 0
  %25777 = load ptr, ptr %25776, align 8, !tbaa !9
  %25778 = load ptr, ptr %517, align 8, !tbaa !9
  %25779 = getelementptr inbounds %struct.s2n_connection, ptr %25778, i32 0, i32 31
  %25780 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %25779, i32 0, i32 4
  %25781 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %25780, i32 0, i32 0
  store ptr %25777, ptr %25781, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 40, ptr %525) #11
  call void @llvm.memset.p0.i64(ptr align 8 %525, i8 0, i64 40, i1 false)
  br label %25782

25782:                                            ; preds = %25763
  %25783 = load i32, ptr @test_count, align 4, !tbaa !5
  %25784 = add nsw i32 %25783, 1
  store i32 %25784, ptr @test_count, align 4, !tbaa !5
  %25785 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %525, i32 noundef 0)
  %25786 = icmp eq i32 %25785, -1
  br i1 %25786, label %25787, label %25840

25787:                                            ; preds = %25782
  br label %25788

25788:                                            ; preds = %25787
  br label %25789

25789:                                            ; preds = %25788
  call void @llvm.lifetime.start.p0(i64 4, ptr %526) #11
  %25790 = call ptr @__errno_location() #12
  %25791 = load i32, ptr %25790, align 4, !tbaa !5
  store i32 %25791, ptr %526, align 4, !tbaa !5
  %25792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25793 = call i32 @s2n_print_stacktrace(ptr noundef %25792)
  %25794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25795 = trunc i8 %25794 to i1
  br i1 %25795, label %25796, label %25818

25796:                                            ; preds = %25789
  %25797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25798 = call i32 @fileno(ptr noundef %25797) #11
  %25799 = call i32 @isatty(i32 noundef %25798) #11
  %25800 = icmp ne i32 %25799, 0
  br i1 %25800, label %25801, label %25818

25801:                                            ; preds = %25796
  %25802 = load i32, ptr %526, align 4, !tbaa !5
  %25803 = call ptr @__errno_location() #12
  store i32 %25802, ptr %25803, align 4, !tbaa !5
  %25804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25805 = load i32, ptr @test_count, align 4, !tbaa !5
  %25806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25807 = load i32, ptr %25806, align 4, !tbaa !5
  %25808 = call ptr @s2n_strerror(i32 noundef %25807, ptr noundef @.str.4)
  %25809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25810 = load i32, ptr %25809, align 4, !tbaa !5
  %25811 = call ptr @s2n_strerror_debug(i32 noundef %25810, ptr noundef @.str.4)
  %25812 = call ptr @__errno_location() #12
  %25813 = load i32, ptr %25812, align 4, !tbaa !5
  %25814 = call ptr @strerror(i32 noundef %25813) #11
  %25815 = call ptr @__errno_location() #12
  %25816 = load i32, ptr %25815, align 4, !tbaa !5
  %25817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25804, ptr noundef @.str.2, i32 noundef %25805, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 987, ptr noundef %25808, ptr noundef %25811, ptr noundef %25814, i32 noundef %25816) #11
  br label %25835

25818:                                            ; preds = %25796, %25789
  %25819 = load i32, ptr %526, align 4, !tbaa !5
  %25820 = call ptr @__errno_location() #12
  store i32 %25819, ptr %25820, align 4, !tbaa !5
  %25821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25822 = load i32, ptr @test_count, align 4, !tbaa !5
  %25823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25824 = load i32, ptr %25823, align 4, !tbaa !5
  %25825 = call ptr @s2n_strerror(i32 noundef %25824, ptr noundef @.str.4)
  %25826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25827 = load i32, ptr %25826, align 4, !tbaa !5
  %25828 = call ptr @s2n_strerror_debug(i32 noundef %25827, ptr noundef @.str.4)
  %25829 = call ptr @__errno_location() #12
  %25830 = load i32, ptr %25829, align 4, !tbaa !5
  %25831 = call ptr @strerror(i32 noundef %25830) #11
  %25832 = call ptr @__errno_location() #12
  %25833 = load i32, ptr %25832, align 4, !tbaa !5
  %25834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25821, ptr noundef @.str.5, i32 noundef %25822, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 987, ptr noundef %25825, ptr noundef %25828, ptr noundef %25831, i32 noundef %25833) #11
  br label %25835

25835:                                            ; preds = %25818, %25801
  call void @llvm.lifetime.end.p0(i64 4, ptr %526) #11
  br label %25836

25836:                                            ; preds = %25835
  br label %25837

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

25838:                                            ; No predecessors!
  br label %25839

25839:                                            ; preds = %25838
  br label %25840

25840:                                            ; preds = %25839, %25782
  br label %25841

25841:                                            ; preds = %25840
  br label %25842

25842:                                            ; preds = %25841
  br label %25843

25843:                                            ; preds = %25842
  br label %25844

25844:                                            ; preds = %25843
  br label %25845

25845:                                            ; preds = %25844
  %25846 = load i32, ptr @test_count, align 4, !tbaa !5
  %25847 = add nsw i32 %25846, 1
  store i32 %25847, ptr @test_count, align 4, !tbaa !5
  %25848 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_key_share_extension, i32 0, i32 3), align 8, !tbaa !51
  %25849 = load ptr, ptr %517, align 8, !tbaa !9
  %25850 = call i32 %25848(ptr noundef %25849, ptr noundef %525)
  %25851 = icmp eq i32 %25850, -1
  br i1 %25851, label %25905, label %25852

25852:                                            ; preds = %25845
  br label %25853

25853:                                            ; preds = %25852
  br label %25854

25854:                                            ; preds = %25853
  call void @llvm.lifetime.start.p0(i64 4, ptr %527) #11
  %25855 = call ptr @__errno_location() #12
  %25856 = load i32, ptr %25855, align 4, !tbaa !5
  store i32 %25856, ptr %527, align 4, !tbaa !5
  %25857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25858 = call i32 @s2n_print_stacktrace(ptr noundef %25857)
  %25859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25860 = trunc i8 %25859 to i1
  br i1 %25860, label %25861, label %25883

25861:                                            ; preds = %25854
  %25862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25863 = call i32 @fileno(ptr noundef %25862) #11
  %25864 = call i32 @isatty(i32 noundef %25863) #11
  %25865 = icmp ne i32 %25864, 0
  br i1 %25865, label %25866, label %25883

25866:                                            ; preds = %25861
  %25867 = load i32, ptr %527, align 4, !tbaa !5
  %25868 = call ptr @__errno_location() #12
  store i32 %25867, ptr %25868, align 4, !tbaa !5
  %25869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25870 = load i32, ptr @test_count, align 4, !tbaa !5
  %25871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25872 = load i32, ptr %25871, align 4, !tbaa !5
  %25873 = call ptr @s2n_strerror(i32 noundef %25872, ptr noundef @.str.4)
  %25874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25875 = load i32, ptr %25874, align 4, !tbaa !5
  %25876 = call ptr @s2n_strerror_debug(i32 noundef %25875, ptr noundef @.str.4)
  %25877 = call ptr @__errno_location() #12
  %25878 = load i32, ptr %25877, align 4, !tbaa !5
  %25879 = call ptr @strerror(i32 noundef %25878) #11
  %25880 = call ptr @__errno_location() #12
  %25881 = load i32, ptr %25880, align 4, !tbaa !5
  %25882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25869, ptr noundef @.str.2, i32 noundef %25870, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 989, ptr noundef %25873, ptr noundef %25876, ptr noundef %25879, i32 noundef %25881) #11
  br label %25900

25883:                                            ; preds = %25861, %25854
  %25884 = load i32, ptr %527, align 4, !tbaa !5
  %25885 = call ptr @__errno_location() #12
  store i32 %25884, ptr %25885, align 4, !tbaa !5
  %25886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25887 = load i32, ptr @test_count, align 4, !tbaa !5
  %25888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25889 = load i32, ptr %25888, align 4, !tbaa !5
  %25890 = call ptr @s2n_strerror(i32 noundef %25889, ptr noundef @.str.4)
  %25891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25892 = load i32, ptr %25891, align 4, !tbaa !5
  %25893 = call ptr @s2n_strerror_debug(i32 noundef %25892, ptr noundef @.str.4)
  %25894 = call ptr @__errno_location() #12
  %25895 = load i32, ptr %25894, align 4, !tbaa !5
  %25896 = call ptr @strerror(i32 noundef %25895) #11
  %25897 = call ptr @__errno_location() #12
  %25898 = load i32, ptr %25897, align 4, !tbaa !5
  %25899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25886, ptr noundef @.str.5, i32 noundef %25887, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 989, ptr noundef %25890, ptr noundef %25893, ptr noundef %25896, i32 noundef %25898) #11
  br label %25900

25900:                                            ; preds = %25883, %25866
  call void @llvm.lifetime.end.p0(i64 4, ptr %527) #11
  br label %25901

25901:                                            ; preds = %25900
  br label %25902

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

25903:                                            ; No predecessors!
  br label %25904

25904:                                            ; preds = %25903
  br label %25905

25905:                                            ; preds = %25904, %25845
  br label %25906

25906:                                            ; preds = %25905
  br label %25907

25907:                                            ; preds = %25906
  br label %25908

25908:                                            ; preds = %25907
  %25909 = load i32, ptr @test_count, align 4, !tbaa !5
  %25910 = add nsw i32 %25909, 1
  store i32 %25910, ptr @test_count, align 4, !tbaa !5
  %25911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25912 = load i32, ptr %25911, align 4, !tbaa !5
  %25913 = icmp eq i32 %25912, 335544356
  br i1 %25913, label %25967, label %25914

25914:                                            ; preds = %25908
  br label %25915

25915:                                            ; preds = %25914
  br label %25916

25916:                                            ; preds = %25915
  call void @llvm.lifetime.start.p0(i64 4, ptr %528) #11
  %25917 = call ptr @__errno_location() #12
  %25918 = load i32, ptr %25917, align 4, !tbaa !5
  store i32 %25918, ptr %528, align 4, !tbaa !5
  %25919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25920 = call i32 @s2n_print_stacktrace(ptr noundef %25919)
  %25921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25922 = trunc i8 %25921 to i1
  br i1 %25922, label %25923, label %25945

25923:                                            ; preds = %25916
  %25924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25925 = call i32 @fileno(ptr noundef %25924) #11
  %25926 = call i32 @isatty(i32 noundef %25925) #11
  %25927 = icmp ne i32 %25926, 0
  br i1 %25927, label %25928, label %25945

25928:                                            ; preds = %25923
  %25929 = load i32, ptr %528, align 4, !tbaa !5
  %25930 = call ptr @__errno_location() #12
  store i32 %25929, ptr %25930, align 4, !tbaa !5
  %25931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25932 = load i32, ptr @test_count, align 4, !tbaa !5
  %25933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25934 = load i32, ptr %25933, align 4, !tbaa !5
  %25935 = call ptr @s2n_strerror(i32 noundef %25934, ptr noundef @.str.4)
  %25936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25937 = load i32, ptr %25936, align 4, !tbaa !5
  %25938 = call ptr @s2n_strerror_debug(i32 noundef %25937, ptr noundef @.str.4)
  %25939 = call ptr @__errno_location() #12
  %25940 = load i32, ptr %25939, align 4, !tbaa !5
  %25941 = call ptr @strerror(i32 noundef %25940) #11
  %25942 = call ptr @__errno_location() #12
  %25943 = load i32, ptr %25942, align 4, !tbaa !5
  %25944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25931, ptr noundef @.str.2, i32 noundef %25932, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 989, ptr noundef %25935, ptr noundef %25938, ptr noundef %25941, i32 noundef %25943) #11
  br label %25962

25945:                                            ; preds = %25923, %25916
  %25946 = load i32, ptr %528, align 4, !tbaa !5
  %25947 = call ptr @__errno_location() #12
  store i32 %25946, ptr %25947, align 4, !tbaa !5
  %25948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25949 = load i32, ptr @test_count, align 4, !tbaa !5
  %25950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25951 = load i32, ptr %25950, align 4, !tbaa !5
  %25952 = call ptr @s2n_strerror(i32 noundef %25951, ptr noundef @.str.4)
  %25953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25954 = load i32, ptr %25953, align 4, !tbaa !5
  %25955 = call ptr @s2n_strerror_debug(i32 noundef %25954, ptr noundef @.str.4)
  %25956 = call ptr @__errno_location() #12
  %25957 = load i32, ptr %25956, align 4, !tbaa !5
  %25958 = call ptr @strerror(i32 noundef %25957) #11
  %25959 = call ptr @__errno_location() #12
  %25960 = load i32, ptr %25959, align 4, !tbaa !5
  %25961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25948, ptr noundef @.str.5, i32 noundef %25949, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 989, ptr noundef %25952, ptr noundef %25955, ptr noundef %25958, i32 noundef %25960) #11
  br label %25962

25962:                                            ; preds = %25945, %25928
  call void @llvm.lifetime.end.p0(i64 4, ptr %528) #11
  br label %25963

25963:                                            ; preds = %25962
  br label %25964

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

25965:                                            ; No predecessors!
  br label %25966

25966:                                            ; preds = %25965
  br label %25967

25967:                                            ; preds = %25966, %25908
  br label %25968

25968:                                            ; preds = %25967
  br label %25969

25969:                                            ; preds = %25968
  br label %25970

25970:                                            ; preds = %25969
  %25971 = load i32, ptr @test_count, align 4, !tbaa !5
  %25972 = add nsw i32 %25971, 1
  store i32 %25972, ptr @test_count, align 4, !tbaa !5
  %25973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25974 = load i32, ptr %25973, align 4, !tbaa !5
  %25975 = call ptr @s2n_strerror_debug(i32 noundef %25974, ptr noundef @.str.4)
  %25976 = icmp eq ptr %25975, null
  br i1 %25976, label %25977, label %26030

25977:                                            ; preds = %25970
  br label %25978

25978:                                            ; preds = %25977
  br label %25979

25979:                                            ; preds = %25978
  call void @llvm.lifetime.start.p0(i64 4, ptr %529) #11
  %25980 = call ptr @__errno_location() #12
  %25981 = load i32, ptr %25980, align 4, !tbaa !5
  store i32 %25981, ptr %529, align 4, !tbaa !5
  %25982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25983 = call i32 @s2n_print_stacktrace(ptr noundef %25982)
  %25984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25985 = trunc i8 %25984 to i1
  br i1 %25985, label %25986, label %26008

25986:                                            ; preds = %25979
  %25987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25988 = call i32 @fileno(ptr noundef %25987) #11
  %25989 = call i32 @isatty(i32 noundef %25988) #11
  %25990 = icmp ne i32 %25989, 0
  br i1 %25990, label %25991, label %26008

25991:                                            ; preds = %25986
  %25992 = load i32, ptr %529, align 4, !tbaa !5
  %25993 = call ptr @__errno_location() #12
  store i32 %25992, ptr %25993, align 4, !tbaa !5
  %25994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25995 = load i32, ptr @test_count, align 4, !tbaa !5
  %25996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25997 = load i32, ptr %25996, align 4, !tbaa !5
  %25998 = call ptr @s2n_strerror(i32 noundef %25997, ptr noundef @.str.4)
  %25999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26000 = load i32, ptr %25999, align 4, !tbaa !5
  %26001 = call ptr @s2n_strerror_debug(i32 noundef %26000, ptr noundef @.str.4)
  %26002 = call ptr @__errno_location() #12
  %26003 = load i32, ptr %26002, align 4, !tbaa !5
  %26004 = call ptr @strerror(i32 noundef %26003) #11
  %26005 = call ptr @__errno_location() #12
  %26006 = load i32, ptr %26005, align 4, !tbaa !5
  %26007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25994, ptr noundef @.str.2, i32 noundef %25995, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 989, ptr noundef %25998, ptr noundef %26001, ptr noundef %26004, i32 noundef %26006) #11
  br label %26025

26008:                                            ; preds = %25986, %25979
  %26009 = load i32, ptr %529, align 4, !tbaa !5
  %26010 = call ptr @__errno_location() #12
  store i32 %26009, ptr %26010, align 4, !tbaa !5
  %26011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26012 = load i32, ptr @test_count, align 4, !tbaa !5
  %26013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26014 = load i32, ptr %26013, align 4, !tbaa !5
  %26015 = call ptr @s2n_strerror(i32 noundef %26014, ptr noundef @.str.4)
  %26016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26017 = load i32, ptr %26016, align 4, !tbaa !5
  %26018 = call ptr @s2n_strerror_debug(i32 noundef %26017, ptr noundef @.str.4)
  %26019 = call ptr @__errno_location() #12
  %26020 = load i32, ptr %26019, align 4, !tbaa !5
  %26021 = call ptr @strerror(i32 noundef %26020) #11
  %26022 = call ptr @__errno_location() #12
  %26023 = load i32, ptr %26022, align 4, !tbaa !5
  %26024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26011, ptr noundef @.str.5, i32 noundef %26012, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 989, ptr noundef %26015, ptr noundef %26018, ptr noundef %26021, i32 noundef %26023) #11
  br label %26025

26025:                                            ; preds = %26008, %25991
  call void @llvm.lifetime.end.p0(i64 4, ptr %529) #11
  br label %26026

26026:                                            ; preds = %26025
  br label %26027

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

26028:                                            ; No predecessors!
  br label %26029

26029:                                            ; preds = %26028
  br label %26030

26030:                                            ; preds = %26029, %25970
  br label %26031

26031:                                            ; preds = %26030
  br label %26032

26032:                                            ; preds = %26031
  br label %26033

26033:                                            ; preds = %26032
  br label %26034

26034:                                            ; preds = %26033
  br label %26035

26035:                                            ; preds = %26034
  %26036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %26036, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %26037 = call ptr @__errno_location() #12
  store i32 0, ptr %26037, align 4, !tbaa !5
  br label %26038

26038:                                            ; preds = %26035
  br label %26039

26039:                                            ; preds = %26038
  br label %26040

26040:                                            ; preds = %26039
  br label %26041

26041:                                            ; preds = %26040
  br label %26042

26042:                                            ; preds = %26041
  %26043 = load i32, ptr @test_count, align 4, !tbaa !5
  %26044 = add nsw i32 %26043, 1
  store i32 %26044, ptr @test_count, align 4, !tbaa !5
  %26045 = load ptr, ptr %517, align 8, !tbaa !9
  %26046 = call i32 @s2n_connection_free(ptr noundef %26045)
  %26047 = icmp eq i32 %26046, -1
  br i1 %26047, label %26048, label %26101

26048:                                            ; preds = %26042
  br label %26049

26049:                                            ; preds = %26048
  br label %26050

26050:                                            ; preds = %26049
  call void @llvm.lifetime.start.p0(i64 4, ptr %530) #11
  %26051 = call ptr @__errno_location() #12
  %26052 = load i32, ptr %26051, align 4, !tbaa !5
  store i32 %26052, ptr %530, align 4, !tbaa !5
  %26053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26054 = call i32 @s2n_print_stacktrace(ptr noundef %26053)
  %26055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26056 = trunc i8 %26055 to i1
  br i1 %26056, label %26057, label %26079

26057:                                            ; preds = %26050
  %26058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26059 = call i32 @fileno(ptr noundef %26058) #11
  %26060 = call i32 @isatty(i32 noundef %26059) #11
  %26061 = icmp ne i32 %26060, 0
  br i1 %26061, label %26062, label %26079

26062:                                            ; preds = %26057
  %26063 = load i32, ptr %530, align 4, !tbaa !5
  %26064 = call ptr @__errno_location() #12
  store i32 %26063, ptr %26064, align 4, !tbaa !5
  %26065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26066 = load i32, ptr @test_count, align 4, !tbaa !5
  %26067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26068 = load i32, ptr %26067, align 4, !tbaa !5
  %26069 = call ptr @s2n_strerror(i32 noundef %26068, ptr noundef @.str.4)
  %26070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26071 = load i32, ptr %26070, align 4, !tbaa !5
  %26072 = call ptr @s2n_strerror_debug(i32 noundef %26071, ptr noundef @.str.4)
  %26073 = call ptr @__errno_location() #12
  %26074 = load i32, ptr %26073, align 4, !tbaa !5
  %26075 = call ptr @strerror(i32 noundef %26074) #11
  %26076 = call ptr @__errno_location() #12
  %26077 = load i32, ptr %26076, align 4, !tbaa !5
  %26078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26065, ptr noundef @.str.2, i32 noundef %26066, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 991, ptr noundef %26069, ptr noundef %26072, ptr noundef %26075, i32 noundef %26077) #11
  br label %26096

26079:                                            ; preds = %26057, %26050
  %26080 = load i32, ptr %530, align 4, !tbaa !5
  %26081 = call ptr @__errno_location() #12
  store i32 %26080, ptr %26081, align 4, !tbaa !5
  %26082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26083 = load i32, ptr @test_count, align 4, !tbaa !5
  %26084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26085 = load i32, ptr %26084, align 4, !tbaa !5
  %26086 = call ptr @s2n_strerror(i32 noundef %26085, ptr noundef @.str.4)
  %26087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26088 = load i32, ptr %26087, align 4, !tbaa !5
  %26089 = call ptr @s2n_strerror_debug(i32 noundef %26088, ptr noundef @.str.4)
  %26090 = call ptr @__errno_location() #12
  %26091 = load i32, ptr %26090, align 4, !tbaa !5
  %26092 = call ptr @strerror(i32 noundef %26091) #11
  %26093 = call ptr @__errno_location() #12
  %26094 = load i32, ptr %26093, align 4, !tbaa !5
  %26095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26082, ptr noundef @.str.5, i32 noundef %26083, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 991, ptr noundef %26086, ptr noundef %26089, ptr noundef %26092, i32 noundef %26094) #11
  br label %26096

26096:                                            ; preds = %26079, %26062
  call void @llvm.lifetime.end.p0(i64 4, ptr %530) #11
  br label %26097

26097:                                            ; preds = %26096
  br label %26098

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

26099:                                            ; No predecessors!
  br label %26100

26100:                                            ; preds = %26099
  br label %26101

26101:                                            ; preds = %26100, %26042
  br label %26102

26102:                                            ; preds = %26101
  br label %26103

26103:                                            ; preds = %26102
  %26104 = call i32 @s2n_stuffer_free(ptr noundef %525)
  call void @llvm.lifetime.end.p0(i64 40, ptr %525) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %522) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %519) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %517) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %281) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %280) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %279) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %278) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %277) #11
  br label %26105

26105:                                            ; preds = %26103
  br label %26106

26106:                                            ; preds = %26105
  %26107 = call i32 @s2n_cleanup()
  %26108 = icmp eq i32 %26107, -1
  br i1 %26108, label %26109, label %26160

26109:                                            ; preds = %26106
  br label %26110

26110:                                            ; preds = %26109
  br label %26111

26111:                                            ; preds = %26110
  call void @llvm.lifetime.start.p0(i64 4, ptr %531) #11
  %26112 = call ptr @__errno_location() #12
  %26113 = load i32, ptr %26112, align 4, !tbaa !5
  store i32 %26113, ptr %531, align 4, !tbaa !5
  %26114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26115 = call i32 @s2n_print_stacktrace(ptr noundef %26114)
  %26116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26117 = trunc i8 %26116 to i1
  br i1 %26117, label %26118, label %26140

26118:                                            ; preds = %26111
  %26119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26120 = call i32 @fileno(ptr noundef %26119) #11
  %26121 = call i32 @isatty(i32 noundef %26120) #11
  %26122 = icmp ne i32 %26121, 0
  br i1 %26122, label %26123, label %26140

26123:                                            ; preds = %26118
  %26124 = load i32, ptr %531, align 4, !tbaa !5
  %26125 = call ptr @__errno_location() #12
  store i32 %26124, ptr %26125, align 4, !tbaa !5
  %26126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26127 = load i32, ptr @test_count, align 4, !tbaa !5
  %26128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26129 = load i32, ptr %26128, align 4, !tbaa !5
  %26130 = call ptr @s2n_strerror(i32 noundef %26129, ptr noundef @.str.4)
  %26131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26132 = load i32, ptr %26131, align 4, !tbaa !5
  %26133 = call ptr @s2n_strerror_debug(i32 noundef %26132, ptr noundef @.str.4)
  %26134 = call ptr @__errno_location() #12
  %26135 = load i32, ptr %26134, align 4, !tbaa !5
  %26136 = call ptr @strerror(i32 noundef %26135) #11
  %26137 = call ptr @__errno_location() #12
  %26138 = load i32, ptr %26137, align 4, !tbaa !5
  %26139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26126, ptr noundef @.str.2, i32 noundef %26127, ptr noundef @.str.203, ptr noundef @.str.1, i32 noundef 995, ptr noundef %26130, ptr noundef %26133, ptr noundef %26136, i32 noundef %26138) #11
  br label %26157

26140:                                            ; preds = %26118, %26111
  %26141 = load i32, ptr %531, align 4, !tbaa !5
  %26142 = call ptr @__errno_location() #12
  store i32 %26141, ptr %26142, align 4, !tbaa !5
  %26143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26144 = load i32, ptr @test_count, align 4, !tbaa !5
  %26145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26146 = load i32, ptr %26145, align 4, !tbaa !5
  %26147 = call ptr @s2n_strerror(i32 noundef %26146, ptr noundef @.str.4)
  %26148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26149 = load i32, ptr %26148, align 4, !tbaa !5
  %26150 = call ptr @s2n_strerror_debug(i32 noundef %26149, ptr noundef @.str.4)
  %26151 = call ptr @__errno_location() #12
  %26152 = load i32, ptr %26151, align 4, !tbaa !5
  %26153 = call ptr @strerror(i32 noundef %26152) #11
  %26154 = call ptr @__errno_location() #12
  %26155 = load i32, ptr %26154, align 4, !tbaa !5
  %26156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26143, ptr noundef @.str.5, i32 noundef %26144, ptr noundef @.str.203, ptr noundef @.str.1, i32 noundef 995, ptr noundef %26147, ptr noundef %26150, ptr noundef %26153, i32 noundef %26155) #11
  br label %26157

26157:                                            ; preds = %26140, %26123
  call void @llvm.lifetime.end.p0(i64 4, ptr %531) #11
  br label %26158

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

26159:                                            ; No predecessors!
  br label %26160

26160:                                            ; preds = %26159, %26106
  br label %26161

26161:                                            ; preds = %26160
  br label %26162

26162:                                            ; preds = %26161
  br label %26163

26163:                                            ; preds = %26162
  %26164 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %26165 = icmp eq i32 %26164, -1
  br i1 %26165, label %26166, label %26217

26166:                                            ; preds = %26163
  br label %26167

26167:                                            ; preds = %26166
  br label %26168

26168:                                            ; preds = %26167
  call void @llvm.lifetime.start.p0(i64 4, ptr %532) #11
  %26169 = call ptr @__errno_location() #12
  %26170 = load i32, ptr %26169, align 4, !tbaa !5
  store i32 %26170, ptr %532, align 4, !tbaa !5
  %26171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26172 = call i32 @s2n_print_stacktrace(ptr noundef %26171)
  %26173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26174 = trunc i8 %26173 to i1
  br i1 %26174, label %26175, label %26197

26175:                                            ; preds = %26168
  %26176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26177 = call i32 @fileno(ptr noundef %26176) #11
  %26178 = call i32 @isatty(i32 noundef %26177) #11
  %26179 = icmp ne i32 %26178, 0
  br i1 %26179, label %26180, label %26197

26180:                                            ; preds = %26175
  %26181 = load i32, ptr %532, align 4, !tbaa !5
  %26182 = call ptr @__errno_location() #12
  store i32 %26181, ptr %26182, align 4, !tbaa !5
  %26183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26184 = load i32, ptr @test_count, align 4, !tbaa !5
  %26185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26186 = load i32, ptr %26185, align 4, !tbaa !5
  %26187 = call ptr @s2n_strerror(i32 noundef %26186, ptr noundef @.str.4)
  %26188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26189 = load i32, ptr %26188, align 4, !tbaa !5
  %26190 = call ptr @s2n_strerror_debug(i32 noundef %26189, ptr noundef @.str.4)
  %26191 = call ptr @__errno_location() #12
  %26192 = load i32, ptr %26191, align 4, !tbaa !5
  %26193 = call ptr @strerror(i32 noundef %26192) #11
  %26194 = call ptr @__errno_location() #12
  %26195 = load i32, ptr %26194, align 4, !tbaa !5
  %26196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26183, ptr noundef @.str.2, i32 noundef %26184, ptr noundef @.str.204, ptr noundef @.str.1, i32 noundef 995, ptr noundef %26187, ptr noundef %26190, ptr noundef %26193, i32 noundef %26195) #11
  br label %26214

26197:                                            ; preds = %26175, %26168
  %26198 = load i32, ptr %532, align 4, !tbaa !5
  %26199 = call ptr @__errno_location() #12
  store i32 %26198, ptr %26199, align 4, !tbaa !5
  %26200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26201 = load i32, ptr @test_count, align 4, !tbaa !5
  %26202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26203 = load i32, ptr %26202, align 4, !tbaa !5
  %26204 = call ptr @s2n_strerror(i32 noundef %26203, ptr noundef @.str.4)
  %26205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26206 = load i32, ptr %26205, align 4, !tbaa !5
  %26207 = call ptr @s2n_strerror_debug(i32 noundef %26206, ptr noundef @.str.4)
  %26208 = call ptr @__errno_location() #12
  %26209 = load i32, ptr %26208, align 4, !tbaa !5
  %26210 = call ptr @strerror(i32 noundef %26209) #11
  %26211 = call ptr @__errno_location() #12
  %26212 = load i32, ptr %26211, align 4, !tbaa !5
  %26213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26200, ptr noundef @.str.5, i32 noundef %26201, ptr noundef @.str.204, ptr noundef @.str.1, i32 noundef 995, ptr noundef %26204, ptr noundef %26207, ptr noundef %26210, i32 noundef %26212) #11
  br label %26214

26214:                                            ; preds = %26197, %26180
  call void @llvm.lifetime.end.p0(i64 4, ptr %532) #11
  br label %26215

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

26216:                                            ; No predecessors!
  br label %26217

26217:                                            ; preds = %26216, %26163
  br label %26218

26218:                                            ; preds = %26217
  %26219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26220 = trunc i8 %26219 to i1
  br i1 %26220, label %26221, label %26237

26221:                                            ; preds = %26218
  %26222 = load ptr, ptr @stdout, align 8, !tbaa !9
  %26223 = call i32 @fileno(ptr noundef %26222) #11
  %26224 = call i32 @isatty(i32 noundef %26223) #11
  %26225 = icmp ne i32 %26224, 0
  br i1 %26225, label %26226, label %26237

26226:                                            ; preds = %26221
  %26227 = load i32, ptr @test_count, align 4, !tbaa !5
  %26228 = icmp ne i32 %26227, 0
  br i1 %26228, label %26229, label %26233

26229:                                            ; preds = %26226
  %26230 = load ptr, ptr @stdout, align 8, !tbaa !9
  %26231 = load i32, ptr @test_count, align 4, !tbaa !5
  %26232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26230, ptr noundef @.str.205, i32 noundef %26231) #11
  br label %26236

26233:                                            ; preds = %26226
  %26234 = load ptr, ptr @stdout, align 8, !tbaa !9
  %26235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26234, ptr noundef @.str.206) #11
  br label %26236

26236:                                            ; preds = %26233, %26229
  br label %26248

26237:                                            ; preds = %26221, %26218
  %26238 = load i32, ptr @test_count, align 4, !tbaa !5
  %26239 = icmp ne i32 %26238, 0
  br i1 %26239, label %26240, label %26244

26240:                                            ; preds = %26237
  %26241 = load ptr, ptr @stdout, align 8, !tbaa !9
  %26242 = load i32, ptr @test_count, align 4, !tbaa !5
  %26243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26241, ptr noundef @.str.207, i32 noundef %26242) #11
  br label %26247

26244:                                            ; preds = %26237
  %26245 = load ptr, ptr @stdout, align 8, !tbaa !9
  %26246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26245, ptr noundef @.str.208) #11
  br label %26247

26247:                                            ; preds = %26244, %26240
  br label %26248

26248:                                            ; preds = %26247, %26236
  store i32 0, ptr %3, align 4
  br label %26250

26249:                                            ; No predecessors!
  br label %26250

26250:                                            ; preds = %26249, %26248
  %26251 = load i32, ptr %3, align 4
  ret i32 %26251

26252:                                            ; preds = %25385, %24040, %19627, %16056
  unreachable
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #1

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #1

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

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

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

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #1

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #6

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_enable_tls13_in_test(...) #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 i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_is_evp_apis_supported(...) #2

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

declare i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_extensions_server_key_share_send_size(ptr noundef) #2

declare i32 @s2n_connection_set_all_protocol_versions(ptr noundef, i8 noundef zeroext) #2

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

declare i32 @s2n_conn_choose_state_machine(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_set_connection_hello_retry_flags(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) #9

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

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

declare i32 @s2n_ecc_evp_params_free(ptr noundef) #2

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

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

declare i32 @s2n_connection_allow_response_extension(ptr noundef, i16 noundef zeroext) #2

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

declare i32 @s2n_set_all_mutually_supported_groups(ptr noundef) #2

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #10

declare i32 @s2n_free(ptr noundef) #2

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

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) #2

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

declare i32 @s2n_set_hello_retry_required(ptr noundef) #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare zeroext i1 @s2n_is_hello_retry_message(ptr noundef) #2

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

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

declare zeroext i1 @s2n_pq_is_enabled() #2

declare zeroext i1 @s2n_kem_group_is_available(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_read_server_key_share_hybrid_test_vectors(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #0

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

declare i32 @s2n_stuffer_reread(ptr noundef) #2

declare i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef) #2

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

declare i32 @s2n_kem_generate_keypair(ptr noundef) #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 = { 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 #9 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { noreturn nounwind }
attributes #14 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 16}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !10, i64 656}
!43 = !{!44, !10, i64 8}
!44 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!45 = !{!16, !10, i64 704}
!46 = !{!47, !7, i64 16}
!47 = !{!"s2n_ecc_named_curve", !31, i64 0, !6, i64 4, !10, i64 8, !7, i64 16, !10, i64 24}
!48 = !{!16, !10, i64 720}
!49 = !{!18, !18, i64 0}
!50 = !{!44, !7, i64 0}
!51 = !{!52, !10, i64 8}
!52 = !{!"", !31, i64 0, !6, i64 2, !31, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!53 = !{!31, !31, i64 0}
!54 = !{!47, !31, i64 0}
!55 = !{!32, !6, i64 28}
!56 = !{!32, !6, i64 24}
!57 = distinct !{!57, !58}
!58 = !{!"llvm.loop.mustprogress"}
!59 = !{!16, !7, i64 220}
!60 = !{!16, !6, i64 2172}
!61 = !{!16, !6, i64 2176}
!62 = !{!16, !10, i64 664}
!63 = distinct !{!63, !58}
!64 = !{!52, !10, i64 16}
!65 = distinct !{!65, !58}
!66 = distinct !{!66, !58}
!67 = !{!52, !31, i64 0}
!68 = !{!25, !6, i64 8}
!69 = !{!25, !10, i64 0}
!70 = !{!16, !10, i64 8}
!71 = !{!22, !10, i64 0}
!72 = !{!22, !10, i64 8}
!73 = !{!74, !7, i64 16}
!74 = !{!"s2n_kem_preferences", !7, i64 0, !10, i64 8, !7, i64 16, !10, i64 24, !7, i64 32}
!75 = !{!74, !10, i64 24}
!76 = !{!77, !7, i64 0}
!77 = !{!"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}
!78 = !{!77, !10, i64 8}
!79 = !{!77, !10, i64 16}
!80 = !{!77, !10, i64 24}
!81 = !{!77, !10, i64 32}
!82 = !{!77, !10, i64 40}
!83 = !{!77, !10, i64 48}
!84 = !{!77, !12, i64 56}
!85 = !{!16, !6, i64 2204}
!86 = !{!87, !31, i64 8}
!87 = !{!"s2n_kem_group", !10, i64 0, !31, i64 8, !10, i64 16, !10, i64 24, !12, i64 32}
!88 = !{!16, !10, i64 832}
!89 = !{!87, !10, i64 16}
!90 = !{!16, !10, i64 928}
!91 = !{!87, !10, i64 24}
!92 = !{!16, !10, i64 840}
!93 = !{!16, !12, i64 920}
!94 = !{!16, !10, i64 816}
!95 = !{!16, !10, i64 728}
!96 = !{!16, !10, i64 896}
!97 = !{!16, !6, i64 904}
!98 = !{!99, !31, i64 18}
!99 = !{!"s2n_kem", !10, i64 0, !6, i64 8, !31, i64 12, !31, i64 14, !31, i64 16, !31, i64 18, !31, i64 20, !10, i64 24, !10, i64 32, !10, i64 40}
!100 = !{!32, !10, i64 0}
!101 = distinct !{!101, !58}
!102 = !{!16, !7, i64 222}
!103 = !{!16, !10, i64 936}
!104 = !{!16, !10, i64 872}
!105 = !{!16, !10, i64 848}
!106 = !{!16, !10, i64 824}
!107 = !{!16, !10, i64 784}
!108 = !{!7, !7, i64 0}
!109 = distinct !{!109, !58}
!110 = !{!99, !31, i64 14}
!111 = !{!23, !10, i64 0}
!112 = !{!23, !10, i64 8}
!113 = !{!23, !10, i64 96}
!114 = !{!23, !12, i64 88}
!115 = !{!99, !31, i64 20}
!116 = !{!87, !12, i64 32}
!117 = !{!23, !6, i64 72}
!118 = !{!23, !10, i64 64}
!119 = distinct !{!119, !58}
!120 = distinct !{!120, !58}
!121 = !{!23, !10, i64 104}
!122 = distinct !{!122, !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_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_kem_group = type { ptr, i16, ptr, ptr, i8 }
%struct.s2n_ecc_preferences = type { i8, ptr }
%struct.s2n_kem_preferences = type { i8, ptr, i8, ptr, i8 }
%struct.s2n_kem = type { ptr, i32, i16, i16, i16, i16, i16, ptr, ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@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 [94 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 [55 x i8], align 1
@cipher_preferences_test_all_tls13 = external constant %struct.s2n_cipher_preferences, align 8
@s2n_signature_preferences_20200207 = external constant %struct.s2n_signature_preferences, align 8
@__const.main.test_security_policy_no_x25519 = external hidden unnamed_addr constant %struct.s2n_security_policy, align 8
@.str.9 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_ecc_curve_x25519 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.13 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [71 x i8], align 1
@s2n_all_supported_curves_list = external local_unnamed_addr constant [0 x ptr], align 8
@.str.25 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [71 x i8], align 1
@s2n_server_key_share_extension = external constant %struct.s2n_extension_type, align 8
@.str.28 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [174 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [139 x i8], align 1
@__const.main.key_share_payloads = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.59 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [87 x i8], align 1
@s2n_client_key_share_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.82 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [194 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [194 x i8], align 1
@s2n_ecc_curve_secp256r1 = external constant %struct.s2n_ecc_named_curve, align 8
@s2n_ecc_curve_secp384r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.90 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [78 x i8], align 1
@security_policy_test_tls13_retry = external constant %struct.s2n_security_policy, align 8
@.str.107 = external hidden unnamed_addr constant [78 x i8], align 1
@hello_retry_req_random = external local_unnamed_addr global [32 x i8], align 16
@.str.109 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [56 x i8], align 1
@s2n_secp256r1_kyber_512_r3 = external constant %struct.s2n_kem_group, align 8
@__const.main.test_kem_groups = external hidden unnamed_addr constant [2 x ptr], align 16
@s2n_ecc_preferences_20200310 = external constant %struct.s2n_ecc_preferences, align 8
@kem_preferences_all = external local_unnamed_addr constant %struct.s2n_kem_preferences, align 8
@.str.123 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [186 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [189 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_kyber_512_r3 = external constant %struct.s2n_kem, align 8
@.str.177 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [154 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.189 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.190 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.191 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.193 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.194 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.196 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.197 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.208 = 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 %struct.s2n_security_policy, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, 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 %struct.s2n_stuffer, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %struct.s2n_stuffer, align 8
  %16 = alloca ptr, align 8
  %17 = alloca %struct.s2n_stuffer, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %struct.s2n_stuffer, align 8
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %struct.s2n_stuffer, align 8
  %23 = alloca ptr, align 8
  %24 = alloca %struct.s2n_blob, align 8
  %25 = alloca %struct.s2n_blob, align 8
  %26 = alloca ptr, align 8
  %27 = alloca [2 x ptr], align 16
  %28 = alloca %struct.s2n_kem_preferences, align 8
  %29 = alloca %struct.s2n_security_policy, align 8
  %30 = alloca %struct.s2n_kem_preferences, align 8
  %31 = alloca %struct.s2n_security_policy, align 8
  %32 = alloca ptr, align 8
  %33 = alloca [2 x i8], align 1
  %34 = alloca %struct.s2n_blob, align 8
  %35 = alloca %struct.s2n_stuffer, align 8
  %36 = alloca %struct.s2n_stuffer, align 8
  %37 = alloca %struct.s2n_stuffer, align 8
  %38 = alloca ptr, align 8
  %39 = alloca %struct.s2n_stuffer, align 8
  %40 = alloca %struct.s2n_stuffer, align 8
  %41 = alloca %struct.s2n_stuffer, align 8
  %42 = alloca %struct.s2n_stuffer, align 8
  %43 = alloca %struct.s2n_stuffer, align 8
  %44 = alloca [10 x i8], align 1
  %45 = alloca %struct.s2n_blob, align 8
  %46 = alloca %struct.s2n_stuffer, align 8
  %47 = alloca ptr, align 8
  %48 = alloca %struct.s2n_stuffer, align 8
  %49 = alloca i16, align 2
  %50 = alloca i16, align 2
  %51 = alloca i16, align 2
  %52 = alloca i16, align 2
  %53 = alloca ptr, align 8
  %54 = alloca %struct.s2n_stuffer, align 8
  %55 = alloca i16, align 2
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %59 = load ptr, ptr @stdout, align 8, !tbaa !9
  %60 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %59, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %61 = load ptr, ptr @stdout, align 8, !tbaa !9
  %62 = tail call i32 @fflush(ptr noundef %61)
  %63 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %64 = icmp eq i32 %63, -1
  %.012251684.sroa.gep5167 = getelementptr inbounds i8, ptr %27, i64 8
  %.012261685.sroa.gep5168 = getelementptr inbounds i8, ptr %27, i64 8
  br i1 %64, label %65, label %89

65:                                               ; preds = %2
  %66 = tail call ptr @__errno_location() #13
  %67 = load i32, ptr %66, align 4, !tbaa !5
  %68 = load ptr, ptr @stderr, align 8, !tbaa !9
  %69 = tail call i32 @s2n_print_stacktrace(ptr noundef %68) #12
  %70 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %71 = trunc nuw i8 %70 to i1
  br i1 %71, label %72, label %76

72:                                               ; preds = %65
  %73 = load ptr, ptr @stderr, align 8, !tbaa !9
  %74 = tail call i32 @fileno(ptr noundef %73) #12
  %75 = tail call i32 @isatty(i32 noundef %74) #12
  %.not1663 = icmp eq i32 %75, 0
  br i1 %.not1663, label %76, label %77

76:                                               ; preds = %72, %65
  br label %77

77:                                               ; preds = %72, %76
  %.str.5.sink = phi ptr [ @.str.5, %76 ], [ @.str.2, %72 ]
  store i32 %67, ptr %66, align 4, !tbaa !5
  %78 = load ptr, ptr @stderr, align 8, !tbaa !9
  %79 = load i32, ptr @test_count, align 4, !tbaa !5
  %80 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %81 = load i32, ptr %80, align 4, !tbaa !5
  %82 = tail call ptr @s2n_strerror(i32 noundef %81, ptr noundef nonnull @.str.4) #12
  %83 = load i32, ptr %80, align 4, !tbaa !5
  %84 = tail call ptr @s2n_strerror_debug(i32 noundef %83, ptr noundef nonnull @.str.4) #12
  %85 = load i32, ptr %66, align 4, !tbaa !5
  %86 = tail call ptr @strerror(i32 noundef %85) #12
  %87 = load i32, ptr %66, align 4, !tbaa !5
  %88 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %78, ptr noundef nonnull %.str.5.sink, i32 noundef %79, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %82, ptr noundef %84, ptr noundef %86, i32 noundef %87) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

89:                                               ; preds = %2
  %90 = load i32, ptr @test_count, align 4, !tbaa !5
  %91 = add nsw i32 %90, 1
  store i32 %91, ptr @test_count, align 4, !tbaa !5
  %92 = tail call i32 @s2n_enable_atexit() #12
  %93 = icmp eq i32 %92, -1
  br i1 %93, label %94, label %118

94:                                               ; preds = %89
  %95 = tail call ptr @__errno_location() #13
  %96 = load i32, ptr %95, align 4, !tbaa !5
  %97 = load ptr, ptr @stderr, align 8, !tbaa !9
  %98 = tail call i32 @s2n_print_stacktrace(ptr noundef %97) #12
  %99 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %100 = trunc nuw i8 %99 to i1
  br i1 %100, label %101, label %105

101:                                              ; preds = %94
  %102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %103 = tail call i32 @fileno(ptr noundef %102) #12
  %104 = tail call i32 @isatty(i32 noundef %103) #12
  %.not1662 = icmp eq i32 %104, 0
  br i1 %.not1662, label %105, label %106

105:                                              ; preds = %101, %94
  br label %106

106:                                              ; preds = %101, %105
  %.str.5.sink1711 = phi ptr [ @.str.5, %105 ], [ @.str.2, %101 ]
  store i32 %96, ptr %95, align 4, !tbaa !5
  %107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %108 = load i32, ptr @test_count, align 4, !tbaa !5
  %109 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %110 = load i32, ptr %109, align 4, !tbaa !5
  %111 = tail call ptr @s2n_strerror(i32 noundef %110, ptr noundef nonnull @.str.4) #12
  %112 = load i32, ptr %109, align 4, !tbaa !5
  %113 = tail call ptr @s2n_strerror_debug(i32 noundef %112, ptr noundef nonnull @.str.4) #12
  %114 = load i32, ptr %95, align 4, !tbaa !5
  %115 = tail call ptr @strerror(i32 noundef %114) #12
  %116 = load i32, ptr %95, align 4, !tbaa !5
  %117 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %107, ptr noundef nonnull %.str.5.sink1711, i32 noundef %108, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %111, ptr noundef %113, ptr noundef %115, i32 noundef %116) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

118:                                              ; preds = %89
  %119 = tail call i32 @s2n_init() #12
  %120 = icmp eq i32 %119, -1
  br i1 %120, label %121, label %145

121:                                              ; preds = %118
  %122 = tail call ptr @__errno_location() #13
  %123 = load i32, ptr %122, align 4, !tbaa !5
  %124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %125 = tail call i32 @s2n_print_stacktrace(ptr noundef %124) #12
  %126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %127 = trunc nuw i8 %126 to i1
  br i1 %127, label %128, label %132

128:                                              ; preds = %121
  %129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %130 = tail call i32 @fileno(ptr noundef %129) #12
  %131 = tail call i32 @isatty(i32 noundef %130) #12
  %.not1661 = icmp eq i32 %131, 0
  br i1 %.not1661, label %132, label %133

132:                                              ; preds = %128, %121
  br label %133

133:                                              ; preds = %128, %132
  %.str.5.sink1722 = phi ptr [ @.str.5, %132 ], [ @.str.2, %128 ]
  store i32 %123, ptr %122, align 4, !tbaa !5
  %134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %135 = load i32, ptr @test_count, align 4, !tbaa !5
  %136 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %137 = load i32, ptr %136, align 4, !tbaa !5
  %138 = tail call ptr @s2n_strerror(i32 noundef %137, ptr noundef nonnull @.str.4) #12
  %139 = load i32, ptr %136, align 4, !tbaa !5
  %140 = tail call ptr @s2n_strerror_debug(i32 noundef %139, ptr noundef nonnull @.str.4) #12
  %141 = load i32, ptr %122, align 4, !tbaa !5
  %142 = tail call ptr @strerror(i32 noundef %141) #12
  %143 = load i32, ptr %122, align 4, !tbaa !5
  %144 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %134, ptr noundef nonnull %.str.5.sink1722, i32 noundef %135, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %138, ptr noundef %140, ptr noundef %142, i32 noundef %143) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

145:                                              ; preds = %118
  %146 = load i32, ptr @test_count, align 4, !tbaa !5
  %147 = add nsw i32 %146, 1
  store i32 %147, ptr @test_count, align 4, !tbaa !5
  %148 = tail call i32 (...) @s2n_enable_tls13_in_test() #12
  %149 = icmp eq i32 %148, -1
  br i1 %149, label %150, label %174

150:                                              ; preds = %145
  %151 = tail call ptr @__errno_location() #13
  %152 = load i32, ptr %151, align 4, !tbaa !5
  %153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %154 = tail call i32 @s2n_print_stacktrace(ptr noundef %153) #12
  %155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %156 = trunc nuw i8 %155 to i1
  br i1 %156, label %157, label %161

157:                                              ; preds = %150
  %158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %159 = tail call i32 @fileno(ptr noundef %158) #12
  %160 = tail call i32 @isatty(i32 noundef %159) #12
  %.not1660 = icmp eq i32 %160, 0
  br i1 %.not1660, label %161, label %162

161:                                              ; preds = %157, %150
  br label %162

162:                                              ; preds = %157, %161
  %.str.5.sink1733 = phi ptr [ @.str.5, %161 ], [ @.str.2, %157 ]
  store i32 %152, ptr %151, align 4, !tbaa !5
  %163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %164 = load i32, ptr @test_count, align 4, !tbaa !5
  %165 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = tail call ptr @s2n_strerror(i32 noundef %166, ptr noundef nonnull @.str.4) #12
  %168 = load i32, ptr %165, align 4, !tbaa !5
  %169 = tail call ptr @s2n_strerror_debug(i32 noundef %168, ptr noundef nonnull @.str.4) #12
  %170 = load i32, ptr %151, align 4, !tbaa !5
  %171 = tail call ptr @strerror(i32 noundef %170) #12
  %172 = load i32, ptr %151, align 4, !tbaa !5
  %173 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %163, ptr noundef nonnull %.str.5.sink1733, i32 noundef %164, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %167, ptr noundef %169, ptr noundef %171, i32 noundef %172) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

174:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %3) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %3, ptr noundef nonnull align 8 dereferenceable(64) @__const.main.test_security_policy_no_x25519, i64 64, i1 false)
  %175 = load i32, ptr @test_count, align 4, !tbaa !5
  %176 = add nsw i32 %175, 1
  store i32 %176, ptr @test_count, align 4, !tbaa !5
  %177 = tail call i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef null) #12
  %178 = icmp eq i32 %177, -1
  br i1 %178, label %203, label %179

179:                                              ; preds = %174
  %180 = tail call ptr @__errno_location() #13
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %183 = tail call i32 @s2n_print_stacktrace(ptr noundef %182) #12
  %184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %185 = trunc nuw i8 %184 to i1
  br i1 %185, label %186, label %190

186:                                              ; preds = %179
  %187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %188 = tail call i32 @fileno(ptr noundef %187) #12
  %189 = tail call i32 @isatty(i32 noundef %188) #12
  %.not = icmp eq i32 %189, 0
  br i1 %.not, label %190, label %191

190:                                              ; preds = %186, %179
  br label %191

191:                                              ; preds = %186, %190
  %.str.5.sink1744 = phi ptr [ @.str.5, %190 ], [ @.str.2, %186 ]
  store i32 %181, ptr %180, align 4, !tbaa !5
  %192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %193 = load i32, ptr @test_count, align 4, !tbaa !5
  %194 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %195 = load i32, ptr %194, align 4, !tbaa !5
  %196 = tail call ptr @s2n_strerror(i32 noundef %195, ptr noundef nonnull @.str.4) #12
  %197 = load i32, ptr %194, align 4, !tbaa !5
  %198 = tail call ptr @s2n_strerror_debug(i32 noundef %197, ptr noundef nonnull @.str.4) #12
  %199 = load i32, ptr %180, align 4, !tbaa !5
  %200 = tail call ptr @strerror(i32 noundef %199) #12
  %201 = load i32, ptr %180, align 4, !tbaa !5
  %202 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %192, ptr noundef nonnull %.str.5.sink1744, i32 noundef %193, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %196, ptr noundef %198, ptr noundef %200, i32 noundef %201) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

203:                                              ; preds = %174
  %204 = load i32, ptr @test_count, align 4, !tbaa !5
  %205 = add nsw i32 %204, 1
  store i32 %205, ptr @test_count, align 4, !tbaa !5
  %206 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %207 = load i32, ptr %206, align 4, !tbaa !5
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %209, label %232

209:                                              ; preds = %203
  %210 = tail call ptr @__errno_location() #13
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = tail call i32 @s2n_print_stacktrace(ptr noundef %212) #12
  %214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %215 = trunc nuw i8 %214 to i1
  br i1 %215, label %216, label %220

216:                                              ; preds = %209
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = tail call i32 @fileno(ptr noundef %217) #12
  %219 = tail call i32 @isatty(i32 noundef %218) #12
  %.not1659 = icmp eq i32 %219, 0
  br i1 %.not1659, label %220, label %221

220:                                              ; preds = %216, %209
  br label %221

221:                                              ; preds = %216, %220
  %.str.5.sink1755 = phi ptr [ @.str.5, %220 ], [ @.str.2, %216 ]
  store i32 %211, ptr %210, align 4, !tbaa !5
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = load i32, ptr @test_count, align 4, !tbaa !5
  %224 = load i32, ptr %206, align 4, !tbaa !5
  %225 = tail call ptr @s2n_strerror(i32 noundef %224, ptr noundef nonnull @.str.4) #12
  %226 = load i32, ptr %206, align 4, !tbaa !5
  %227 = tail call ptr @s2n_strerror_debug(i32 noundef %226, ptr noundef nonnull @.str.4) #12
  %228 = load i32, ptr %210, align 4, !tbaa !5
  %229 = tail call ptr @strerror(i32 noundef %228) #12
  %230 = load i32, ptr %210, align 4, !tbaa !5
  %231 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %222, ptr noundef nonnull %.str.5.sink1755, i32 noundef %223, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %225, ptr noundef %227, ptr noundef %229, i32 noundef %230) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

232:                                              ; preds = %203
  %233 = add nsw i32 %204, 2
  store i32 %233, ptr @test_count, align 4, !tbaa !5
  %234 = tail call ptr @s2n_strerror_debug(i32 noundef %207, ptr noundef nonnull @.str.4) #12
  %235 = icmp eq ptr %234, null
  br i1 %235, label %236, label %259

236:                                              ; preds = %232
  %237 = tail call ptr @__errno_location() #13
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %240 = tail call i32 @s2n_print_stacktrace(ptr noundef %239) #12
  %241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %242 = trunc nuw i8 %241 to i1
  br i1 %242, label %243, label %247

243:                                              ; preds = %236
  %244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %245 = tail call i32 @fileno(ptr noundef %244) #12
  %246 = tail call i32 @isatty(i32 noundef %245) #12
  %.not1658 = icmp eq i32 %246, 0
  br i1 %.not1658, label %247, label %248

247:                                              ; preds = %243, %236
  br label %248

248:                                              ; preds = %243, %247
  %.str.5.sink1764 = phi ptr [ @.str.5, %247 ], [ @.str.2, %243 ]
  store i32 %238, ptr %237, align 4, !tbaa !5
  %249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %250 = load i32, ptr @test_count, align 4, !tbaa !5
  %251 = load i32, ptr %206, align 4, !tbaa !5
  %252 = tail call ptr @s2n_strerror(i32 noundef %251, ptr noundef nonnull @.str.4) #12
  %253 = load i32, ptr %206, align 4, !tbaa !5
  %254 = tail call ptr @s2n_strerror_debug(i32 noundef %253, ptr noundef nonnull @.str.4) #12
  %255 = load i32, ptr %237, align 4, !tbaa !5
  %256 = tail call ptr @strerror(i32 noundef %255) #12
  %257 = load i32, ptr %237, align 4, !tbaa !5
  %258 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %249, ptr noundef nonnull %.str.5.sink1764, i32 noundef %250, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %252, ptr noundef %254, ptr noundef %256, i32 noundef %257) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

259:                                              ; preds = %232
  store i32 0, ptr %206, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #12
  %260 = tail call ptr @__errno_location() #13
  store i32 0, ptr %260, align 4, !tbaa !5
  %261 = load i32, ptr @test_count, align 4, !tbaa !5
  %262 = add nsw i32 %261, 1
  store i32 %262, ptr @test_count, align 4, !tbaa !5
  %263 = tail call ptr @s2n_connection_new(i32 noundef 0) #12
  %264 = icmp eq ptr %263, null
  br i1 %264, label %265, label %287

265:                                              ; preds = %259
  %266 = load i32, ptr %260, align 4, !tbaa !5
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = tail call i32 @s2n_print_stacktrace(ptr noundef %267) #12
  %269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %270 = trunc nuw i8 %269 to i1
  br i1 %270, label %271, label %275

271:                                              ; preds = %265
  %272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %273 = tail call i32 @fileno(ptr noundef %272) #12
  %274 = tail call i32 @isatty(i32 noundef %273) #12
  %.not1657 = icmp eq i32 %274, 0
  br i1 %.not1657, label %275, label %276

275:                                              ; preds = %271, %265
  br label %276

276:                                              ; preds = %271, %275
  %.str.5.sink1773 = phi ptr [ @.str.5, %275 ], [ @.str.2, %271 ]
  store i32 %266, ptr %260, align 4, !tbaa !5
  %277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %278 = load i32, ptr @test_count, align 4, !tbaa !5
  %279 = load i32, ptr %206, align 4, !tbaa !5
  %280 = tail call ptr @s2n_strerror(i32 noundef %279, ptr noundef nonnull @.str.4) #12
  %281 = load i32, ptr %206, align 4, !tbaa !5
  %282 = tail call ptr @s2n_strerror_debug(i32 noundef %281, ptr noundef nonnull @.str.4) #12
  %283 = load i32, ptr %260, align 4, !tbaa !5
  %284 = tail call ptr @strerror(i32 noundef %283) #12
  %285 = load i32, ptr %260, align 4, !tbaa !5
  %286 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %277, ptr noundef nonnull %.str.5.sink1773, i32 noundef %278, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %280, ptr noundef %282, ptr noundef %284, i32 noundef %285) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

287:                                              ; preds = %259
  %288 = getelementptr inbounds i8, ptr %263, i64 16
  store ptr %3, ptr %288, align 8, !tbaa !15
  %289 = load i32, ptr @test_count, align 4, !tbaa !5
  %290 = add nsw i32 %289, 1
  store i32 %290, ptr @test_count, align 4, !tbaa !5
  %291 = call i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef nonnull %263) #12
  %292 = icmp eq i32 %291, -1
  br i1 %292, label %315, label %293

293:                                              ; preds = %287
  %294 = load i32, ptr %260, align 4, !tbaa !5
  %295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %296 = call i32 @s2n_print_stacktrace(ptr noundef %295) #12
  %297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %298 = trunc nuw i8 %297 to i1
  br i1 %298, label %299, label %303

299:                                              ; preds = %293
  %300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %301 = call i32 @fileno(ptr noundef %300) #12
  %302 = call i32 @isatty(i32 noundef %301) #12
  %.not1269 = icmp eq i32 %302, 0
  br i1 %.not1269, label %303, label %304

303:                                              ; preds = %299, %293
  br label %304

304:                                              ; preds = %299, %303
  %.str.5.sink1782 = phi ptr [ @.str.5, %303 ], [ @.str.2, %299 ]
  store i32 %294, ptr %260, align 4, !tbaa !5
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = load i32, ptr @test_count, align 4, !tbaa !5
  %307 = load i32, ptr %206, align 4, !tbaa !5
  %308 = call ptr @s2n_strerror(i32 noundef %307, ptr noundef nonnull @.str.4) #12
  %309 = load i32, ptr %206, align 4, !tbaa !5
  %310 = call ptr @s2n_strerror_debug(i32 noundef %309, ptr noundef nonnull @.str.4) #12
  %311 = load i32, ptr %260, align 4, !tbaa !5
  %312 = call ptr @strerror(i32 noundef %311) #12
  %313 = load i32, ptr %260, align 4, !tbaa !5
  %314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %305, ptr noundef nonnull %.str.5.sink1782, i32 noundef %306, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %308, ptr noundef %310, ptr noundef %312, i32 noundef %313) #14
  call void @exit(i32 noundef 1) #15
  unreachable

315:                                              ; preds = %287
  %316 = load i32, ptr @test_count, align 4, !tbaa !5
  %317 = add nsw i32 %316, 1
  store i32 %317, ptr @test_count, align 4, !tbaa !5
  %318 = load i32, ptr %206, align 4, !tbaa !5
  %319 = icmp eq i32 %318, 0
  br i1 %319, label %320, label %342

320:                                              ; preds = %315
  %321 = load i32, ptr %260, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = call i32 @s2n_print_stacktrace(ptr noundef %322) #12
  %324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %325 = trunc nuw i8 %324 to i1
  br i1 %325, label %326, label %330

326:                                              ; preds = %320
  %327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %328 = call i32 @fileno(ptr noundef %327) #12
  %329 = call i32 @isatty(i32 noundef %328) #12
  %.not1656 = icmp eq i32 %329, 0
  br i1 %.not1656, label %330, label %331

330:                                              ; preds = %326, %320
  br label %331

331:                                              ; preds = %326, %330
  %.str.5.sink1791 = phi ptr [ @.str.5, %330 ], [ @.str.2, %326 ]
  store i32 %321, ptr %260, align 4, !tbaa !5
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = load i32, ptr @test_count, align 4, !tbaa !5
  %334 = load i32, ptr %206, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror(i32 noundef %334, ptr noundef nonnull @.str.4) #12
  %336 = load i32, ptr %206, align 4, !tbaa !5
  %337 = call ptr @s2n_strerror_debug(i32 noundef %336, ptr noundef nonnull @.str.4) #12
  %338 = load i32, ptr %260, align 4, !tbaa !5
  %339 = call ptr @strerror(i32 noundef %338) #12
  %340 = load i32, ptr %260, align 4, !tbaa !5
  %341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %332, ptr noundef nonnull %.str.5.sink1791, i32 noundef %333, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %335, ptr noundef %337, ptr noundef %339, i32 noundef %340) #14
  call void @exit(i32 noundef 1) #15
  unreachable

342:                                              ; preds = %315
  %343 = add nsw i32 %316, 2
  store i32 %343, ptr @test_count, align 4, !tbaa !5
  %344 = call ptr @s2n_strerror_debug(i32 noundef %318, ptr noundef nonnull @.str.4) #12
  %345 = icmp eq ptr %344, null
  br i1 %345, label %346, label %368

346:                                              ; preds = %342
  %347 = load i32, ptr %260, align 4, !tbaa !5
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = call i32 @s2n_print_stacktrace(ptr noundef %348) #12
  %350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %351 = trunc nuw i8 %350 to i1
  br i1 %351, label %352, label %356

352:                                              ; preds = %346
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = call i32 @fileno(ptr noundef %353) #12
  %355 = call i32 @isatty(i32 noundef %354) #12
  %.not1655 = icmp eq i32 %355, 0
  br i1 %.not1655, label %356, label %357

356:                                              ; preds = %352, %346
  br label %357

357:                                              ; preds = %352, %356
  %.str.5.sink1800 = phi ptr [ @.str.5, %356 ], [ @.str.2, %352 ]
  store i32 %347, ptr %260, align 4, !tbaa !5
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = load i32, ptr @test_count, align 4, !tbaa !5
  %360 = load i32, ptr %206, align 4, !tbaa !5
  %361 = call ptr @s2n_strerror(i32 noundef %360, ptr noundef nonnull @.str.4) #12
  %362 = load i32, ptr %206, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror_debug(i32 noundef %362, ptr noundef nonnull @.str.4) #12
  %364 = load i32, ptr %260, align 4, !tbaa !5
  %365 = call ptr @strerror(i32 noundef %364) #12
  %366 = load i32, ptr %260, align 4, !tbaa !5
  %367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef nonnull %.str.5.sink1800, i32 noundef %359, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %361, ptr noundef %363, ptr noundef %365, i32 noundef %366) #14
  call void @exit(i32 noundef 1) #15
  unreachable

368:                                              ; preds = %342
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %369 = call i32 (...) @s2n_is_evp_apis_supported() #12
  %.not1270 = icmp eq i32 %369, 0
  br i1 %.not1270, label %452, label %370

370:                                              ; preds = %368
  %371 = getelementptr inbounds i8, ptr %263, i64 656
  store ptr @s2n_ecc_curve_x25519, ptr %371, align 8, !tbaa !42
  %372 = load i32, ptr @test_count, align 4, !tbaa !5
  %373 = add nsw i32 %372, 1
  store i32 %373, ptr @test_count, align 4, !tbaa !5
  %374 = call i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef nonnull %263) #12
  %375 = icmp eq i32 %374, -1
  br i1 %375, label %398, label %376

376:                                              ; preds = %370
  %377 = load i32, ptr %260, align 4, !tbaa !5
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = call i32 @s2n_print_stacktrace(ptr noundef %378) #12
  %380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %381 = trunc nuw i8 %380 to i1
  br i1 %381, label %382, label %386

382:                                              ; preds = %376
  %383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %384 = call i32 @fileno(ptr noundef %383) #12
  %385 = call i32 @isatty(i32 noundef %384) #12
  %.not1271 = icmp eq i32 %385, 0
  br i1 %.not1271, label %386, label %387

386:                                              ; preds = %382, %376
  br label %387

387:                                              ; preds = %382, %386
  %.str.5.sink1809 = phi ptr [ @.str.5, %386 ], [ @.str.2, %382 ]
  store i32 %377, ptr %260, align 4, !tbaa !5
  %388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %389 = load i32, ptr @test_count, align 4, !tbaa !5
  %390 = load i32, ptr %206, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror(i32 noundef %390, ptr noundef nonnull @.str.4) #12
  %392 = load i32, ptr %206, align 4, !tbaa !5
  %393 = call ptr @s2n_strerror_debug(i32 noundef %392, ptr noundef nonnull @.str.4) #12
  %394 = load i32, ptr %260, align 4, !tbaa !5
  %395 = call ptr @strerror(i32 noundef %394) #12
  %396 = load i32, ptr %260, align 4, !tbaa !5
  %397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %388, ptr noundef nonnull %.str.5.sink1809, i32 noundef %389, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %391, ptr noundef %393, ptr noundef %395, i32 noundef %396) #14
  call void @exit(i32 noundef 1) #15
  unreachable

398:                                              ; preds = %370
  %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 i32, ptr %206, align 4, !tbaa !5
  %402 = icmp eq i32 %401, 0
  br i1 %402, label %403, label %425

403:                                              ; preds = %398
  %404 = load i32, ptr %260, align 4, !tbaa !5
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = call i32 @s2n_print_stacktrace(ptr noundef %405) #12
  %407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %408 = trunc nuw i8 %407 to i1
  br i1 %408, label %409, label %413

409:                                              ; preds = %403
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = call i32 @fileno(ptr noundef %410) #12
  %412 = call i32 @isatty(i32 noundef %411) #12
  %.not1654 = icmp eq i32 %412, 0
  br i1 %.not1654, label %413, label %414

413:                                              ; preds = %409, %403
  br label %414

414:                                              ; preds = %409, %413
  %.str.5.sink1818 = phi ptr [ @.str.5, %413 ], [ @.str.2, %409 ]
  store i32 %404, ptr %260, align 4, !tbaa !5
  %415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = load i32, ptr %206, align 4, !tbaa !5
  %418 = call ptr @s2n_strerror(i32 noundef %417, ptr noundef nonnull @.str.4) #12
  %419 = load i32, ptr %206, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror_debug(i32 noundef %419, ptr noundef nonnull @.str.4) #12
  %421 = load i32, ptr %260, align 4, !tbaa !5
  %422 = call ptr @strerror(i32 noundef %421) #12
  %423 = load i32, ptr %260, align 4, !tbaa !5
  %424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %415, ptr noundef nonnull %.str.5.sink1818, i32 noundef %416, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %418, ptr noundef %420, ptr noundef %422, i32 noundef %423) #14
  call void @exit(i32 noundef 1) #15
  unreachable

425:                                              ; preds = %398
  %426 = add nsw i32 %399, 2
  store i32 %426, ptr @test_count, align 4, !tbaa !5
  %427 = call ptr @s2n_strerror_debug(i32 noundef %401, ptr noundef nonnull @.str.4) #12
  %428 = icmp eq ptr %427, null
  br i1 %428, label %429, label %451

429:                                              ; preds = %425
  %430 = load i32, ptr %260, align 4, !tbaa !5
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = call i32 @s2n_print_stacktrace(ptr noundef %431) #12
  %433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %434 = trunc nuw i8 %433 to i1
  br i1 %434, label %435, label %439

435:                                              ; preds = %429
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = call i32 @fileno(ptr noundef %436) #12
  %438 = call i32 @isatty(i32 noundef %437) #12
  %.not1653 = icmp eq i32 %438, 0
  br i1 %.not1653, label %439, label %440

439:                                              ; preds = %435, %429
  br label %440

440:                                              ; preds = %435, %439
  %.str.5.sink1827 = phi ptr [ @.str.5, %439 ], [ @.str.2, %435 ]
  store i32 %430, ptr %260, align 4, !tbaa !5
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = load i32, ptr @test_count, align 4, !tbaa !5
  %443 = load i32, ptr %206, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror(i32 noundef %443, ptr noundef nonnull @.str.4) #12
  %445 = load i32, ptr %206, align 4, !tbaa !5
  %446 = call ptr @s2n_strerror_debug(i32 noundef %445, ptr noundef nonnull @.str.4) #12
  %447 = load i32, ptr %260, align 4, !tbaa !5
  %448 = call ptr @strerror(i32 noundef %447) #12
  %449 = load i32, ptr %260, align 4, !tbaa !5
  %450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %441, ptr noundef nonnull %.str.5.sink1827, i32 noundef %442, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %444, ptr noundef %446, ptr noundef %448, i32 noundef %449) #14
  call void @exit(i32 noundef 1) #15
  unreachable

451:                                              ; preds = %425
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  br label %452

452:                                              ; preds = %451, %368
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #12
  store ptr null, ptr %4, align 8, !tbaa !9
  %453 = load i32, ptr @test_count, align 4, !tbaa !5
  %454 = add nsw i32 %453, 1
  store i32 %454, ptr @test_count, align 4, !tbaa !5
  %455 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %263, ptr noundef nonnull %4) #12
  %456 = icmp eq i32 %455, -1
  br i1 %456, label %457, label %479

457:                                              ; preds = %452
  %458 = load i32, ptr %260, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @s2n_print_stacktrace(ptr noundef %459) #12
  %461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %462 = trunc nuw i8 %461 to i1
  br i1 %462, label %463, label %467

463:                                              ; preds = %457
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = call i32 @fileno(ptr noundef %464) #12
  %466 = call i32 @isatty(i32 noundef %465) #12
  %.not1652 = icmp eq i32 %466, 0
  br i1 %.not1652, label %467, label %468

467:                                              ; preds = %463, %457
  br label %468

468:                                              ; preds = %463, %467
  %.str.5.sink1836 = phi ptr [ @.str.5, %467 ], [ @.str.2, %463 ]
  store i32 %458, ptr %260, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %471 = load i32, ptr %206, align 4, !tbaa !5
  %472 = call ptr @s2n_strerror(i32 noundef %471, ptr noundef nonnull @.str.4) #12
  %473 = load i32, ptr %206, align 4, !tbaa !5
  %474 = call ptr @s2n_strerror_debug(i32 noundef %473, ptr noundef nonnull @.str.4) #12
  %475 = load i32, ptr %260, align 4, !tbaa !5
  %476 = call ptr @strerror(i32 noundef %475) #12
  %477 = load i32, ptr %260, align 4, !tbaa !5
  %478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %469, ptr noundef nonnull %.str.5.sink1836, i32 noundef %470, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %472, ptr noundef %474, ptr noundef %476, i32 noundef %477) #14
  call void @exit(i32 noundef 1) #15
  unreachable

479:                                              ; preds = %452
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr @test_count, align 4, !tbaa !5
  %482 = load ptr, ptr %4, align 8, !tbaa !9
  %483 = icmp eq ptr %482, null
  br i1 %483, label %484, label %506

484:                                              ; preds = %479
  %485 = load i32, ptr %260, align 4, !tbaa !5
  %486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %487 = call i32 @s2n_print_stacktrace(ptr noundef %486) #12
  %488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %489 = trunc nuw i8 %488 to i1
  br i1 %489, label %490, label %494

490:                                              ; preds = %484
  %491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %492 = call i32 @fileno(ptr noundef %491) #12
  %493 = call i32 @isatty(i32 noundef %492) #12
  %.not1651 = icmp eq i32 %493, 0
  br i1 %.not1651, label %494, label %495

494:                                              ; preds = %490, %484
  br label %495

495:                                              ; preds = %490, %494
  %.str.5.sink1845 = phi ptr [ @.str.5, %494 ], [ @.str.2, %490 ]
  store i32 %485, ptr %260, align 4, !tbaa !5
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = load i32, ptr %206, align 4, !tbaa !5
  %499 = call ptr @s2n_strerror(i32 noundef %498, ptr noundef nonnull @.str.4) #12
  %500 = load i32, ptr %206, align 4, !tbaa !5
  %501 = call ptr @s2n_strerror_debug(i32 noundef %500, ptr noundef nonnull @.str.4) #12
  %502 = load i32, ptr %260, align 4, !tbaa !5
  %503 = call ptr @strerror(i32 noundef %502) #12
  %504 = load i32, ptr %260, align 4, !tbaa !5
  %505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %496, ptr noundef nonnull %.str.5.sink1845, i32 noundef %497, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %499, ptr noundef %501, ptr noundef %503, i32 noundef %504) #14
  call void @exit(i32 noundef 1) #15
  unreachable

506:                                              ; preds = %479
  %507 = getelementptr inbounds i8, ptr %482, i64 8
  %508 = load ptr, ptr %507, align 8, !tbaa !43
  %509 = load ptr, ptr %508, align 8, !tbaa !9
  %510 = getelementptr inbounds i8, ptr %263, i64 656
  store ptr %509, ptr %510, align 8, !tbaa !42
  %511 = add nsw i32 %480, 2
  store i32 %511, ptr @test_count, align 4, !tbaa !5
  %512 = call i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef nonnull %263) #12
  %513 = icmp eq i32 %512, -1
  br i1 %513, label %536, label %514

514:                                              ; preds = %506
  %515 = load i32, ptr %260, align 4, !tbaa !5
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @s2n_print_stacktrace(ptr noundef %516) #12
  %518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %519 = trunc nuw i8 %518 to i1
  br i1 %519, label %520, label %524

520:                                              ; preds = %514
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @fileno(ptr noundef %521) #12
  %523 = call i32 @isatty(i32 noundef %522) #12
  %.not1272 = icmp eq i32 %523, 0
  br i1 %.not1272, label %524, label %525

524:                                              ; preds = %520, %514
  br label %525

525:                                              ; preds = %520, %524
  %.str.5.sink1854 = phi ptr [ @.str.5, %524 ], [ @.str.2, %520 ]
  store i32 %515, ptr %260, align 4, !tbaa !5
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = load i32, ptr @test_count, align 4, !tbaa !5
  %528 = load i32, ptr %206, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror(i32 noundef %528, ptr noundef nonnull @.str.4) #12
  %530 = load i32, ptr %206, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror_debug(i32 noundef %530, ptr noundef nonnull @.str.4) #12
  %532 = load i32, ptr %260, align 4, !tbaa !5
  %533 = call ptr @strerror(i32 noundef %532) #12
  %534 = load i32, ptr %260, align 4, !tbaa !5
  %535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %526, ptr noundef nonnull %.str.5.sink1854, i32 noundef %527, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %529, ptr noundef %531, ptr noundef %533, i32 noundef %534) #14
  call void @exit(i32 noundef 1) #15
  unreachable

536:                                              ; preds = %506
  %537 = load i32, ptr @test_count, align 4, !tbaa !5
  %538 = add nsw i32 %537, 1
  store i32 %538, ptr @test_count, align 4, !tbaa !5
  %539 = load i32, ptr %206, align 4, !tbaa !5
  %540 = icmp eq i32 %539, 335544385
  br i1 %540, label %563, label %541

541:                                              ; preds = %536
  %542 = load i32, ptr %260, align 4, !tbaa !5
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = call i32 @s2n_print_stacktrace(ptr noundef %543) #12
  %545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %546 = trunc nuw i8 %545 to i1
  br i1 %546, label %547, label %551

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

551:                                              ; preds = %547, %541
  br label %552

552:                                              ; preds = %547, %551
  %.str.5.sink1863 = phi ptr [ @.str.5, %551 ], [ @.str.2, %547 ]
  store i32 %542, ptr %260, align 4, !tbaa !5
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = load i32, ptr %206, align 4, !tbaa !5
  %556 = call ptr @s2n_strerror(i32 noundef %555, ptr noundef nonnull @.str.4) #12
  %557 = load i32, ptr %206, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror_debug(i32 noundef %557, ptr noundef nonnull @.str.4) #12
  %559 = load i32, ptr %260, align 4, !tbaa !5
  %560 = call ptr @strerror(i32 noundef %559) #12
  %561 = load i32, ptr %260, align 4, !tbaa !5
  %562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %553, ptr noundef nonnull %.str.5.sink1863, i32 noundef %554, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %556, ptr noundef %558, ptr noundef %560, i32 noundef %561) #14
  call void @exit(i32 noundef 1) #15
  unreachable

563:                                              ; preds = %536
  %564 = add nsw i32 %537, 2
  store i32 %564, ptr @test_count, align 4, !tbaa !5
  %565 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %566 = icmp eq ptr %565, null
  br i1 %566, label %567, label %589

567:                                              ; preds = %563
  %568 = load i32, ptr %260, align 4, !tbaa !5
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = call i32 @s2n_print_stacktrace(ptr noundef %569) #12
  %571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %572 = trunc nuw i8 %571 to i1
  br i1 %572, label %573, label %577

573:                                              ; preds = %567
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = call i32 @fileno(ptr noundef %574) #12
  %576 = call i32 @isatty(i32 noundef %575) #12
  %.not1650 = icmp eq i32 %576, 0
  br i1 %.not1650, label %577, label %578

577:                                              ; preds = %573, %567
  br label %578

578:                                              ; preds = %573, %577
  %.str.5.sink1872 = phi ptr [ @.str.5, %577 ], [ @.str.2, %573 ]
  store i32 %568, ptr %260, align 4, !tbaa !5
  %579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %580 = load i32, ptr @test_count, align 4, !tbaa !5
  %581 = load i32, ptr %206, align 4, !tbaa !5
  %582 = call ptr @s2n_strerror(i32 noundef %581, ptr noundef nonnull @.str.4) #12
  %583 = load i32, ptr %206, align 4, !tbaa !5
  %584 = call ptr @s2n_strerror_debug(i32 noundef %583, ptr noundef nonnull @.str.4) #12
  %585 = load i32, ptr %260, align 4, !tbaa !5
  %586 = call ptr @strerror(i32 noundef %585) #12
  %587 = load i32, ptr %260, align 4, !tbaa !5
  %588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %579, ptr noundef nonnull %.str.5.sink1872, i32 noundef %580, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %582, ptr noundef %584, ptr noundef %586, i32 noundef %587) #14
  call void @exit(i32 noundef 1) #15
  unreachable

589:                                              ; preds = %563
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %590 = load ptr, ptr %4, align 8, !tbaa !9
  %591 = getelementptr inbounds i8, ptr %590, i64 8
  %592 = load ptr, ptr %591, align 8, !tbaa !43
  %593 = load ptr, ptr %592, align 8, !tbaa !9
  %594 = getelementptr inbounds i8, ptr %263, i64 704
  store ptr %593, ptr %594, align 8, !tbaa !45
  %595 = load i32, ptr @test_count, align 4, !tbaa !5
  %596 = add nsw i32 %595, 1
  store i32 %596, ptr @test_count, align 4, !tbaa !5
  %597 = call i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef nonnull %263) #12
  %598 = icmp eq i32 %597, -1
  br i1 %598, label %621, label %599

599:                                              ; preds = %589
  %600 = load i32, ptr %260, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = call i32 @s2n_print_stacktrace(ptr noundef %601) #12
  %603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %604 = trunc nuw i8 %603 to i1
  br i1 %604, label %605, label %609

605:                                              ; preds = %599
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = call i32 @fileno(ptr noundef %606) #12
  %608 = call i32 @isatty(i32 noundef %607) #12
  %.not1274 = icmp eq i32 %608, 0
  br i1 %.not1274, label %609, label %610

609:                                              ; preds = %605, %599
  br label %610

610:                                              ; preds = %605, %609
  %.str.5.sink1881 = phi ptr [ @.str.5, %609 ], [ @.str.2, %605 ]
  store i32 %600, ptr %260, align 4, !tbaa !5
  %611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = load i32, ptr %206, align 4, !tbaa !5
  %614 = call ptr @s2n_strerror(i32 noundef %613, ptr noundef nonnull @.str.4) #12
  %615 = load i32, ptr %206, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror_debug(i32 noundef %615, ptr noundef nonnull @.str.4) #12
  %617 = load i32, ptr %260, align 4, !tbaa !5
  %618 = call ptr @strerror(i32 noundef %617) #12
  %619 = load i32, ptr %260, align 4, !tbaa !5
  %620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %611, ptr noundef nonnull %.str.5.sink1881, i32 noundef %612, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %614, ptr noundef %616, ptr noundef %618, i32 noundef %619) #14
  call void @exit(i32 noundef 1) #15
  unreachable

621:                                              ; preds = %589
  %622 = load i32, ptr @test_count, align 4, !tbaa !5
  %623 = add nsw i32 %622, 1
  store i32 %623, ptr @test_count, align 4, !tbaa !5
  %624 = load i32, ptr %206, align 4, !tbaa !5
  %625 = icmp eq i32 %624, 335544385
  br i1 %625, label %648, label %626

626:                                              ; preds = %621
  %627 = load i32, ptr %260, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @s2n_print_stacktrace(ptr noundef %628) #12
  %630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %631 = trunc nuw i8 %630 to i1
  br i1 %631, label %632, label %636

632:                                              ; preds = %626
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = call i32 @fileno(ptr noundef %633) #12
  %635 = call i32 @isatty(i32 noundef %634) #12
  %.not1275 = icmp eq i32 %635, 0
  br i1 %.not1275, label %636, label %637

636:                                              ; preds = %632, %626
  br label %637

637:                                              ; preds = %632, %636
  %.str.5.sink1890 = phi ptr [ @.str.5, %636 ], [ @.str.2, %632 ]
  store i32 %627, ptr %260, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = load i32, ptr %206, align 4, !tbaa !5
  %641 = call ptr @s2n_strerror(i32 noundef %640, ptr noundef nonnull @.str.4) #12
  %642 = load i32, ptr %206, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror_debug(i32 noundef %642, ptr noundef nonnull @.str.4) #12
  %644 = load i32, ptr %260, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #12
  %646 = load i32, ptr %260, align 4, !tbaa !5
  %647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef nonnull %.str.5.sink1890, i32 noundef %639, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %641, ptr noundef %643, ptr noundef %645, i32 noundef %646) #14
  call void @exit(i32 noundef 1) #15
  unreachable

648:                                              ; preds = %621
  %649 = add nsw i32 %622, 2
  store i32 %649, ptr @test_count, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %651 = icmp eq ptr %650, null
  br i1 %651, label %652, label %674

652:                                              ; preds = %648
  %653 = load i32, ptr %260, align 4, !tbaa !5
  %654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %655 = call i32 @s2n_print_stacktrace(ptr noundef %654) #12
  %656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %657 = trunc nuw i8 %656 to i1
  br i1 %657, label %658, label %662

658:                                              ; preds = %652
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = call i32 @fileno(ptr noundef %659) #12
  %661 = call i32 @isatty(i32 noundef %660) #12
  %.not1649 = icmp eq i32 %661, 0
  br i1 %.not1649, label %662, label %663

662:                                              ; preds = %658, %652
  br label %663

663:                                              ; preds = %658, %662
  %.str.5.sink1899 = phi ptr [ @.str.5, %662 ], [ @.str.2, %658 ]
  store i32 %653, ptr %260, align 4, !tbaa !5
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = load i32, ptr @test_count, align 4, !tbaa !5
  %666 = load i32, ptr %206, align 4, !tbaa !5
  %667 = call ptr @s2n_strerror(i32 noundef %666, ptr noundef nonnull @.str.4) #12
  %668 = load i32, ptr %206, align 4, !tbaa !5
  %669 = call ptr @s2n_strerror_debug(i32 noundef %668, ptr noundef nonnull @.str.4) #12
  %670 = load i32, ptr %260, align 4, !tbaa !5
  %671 = call ptr @strerror(i32 noundef %670) #12
  %672 = load i32, ptr %260, align 4, !tbaa !5
  %673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %664, ptr noundef nonnull %.str.5.sink1899, i32 noundef %665, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %667, ptr noundef %669, ptr noundef %671, i32 noundef %672) #14
  call void @exit(i32 noundef 1) #15
  unreachable

674:                                              ; preds = %648
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = add nsw i32 %675, 1
  store i32 %676, ptr @test_count, align 4, !tbaa !5
  %677 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %594) #12
  %678 = icmp eq i32 %677, -1
  br i1 %678, label %679, label %701

679:                                              ; preds = %674
  %680 = load i32, ptr %260, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = call i32 @s2n_print_stacktrace(ptr noundef %681) #12
  %683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %684 = trunc nuw i8 %683 to i1
  br i1 %684, label %685, label %689

685:                                              ; preds = %679
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = call i32 @fileno(ptr noundef %686) #12
  %688 = call i32 @isatty(i32 noundef %687) #12
  %.not1648 = icmp eq i32 %688, 0
  br i1 %.not1648, label %689, label %690

689:                                              ; preds = %685, %679
  br label %690

690:                                              ; preds = %685, %689
  %.str.5.sink1908 = phi ptr [ @.str.5, %689 ], [ @.str.2, %685 ]
  store i32 %680, ptr %260, align 4, !tbaa !5
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = load i32, ptr @test_count, align 4, !tbaa !5
  %693 = load i32, ptr %206, align 4, !tbaa !5
  %694 = call ptr @s2n_strerror(i32 noundef %693, ptr noundef nonnull @.str.4) #12
  %695 = load i32, ptr %206, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror_debug(i32 noundef %695, ptr noundef nonnull @.str.4) #12
  %697 = load i32, ptr %260, align 4, !tbaa !5
  %698 = call ptr @strerror(i32 noundef %697) #12
  %699 = load i32, ptr %260, align 4, !tbaa !5
  %700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %691, ptr noundef nonnull %.str.5.sink1908, i32 noundef %692, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %694, ptr noundef %696, ptr noundef %698, i32 noundef %699) #14
  call void @exit(i32 noundef 1) #15
  unreachable

701:                                              ; preds = %674
  %702 = load i32, ptr @test_count, align 4, !tbaa !5
  %703 = add nsw i32 %702, 1
  store i32 %703, ptr @test_count, align 4, !tbaa !5
  %704 = call i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef nonnull %263) #12
  %705 = icmp eq i32 %704, -1
  br i1 %705, label %706, label %728

706:                                              ; preds = %701
  %707 = load i32, ptr %260, align 4, !tbaa !5
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = call i32 @s2n_print_stacktrace(ptr noundef %708) #12
  %710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %711 = trunc nuw i8 %710 to i1
  br i1 %711, label %712, label %716

712:                                              ; preds = %706
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = call i32 @fileno(ptr noundef %713) #12
  %715 = call i32 @isatty(i32 noundef %714) #12
  %.not1647 = icmp eq i32 %715, 0
  br i1 %.not1647, label %716, label %717

716:                                              ; preds = %712, %706
  br label %717

717:                                              ; preds = %712, %716
  %.str.5.sink1917 = phi ptr [ @.str.5, %716 ], [ @.str.2, %712 ]
  store i32 %707, ptr %260, align 4, !tbaa !5
  %718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %719 = load i32, ptr @test_count, align 4, !tbaa !5
  %720 = load i32, ptr %206, align 4, !tbaa !5
  %721 = call ptr @s2n_strerror(i32 noundef %720, ptr noundef nonnull @.str.4) #12
  %722 = load i32, ptr %206, align 4, !tbaa !5
  %723 = call ptr @s2n_strerror_debug(i32 noundef %722, ptr noundef nonnull @.str.4) #12
  %724 = load i32, ptr %260, align 4, !tbaa !5
  %725 = call ptr @strerror(i32 noundef %724) #12
  %726 = load i32, ptr %260, align 4, !tbaa !5
  %727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %718, ptr noundef nonnull %.str.5.sink1917, i32 noundef %719, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %721, ptr noundef %723, ptr noundef %725, i32 noundef %726) #14
  call void @exit(i32 noundef 1) #15
  unreachable

728:                                              ; preds = %701
  %729 = load i32, ptr @test_count, align 4, !tbaa !5
  %730 = add nsw i32 %729, 1
  store i32 %730, ptr @test_count, align 4, !tbaa !5
  %731 = call i32 @s2n_connection_free(ptr noundef nonnull %263) #12
  %732 = icmp eq i32 %731, -1
  br i1 %732, label %733, label %755

733:                                              ; preds = %728
  %734 = load i32, ptr %260, align 4, !tbaa !5
  %735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %736 = call i32 @s2n_print_stacktrace(ptr noundef %735) #12
  %737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %738 = trunc nuw i8 %737 to i1
  br i1 %738, label %739, label %743

739:                                              ; preds = %733
  %740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %741 = call i32 @fileno(ptr noundef %740) #12
  %742 = call i32 @isatty(i32 noundef %741) #12
  %.not1646 = icmp eq i32 %742, 0
  br i1 %.not1646, label %743, label %744

743:                                              ; preds = %739, %733
  br label %744

744:                                              ; preds = %739, %743
  %.str.5.sink1926 = phi ptr [ @.str.5, %743 ], [ @.str.2, %739 ]
  store i32 %734, ptr %260, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = load i32, ptr @test_count, align 4, !tbaa !5
  %747 = load i32, ptr %206, align 4, !tbaa !5
  %748 = call ptr @s2n_strerror(i32 noundef %747, ptr noundef nonnull @.str.4) #12
  %749 = load i32, ptr %206, align 4, !tbaa !5
  %750 = call ptr @s2n_strerror_debug(i32 noundef %749, ptr noundef nonnull @.str.4) #12
  %751 = load i32, ptr %260, align 4, !tbaa !5
  %752 = call ptr @strerror(i32 noundef %751) #12
  %753 = load i32, ptr %260, align 4, !tbaa !5
  %754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %745, ptr noundef nonnull %.str.5.sink1926, i32 noundef %746, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %748, ptr noundef %750, ptr noundef %752, i32 noundef %753) #14
  call void @exit(i32 noundef 1) #15
  unreachable

755:                                              ; preds = %728
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %3) #12
  %756 = load i32, ptr @test_count, align 4, !tbaa !5
  %757 = add nsw i32 %756, 1
  store i32 %757, ptr @test_count, align 4, !tbaa !5
  %758 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %759 = icmp eq ptr %758, null
  br i1 %759, label %760, label %782

760:                                              ; preds = %755
  %761 = load i32, ptr %260, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = call i32 @s2n_print_stacktrace(ptr noundef %762) #12
  %764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %765 = trunc nuw i8 %764 to i1
  br i1 %765, label %766, label %770

766:                                              ; preds = %760
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = call i32 @fileno(ptr noundef %767) #12
  %769 = call i32 @isatty(i32 noundef %768) #12
  %.not1645 = icmp eq i32 %769, 0
  br i1 %.not1645, label %770, label %771

770:                                              ; preds = %766, %760
  br label %771

771:                                              ; preds = %766, %770
  %.str.5.sink1935 = phi ptr [ @.str.5, %770 ], [ @.str.2, %766 ]
  store i32 %761, ptr %260, align 4, !tbaa !5
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = load i32, ptr %206, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror(i32 noundef %774, ptr noundef nonnull @.str.4) #12
  %776 = load i32, ptr %206, align 4, !tbaa !5
  %777 = call ptr @s2n_strerror_debug(i32 noundef %776, ptr noundef nonnull @.str.4) #12
  %778 = load i32, ptr %260, align 4, !tbaa !5
  %779 = call ptr @strerror(i32 noundef %778) #12
  %780 = load i32, ptr %260, align 4, !tbaa !5
  %781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %772, ptr noundef nonnull %.str.5.sink1935, i32 noundef %773, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %775, ptr noundef %777, ptr noundef %779, i32 noundef %780) #14
  call void @exit(i32 noundef 1) #15
  unreachable

782:                                              ; preds = %755
  %783 = load i32, ptr @test_count, align 4, !tbaa !5
  %784 = add nsw i32 %783, 1
  store i32 %784, ptr @test_count, align 4, !tbaa !5
  %785 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef nonnull %758) #12
  %786 = icmp eq i32 %785, 0
  br i1 %786, label %809, label %787

787:                                              ; preds = %782
  %788 = load i32, ptr %260, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = call i32 @s2n_print_stacktrace(ptr noundef %789) #12
  %791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %792 = trunc nuw i8 %791 to i1
  br i1 %792, label %793, label %797

793:                                              ; preds = %787
  %794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %795 = call i32 @fileno(ptr noundef %794) #12
  %796 = call i32 @isatty(i32 noundef %795) #12
  %.not1276 = icmp eq i32 %796, 0
  br i1 %.not1276, label %797, label %798

797:                                              ; preds = %793, %787
  br label %798

798:                                              ; preds = %793, %797
  %.str.5.sink1944 = phi ptr [ @.str.5, %797 ], [ @.str.2, %793 ]
  store i32 %788, ptr %260, align 4, !tbaa !5
  %799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = load i32, ptr @test_count, align 4, !tbaa !5
  %801 = load i32, ptr %206, align 4, !tbaa !5
  %802 = call ptr @s2n_strerror(i32 noundef %801, ptr noundef nonnull @.str.4) #12
  %803 = load i32, ptr %206, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror_debug(i32 noundef %803, ptr noundef nonnull @.str.4) #12
  %805 = load i32, ptr %260, align 4, !tbaa !5
  %806 = call ptr @strerror(i32 noundef %805) #12
  %807 = load i32, ptr %260, align 4, !tbaa !5
  %808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %799, ptr noundef nonnull %.str.5.sink1944, i32 noundef %800, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %802, ptr noundef %804, ptr noundef %806, i32 noundef %807) #14
  call void @exit(i32 noundef 1) #15
  unreachable

809:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #12
  store ptr null, ptr %5, align 8, !tbaa !9
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %811 = add nsw i32 %810, 1
  store i32 %811, ptr @test_count, align 4, !tbaa !5
  %812 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %758, ptr noundef nonnull %5) #12
  %813 = icmp eq i32 %812, -1
  br i1 %813, label %814, label %836

814:                                              ; preds = %809
  %815 = load i32, ptr %260, align 4, !tbaa !5
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = call i32 @s2n_print_stacktrace(ptr noundef %816) #12
  %818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %819 = trunc nuw i8 %818 to i1
  br i1 %819, label %820, label %824

820:                                              ; preds = %814
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = call i32 @fileno(ptr noundef %821) #12
  %823 = call i32 @isatty(i32 noundef %822) #12
  %.not1644 = icmp eq i32 %823, 0
  br i1 %.not1644, label %824, label %825

824:                                              ; preds = %820, %814
  br label %825

825:                                              ; preds = %820, %824
  %.str.5.sink1953 = phi ptr [ @.str.5, %824 ], [ @.str.2, %820 ]
  store i32 %815, ptr %260, align 4, !tbaa !5
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = load i32, ptr @test_count, align 4, !tbaa !5
  %828 = load i32, ptr %206, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror(i32 noundef %828, ptr noundef nonnull @.str.4) #12
  %830 = load i32, ptr %206, align 4, !tbaa !5
  %831 = call ptr @s2n_strerror_debug(i32 noundef %830, ptr noundef nonnull @.str.4) #12
  %832 = load i32, ptr %260, align 4, !tbaa !5
  %833 = call ptr @strerror(i32 noundef %832) #12
  %834 = load i32, ptr %260, align 4, !tbaa !5
  %835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %826, ptr noundef nonnull %.str.5.sink1953, i32 noundef %827, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %829, ptr noundef %831, ptr noundef %833, i32 noundef %834) #14
  call void @exit(i32 noundef 1) #15
  unreachable

836:                                              ; preds = %809
  %837 = load i32, ptr @test_count, align 4, !tbaa !5
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr @test_count, align 4, !tbaa !5
  %839 = load ptr, ptr %5, align 8, !tbaa !9
  %840 = icmp eq ptr %839, null
  br i1 %840, label %841, label %863

841:                                              ; preds = %836
  %842 = load i32, ptr %260, align 4, !tbaa !5
  %843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %844 = call i32 @s2n_print_stacktrace(ptr noundef %843) #12
  %845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %846 = trunc nuw i8 %845 to i1
  br i1 %846, label %847, label %851

847:                                              ; preds = %841
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = call i32 @fileno(ptr noundef %848) #12
  %850 = call i32 @isatty(i32 noundef %849) #12
  %.not1643 = icmp eq i32 %850, 0
  br i1 %.not1643, label %851, label %852

851:                                              ; preds = %847, %841
  br label %852

852:                                              ; preds = %847, %851
  %.str.5.sink1962 = phi ptr [ @.str.5, %851 ], [ @.str.2, %847 ]
  store i32 %842, ptr %260, align 4, !tbaa !5
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = load i32, ptr %206, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror(i32 noundef %855, ptr noundef nonnull @.str.4) #12
  %857 = load i32, ptr %206, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror_debug(i32 noundef %857, ptr noundef nonnull @.str.4) #12
  %859 = load i32, ptr %260, align 4, !tbaa !5
  %860 = call ptr @strerror(i32 noundef %859) #12
  %861 = load i32, ptr %260, align 4, !tbaa !5
  %862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef nonnull %.str.5.sink1962, i32 noundef %854, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %856, ptr noundef %858, ptr noundef %860, i32 noundef %861) #14
  call void @exit(i32 noundef 1) #15
  unreachable

863:                                              ; preds = %836
  %864 = getelementptr inbounds i8, ptr %839, i64 8
  %865 = load ptr, ptr %864, align 8, !tbaa !43
  %866 = load ptr, ptr %865, align 8, !tbaa !9
  %867 = getelementptr inbounds i8, ptr %758, i64 656
  store ptr %866, ptr %867, align 8, !tbaa !42
  %868 = add nsw i32 %837, 2
  store i32 %868, ptr @test_count, align 4, !tbaa !5
  %869 = getelementptr inbounds i8, ptr %866, i64 16
  %870 = load i8, ptr %869, align 8, !tbaa !46
  %871 = zext i8 %870 to i32
  %872 = add nuw nsw i32 %871, 8
  %873 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef nonnull %758) #12
  %874 = icmp eq i32 %872, %873
  br i1 %874, label %897, label %875

875:                                              ; preds = %863
  %876 = load i32, ptr %260, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @s2n_print_stacktrace(ptr noundef %877) #12
  %879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %880 = trunc nuw i8 %879 to i1
  br i1 %880, label %881, label %885

881:                                              ; preds = %875
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = call i32 @fileno(ptr noundef %882) #12
  %884 = call i32 @isatty(i32 noundef %883) #12
  %.not1277 = icmp eq i32 %884, 0
  br i1 %.not1277, label %885, label %886

885:                                              ; preds = %881, %875
  br label %886

886:                                              ; preds = %881, %885
  %.str.5.sink1971 = phi ptr [ @.str.5, %885 ], [ @.str.2, %881 ]
  store i32 %876, ptr %260, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = load i32, ptr @test_count, align 4, !tbaa !5
  %889 = load i32, ptr %206, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror(i32 noundef %889, ptr noundef nonnull @.str.4) #12
  %891 = load i32, ptr %206, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror_debug(i32 noundef %891, ptr noundef nonnull @.str.4) #12
  %893 = load i32, ptr %260, align 4, !tbaa !5
  %894 = call ptr @strerror(i32 noundef %893) #12
  %895 = load i32, ptr %260, align 4, !tbaa !5
  %896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %887, ptr noundef nonnull %.str.5.sink1971, i32 noundef %888, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %890, ptr noundef %892, ptr noundef %894, i32 noundef %895) #14
  call void @exit(i32 noundef 1) #15
  unreachable

897:                                              ; preds = %863
  %898 = load ptr, ptr %5, align 8, !tbaa !9
  %899 = getelementptr inbounds i8, ptr %898, i64 8
  %900 = load ptr, ptr %899, align 8, !tbaa !43
  %901 = getelementptr inbounds i8, ptr %900, i64 8
  %902 = load ptr, ptr %901, align 8, !tbaa !9
  store ptr %902, ptr %867, align 8, !tbaa !42
  %903 = load i32, ptr @test_count, align 4, !tbaa !5
  %904 = add nsw i32 %903, 1
  store i32 %904, ptr @test_count, align 4, !tbaa !5
  %905 = getelementptr inbounds i8, ptr %902, i64 16
  %906 = load i8, ptr %905, align 8, !tbaa !46
  %907 = zext i8 %906 to i32
  %908 = add nuw nsw i32 %907, 8
  %909 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef nonnull %758) #12
  %910 = icmp eq i32 %908, %909
  br i1 %910, label %933, label %911

911:                                              ; preds = %897
  %912 = load i32, ptr %260, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = call i32 @s2n_print_stacktrace(ptr noundef %913) #12
  %915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %916 = trunc nuw i8 %915 to i1
  br i1 %916, label %917, label %921

917:                                              ; preds = %911
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = call i32 @fileno(ptr noundef %918) #12
  %920 = call i32 @isatty(i32 noundef %919) #12
  %.not1278 = icmp eq i32 %920, 0
  br i1 %.not1278, label %921, label %922

921:                                              ; preds = %917, %911
  br label %922

922:                                              ; preds = %917, %921
  %.str.5.sink1980 = phi ptr [ @.str.5, %921 ], [ @.str.2, %917 ]
  store i32 %912, ptr %260, align 4, !tbaa !5
  %923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %924 = load i32, ptr @test_count, align 4, !tbaa !5
  %925 = load i32, ptr %206, align 4, !tbaa !5
  %926 = call ptr @s2n_strerror(i32 noundef %925, ptr noundef nonnull @.str.4) #12
  %927 = load i32, ptr %206, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror_debug(i32 noundef %927, ptr noundef nonnull @.str.4) #12
  %929 = load i32, ptr %260, align 4, !tbaa !5
  %930 = call ptr @strerror(i32 noundef %929) #12
  %931 = load i32, ptr %260, align 4, !tbaa !5
  %932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %923, ptr noundef nonnull %.str.5.sink1980, i32 noundef %924, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %926, ptr noundef %928, ptr noundef %930, i32 noundef %931) #14
  call void @exit(i32 noundef 1) #15
  unreachable

933:                                              ; preds = %897
  store ptr null, ptr %867, align 8, !tbaa !42
  %934 = load i32, ptr @test_count, align 4, !tbaa !5
  %935 = add nsw i32 %934, 1
  store i32 %935, ptr @test_count, align 4, !tbaa !5
  %936 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef nonnull %758) #12
  %937 = icmp eq i32 %936, 0
  br i1 %937, label %960, label %938

938:                                              ; preds = %933
  %939 = load i32, ptr %260, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = call i32 @s2n_print_stacktrace(ptr noundef %940) #12
  %942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %943 = trunc nuw i8 %942 to i1
  br i1 %943, label %944, label %948

944:                                              ; preds = %938
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @fileno(ptr noundef %945) #12
  %947 = call i32 @isatty(i32 noundef %946) #12
  %.not1279 = icmp eq i32 %947, 0
  br i1 %.not1279, label %948, label %949

948:                                              ; preds = %944, %938
  br label %949

949:                                              ; preds = %944, %948
  %.str.5.sink1989 = phi ptr [ @.str.5, %948 ], [ @.str.2, %944 ]
  store i32 %939, ptr %260, align 4, !tbaa !5
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = load i32, ptr %206, align 4, !tbaa !5
  %953 = call ptr @s2n_strerror(i32 noundef %952, ptr noundef nonnull @.str.4) #12
  %954 = load i32, ptr %206, align 4, !tbaa !5
  %955 = call ptr @s2n_strerror_debug(i32 noundef %954, ptr noundef nonnull @.str.4) #12
  %956 = load i32, ptr %260, align 4, !tbaa !5
  %957 = call ptr @strerror(i32 noundef %956) #12
  %958 = load i32, ptr %260, align 4, !tbaa !5
  %959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %950, ptr noundef nonnull %.str.5.sink1989, i32 noundef %951, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %953, ptr noundef %955, ptr noundef %957, i32 noundef %958) #14
  call void @exit(i32 noundef 1) #15
  unreachable

960:                                              ; preds = %933
  %961 = load i32, ptr @test_count, align 4, !tbaa !5
  %962 = add nsw i32 %961, 1
  store i32 %962, ptr @test_count, align 4, !tbaa !5
  %963 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %758, i8 noundef zeroext 34) #12
  %964 = icmp eq i32 %963, -1
  br i1 %964, label %965, label %987

965:                                              ; preds = %960
  %966 = load i32, ptr %260, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = call i32 @s2n_print_stacktrace(ptr noundef %967) #12
  %969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %970 = trunc nuw i8 %969 to i1
  br i1 %970, label %971, label %975

971:                                              ; preds = %965
  %972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %973 = call i32 @fileno(ptr noundef %972) #12
  %974 = call i32 @isatty(i32 noundef %973) #12
  %.not1642 = icmp eq i32 %974, 0
  br i1 %.not1642, label %975, label %976

975:                                              ; preds = %971, %965
  br label %976

976:                                              ; preds = %971, %975
  %.str.5.sink1998 = phi ptr [ @.str.5, %975 ], [ @.str.2, %971 ]
  store i32 %966, ptr %260, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = load i32, ptr %206, align 4, !tbaa !5
  %980 = call ptr @s2n_strerror(i32 noundef %979, ptr noundef nonnull @.str.4) #12
  %981 = load i32, ptr %206, align 4, !tbaa !5
  %982 = call ptr @s2n_strerror_debug(i32 noundef %981, ptr noundef nonnull @.str.4) #12
  %983 = load i32, ptr %260, align 4, !tbaa !5
  %984 = call ptr @strerror(i32 noundef %983) #12
  %985 = load i32, ptr %260, align 4, !tbaa !5
  %986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %977, ptr noundef nonnull %.str.5.sink1998, i32 noundef %978, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %980, ptr noundef %982, ptr noundef %984, i32 noundef %985) #14
  call void @exit(i32 noundef 1) #15
  unreachable

987:                                              ; preds = %960
  %988 = load i32, ptr @test_count, align 4, !tbaa !5
  %989 = add nsw i32 %988, 1
  store i32 %989, ptr @test_count, align 4, !tbaa !5
  %990 = call i32 @s2n_conn_choose_state_machine(ptr noundef nonnull %758, i8 noundef zeroext 34) #12
  %991 = call zeroext i1 @s2n_result_is_ok(i32 %990)
  br i1 %991, label %1014, label %992

992:                                              ; preds = %987
  %993 = load i32, ptr %260, align 4, !tbaa !5
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = call i32 @s2n_print_stacktrace(ptr noundef %994) #12
  %996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %997 = trunc nuw i8 %996 to i1
  br i1 %997, label %998, label %1002

998:                                              ; preds = %992
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = call i32 @fileno(ptr noundef %999) #12
  %1001 = call i32 @isatty(i32 noundef %1000) #12
  %.not1280 = icmp eq i32 %1001, 0
  br i1 %.not1280, label %1002, label %1003

1002:                                             ; preds = %998, %992
  br label %1003

1003:                                             ; preds = %998, %1002
  %.str.5.sink2007 = phi ptr [ @.str.5, %1002 ], [ @.str.2, %998 ]
  store i32 %993, ptr %260, align 4, !tbaa !5
  %1004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1005 = load i32, ptr @test_count, align 4, !tbaa !5
  %1006 = load i32, ptr %206, align 4, !tbaa !5
  %1007 = call ptr @s2n_strerror(i32 noundef %1006, ptr noundef nonnull @.str.4) #12
  %1008 = load i32, ptr %206, align 4, !tbaa !5
  %1009 = call ptr @s2n_strerror_debug(i32 noundef %1008, ptr noundef nonnull @.str.4) #12
  %1010 = load i32, ptr %260, align 4, !tbaa !5
  %1011 = call ptr @strerror(i32 noundef %1010) #12
  %1012 = load i32, ptr %260, align 4, !tbaa !5
  %1013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1004, ptr noundef nonnull %.str.5.sink2007, i32 noundef %1005, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %1007, ptr noundef %1009, ptr noundef %1011, i32 noundef %1012) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1014:                                             ; preds = %987
  %1015 = load i32, ptr @test_count, align 4, !tbaa !5
  %1016 = add nsw i32 %1015, 1
  store i32 %1016, ptr @test_count, align 4, !tbaa !5
  %1017 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %758) #12
  %1018 = icmp eq i32 %1017, -1
  br i1 %1018, label %1019, label %1041

1019:                                             ; preds = %1014
  %1020 = load i32, ptr %260, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = call i32 @s2n_print_stacktrace(ptr noundef %1021) #12
  %1023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1024 = trunc nuw i8 %1023 to i1
  br i1 %1024, label %1025, label %1029

1025:                                             ; preds = %1019
  %1026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1027 = call i32 @fileno(ptr noundef %1026) #12
  %1028 = call i32 @isatty(i32 noundef %1027) #12
  %.not1641 = icmp eq i32 %1028, 0
  br i1 %.not1641, label %1029, label %1030

1029:                                             ; preds = %1025, %1019
  br label %1030

1030:                                             ; preds = %1025, %1029
  %.str.5.sink2016 = phi ptr [ @.str.5, %1029 ], [ @.str.2, %1025 ]
  store i32 %1020, ptr %260, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = load i32, ptr %206, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror(i32 noundef %1033, ptr noundef nonnull @.str.4) #12
  %1035 = load i32, ptr %206, align 4, !tbaa !5
  %1036 = call ptr @s2n_strerror_debug(i32 noundef %1035, ptr noundef nonnull @.str.4) #12
  %1037 = load i32, ptr %260, align 4, !tbaa !5
  %1038 = call ptr @strerror(i32 noundef %1037) #12
  %1039 = load i32, ptr %260, align 4, !tbaa !5
  %1040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1031, ptr noundef nonnull %.str.5.sink2016, i32 noundef %1032, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %1034, ptr noundef %1036, ptr noundef %1038, i32 noundef %1039) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1041:                                             ; preds = %1014
  %1042 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  store ptr %1042, ptr %867, align 8, !tbaa !42
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr @test_count, align 4, !tbaa !5
  %1045 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef nonnull %758) #12
  %1046 = icmp eq i32 %1045, 6
  br i1 %1046, label %1069, label %1047

1047:                                             ; preds = %1041
  %1048 = load i32, ptr %260, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = call i32 @s2n_print_stacktrace(ptr noundef %1049) #12
  %1051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1052 = trunc nuw i8 %1051 to i1
  br i1 %1052, label %1053, label %1057

1053:                                             ; preds = %1047
  %1054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1055 = call i32 @fileno(ptr noundef %1054) #12
  %1056 = call i32 @isatty(i32 noundef %1055) #12
  %.not1281 = icmp eq i32 %1056, 0
  br i1 %.not1281, label %1057, label %1058

1057:                                             ; preds = %1053, %1047
  br label %1058

1058:                                             ; preds = %1053, %1057
  %.str.5.sink2025 = phi ptr [ @.str.5, %1057 ], [ @.str.2, %1053 ]
  store i32 %1048, ptr %260, align 4, !tbaa !5
  %1059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = load i32, ptr %206, align 4, !tbaa !5
  %1062 = call ptr @s2n_strerror(i32 noundef %1061, ptr noundef nonnull @.str.4) #12
  %1063 = load i32, ptr %206, align 4, !tbaa !5
  %1064 = call ptr @s2n_strerror_debug(i32 noundef %1063, ptr noundef nonnull @.str.4) #12
  %1065 = load i32, ptr %260, align 4, !tbaa !5
  %1066 = call ptr @strerror(i32 noundef %1065) #12
  %1067 = load i32, ptr %260, align 4, !tbaa !5
  %1068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1059, ptr noundef nonnull %.str.5.sink2025, i32 noundef %1060, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %1062, ptr noundef %1064, ptr noundef %1066, i32 noundef %1067) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1069:                                             ; preds = %1041
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = add nsw i32 %1070, 1
  store i32 %1071, ptr @test_count, align 4, !tbaa !5
  %1072 = call i32 @s2n_connection_free(ptr noundef nonnull %758) #12
  %1073 = icmp eq i32 %1072, -1
  br i1 %1073, label %1074, label %1096

1074:                                             ; preds = %1069
  %1075 = load i32, ptr %260, align 4, !tbaa !5
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = call i32 @s2n_print_stacktrace(ptr noundef %1076) #12
  %1078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1079 = trunc nuw i8 %1078 to i1
  br i1 %1079, label %1080, label %1084

1080:                                             ; preds = %1074
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = call i32 @fileno(ptr noundef %1081) #12
  %1083 = call i32 @isatty(i32 noundef %1082) #12
  %.not1640 = icmp eq i32 %1083, 0
  br i1 %.not1640, label %1084, label %1085

1084:                                             ; preds = %1080, %1074
  br label %1085

1085:                                             ; preds = %1080, %1084
  %.str.5.sink2034 = phi ptr [ @.str.5, %1084 ], [ @.str.2, %1080 ]
  store i32 %1075, ptr %260, align 4, !tbaa !5
  %1086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1087 = load i32, ptr @test_count, align 4, !tbaa !5
  %1088 = load i32, ptr %206, align 4, !tbaa !5
  %1089 = call ptr @s2n_strerror(i32 noundef %1088, ptr noundef nonnull @.str.4) #12
  %1090 = load i32, ptr %206, align 4, !tbaa !5
  %1091 = call ptr @s2n_strerror_debug(i32 noundef %1090, ptr noundef nonnull @.str.4) #12
  %1092 = load i32, ptr %260, align 4, !tbaa !5
  %1093 = call ptr @strerror(i32 noundef %1092) #12
  %1094 = load i32, ptr %260, align 4, !tbaa !5
  %1095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1086, ptr noundef nonnull %.str.5.sink2034, i32 noundef %1087, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %1089, ptr noundef %1091, ptr noundef %1093, i32 noundef %1094) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1096:                                             ; preds = %1069
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #12
  %1097 = load i32, ptr @test_count, align 4, !tbaa !5
  %1098 = add nsw i32 %1097, 1
  store i32 %1098, ptr @test_count, align 4, !tbaa !5
  %1099 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %1100 = icmp eq ptr %1099, null
  br i1 %1100, label %1101, label %1123

1101:                                             ; preds = %1096
  %1102 = load i32, ptr %260, align 4, !tbaa !5
  %1103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1104 = call i32 @s2n_print_stacktrace(ptr noundef %1103) #12
  %1105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1106 = trunc nuw i8 %1105 to i1
  br i1 %1106, label %1107, label %1111

1107:                                             ; preds = %1101
  %1108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1109 = call i32 @fileno(ptr noundef %1108) #12
  %1110 = call i32 @isatty(i32 noundef %1109) #12
  %.not1639 = icmp eq i32 %1110, 0
  br i1 %.not1639, label %1111, label %1112

1111:                                             ; preds = %1107, %1101
  br label %1112

1112:                                             ; preds = %1107, %1111
  %.str.5.sink2043 = phi ptr [ @.str.5, %1111 ], [ @.str.2, %1107 ]
  store i32 %1102, ptr %260, align 4, !tbaa !5
  %1113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1114 = load i32, ptr @test_count, align 4, !tbaa !5
  %1115 = load i32, ptr %206, align 4, !tbaa !5
  %1116 = call ptr @s2n_strerror(i32 noundef %1115, ptr noundef nonnull @.str.4) #12
  %1117 = load i32, ptr %206, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror_debug(i32 noundef %1117, ptr noundef nonnull @.str.4) #12
  %1119 = load i32, ptr %260, align 4, !tbaa !5
  %1120 = call ptr @strerror(i32 noundef %1119) #12
  %1121 = load i32, ptr %260, align 4, !tbaa !5
  %1122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1113, ptr noundef nonnull %.str.5.sink2043, i32 noundef %1114, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %1116, ptr noundef %1118, ptr noundef %1120, i32 noundef %1121) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1123:                                             ; preds = %1096
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #12
  store ptr null, ptr %6, align 8, !tbaa !9
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %1125 = add nsw i32 %1124, 1
  store i32 %1125, ptr @test_count, align 4, !tbaa !5
  %1126 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %1099, ptr noundef nonnull %6) #12
  %1127 = icmp eq i32 %1126, -1
  br i1 %1127, label %1128, label %1150

1128:                                             ; preds = %1123
  %1129 = load i32, ptr %260, align 4, !tbaa !5
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = call i32 @s2n_print_stacktrace(ptr noundef %1130) #12
  %1132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1133 = trunc nuw i8 %1132 to i1
  br i1 %1133, label %1134, label %1138

1134:                                             ; preds = %1128
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = call i32 @fileno(ptr noundef %1135) #12
  %1137 = call i32 @isatty(i32 noundef %1136) #12
  %.not1638 = icmp eq i32 %1137, 0
  br i1 %.not1638, label %1138, label %1139

1138:                                             ; preds = %1134, %1128
  br label %1139

1139:                                             ; preds = %1134, %1138
  %.str.5.sink2052 = phi ptr [ @.str.5, %1138 ], [ @.str.2, %1134 ]
  store i32 %1129, ptr %260, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = load i32, ptr @test_count, align 4, !tbaa !5
  %1142 = load i32, ptr %206, align 4, !tbaa !5
  %1143 = call ptr @s2n_strerror(i32 noundef %1142, ptr noundef nonnull @.str.4) #12
  %1144 = load i32, ptr %206, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror_debug(i32 noundef %1144, ptr noundef nonnull @.str.4) #12
  %1146 = load i32, ptr %260, align 4, !tbaa !5
  %1147 = call ptr @strerror(i32 noundef %1146) #12
  %1148 = load i32, ptr %260, align 4, !tbaa !5
  %1149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1140, ptr noundef nonnull %.str.5.sink2052, i32 noundef %1141, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1143, ptr noundef %1145, ptr noundef %1147, i32 noundef %1148) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1150:                                             ; preds = %1123
  %1151 = load i32, ptr @test_count, align 4, !tbaa !5
  %1152 = add nsw i32 %1151, 1
  store i32 %1152, ptr @test_count, align 4, !tbaa !5
  %1153 = load ptr, ptr %6, align 8, !tbaa !9
  %1154 = icmp eq ptr %1153, null
  br i1 %1154, label %1155, label %1177

1155:                                             ; preds = %1150
  %1156 = load i32, ptr %260, align 4, !tbaa !5
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = call i32 @s2n_print_stacktrace(ptr noundef %1157) #12
  %1159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1160 = trunc nuw i8 %1159 to i1
  br i1 %1160, label %1161, label %1165

1161:                                             ; preds = %1155
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = call i32 @fileno(ptr noundef %1162) #12
  %1164 = call i32 @isatty(i32 noundef %1163) #12
  %.not1637 = icmp eq i32 %1164, 0
  br i1 %.not1637, label %1165, label %1166

1165:                                             ; preds = %1161, %1155
  br label %1166

1166:                                             ; preds = %1161, %1165
  %.str.5.sink2061 = phi ptr [ @.str.5, %1165 ], [ @.str.2, %1161 ]
  store i32 %1156, ptr %260, align 4, !tbaa !5
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = load i32, ptr @test_count, align 4, !tbaa !5
  %1169 = load i32, ptr %206, align 4, !tbaa !5
  %1170 = call ptr @s2n_strerror(i32 noundef %1169, ptr noundef nonnull @.str.4) #12
  %1171 = load i32, ptr %206, align 4, !tbaa !5
  %1172 = call ptr @s2n_strerror_debug(i32 noundef %1171, ptr noundef nonnull @.str.4) #12
  %1173 = load i32, ptr %260, align 4, !tbaa !5
  %1174 = call ptr @strerror(i32 noundef %1173) #12
  %1175 = load i32, ptr %260, align 4, !tbaa !5
  %1176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1167, ptr noundef nonnull %.str.5.sink2061, i32 noundef %1168, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %1170, ptr noundef %1172, ptr noundef %1174, i32 noundef %1175) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1177:                                             ; preds = %1150
  %1178 = add nsw i32 %1151, 2
  store i32 %1178, ptr @test_count, align 4, !tbaa !5
  %1179 = getelementptr inbounds i8, ptr %1099, i64 720
  %1180 = load ptr, ptr %1179, align 8, !tbaa !48
  %1181 = icmp eq ptr %1180, null
  br i1 %1181, label %1204, label %1182

1182:                                             ; preds = %1177
  %1183 = load i32, ptr %260, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = call i32 @s2n_print_stacktrace(ptr noundef %1184) #12
  %1186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1187 = trunc nuw i8 %1186 to i1
  br i1 %1187, label %1188, label %1192

1188:                                             ; preds = %1182
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = call i32 @fileno(ptr noundef %1189) #12
  %1191 = call i32 @isatty(i32 noundef %1190) #12
  %.not1282 = icmp eq i32 %1191, 0
  br i1 %.not1282, label %1192, label %1193

1192:                                             ; preds = %1188, %1182
  br label %1193

1193:                                             ; preds = %1188, %1192
  %.str.5.sink2070 = phi ptr [ @.str.5, %1192 ], [ @.str.2, %1188 ]
  store i32 %1183, ptr %260, align 4, !tbaa !5
  %1194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1195 = load i32, ptr @test_count, align 4, !tbaa !5
  %1196 = load i32, ptr %206, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror(i32 noundef %1196, ptr noundef nonnull @.str.4) #12
  %1198 = load i32, ptr %206, align 4, !tbaa !5
  %1199 = call ptr @s2n_strerror_debug(i32 noundef %1198, ptr noundef nonnull @.str.4) #12
  %1200 = load i32, ptr %260, align 4, !tbaa !5
  %1201 = call ptr @strerror(i32 noundef %1200) #12
  %1202 = load i32, ptr %260, align 4, !tbaa !5
  %1203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1194, ptr noundef nonnull %.str.5.sink2070, i32 noundef %1195, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %1197, ptr noundef %1199, ptr noundef %1201, i32 noundef %1202) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1204:                                             ; preds = %1177
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %1205 = add nsw i32 %1151, 3
  store i32 %1205, ptr @test_count, align 4, !tbaa !5
  %1206 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %7, i32 noundef 1024) #12
  %1207 = icmp eq i32 %1206, -1
  br i1 %1207, label %1215, label %.preheader1672

.preheader1672:                                   ; preds = %1204
  %1208 = load ptr, ptr %6, align 8, !tbaa !9
  %1209 = load i8, ptr %1208, align 8, !tbaa !49
  %.not1691 = icmp eq i8 %1209, 0
  br i1 %.not1691, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader1672
  %1210 = getelementptr inbounds i8, ptr %1099, i64 656
  %1211 = getelementptr inbounds i8, ptr %1099, i64 704
  %1212 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_key_share_extension, i64 8), align 8
  %1213 = getelementptr inbounds i8, ptr %7, i64 28
  %1214 = getelementptr inbounds i8, ptr %7, i64 24
  br label %1247

1215:                                             ; preds = %1204
  %1216 = load i32, ptr %260, align 4, !tbaa !5
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = call i32 @s2n_print_stacktrace(ptr noundef %1217) #12
  %1219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1220 = trunc nuw i8 %1219 to i1
  br i1 %1220, label %1221, label %1225

1221:                                             ; preds = %1215
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = call i32 @fileno(ptr noundef %1222) #12
  %1224 = call i32 @isatty(i32 noundef %1223) #12
  %.not1636 = icmp eq i32 %1224, 0
  br i1 %.not1636, label %1225, label %1226

1225:                                             ; preds = %1221, %1215
  br label %1226

1226:                                             ; preds = %1221, %1225
  %.str.5.sink2079 = phi ptr [ @.str.5, %1225 ], [ @.str.2, %1221 ]
  store i32 %1216, ptr %260, align 4, !tbaa !5
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = load i32, ptr @test_count, align 4, !tbaa !5
  %1229 = load i32, ptr %206, align 4, !tbaa !5
  %1230 = call ptr @s2n_strerror(i32 noundef %1229, ptr noundef nonnull @.str.4) #12
  %1231 = load i32, ptr %206, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror_debug(i32 noundef %1231, ptr noundef nonnull @.str.4) #12
  %1233 = load i32, ptr %260, align 4, !tbaa !5
  %1234 = call ptr @strerror(i32 noundef %1233) #12
  %1235 = load i32, ptr %260, align 4, !tbaa !5
  %1236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1227, ptr noundef nonnull %.str.5.sink2079, i32 noundef %1228, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %1230, ptr noundef %1232, ptr noundef %1234, i32 noundef %1235) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1237:                                             ; preds = %1550
  %1238 = add nuw nsw i64 %.01679, 1
  %1239 = load ptr, ptr %6, align 8, !tbaa !9
  %1240 = load i8, ptr %1239, align 8, !tbaa !49
  %1241 = zext i8 %1240 to i64
  %1242 = icmp ult i64 %1238, %1241
  br i1 %1242, label %1247, label %._crit_edge, !llvm.loop !50

._crit_edge:                                      ; preds = %1237, %.preheader1672
  %1243 = load i32, ptr @test_count, align 4, !tbaa !5
  %1244 = add nsw i32 %1243, 1
  store i32 %1244, ptr @test_count, align 4, !tbaa !5
  %1245 = call i32 @s2n_connection_free(ptr noundef nonnull %1099) #12
  %1246 = icmp eq i32 %1245, -1
  br i1 %1246, label %1577, label %1599

1247:                                             ; preds = %.lr.ph, %1237
  %1248 = phi ptr [ %1208, %.lr.ph ], [ %1239, %1237 ]
  %.01679 = phi i64 [ 0, %.lr.ph ], [ %1238, %1237 ]
  %1249 = getelementptr inbounds i8, ptr %1248, i64 8
  %1250 = load ptr, ptr %1249, align 8, !tbaa !43
  %1251 = getelementptr inbounds ptr, ptr %1250, i64 %.01679
  %1252 = load ptr, ptr %1251, align 8, !tbaa !9
  store ptr %1252, ptr %1210, align 8, !tbaa !42
  store ptr %1252, ptr %1211, align 8, !tbaa !45
  %1253 = load i32, ptr @test_count, align 4, !tbaa !5
  %1254 = add nsw i32 %1253, 1
  store i32 %1254, ptr @test_count, align 4, !tbaa !5
  %1255 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %1211) #12
  %1256 = icmp eq i32 %1255, -1
  br i1 %1256, label %1257, label %1279

1257:                                             ; preds = %1247
  %1258 = load i32, ptr %260, align 4, !tbaa !5
  %1259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1260 = call i32 @s2n_print_stacktrace(ptr noundef %1259) #12
  %1261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1262 = trunc nuw i8 %1261 to i1
  br i1 %1262, label %1263, label %1267

1263:                                             ; preds = %1257
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = call i32 @fileno(ptr noundef %1264) #12
  %1266 = call i32 @isatty(i32 noundef %1265) #12
  %.not1635 = icmp eq i32 %1266, 0
  br i1 %.not1635, label %1267, label %1268

1267:                                             ; preds = %1263, %1257
  br label %1268

1268:                                             ; preds = %1263, %1267
  %.str.5.sink2088 = phi ptr [ @.str.5, %1267 ], [ @.str.2, %1263 ]
  store i32 %1258, ptr %260, align 4, !tbaa !5
  %1269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1270 = load i32, ptr @test_count, align 4, !tbaa !5
  %1271 = load i32, ptr %206, align 4, !tbaa !5
  %1272 = call ptr @s2n_strerror(i32 noundef %1271, ptr noundef nonnull @.str.4) #12
  %1273 = load i32, ptr %206, align 4, !tbaa !5
  %1274 = call ptr @s2n_strerror_debug(i32 noundef %1273, ptr noundef nonnull @.str.4) #12
  %1275 = load i32, ptr %260, align 4, !tbaa !5
  %1276 = call ptr @strerror(i32 noundef %1275) #12
  %1277 = load i32, ptr %260, align 4, !tbaa !5
  %1278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1269, ptr noundef nonnull %.str.5.sink2088, i32 noundef %1270, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1272, ptr noundef %1274, ptr noundef %1276, i32 noundef %1277) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1279:                                             ; preds = %1247
  %1280 = load i32, ptr @test_count, align 4, !tbaa !5
  %1281 = add nsw i32 %1280, 1
  store i32 %1281, ptr @test_count, align 4, !tbaa !5
  %1282 = call i32 %1212(ptr noundef nonnull %1099, ptr noundef nonnull %7) #12
  %1283 = icmp eq i32 %1282, -1
  br i1 %1283, label %1284, label %1306

1284:                                             ; preds = %1279
  %1285 = load i32, ptr %260, align 4, !tbaa !5
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = call i32 @s2n_print_stacktrace(ptr noundef %1286) #12
  %1288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1289 = trunc nuw i8 %1288 to i1
  br i1 %1289, label %1290, label %1294

1290:                                             ; preds = %1284
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = call i32 @fileno(ptr noundef %1291) #12
  %1293 = call i32 @isatty(i32 noundef %1292) #12
  %.not1634 = icmp eq i32 %1293, 0
  br i1 %.not1634, label %1294, label %1295

1294:                                             ; preds = %1290, %1284
  br label %1295

1295:                                             ; preds = %1290, %1294
  %.str.5.sink2097 = phi ptr [ @.str.5, %1294 ], [ @.str.2, %1290 ]
  store i32 %1285, ptr %260, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = load i32, ptr %206, align 4, !tbaa !5
  %1299 = call ptr @s2n_strerror(i32 noundef %1298, ptr noundef nonnull @.str.4) #12
  %1300 = load i32, ptr %206, align 4, !tbaa !5
  %1301 = call ptr @s2n_strerror_debug(i32 noundef %1300, ptr noundef nonnull @.str.4) #12
  %1302 = load i32, ptr %260, align 4, !tbaa !5
  %1303 = call ptr @strerror(i32 noundef %1302) #12
  %1304 = load i32, ptr %260, align 4, !tbaa !5
  %1305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1296, ptr noundef nonnull %.str.5.sink2097, i32 noundef %1297, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %1299, ptr noundef %1301, ptr noundef %1303, i32 noundef %1304) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1306:                                             ; preds = %1279
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %8) #12
  %1307 = load i32, ptr @test_count, align 4, !tbaa !5
  %1308 = add nsw i32 %1307, 1
  store i32 %1308, ptr @test_count, align 4, !tbaa !5
  %1309 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %7, ptr noundef nonnull %8) #12
  %1310 = icmp eq i32 %1309, -1
  br i1 %1310, label %1311, label %1333

1311:                                             ; preds = %1306
  %1312 = load i32, ptr %260, align 4, !tbaa !5
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = call i32 @s2n_print_stacktrace(ptr noundef %1313) #12
  %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 = %1311
  %1318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1319 = call i32 @fileno(ptr noundef %1318) #12
  %1320 = call i32 @isatty(i32 noundef %1319) #12
  %.not1633 = icmp eq i32 %1320, 0
  br i1 %.not1633, label %1321, label %1322

1321:                                             ; preds = %1317, %1311
  br label %1322

1322:                                             ; preds = %1317, %1321
  %.str.5.sink2106 = phi ptr [ @.str.5, %1321 ], [ @.str.2, %1317 ]
  store i32 %1312, ptr %260, align 4, !tbaa !5
  %1323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1324 = load i32, ptr @test_count, align 4, !tbaa !5
  %1325 = load i32, ptr %206, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror(i32 noundef %1325, ptr noundef nonnull @.str.4) #12
  %1327 = load i32, ptr %206, align 4, !tbaa !5
  %1328 = call ptr @s2n_strerror_debug(i32 noundef %1327, ptr noundef nonnull @.str.4) #12
  %1329 = load i32, ptr %260, align 4, !tbaa !5
  %1330 = call ptr @strerror(i32 noundef %1329) #12
  %1331 = load i32, ptr %260, align 4, !tbaa !5
  %1332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1323, ptr noundef nonnull %.str.5.sink2106, i32 noundef %1324, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1326, ptr noundef %1328, ptr noundef %1330, i32 noundef %1331) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1333:                                             ; preds = %1306
  %1334 = load i32, ptr @test_count, align 4, !tbaa !5
  %1335 = add nsw i32 %1334, 1
  store i32 %1335, ptr @test_count, align 4, !tbaa !5
  %1336 = load i16, ptr %8, align 2, !tbaa !52
  %1337 = load i16, ptr %1252, align 8, !tbaa !53
  %1338 = icmp eq i16 %1336, %1337
  br i1 %1338, label %1361, label %1339

1339:                                             ; preds = %1333
  %1340 = load i32, ptr %260, align 4, !tbaa !5
  %1341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1342 = call i32 @s2n_print_stacktrace(ptr noundef %1341) #12
  %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 = %1339
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = call i32 @fileno(ptr noundef %1346) #12
  %1348 = call i32 @isatty(i32 noundef %1347) #12
  %.not1624 = icmp eq i32 %1348, 0
  br i1 %.not1624, label %1349, label %1350

1349:                                             ; preds = %1345, %1339
  br label %1350

1350:                                             ; preds = %1345, %1349
  %.str.5.sink2115 = phi ptr [ @.str.5, %1349 ], [ @.str.2, %1345 ]
  store i32 %1340, ptr %260, align 4, !tbaa !5
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = load i32, ptr @test_count, align 4, !tbaa !5
  %1353 = load i32, ptr %206, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror(i32 noundef %1353, ptr noundef nonnull @.str.4) #12
  %1355 = load i32, ptr %206, align 4, !tbaa !5
  %1356 = call ptr @s2n_strerror_debug(i32 noundef %1355, ptr noundef nonnull @.str.4) #12
  %1357 = load i32, ptr %260, align 4, !tbaa !5
  %1358 = call ptr @strerror(i32 noundef %1357) #12
  %1359 = load i32, ptr %260, align 4, !tbaa !5
  %1360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1351, ptr noundef nonnull %.str.5.sink2115, i32 noundef %1352, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1354, ptr noundef %1356, ptr noundef %1358, i32 noundef %1359) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1361:                                             ; preds = %1333
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %8) #12
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %9) #12
  %1362 = add nsw i32 %1334, 2
  store i32 %1362, ptr @test_count, align 4, !tbaa !5
  %1363 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %7, ptr noundef nonnull %9) #12
  %1364 = icmp eq i32 %1363, -1
  br i1 %1364, label %1365, label %1387

1365:                                             ; preds = %1361
  %1366 = load i32, ptr %260, align 4, !tbaa !5
  %1367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1368 = call i32 @s2n_print_stacktrace(ptr noundef %1367) #12
  %1369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1370 = trunc nuw i8 %1369 to i1
  br i1 %1370, label %1371, label %1375

1371:                                             ; preds = %1365
  %1372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1373 = call i32 @fileno(ptr noundef %1372) #12
  %1374 = call i32 @isatty(i32 noundef %1373) #12
  %.not1632 = icmp eq i32 %1374, 0
  br i1 %.not1632, label %1375, label %1376

1375:                                             ; preds = %1371, %1365
  br label %1376

1376:                                             ; preds = %1371, %1375
  %.str.5.sink2124 = phi ptr [ @.str.5, %1375 ], [ @.str.2, %1371 ]
  store i32 %1366, ptr %260, align 4, !tbaa !5
  %1377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1378 = load i32, ptr @test_count, align 4, !tbaa !5
  %1379 = load i32, ptr %206, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror(i32 noundef %1379, ptr noundef nonnull @.str.4) #12
  %1381 = load i32, ptr %206, align 4, !tbaa !5
  %1382 = call ptr @s2n_strerror_debug(i32 noundef %1381, ptr noundef nonnull @.str.4) #12
  %1383 = load i32, ptr %260, align 4, !tbaa !5
  %1384 = call ptr @strerror(i32 noundef %1383) #12
  %1385 = load i32, ptr %260, align 4, !tbaa !5
  %1386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1377, ptr noundef nonnull %.str.5.sink2124, i32 noundef %1378, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %1380, ptr noundef %1382, ptr noundef %1384, i32 noundef %1385) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1387:                                             ; preds = %1361
  %1388 = load i32, ptr @test_count, align 4, !tbaa !5
  %1389 = add nsw i32 %1388, 1
  store i32 %1389, ptr @test_count, align 4, !tbaa !5
  %1390 = load i16, ptr %9, align 2, !tbaa !52
  %1391 = getelementptr inbounds i8, ptr %1252, i64 16
  %1392 = load i8, ptr %1391, align 8, !tbaa !46
  %1393 = zext i8 %1392 to i16
  %1394 = icmp eq i16 %1390, %1393
  br i1 %1394, label %1417, label %1395

1395:                                             ; preds = %1387
  %1396 = load i32, ptr %260, align 4, !tbaa !5
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = call i32 @s2n_print_stacktrace(ptr noundef %1397) #12
  %1399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1400 = trunc nuw i8 %1399 to i1
  br i1 %1400, label %1401, label %1405

1401:                                             ; preds = %1395
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = call i32 @fileno(ptr noundef %1402) #12
  %1404 = call i32 @isatty(i32 noundef %1403) #12
  %.not1625 = icmp eq i32 %1404, 0
  br i1 %.not1625, label %1405, label %1406

1405:                                             ; preds = %1401, %1395
  br label %1406

1406:                                             ; preds = %1401, %1405
  %.str.5.sink2133 = phi ptr [ @.str.5, %1405 ], [ @.str.2, %1401 ]
  store i32 %1396, ptr %260, align 4, !tbaa !5
  %1407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1408 = load i32, ptr @test_count, align 4, !tbaa !5
  %1409 = load i32, ptr %206, align 4, !tbaa !5
  %1410 = call ptr @s2n_strerror(i32 noundef %1409, ptr noundef nonnull @.str.4) #12
  %1411 = load i32, ptr %206, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror_debug(i32 noundef %1411, ptr noundef nonnull @.str.4) #12
  %1413 = load i32, ptr %260, align 4, !tbaa !5
  %1414 = call ptr @strerror(i32 noundef %1413) #12
  %1415 = load i32, ptr %260, align 4, !tbaa !5
  %1416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1407, ptr noundef nonnull %.str.5.sink2133, i32 noundef %1408, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %1410, ptr noundef %1412, ptr noundef %1414, i32 noundef %1415) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1417:                                             ; preds = %1387
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #12
  %1418 = add nsw i32 %1388, 2
  store i32 %1418, ptr @test_count, align 4, !tbaa !5
  %1419 = zext i8 %1392 to i32
  %1420 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %7, i32 noundef %1419) #12
  %1421 = icmp eq i32 %1420, -1
  br i1 %1421, label %1422, label %1444

1422:                                             ; preds = %1417
  %1423 = load i32, ptr %260, align 4, !tbaa !5
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = call i32 @s2n_print_stacktrace(ptr noundef %1424) #12
  %1426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1427 = trunc nuw i8 %1426 to i1
  br i1 %1427, label %1428, label %1432

1428:                                             ; preds = %1422
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = call i32 @fileno(ptr noundef %1429) #12
  %1431 = call i32 @isatty(i32 noundef %1430) #12
  %.not1631 = icmp eq i32 %1431, 0
  br i1 %.not1631, label %1432, label %1433

1432:                                             ; preds = %1428, %1422
  br label %1433

1433:                                             ; preds = %1428, %1432
  %.str.5.sink2142 = phi ptr [ @.str.5, %1432 ], [ @.str.2, %1428 ]
  store i32 %1423, ptr %260, align 4, !tbaa !5
  %1434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1435 = load i32, ptr @test_count, align 4, !tbaa !5
  %1436 = load i32, ptr %206, align 4, !tbaa !5
  %1437 = call ptr @s2n_strerror(i32 noundef %1436, ptr noundef nonnull @.str.4) #12
  %1438 = load i32, ptr %206, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror_debug(i32 noundef %1438, ptr noundef nonnull @.str.4) #12
  %1440 = load i32, ptr %260, align 4, !tbaa !5
  %1441 = call ptr @strerror(i32 noundef %1440) #12
  %1442 = load i32, ptr %260, align 4, !tbaa !5
  %1443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1434, ptr noundef nonnull %.str.5.sink2142, i32 noundef %1435, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %1437, ptr noundef %1439, ptr noundef %1441, i32 noundef %1442) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1444:                                             ; preds = %1417
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = add nsw i32 %1445, 1
  store i32 %1446, ptr @test_count, align 4, !tbaa !5
  %1447 = load i32, ptr %1213, align 4, !tbaa !54
  %1448 = load i32, ptr %1214, align 8, !tbaa !55
  %1449 = icmp eq i32 %1447, %1448
  br i1 %1449, label %1472, label %1450

1450:                                             ; preds = %1444
  %1451 = load i32, ptr %260, align 4, !tbaa !5
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @s2n_print_stacktrace(ptr noundef %1452) #12
  %1454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1455 = trunc nuw i8 %1454 to i1
  br i1 %1455, label %1456, label %1460

1456:                                             ; preds = %1450
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = call i32 @fileno(ptr noundef %1457) #12
  %1459 = call i32 @isatty(i32 noundef %1458) #12
  %.not1626 = icmp eq i32 %1459, 0
  br i1 %.not1626, label %1460, label %1461

1460:                                             ; preds = %1456, %1450
  br label %1461

1461:                                             ; preds = %1456, %1460
  %.str.5.sink2151 = phi ptr [ @.str.5, %1460 ], [ @.str.2, %1456 ]
  store i32 %1451, ptr %260, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = load i32, ptr %206, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror(i32 noundef %1464, ptr noundef nonnull @.str.4) #12
  %1466 = load i32, ptr %206, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror_debug(i32 noundef %1466, ptr noundef nonnull @.str.4) #12
  %1468 = load i32, ptr %260, align 4, !tbaa !5
  %1469 = call ptr @strerror(i32 noundef %1468) #12
  %1470 = load i32, ptr %260, align 4, !tbaa !5
  %1471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1462, ptr noundef nonnull %.str.5.sink2151, i32 noundef %1463, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %1465, ptr noundef %1467, ptr noundef %1469, i32 noundef %1470) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1472:                                             ; preds = %1444
  %1473 = add nsw i32 %1445, 2
  store i32 %1473, ptr @test_count, align 4, !tbaa !5
  %1474 = load ptr, ptr %1179, align 8, !tbaa !48
  %1475 = icmp eq ptr %1474, null
  br i1 %1475, label %1498, label %1476

1476:                                             ; preds = %1472
  %1477 = load i32, ptr %260, align 4, !tbaa !5
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @s2n_print_stacktrace(ptr noundef %1478) #12
  %1480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1481 = trunc nuw i8 %1480 to i1
  br i1 %1481, label %1482, label %1486

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

1486:                                             ; preds = %1482, %1476
  br label %1487

1487:                                             ; preds = %1482, %1486
  %.str.5.sink2160 = phi ptr [ @.str.5, %1486 ], [ @.str.2, %1482 ]
  store i32 %1477, ptr %260, align 4, !tbaa !5
  %1488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1489 = load i32, ptr @test_count, align 4, !tbaa !5
  %1490 = load i32, ptr %206, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror(i32 noundef %1490, ptr noundef nonnull @.str.4) #12
  %1492 = load i32, ptr %206, align 4, !tbaa !5
  %1493 = call ptr @s2n_strerror_debug(i32 noundef %1492, ptr noundef nonnull @.str.4) #12
  %1494 = load i32, ptr %260, align 4, !tbaa !5
  %1495 = call ptr @strerror(i32 noundef %1494) #12
  %1496 = load i32, ptr %260, align 4, !tbaa !5
  %1497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1488, ptr noundef nonnull %.str.5.sink2160, i32 noundef %1489, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1491, ptr noundef %1493, ptr noundef %1495, i32 noundef %1496) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1498:                                             ; preds = %1472
  %1499 = add nsw i32 %1445, 3
  store i32 %1499, ptr @test_count, align 4, !tbaa !5
  %1500 = load ptr, ptr %1210, align 8, !tbaa !42
  %1501 = icmp eq ptr %1500, %1252
  br i1 %1501, label %1524, label %1502

1502:                                             ; preds = %1498
  %1503 = load i32, ptr %260, align 4, !tbaa !5
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = call i32 @s2n_print_stacktrace(ptr noundef %1504) #12
  %1506 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1507 = trunc nuw i8 %1506 to i1
  br i1 %1507, label %1508, label %1512

1508:                                             ; preds = %1502
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = call i32 @fileno(ptr noundef %1509) #12
  %1511 = call i32 @isatty(i32 noundef %1510) #12
  %.not1628 = icmp eq i32 %1511, 0
  br i1 %.not1628, label %1512, label %1513

1512:                                             ; preds = %1508, %1502
  br label %1513

1513:                                             ; preds = %1508, %1512
  %.str.5.sink2169 = phi ptr [ @.str.5, %1512 ], [ @.str.2, %1508 ]
  store i32 %1503, ptr %260, align 4, !tbaa !5
  %1514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1515 = load i32, ptr @test_count, align 4, !tbaa !5
  %1516 = load i32, ptr %206, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror(i32 noundef %1516, ptr noundef nonnull @.str.4) #12
  %1518 = load i32, ptr %206, align 4, !tbaa !5
  %1519 = call ptr @s2n_strerror_debug(i32 noundef %1518, ptr noundef nonnull @.str.4) #12
  %1520 = load i32, ptr %260, align 4, !tbaa !5
  %1521 = call ptr @strerror(i32 noundef %1520) #12
  %1522 = load i32, ptr %260, align 4, !tbaa !5
  %1523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1514, ptr noundef nonnull %.str.5.sink2169, i32 noundef %1515, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1517, ptr noundef %1519, ptr noundef %1521, i32 noundef %1522) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1524:                                             ; preds = %1498
  %1525 = add nsw i32 %1445, 4
  store i32 %1525, ptr @test_count, align 4, !tbaa !5
  %1526 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %1210) #12
  %1527 = icmp eq i32 %1526, -1
  br i1 %1527, label %1528, label %1550

1528:                                             ; preds = %1524
  %1529 = load i32, ptr %260, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = call i32 @s2n_print_stacktrace(ptr noundef %1530) #12
  %1532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1533 = trunc nuw i8 %1532 to i1
  br i1 %1533, label %1534, label %1538

1534:                                             ; preds = %1528
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @fileno(ptr noundef %1535) #12
  %1537 = call i32 @isatty(i32 noundef %1536) #12
  %.not1630 = icmp eq i32 %1537, 0
  br i1 %.not1630, label %1538, label %1539

1538:                                             ; preds = %1534, %1528
  br label %1539

1539:                                             ; preds = %1534, %1538
  %.str.5.sink2178 = phi ptr [ @.str.5, %1538 ], [ @.str.2, %1534 ]
  store i32 %1529, ptr %260, align 4, !tbaa !5
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = load i32, ptr @test_count, align 4, !tbaa !5
  %1542 = load i32, ptr %206, align 4, !tbaa !5
  %1543 = call ptr @s2n_strerror(i32 noundef %1542, ptr noundef nonnull @.str.4) #12
  %1544 = load i32, ptr %206, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror_debug(i32 noundef %1544, ptr noundef nonnull @.str.4) #12
  %1546 = load i32, ptr %260, align 4, !tbaa !5
  %1547 = call ptr @strerror(i32 noundef %1546) #12
  %1548 = load i32, ptr %260, align 4, !tbaa !5
  %1549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1540, ptr noundef nonnull %.str.5.sink2178, i32 noundef %1541, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %1543, ptr noundef %1545, ptr noundef %1547, i32 noundef %1548) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1550:                                             ; preds = %1524
  %1551 = load i32, ptr @test_count, align 4, !tbaa !5
  %1552 = add nsw i32 %1551, 1
  store i32 %1552, ptr @test_count, align 4, !tbaa !5
  %1553 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %1211) #12
  %1554 = icmp eq i32 %1553, -1
  br i1 %1554, label %1555, label %1237

1555:                                             ; preds = %1550
  %1556 = load i32, ptr %260, align 4, !tbaa !5
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = call i32 @s2n_print_stacktrace(ptr noundef %1557) #12
  %1559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1560 = trunc nuw i8 %1559 to i1
  br i1 %1560, label %1561, label %1565

1561:                                             ; preds = %1555
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = call i32 @fileno(ptr noundef %1562) #12
  %1564 = call i32 @isatty(i32 noundef %1563) #12
  %.not1629 = icmp eq i32 %1564, 0
  br i1 %.not1629, label %1565, label %1566

1565:                                             ; preds = %1561, %1555
  br label %1566

1566:                                             ; preds = %1561, %1565
  %.str.5.sink2187 = phi ptr [ @.str.5, %1565 ], [ @.str.2, %1561 ]
  store i32 %1556, ptr %260, align 4, !tbaa !5
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = load i32, ptr @test_count, align 4, !tbaa !5
  %1569 = load i32, ptr %206, align 4, !tbaa !5
  %1570 = call ptr @s2n_strerror(i32 noundef %1569, ptr noundef nonnull @.str.4) #12
  %1571 = load i32, ptr %206, align 4, !tbaa !5
  %1572 = call ptr @s2n_strerror_debug(i32 noundef %1571, ptr noundef nonnull @.str.4) #12
  %1573 = load i32, ptr %260, align 4, !tbaa !5
  %1574 = call ptr @strerror(i32 noundef %1573) #12
  %1575 = load i32, ptr %260, align 4, !tbaa !5
  %1576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1567, ptr noundef nonnull %.str.5.sink2187, i32 noundef %1568, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %1570, ptr noundef %1572, ptr noundef %1574, i32 noundef %1575) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1577:                                             ; preds = %._crit_edge
  %1578 = load i32, ptr %260, align 4, !tbaa !5
  %1579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1580 = call i32 @s2n_print_stacktrace(ptr noundef %1579) #12
  %1581 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1582 = trunc nuw i8 %1581 to i1
  br i1 %1582, label %1583, label %1587

1583:                                             ; preds = %1577
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = call i32 @fileno(ptr noundef %1584) #12
  %1586 = call i32 @isatty(i32 noundef %1585) #12
  %.not1623 = icmp eq i32 %1586, 0
  br i1 %.not1623, label %1587, label %1588

1587:                                             ; preds = %1583, %1577
  br label %1588

1588:                                             ; preds = %1583, %1587
  %.str.5.sink2196 = phi ptr [ @.str.5, %1587 ], [ @.str.2, %1583 ]
  store i32 %1578, ptr %260, align 4, !tbaa !5
  %1589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1590 = load i32, ptr @test_count, align 4, !tbaa !5
  %1591 = load i32, ptr %206, align 4, !tbaa !5
  %1592 = call ptr @s2n_strerror(i32 noundef %1591, ptr noundef nonnull @.str.4) #12
  %1593 = load i32, ptr %206, align 4, !tbaa !5
  %1594 = call ptr @s2n_strerror_debug(i32 noundef %1593, ptr noundef nonnull @.str.4) #12
  %1595 = load i32, ptr %260, align 4, !tbaa !5
  %1596 = call ptr @strerror(i32 noundef %1595) #12
  %1597 = load i32, ptr %260, align 4, !tbaa !5
  %1598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1589, ptr noundef nonnull %.str.5.sink2196, i32 noundef %1590, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %1592, ptr noundef %1594, ptr noundef %1596, i32 noundef %1597) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1599:                                             ; preds = %._crit_edge
  %1600 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #12
  %1601 = load i32, ptr @test_count, align 4, !tbaa !5
  %1602 = add nsw i32 %1601, 1
  store i32 %1602, ptr @test_count, align 4, !tbaa !5
  %1603 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %1604 = icmp eq ptr %1603, null
  br i1 %1604, label %1605, label %1627

1605:                                             ; preds = %1599
  %1606 = load i32, ptr %260, align 4, !tbaa !5
  %1607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1608 = call i32 @s2n_print_stacktrace(ptr noundef %1607) #12
  %1609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1610 = trunc nuw i8 %1609 to i1
  br i1 %1610, label %1611, label %1615

1611:                                             ; preds = %1605
  %1612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1613 = call i32 @fileno(ptr noundef %1612) #12
  %1614 = call i32 @isatty(i32 noundef %1613) #12
  %.not1622 = icmp eq i32 %1614, 0
  br i1 %.not1622, label %1615, label %1616

1615:                                             ; preds = %1611, %1605
  br label %1616

1616:                                             ; preds = %1611, %1615
  %.str.5.sink2205 = phi ptr [ @.str.5, %1615 ], [ @.str.2, %1611 ]
  store i32 %1606, ptr %260, align 4, !tbaa !5
  %1617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1618 = load i32, ptr @test_count, align 4, !tbaa !5
  %1619 = load i32, ptr %206, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror(i32 noundef %1619, ptr noundef nonnull @.str.4) #12
  %1621 = load i32, ptr %206, align 4, !tbaa !5
  %1622 = call ptr @s2n_strerror_debug(i32 noundef %1621, ptr noundef nonnull @.str.4) #12
  %1623 = load i32, ptr %260, align 4, !tbaa !5
  %1624 = call ptr @strerror(i32 noundef %1623) #12
  %1625 = load i32, ptr %260, align 4, !tbaa !5
  %1626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1617, ptr noundef nonnull %.str.5.sink2205, i32 noundef %1618, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1620, ptr noundef %1622, ptr noundef %1624, i32 noundef %1625) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1627:                                             ; preds = %1599
  %1628 = getelementptr inbounds i8, ptr %1603, i64 220
  store i8 34, ptr %1628, align 4, !tbaa !56
  %1629 = load i32, ptr @test_count, align 4, !tbaa !5
  %1630 = add nsw i32 %1629, 1
  store i32 %1630, ptr @test_count, align 4, !tbaa !5
  %1631 = call i32 @s2n_conn_choose_state_machine(ptr noundef nonnull %1603, i8 noundef zeroext 34) #12
  %1632 = call zeroext i1 @s2n_result_is_ok(i32 %1631)
  br i1 %1632, label %1655, label %1633

1633:                                             ; preds = %1627
  %1634 = load i32, ptr %260, align 4, !tbaa !5
  %1635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1636 = call i32 @s2n_print_stacktrace(ptr noundef %1635) #12
  %1637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1638 = trunc nuw i8 %1637 to i1
  br i1 %1638, label %1639, label %1643

1639:                                             ; preds = %1633
  %1640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1641 = call i32 @fileno(ptr noundef %1640) #12
  %1642 = call i32 @isatty(i32 noundef %1641) #12
  %.not1283 = icmp eq i32 %1642, 0
  br i1 %.not1283, label %1643, label %1644

1643:                                             ; preds = %1639, %1633
  br label %1644

1644:                                             ; preds = %1639, %1643
  %.str.5.sink2214 = phi ptr [ @.str.5, %1643 ], [ @.str.2, %1639 ]
  store i32 %1634, ptr %260, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = load i32, ptr %206, align 4, !tbaa !5
  %1648 = call ptr @s2n_strerror(i32 noundef %1647, ptr noundef nonnull @.str.4) #12
  %1649 = load i32, ptr %206, align 4, !tbaa !5
  %1650 = call ptr @s2n_strerror_debug(i32 noundef %1649, ptr noundef nonnull @.str.4) #12
  %1651 = load i32, ptr %260, align 4, !tbaa !5
  %1652 = call ptr @strerror(i32 noundef %1651) #12
  %1653 = load i32, ptr %260, align 4, !tbaa !5
  %1654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1645, ptr noundef nonnull %.str.5.sink2214, i32 noundef %1646, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1648, ptr noundef %1650, ptr noundef %1652, i32 noundef %1653) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1655:                                             ; preds = %1627
  %1656 = getelementptr inbounds i8, ptr %1603, i64 2172
  store i32 16, ptr %1656, align 4, !tbaa !57
  %1657 = getelementptr inbounds i8, ptr %1603, i64 2176
  store i32 1, ptr %1657, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #12
  store ptr null, ptr %10, align 8, !tbaa !9
  %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_connection_get_ecc_preferences(ptr noundef nonnull %1603, ptr noundef nonnull %10) #12
  %1661 = icmp eq i32 %1660, -1
  br i1 %1661, label %1662, label %1684

1662:                                             ; preds = %1655
  %1663 = load i32, ptr %260, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = call i32 @s2n_print_stacktrace(ptr noundef %1664) #12
  %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 = %1662
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = call i32 @fileno(ptr noundef %1669) #12
  %1671 = call i32 @isatty(i32 noundef %1670) #12
  %.not1621 = icmp eq i32 %1671, 0
  br i1 %.not1621, label %1672, label %1673

1672:                                             ; preds = %1668, %1662
  br label %1673

1673:                                             ; preds = %1668, %1672
  %.str.5.sink2223 = phi ptr [ @.str.5, %1672 ], [ @.str.2, %1668 ]
  store i32 %1663, ptr %260, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = load i32, ptr @test_count, align 4, !tbaa !5
  %1676 = load i32, ptr %206, align 4, !tbaa !5
  %1677 = call ptr @s2n_strerror(i32 noundef %1676, ptr noundef nonnull @.str.4) #12
  %1678 = load i32, ptr %206, align 4, !tbaa !5
  %1679 = call ptr @s2n_strerror_debug(i32 noundef %1678, ptr noundef nonnull @.str.4) #12
  %1680 = load i32, ptr %260, align 4, !tbaa !5
  %1681 = call ptr @strerror(i32 noundef %1680) #12
  %1682 = load i32, ptr %260, align 4, !tbaa !5
  %1683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1674, ptr noundef nonnull %.str.5.sink2223, i32 noundef %1675, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %1677, ptr noundef %1679, ptr noundef %1681, i32 noundef %1682) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1684:                                             ; preds = %1655
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = add nsw i32 %1685, 1
  store i32 %1686, ptr @test_count, align 4, !tbaa !5
  %1687 = load ptr, ptr %10, align 8, !tbaa !9
  %1688 = icmp eq ptr %1687, null
  br i1 %1688, label %1689, label %1711

1689:                                             ; preds = %1684
  %1690 = load i32, ptr %260, align 4, !tbaa !5
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = call i32 @s2n_print_stacktrace(ptr noundef %1691) #12
  %1693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1694 = trunc nuw i8 %1693 to i1
  br i1 %1694, label %1695, label %1699

1695:                                             ; preds = %1689
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = call i32 @fileno(ptr noundef %1696) #12
  %1698 = call i32 @isatty(i32 noundef %1697) #12
  %.not1620 = icmp eq i32 %1698, 0
  br i1 %.not1620, label %1699, label %1700

1699:                                             ; preds = %1695, %1689
  br label %1700

1700:                                             ; preds = %1695, %1699
  %.str.5.sink2232 = phi ptr [ @.str.5, %1699 ], [ @.str.2, %1695 ]
  store i32 %1690, ptr %260, align 4, !tbaa !5
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = load i32, ptr @test_count, align 4, !tbaa !5
  %1703 = load i32, ptr %206, align 4, !tbaa !5
  %1704 = call ptr @s2n_strerror(i32 noundef %1703, ptr noundef nonnull @.str.4) #12
  %1705 = load i32, ptr %206, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror_debug(i32 noundef %1705, ptr noundef nonnull @.str.4) #12
  %1707 = load i32, ptr %260, align 4, !tbaa !5
  %1708 = call ptr @strerror(i32 noundef %1707) #12
  %1709 = load i32, ptr %260, align 4, !tbaa !5
  %1710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1701, ptr noundef nonnull %.str.5.sink2232, i32 noundef %1702, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %1704, ptr noundef %1706, ptr noundef %1708, i32 noundef %1709) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1711:                                             ; preds = %1684
  %1712 = add nsw i32 %1685, 2
  store i32 %1712, ptr @test_count, align 4, !tbaa !5
  %1713 = getelementptr inbounds i8, ptr %1603, i64 720
  %1714 = load ptr, ptr %1713, align 8, !tbaa !48
  %1715 = icmp eq ptr %1714, null
  br i1 %1715, label %1738, label %1716

1716:                                             ; preds = %1711
  %1717 = load i32, ptr %260, align 4, !tbaa !5
  %1718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1719 = call i32 @s2n_print_stacktrace(ptr noundef %1718) #12
  %1720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1721 = trunc nuw i8 %1720 to i1
  br i1 %1721, label %1722, label %1726

1722:                                             ; preds = %1716
  %1723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1724 = call i32 @fileno(ptr noundef %1723) #12
  %1725 = call i32 @isatty(i32 noundef %1724) #12
  %.not1284 = icmp eq i32 %1725, 0
  br i1 %.not1284, label %1726, label %1727

1726:                                             ; preds = %1722, %1716
  br label %1727

1727:                                             ; preds = %1722, %1726
  %.str.5.sink2241 = phi ptr [ @.str.5, %1726 ], [ @.str.2, %1722 ]
  store i32 %1717, ptr %260, align 4, !tbaa !5
  %1728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1729 = load i32, ptr @test_count, align 4, !tbaa !5
  %1730 = load i32, ptr %206, align 4, !tbaa !5
  %1731 = call ptr @s2n_strerror(i32 noundef %1730, ptr noundef nonnull @.str.4) #12
  %1732 = load i32, ptr %206, align 4, !tbaa !5
  %1733 = call ptr @s2n_strerror_debug(i32 noundef %1732, ptr noundef nonnull @.str.4) #12
  %1734 = load i32, ptr %260, align 4, !tbaa !5
  %1735 = call ptr @strerror(i32 noundef %1734) #12
  %1736 = load i32, ptr %260, align 4, !tbaa !5
  %1737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1728, ptr noundef nonnull %.str.5.sink2241, i32 noundef %1729, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %1731, ptr noundef %1733, ptr noundef %1735, i32 noundef %1736) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1738:                                             ; preds = %1711
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %11, i8 0, i64 40, i1 false)
  %1739 = add nsw i32 %1685, 3
  store i32 %1739, ptr @test_count, align 4, !tbaa !5
  %1740 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %11, i32 noundef 1024) #12
  %1741 = icmp eq i32 %1740, -1
  br i1 %1741, label %1786, label %.preheader1671

.preheader1671:                                   ; preds = %1738
  %1742 = load ptr, ptr %10, align 8, !tbaa !9
  %1743 = load i8, ptr %1742, align 8, !tbaa !49
  %.not1692 = icmp eq i8 %1743, 0
  %.pre1699 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not1692, label %._crit_edge1682, label %.lr.ph1681

.lr.ph1681:                                       ; preds = %.preheader1671
  %1744 = getelementptr inbounds i8, ptr %1603, i64 656
  %1745 = getelementptr inbounds i8, ptr %1603, i64 664
  %1746 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_key_share_extension, i64 8), align 8
  %1747 = getelementptr inbounds i8, ptr %11, i64 28
  %1748 = getelementptr inbounds i8, ptr %11, i64 24
  %.pre1698 = load ptr, ptr %1745, align 8, !tbaa !59
  %1749 = getelementptr inbounds i8, ptr %1742, i64 8
  %1750 = load ptr, ptr %1749, align 8, !tbaa !43
  %1751 = load ptr, ptr %1750, align 8, !tbaa !9
  store ptr %1751, ptr %1744, align 8, !tbaa !42
  %1752 = add nsw i32 %.pre1699, 1
  store i32 %1752, ptr @test_count, align 4, !tbaa !5
  %1753 = icmp eq ptr %.pre1698, null
  br i1 %1753, label %1754, label %1828

1754:                                             ; preds = %.lr.ph1681
  %1755 = add nsw i32 %.pre1699, 2
  store i32 %1755, ptr @test_count, align 4, !tbaa !5
  %1756 = call i32 %1746(ptr noundef nonnull %1603, ptr noundef nonnull %11) #12
  %1757 = icmp eq i32 %1756, -1
  br i1 %1757, label %.loopexit5161, label %1758

1758:                                             ; preds = %1754
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %12) #12
  %1759 = load i32, ptr @test_count, align 4, !tbaa !5
  %1760 = add nsw i32 %1759, 1
  store i32 %1760, ptr @test_count, align 4, !tbaa !5
  %1761 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %11, ptr noundef nonnull %12) #12
  %1762 = icmp eq i32 %1761, -1
  br i1 %1762, label %.loopexit5162, label %1763

1763:                                             ; preds = %1758
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = add nsw i32 %1764, 1
  store i32 %1765, ptr @test_count, align 4, !tbaa !5
  %1766 = load i16, ptr %12, align 2, !tbaa !52
  %1767 = load i16, ptr %1751, align 8, !tbaa !53
  %1768 = icmp eq i16 %1766, %1767
  br i1 %1768, label %1769, label %.loopexit5163

1769:                                             ; preds = %1763
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %12) #12
  %1770 = add nsw i32 %1764, 2
  store i32 %1770, ptr @test_count, align 4, !tbaa !5
  %1771 = load i32, ptr %1747, align 4, !tbaa !54
  %1772 = load i32, ptr %1748, align 8, !tbaa !55
  %1773 = icmp eq i32 %1771, %1772
  br i1 %1773, label %1774, label %.loopexit5164

1774:                                             ; preds = %1769
  %1775 = add nsw i32 %1764, 3
  store i32 %1775, ptr @test_count, align 4, !tbaa !5
  %1776 = load ptr, ptr %1744, align 8, !tbaa !42
  %1777 = icmp eq ptr %1776, %1751
  br i1 %1777, label %1778, label %.loopexit5165

1778:                                             ; preds = %1774
  %1779 = add nsw i32 %1764, 4
  store i32 %1779, ptr @test_count, align 4, !tbaa !5
  %1780 = load ptr, ptr %1745, align 8, !tbaa !59
  %1781 = icmp eq ptr %1780, null
  br i1 %1781, label %1782, label %.loopexit5166

1782:                                             ; preds = %1778
  %1783 = load ptr, ptr %10, align 8, !tbaa !9
  %1784 = load i8, ptr %1783, align 8, !tbaa !49
  %1785 = icmp ugt i8 %1784, 1
  br i1 %1785, label %.lr.ph1681.peel.newph, label %._crit_edge1682

1786:                                             ; preds = %1738
  %1787 = load i32, ptr %260, align 4, !tbaa !5
  %1788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1789 = call i32 @s2n_print_stacktrace(ptr noundef %1788) #12
  %1790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1791 = trunc nuw i8 %1790 to i1
  br i1 %1791, label %1792, label %1796

1792:                                             ; preds = %1786
  %1793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1794 = call i32 @fileno(ptr noundef %1793) #12
  %1795 = call i32 @isatty(i32 noundef %1794) #12
  %.not1619 = icmp eq i32 %1795, 0
  br i1 %.not1619, label %1796, label %1797

1796:                                             ; preds = %1792, %1786
  br label %1797

1797:                                             ; preds = %1792, %1796
  %.str.5.sink2250 = phi ptr [ @.str.5, %1796 ], [ @.str.2, %1792 ]
  store i32 %1787, ptr %260, align 4, !tbaa !5
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = load i32, ptr @test_count, align 4, !tbaa !5
  %1800 = load i32, ptr %206, align 4, !tbaa !5
  %1801 = call ptr @s2n_strerror(i32 noundef %1800, ptr noundef nonnull @.str.4) #12
  %1802 = load i32, ptr %206, align 4, !tbaa !5
  %1803 = call ptr @s2n_strerror_debug(i32 noundef %1802, ptr noundef nonnull @.str.4) #12
  %1804 = load i32, ptr %260, align 4, !tbaa !5
  %1805 = call ptr @strerror(i32 noundef %1804) #12
  %1806 = load i32, ptr %260, align 4, !tbaa !5
  %1807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1798, ptr noundef nonnull %.str.5.sink2250, i32 noundef %1799, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1801, ptr noundef %1803, ptr noundef %1805, i32 noundef %1806) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1808:                                             ; preds = %1975
  %1809 = add nuw nsw i64 %.012221680, 1
  %1810 = load ptr, ptr %10, align 8, !tbaa !9
  %1811 = load i8, ptr %1810, align 8, !tbaa !49
  %1812 = zext i8 %1811 to i64
  %1813 = icmp ult i64 %1809, %1812
  br i1 %1813, label %.lr.ph1681.peel.newph, label %._crit_edge1682, !llvm.loop !60

._crit_edge1682:                                  ; preds = %1782, %1808, %.preheader1671
  %1814 = phi i32 [ %.pre1699, %.preheader1671 ], [ %1779, %1782 ], [ %1976, %1808 ]
  %1815 = add nsw i32 %1814, 1
  store i32 %1815, ptr @test_count, align 4, !tbaa !5
  %1816 = call i32 @s2n_connection_free(ptr noundef nonnull %1603) #12
  %1817 = icmp eq i32 %1816, -1
  br i1 %1817, label %2000, label %2022

.lr.ph1681.peel.newph:                            ; preds = %1782, %1808
  %1818 = phi i32 [ %1976, %1808 ], [ %1779, %1782 ]
  %1819 = phi ptr [ %1810, %1808 ], [ %1783, %1782 ]
  %.012221680 = phi i64 [ %1809, %1808 ], [ 1, %1782 ]
  %1820 = getelementptr inbounds i8, ptr %1819, i64 8
  %1821 = load ptr, ptr %1820, align 8, !tbaa !43
  %1822 = getelementptr inbounds ptr, ptr %1821, i64 %.012221680
  %1823 = load ptr, ptr %1822, align 8, !tbaa !9
  store ptr %1823, ptr %1744, align 8, !tbaa !42
  %1824 = add nsw i32 %1818, 1
  store i32 %1824, ptr @test_count, align 4, !tbaa !5
  %1825 = add nsw i32 %1818, 2
  store i32 %1825, ptr @test_count, align 4, !tbaa !5
  %1826 = call i32 %1746(ptr noundef nonnull %1603, ptr noundef nonnull %11) #12
  %1827 = icmp eq i32 %1826, -1
  br i1 %1827, label %.loopexit5161, label %1871

1828:                                             ; preds = %.lr.ph1681
  %1829 = load i32, ptr %260, align 4, !tbaa !5
  %1830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1831 = call i32 @s2n_print_stacktrace(ptr noundef %1830) #12
  %1832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1833 = trunc nuw i8 %1832 to i1
  br i1 %1833, label %1834, label %1838

1834:                                             ; preds = %1828
  %1835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1836 = call i32 @fileno(ptr noundef %1835) #12
  %1837 = call i32 @isatty(i32 noundef %1836) #12
  %.not1612 = icmp eq i32 %1837, 0
  br i1 %.not1612, label %1838, label %1839

1838:                                             ; preds = %1834, %1828
  br label %1839

1839:                                             ; preds = %1834, %1838
  %.str.5.sink2259 = phi ptr [ @.str.5, %1838 ], [ @.str.2, %1834 ]
  store i32 %1829, ptr %260, align 4, !tbaa !5
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = load i32, ptr %206, align 4, !tbaa !5
  %1843 = call ptr @s2n_strerror(i32 noundef %1842, ptr noundef nonnull @.str.4) #12
  %1844 = load i32, ptr %206, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror_debug(i32 noundef %1844, ptr noundef nonnull @.str.4) #12
  %1846 = load i32, ptr %260, align 4, !tbaa !5
  %1847 = call ptr @strerror(i32 noundef %1846) #12
  %1848 = load i32, ptr %260, align 4, !tbaa !5
  %1849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1840, ptr noundef nonnull %.str.5.sink2259, i32 noundef %1841, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %1843, ptr noundef %1845, ptr noundef %1847, i32 noundef %1848) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.loopexit5161:                                    ; preds = %.lr.ph1681.peel.newph, %1754
  %1850 = load i32, ptr %260, align 4, !tbaa !5
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = call i32 @s2n_print_stacktrace(ptr noundef %1851) #12
  %1853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1854 = trunc nuw i8 %1853 to i1
  br i1 %1854, label %1855, label %1859

1855:                                             ; preds = %.loopexit5161
  %1856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1857 = call i32 @fileno(ptr noundef %1856) #12
  %1858 = call i32 @isatty(i32 noundef %1857) #12
  %.not1618 = icmp eq i32 %1858, 0
  br i1 %.not1618, label %1859, label %1860

1859:                                             ; preds = %1855, %.loopexit5161
  br label %1860

1860:                                             ; preds = %1855, %1859
  %.str.5.sink2268 = phi ptr [ @.str.5, %1859 ], [ @.str.2, %1855 ]
  store i32 %1850, ptr %260, align 4, !tbaa !5
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = load i32, ptr @test_count, align 4, !tbaa !5
  %1863 = load i32, ptr %206, align 4, !tbaa !5
  %1864 = call ptr @s2n_strerror(i32 noundef %1863, ptr noundef nonnull @.str.4) #12
  %1865 = load i32, ptr %206, align 4, !tbaa !5
  %1866 = call ptr @s2n_strerror_debug(i32 noundef %1865, ptr noundef nonnull @.str.4) #12
  %1867 = load i32, ptr %260, align 4, !tbaa !5
  %1868 = call ptr @strerror(i32 noundef %1867) #12
  %1869 = load i32, ptr %260, align 4, !tbaa !5
  %1870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1861, ptr noundef nonnull %.str.5.sink2268, i32 noundef %1862, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1864, ptr noundef %1866, ptr noundef %1868, i32 noundef %1869) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1871:                                             ; preds = %.lr.ph1681.peel.newph
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %12) #12
  %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_stuffer_read_uint16(ptr noundef nonnull %11, ptr noundef nonnull %12) #12
  %1875 = icmp eq i32 %1874, -1
  br i1 %1875, label %.loopexit5162, label %1897

.loopexit5162:                                    ; preds = %1871, %1758
  %1876 = load i32, ptr %260, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = call i32 @s2n_print_stacktrace(ptr noundef %1877) #12
  %1879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1880 = trunc nuw i8 %1879 to i1
  br i1 %1880, label %1881, label %1885

1881:                                             ; preds = %.loopexit5162
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = call i32 @fileno(ptr noundef %1882) #12
  %1884 = call i32 @isatty(i32 noundef %1883) #12
  %.not1617 = icmp eq i32 %1884, 0
  br i1 %.not1617, label %1885, label %1886

1885:                                             ; preds = %1881, %.loopexit5162
  br label %1886

1886:                                             ; preds = %1881, %1885
  %.str.5.sink2277 = phi ptr [ @.str.5, %1885 ], [ @.str.2, %1881 ]
  store i32 %1876, ptr %260, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = load i32, ptr %206, align 4, !tbaa !5
  %1890 = call ptr @s2n_strerror(i32 noundef %1889, ptr noundef nonnull @.str.4) #12
  %1891 = load i32, ptr %206, align 4, !tbaa !5
  %1892 = call ptr @s2n_strerror_debug(i32 noundef %1891, ptr noundef nonnull @.str.4) #12
  %1893 = load i32, ptr %260, align 4, !tbaa !5
  %1894 = call ptr @strerror(i32 noundef %1893) #12
  %1895 = load i32, ptr %260, align 4, !tbaa !5
  %1896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef nonnull %.str.5.sink2277, i32 noundef %1888, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1890, ptr noundef %1892, ptr noundef %1894, i32 noundef %1895) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1897:                                             ; preds = %1871
  %1898 = load i32, ptr @test_count, align 4, !tbaa !5
  %1899 = add nsw i32 %1898, 1
  store i32 %1899, ptr @test_count, align 4, !tbaa !5
  %1900 = load i16, ptr %12, align 2, !tbaa !52
  %1901 = load i16, ptr %1823, align 8, !tbaa !53
  %1902 = icmp eq i16 %1900, %1901
  br i1 %1902, label %1924, label %.loopexit5163

.loopexit5163:                                    ; preds = %1897, %1763
  %1903 = load i32, ptr %260, align 4, !tbaa !5
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = call i32 @s2n_print_stacktrace(ptr noundef %1904) #12
  %1906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1907 = trunc nuw i8 %1906 to i1
  br i1 %1907, label %1908, label %1912

1908:                                             ; preds = %.loopexit5163
  %1909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1910 = call i32 @fileno(ptr noundef %1909) #12
  %1911 = call i32 @isatty(i32 noundef %1910) #12
  %.not1613 = icmp eq i32 %1911, 0
  br i1 %.not1613, label %1912, label %1913

1912:                                             ; preds = %1908, %.loopexit5163
  br label %1913

1913:                                             ; preds = %1908, %1912
  %.str.5.sink2286 = phi ptr [ @.str.5, %1912 ], [ @.str.2, %1908 ]
  store i32 %1903, ptr %260, align 4, !tbaa !5
  %1914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1915 = load i32, ptr @test_count, align 4, !tbaa !5
  %1916 = load i32, ptr %206, align 4, !tbaa !5
  %1917 = call ptr @s2n_strerror(i32 noundef %1916, ptr noundef nonnull @.str.4) #12
  %1918 = load i32, ptr %206, align 4, !tbaa !5
  %1919 = call ptr @s2n_strerror_debug(i32 noundef %1918, ptr noundef nonnull @.str.4) #12
  %1920 = load i32, ptr %260, align 4, !tbaa !5
  %1921 = call ptr @strerror(i32 noundef %1920) #12
  %1922 = load i32, ptr %260, align 4, !tbaa !5
  %1923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1914, ptr noundef nonnull %.str.5.sink2286, i32 noundef %1915, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1917, ptr noundef %1919, ptr noundef %1921, i32 noundef %1922) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1924:                                             ; preds = %1897
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %12) #12
  %1925 = add nsw i32 %1898, 2
  store i32 %1925, ptr @test_count, align 4, !tbaa !5
  %1926 = load i32, ptr %1747, align 4, !tbaa !54
  %1927 = load i32, ptr %1748, align 8, !tbaa !55
  %1928 = icmp eq i32 %1926, %1927
  br i1 %1928, label %1950, label %.loopexit5164

.loopexit5164:                                    ; preds = %1924, %1769
  %1929 = load i32, ptr %260, align 4, !tbaa !5
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = call i32 @s2n_print_stacktrace(ptr noundef %1930) #12
  %1932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1933 = trunc nuw i8 %1932 to i1
  br i1 %1933, label %1934, label %1938

1934:                                             ; preds = %.loopexit5164
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = call i32 @fileno(ptr noundef %1935) #12
  %1937 = call i32 @isatty(i32 noundef %1936) #12
  %.not1614 = icmp eq i32 %1937, 0
  br i1 %.not1614, label %1938, label %1939

1938:                                             ; preds = %1934, %.loopexit5164
  br label %1939

1939:                                             ; preds = %1934, %1938
  %.str.5.sink2295 = phi ptr [ @.str.5, %1938 ], [ @.str.2, %1934 ]
  store i32 %1929, ptr %260, align 4, !tbaa !5
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1941 = load i32, ptr @test_count, align 4, !tbaa !5
  %1942 = load i32, ptr %206, align 4, !tbaa !5
  %1943 = call ptr @s2n_strerror(i32 noundef %1942, ptr noundef nonnull @.str.4) #12
  %1944 = load i32, ptr %206, align 4, !tbaa !5
  %1945 = call ptr @s2n_strerror_debug(i32 noundef %1944, ptr noundef nonnull @.str.4) #12
  %1946 = load i32, ptr %260, align 4, !tbaa !5
  %1947 = call ptr @strerror(i32 noundef %1946) #12
  %1948 = load i32, ptr %260, align 4, !tbaa !5
  %1949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1940, ptr noundef nonnull %.str.5.sink2295, i32 noundef %1941, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1943, ptr noundef %1945, ptr noundef %1947, i32 noundef %1948) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1950:                                             ; preds = %1924
  %1951 = add nsw i32 %1898, 3
  store i32 %1951, ptr @test_count, align 4, !tbaa !5
  %1952 = load ptr, ptr %1744, align 8, !tbaa !42
  %1953 = icmp eq ptr %1952, %1823
  br i1 %1953, label %1975, label %.loopexit5165

.loopexit5165:                                    ; preds = %1950, %1774
  %1954 = load i32, ptr %260, align 4, !tbaa !5
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = call i32 @s2n_print_stacktrace(ptr noundef %1955) #12
  %1957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1958 = trunc nuw i8 %1957 to i1
  br i1 %1958, label %1959, label %1963

1959:                                             ; preds = %.loopexit5165
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = call i32 @fileno(ptr noundef %1960) #12
  %1962 = call i32 @isatty(i32 noundef %1961) #12
  %.not1615 = icmp eq i32 %1962, 0
  br i1 %.not1615, label %1963, label %1964

1963:                                             ; preds = %1959, %.loopexit5165
  br label %1964

1964:                                             ; preds = %1959, %1963
  %.str.5.sink2304 = phi ptr [ @.str.5, %1963 ], [ @.str.2, %1959 ]
  store i32 %1954, ptr %260, align 4, !tbaa !5
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = load i32, ptr @test_count, align 4, !tbaa !5
  %1967 = load i32, ptr %206, align 4, !tbaa !5
  %1968 = call ptr @s2n_strerror(i32 noundef %1967, ptr noundef nonnull @.str.4) #12
  %1969 = load i32, ptr %206, align 4, !tbaa !5
  %1970 = call ptr @s2n_strerror_debug(i32 noundef %1969, ptr noundef nonnull @.str.4) #12
  %1971 = load i32, ptr %260, align 4, !tbaa !5
  %1972 = call ptr @strerror(i32 noundef %1971) #12
  %1973 = load i32, ptr %260, align 4, !tbaa !5
  %1974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1965, ptr noundef nonnull %.str.5.sink2304, i32 noundef %1966, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1968, ptr noundef %1970, ptr noundef %1972, i32 noundef %1973) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1975:                                             ; preds = %1950
  %1976 = add nsw i32 %1898, 4
  store i32 %1976, ptr @test_count, align 4, !tbaa !5
  %1977 = load ptr, ptr %1745, align 8, !tbaa !59
  %1978 = icmp eq ptr %1977, null
  br i1 %1978, label %1808, label %.loopexit5166

.loopexit5166:                                    ; preds = %1975, %1778
  %1979 = load i32, ptr %260, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = call i32 @s2n_print_stacktrace(ptr noundef %1980) #12
  %1982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1983 = trunc nuw i8 %1982 to i1
  br i1 %1983, label %1984, label %1988

1984:                                             ; preds = %.loopexit5166
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = call i32 @fileno(ptr noundef %1985) #12
  %1987 = call i32 @isatty(i32 noundef %1986) #12
  %.not1616 = icmp eq i32 %1987, 0
  br i1 %.not1616, label %1988, label %1989

1988:                                             ; preds = %1984, %.loopexit5166
  br label %1989

1989:                                             ; preds = %1984, %1988
  %.str.5.sink2313 = phi ptr [ @.str.5, %1988 ], [ @.str.2, %1984 ]
  store i32 %1979, ptr %260, align 4, !tbaa !5
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = load i32, ptr @test_count, align 4, !tbaa !5
  %1992 = load i32, ptr %206, align 4, !tbaa !5
  %1993 = call ptr @s2n_strerror(i32 noundef %1992, ptr noundef nonnull @.str.4) #12
  %1994 = load i32, ptr %206, align 4, !tbaa !5
  %1995 = call ptr @s2n_strerror_debug(i32 noundef %1994, ptr noundef nonnull @.str.4) #12
  %1996 = load i32, ptr %260, align 4, !tbaa !5
  %1997 = call ptr @strerror(i32 noundef %1996) #12
  %1998 = load i32, ptr %260, align 4, !tbaa !5
  %1999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1990, ptr noundef nonnull %.str.5.sink2313, i32 noundef %1991, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1993, ptr noundef %1995, ptr noundef %1997, i32 noundef %1998) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2000:                                             ; preds = %._crit_edge1682
  %2001 = load i32, ptr %260, align 4, !tbaa !5
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = call i32 @s2n_print_stacktrace(ptr noundef %2002) #12
  %2004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2005 = trunc nuw i8 %2004 to i1
  br i1 %2005, label %2006, label %2010

2006:                                             ; preds = %2000
  %2007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2008 = call i32 @fileno(ptr noundef %2007) #12
  %2009 = call i32 @isatty(i32 noundef %2008) #12
  %.not1611 = icmp eq i32 %2009, 0
  br i1 %.not1611, label %2010, label %2011

2010:                                             ; preds = %2006, %2000
  br label %2011

2011:                                             ; preds = %2006, %2010
  %.str.5.sink2322 = phi ptr [ @.str.5, %2010 ], [ @.str.2, %2006 ]
  store i32 %2001, ptr %260, align 4, !tbaa !5
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = load i32, ptr @test_count, align 4, !tbaa !5
  %2014 = load i32, ptr %206, align 4, !tbaa !5
  %2015 = call ptr @s2n_strerror(i32 noundef %2014, ptr noundef nonnull @.str.4) #12
  %2016 = load i32, ptr %206, align 4, !tbaa !5
  %2017 = call ptr @s2n_strerror_debug(i32 noundef %2016, ptr noundef nonnull @.str.4) #12
  %2018 = load i32, ptr %260, align 4, !tbaa !5
  %2019 = call ptr @strerror(i32 noundef %2018) #12
  %2020 = load i32, ptr %260, align 4, !tbaa !5
  %2021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2012, ptr noundef nonnull %.str.5.sink2322, i32 noundef %2013, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %2015, ptr noundef %2017, ptr noundef %2019, i32 noundef %2020) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2022:                                             ; preds = %._crit_edge1682
  %2023 = call i32 @s2n_stuffer_free(ptr noundef nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  %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 getelementptr inbounds (i8, ptr @s2n_server_key_share_extension, i64 8), align 8, !tbaa !62
  %2027 = call i32 %2026(ptr noundef null, ptr noundef null) #12
  %2028 = icmp eq i32 %2027, -1
  br i1 %2028, label %2051, label %2029

2029:                                             ; preds = %2022
  %2030 = load i32, ptr %260, align 4, !tbaa !5
  %2031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2032 = call i32 @s2n_print_stacktrace(ptr noundef %2031) #12
  %2033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2034 = trunc nuw i8 %2033 to i1
  br i1 %2034, label %2035, label %2039

2035:                                             ; preds = %2029
  %2036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2037 = call i32 @fileno(ptr noundef %2036) #12
  %2038 = call i32 @isatty(i32 noundef %2037) #12
  %.not1285 = icmp eq i32 %2038, 0
  br i1 %.not1285, label %2039, label %2040

2039:                                             ; preds = %2035, %2029
  br label %2040

2040:                                             ; preds = %2035, %2039
  %.str.5.sink2331 = phi ptr [ @.str.5, %2039 ], [ @.str.2, %2035 ]
  store i32 %2030, ptr %260, align 4, !tbaa !5
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = load i32, ptr %206, align 4, !tbaa !5
  %2044 = call ptr @s2n_strerror(i32 noundef %2043, ptr noundef nonnull @.str.4) #12
  %2045 = load i32, ptr %206, align 4, !tbaa !5
  %2046 = call ptr @s2n_strerror_debug(i32 noundef %2045, ptr noundef nonnull @.str.4) #12
  %2047 = load i32, ptr %260, align 4, !tbaa !5
  %2048 = call ptr @strerror(i32 noundef %2047) #12
  %2049 = load i32, ptr %260, align 4, !tbaa !5
  %2050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2041, ptr noundef nonnull %.str.5.sink2331, i32 noundef %2042, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %2044, ptr noundef %2046, ptr noundef %2048, i32 noundef %2049) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2051:                                             ; preds = %2022
  %2052 = load i32, ptr @test_count, align 4, !tbaa !5
  %2053 = add nsw i32 %2052, 1
  store i32 %2053, ptr @test_count, align 4, !tbaa !5
  %2054 = load i32, ptr %206, align 4, !tbaa !5
  %2055 = icmp eq i32 %2054, 0
  br i1 %2055, label %2056, label %2078

2056:                                             ; preds = %2051
  %2057 = load i32, ptr %260, align 4, !tbaa !5
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = call i32 @s2n_print_stacktrace(ptr noundef %2058) #12
  %2060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2061 = trunc nuw i8 %2060 to i1
  br i1 %2061, label %2062, label %2066

2062:                                             ; preds = %2056
  %2063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2064 = call i32 @fileno(ptr noundef %2063) #12
  %2065 = call i32 @isatty(i32 noundef %2064) #12
  %.not1610 = icmp eq i32 %2065, 0
  br i1 %.not1610, label %2066, label %2067

2066:                                             ; preds = %2062, %2056
  br label %2067

2067:                                             ; preds = %2062, %2066
  %.str.5.sink2340 = phi ptr [ @.str.5, %2066 ], [ @.str.2, %2062 ]
  store i32 %2057, ptr %260, align 4, !tbaa !5
  %2068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2069 = load i32, ptr @test_count, align 4, !tbaa !5
  %2070 = load i32, ptr %206, align 4, !tbaa !5
  %2071 = call ptr @s2n_strerror(i32 noundef %2070, ptr noundef nonnull @.str.4) #12
  %2072 = load i32, ptr %206, align 4, !tbaa !5
  %2073 = call ptr @s2n_strerror_debug(i32 noundef %2072, ptr noundef nonnull @.str.4) #12
  %2074 = load i32, ptr %260, align 4, !tbaa !5
  %2075 = call ptr @strerror(i32 noundef %2074) #12
  %2076 = load i32, ptr %260, align 4, !tbaa !5
  %2077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2068, ptr noundef nonnull %.str.5.sink2340, i32 noundef %2069, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %2071, ptr noundef %2073, ptr noundef %2075, i32 noundef %2076) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2078:                                             ; preds = %2051
  %2079 = add nsw i32 %2052, 2
  store i32 %2079, ptr @test_count, align 4, !tbaa !5
  %2080 = call ptr @s2n_strerror_debug(i32 noundef %2054, ptr noundef nonnull @.str.4) #12
  %2081 = icmp eq ptr %2080, null
  br i1 %2081, label %2082, label %2104

2082:                                             ; preds = %2078
  %2083 = load i32, ptr %260, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = call i32 @s2n_print_stacktrace(ptr noundef %2084) #12
  %2086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2087 = trunc nuw i8 %2086 to i1
  br i1 %2087, label %2088, label %2092

2088:                                             ; preds = %2082
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = call i32 @fileno(ptr noundef %2089) #12
  %2091 = call i32 @isatty(i32 noundef %2090) #12
  %.not1609 = icmp eq i32 %2091, 0
  br i1 %.not1609, label %2092, label %2093

2092:                                             ; preds = %2088, %2082
  br label %2093

2093:                                             ; preds = %2088, %2092
  %.str.5.sink2349 = phi ptr [ @.str.5, %2092 ], [ @.str.2, %2088 ]
  store i32 %2083, ptr %260, align 4, !tbaa !5
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = load i32, ptr @test_count, align 4, !tbaa !5
  %2096 = load i32, ptr %206, align 4, !tbaa !5
  %2097 = call ptr @s2n_strerror(i32 noundef %2096, ptr noundef nonnull @.str.4) #12
  %2098 = load i32, ptr %206, align 4, !tbaa !5
  %2099 = call ptr @s2n_strerror_debug(i32 noundef %2098, ptr noundef nonnull @.str.4) #12
  %2100 = load i32, ptr %260, align 4, !tbaa !5
  %2101 = call ptr @strerror(i32 noundef %2100) #12
  %2102 = load i32, ptr %260, align 4, !tbaa !5
  %2103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2094, ptr noundef nonnull %.str.5.sink2349, i32 noundef %2095, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %2097, ptr noundef %2099, ptr noundef %2101, i32 noundef %2102) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2104:                                             ; preds = %2078
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %2105 = load i32, ptr @test_count, align 4, !tbaa !5
  %2106 = add nsw i32 %2105, 1
  store i32 %2106, ptr @test_count, align 4, !tbaa !5
  %2107 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %2108 = icmp eq ptr %2107, null
  br i1 %2108, label %2109, label %2131

2109:                                             ; preds = %2104
  %2110 = load i32, ptr %260, align 4, !tbaa !5
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = call i32 @s2n_print_stacktrace(ptr noundef %2111) #12
  %2113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2114 = trunc nuw i8 %2113 to i1
  br i1 %2114, label %2115, label %2119

2115:                                             ; preds = %2109
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = call i32 @fileno(ptr noundef %2116) #12
  %2118 = call i32 @isatty(i32 noundef %2117) #12
  %.not1608 = icmp eq i32 %2118, 0
  br i1 %.not1608, label %2119, label %2120

2119:                                             ; preds = %2115, %2109
  br label %2120

2120:                                             ; preds = %2115, %2119
  %.str.5.sink2358 = phi ptr [ @.str.5, %2119 ], [ @.str.2, %2115 ]
  store i32 %2110, ptr %260, align 4, !tbaa !5
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2122 = load i32, ptr @test_count, align 4, !tbaa !5
  %2123 = load i32, ptr %206, align 4, !tbaa !5
  %2124 = call ptr @s2n_strerror(i32 noundef %2123, ptr noundef nonnull @.str.4) #12
  %2125 = load i32, ptr %206, align 4, !tbaa !5
  %2126 = call ptr @s2n_strerror_debug(i32 noundef %2125, ptr noundef nonnull @.str.4) #12
  %2127 = load i32, ptr %260, align 4, !tbaa !5
  %2128 = call ptr @strerror(i32 noundef %2127) #12
  %2129 = load i32, ptr %260, align 4, !tbaa !5
  %2130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2121, ptr noundef nonnull %.str.5.sink2358, i32 noundef %2122, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %2124, ptr noundef %2126, ptr noundef %2128, i32 noundef %2129) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2131:                                             ; preds = %2104
  %2132 = load i32, ptr @test_count, align 4, !tbaa !5
  %2133 = add nsw i32 %2132, 1
  store i32 %2133, ptr @test_count, align 4, !tbaa !5
  %2134 = call i32 %2026(ptr noundef nonnull %2107, ptr noundef null) #12
  %2135 = icmp eq i32 %2134, -1
  br i1 %2135, label %2158, label %2136

2136:                                             ; preds = %2131
  %2137 = load i32, ptr %260, align 4, !tbaa !5
  %2138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2139 = call i32 @s2n_print_stacktrace(ptr noundef %2138) #12
  %2140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2141 = trunc nuw i8 %2140 to i1
  br i1 %2141, label %2142, label %2146

2142:                                             ; preds = %2136
  %2143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2144 = call i32 @fileno(ptr noundef %2143) #12
  %2145 = call i32 @isatty(i32 noundef %2144) #12
  %.not1286 = icmp eq i32 %2145, 0
  br i1 %.not1286, label %2146, label %2147

2146:                                             ; preds = %2142, %2136
  br label %2147

2147:                                             ; preds = %2142, %2146
  %.str.5.sink2367 = phi ptr [ @.str.5, %2146 ], [ @.str.2, %2142 ]
  store i32 %2137, ptr %260, align 4, !tbaa !5
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = load i32, ptr @test_count, align 4, !tbaa !5
  %2150 = load i32, ptr %206, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror(i32 noundef %2150, ptr noundef nonnull @.str.4) #12
  %2152 = load i32, ptr %206, align 4, !tbaa !5
  %2153 = call ptr @s2n_strerror_debug(i32 noundef %2152, ptr noundef nonnull @.str.4) #12
  %2154 = load i32, ptr %260, align 4, !tbaa !5
  %2155 = call ptr @strerror(i32 noundef %2154) #12
  %2156 = load i32, ptr %260, align 4, !tbaa !5
  %2157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2148, ptr noundef nonnull %.str.5.sink2367, i32 noundef %2149, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %2151, ptr noundef %2153, ptr noundef %2155, i32 noundef %2156) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2158:                                             ; preds = %2131
  %2159 = load i32, ptr @test_count, align 4, !tbaa !5
  %2160 = add nsw i32 %2159, 1
  store i32 %2160, ptr @test_count, align 4, !tbaa !5
  %2161 = load i32, ptr %206, align 4, !tbaa !5
  %2162 = icmp eq i32 %2161, 0
  br i1 %2162, label %2163, label %2185

2163:                                             ; preds = %2158
  %2164 = load i32, ptr %260, align 4, !tbaa !5
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = call i32 @s2n_print_stacktrace(ptr noundef %2165) #12
  %2167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2168 = trunc nuw i8 %2167 to i1
  br i1 %2168, label %2169, label %2173

2169:                                             ; preds = %2163
  %2170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2171 = call i32 @fileno(ptr noundef %2170) #12
  %2172 = call i32 @isatty(i32 noundef %2171) #12
  %.not1607 = icmp eq i32 %2172, 0
  br i1 %.not1607, label %2173, label %2174

2173:                                             ; preds = %2169, %2163
  br label %2174

2174:                                             ; preds = %2169, %2173
  %.str.5.sink2376 = phi ptr [ @.str.5, %2173 ], [ @.str.2, %2169 ]
  store i32 %2164, ptr %260, align 4, !tbaa !5
  %2175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2176 = load i32, ptr @test_count, align 4, !tbaa !5
  %2177 = load i32, ptr %206, align 4, !tbaa !5
  %2178 = call ptr @s2n_strerror(i32 noundef %2177, ptr noundef nonnull @.str.4) #12
  %2179 = load i32, ptr %206, align 4, !tbaa !5
  %2180 = call ptr @s2n_strerror_debug(i32 noundef %2179, ptr noundef nonnull @.str.4) #12
  %2181 = load i32, ptr %260, align 4, !tbaa !5
  %2182 = call ptr @strerror(i32 noundef %2181) #12
  %2183 = load i32, ptr %260, align 4, !tbaa !5
  %2184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2175, ptr noundef nonnull %.str.5.sink2376, i32 noundef %2176, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %2178, ptr noundef %2180, ptr noundef %2182, i32 noundef %2183) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2185:                                             ; preds = %2158
  %2186 = add nsw i32 %2159, 2
  store i32 %2186, ptr @test_count, align 4, !tbaa !5
  %2187 = call ptr @s2n_strerror_debug(i32 noundef %2161, ptr noundef nonnull @.str.4) #12
  %2188 = icmp eq ptr %2187, null
  br i1 %2188, label %2189, label %2211

2189:                                             ; preds = %2185
  %2190 = load i32, ptr %260, align 4, !tbaa !5
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = call i32 @s2n_print_stacktrace(ptr noundef %2191) #12
  %2193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2194 = trunc nuw i8 %2193 to i1
  br i1 %2194, label %2195, label %2199

2195:                                             ; preds = %2189
  %2196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2197 = call i32 @fileno(ptr noundef %2196) #12
  %2198 = call i32 @isatty(i32 noundef %2197) #12
  %.not1606 = icmp eq i32 %2198, 0
  br i1 %.not1606, label %2199, label %2200

2199:                                             ; preds = %2195, %2189
  br label %2200

2200:                                             ; preds = %2195, %2199
  %.str.5.sink2385 = phi ptr [ @.str.5, %2199 ], [ @.str.2, %2195 ]
  store i32 %2190, ptr %260, align 4, !tbaa !5
  %2201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2202 = load i32, ptr @test_count, align 4, !tbaa !5
  %2203 = load i32, ptr %206, align 4, !tbaa !5
  %2204 = call ptr @s2n_strerror(i32 noundef %2203, ptr noundef nonnull @.str.4) #12
  %2205 = load i32, ptr %206, align 4, !tbaa !5
  %2206 = call ptr @s2n_strerror_debug(i32 noundef %2205, ptr noundef nonnull @.str.4) #12
  %2207 = load i32, ptr %260, align 4, !tbaa !5
  %2208 = call ptr @strerror(i32 noundef %2207) #12
  %2209 = load i32, ptr %260, align 4, !tbaa !5
  %2210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2201, ptr noundef nonnull %.str.5.sink2385, i32 noundef %2202, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %2204, ptr noundef %2206, ptr noundef %2208, i32 noundef %2209) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2211:                                             ; preds = %2185
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %13, i8 0, i64 40, i1 false)
  %2212 = load i32, ptr @test_count, align 4, !tbaa !5
  %2213 = add nsw i32 %2212, 1
  store i32 %2213, ptr @test_count, align 4, !tbaa !5
  %2214 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %13, i32 noundef 0) #12
  %2215 = icmp eq i32 %2214, -1
  br i1 %2215, label %2216, label %2238

2216:                                             ; preds = %2211
  %2217 = load i32, ptr %260, align 4, !tbaa !5
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2219 = call i32 @s2n_print_stacktrace(ptr noundef %2218) #12
  %2220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2221 = trunc nuw i8 %2220 to i1
  br i1 %2221, label %2222, label %2226

2222:                                             ; preds = %2216
  %2223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2224 = call i32 @fileno(ptr noundef %2223) #12
  %2225 = call i32 @isatty(i32 noundef %2224) #12
  %.not1605 = icmp eq i32 %2225, 0
  br i1 %.not1605, label %2226, label %2227

2226:                                             ; preds = %2222, %2216
  br label %2227

2227:                                             ; preds = %2222, %2226
  %.str.5.sink2394 = phi ptr [ @.str.5, %2226 ], [ @.str.2, %2222 ]
  store i32 %2217, ptr %260, align 4, !tbaa !5
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = load i32, ptr @test_count, align 4, !tbaa !5
  %2230 = load i32, ptr %206, align 4, !tbaa !5
  %2231 = call ptr @s2n_strerror(i32 noundef %2230, ptr noundef nonnull @.str.4) #12
  %2232 = load i32, ptr %206, align 4, !tbaa !5
  %2233 = call ptr @s2n_strerror_debug(i32 noundef %2232, ptr noundef nonnull @.str.4) #12
  %2234 = load i32, ptr %260, align 4, !tbaa !5
  %2235 = call ptr @strerror(i32 noundef %2234) #12
  %2236 = load i32, ptr %260, align 4, !tbaa !5
  %2237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2228, ptr noundef nonnull %.str.5.sink2394, i32 noundef %2229, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %2231, ptr noundef %2233, ptr noundef %2235, i32 noundef %2236) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2238:                                             ; preds = %2211
  %2239 = getelementptr inbounds i8, ptr %2107, i64 656
  store ptr null, ptr %2239, align 8, !tbaa !42
  %2240 = getelementptr inbounds i8, ptr %2107, i64 720
  store ptr null, ptr %2240, align 8, !tbaa !48
  %2241 = load i32, ptr @test_count, align 4, !tbaa !5
  %2242 = add nsw i32 %2241, 1
  store i32 %2242, ptr @test_count, align 4, !tbaa !5
  %2243 = call i32 %2026(ptr noundef nonnull %2107, ptr noundef nonnull %13) #12
  %2244 = icmp eq i32 %2243, -1
  br i1 %2244, label %2267, label %2245

2245:                                             ; preds = %2238
  %2246 = load i32, ptr %260, align 4, !tbaa !5
  %2247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2248 = call i32 @s2n_print_stacktrace(ptr noundef %2247) #12
  %2249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2250 = trunc nuw i8 %2249 to i1
  br i1 %2250, label %2251, label %2255

2251:                                             ; preds = %2245
  %2252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2253 = call i32 @fileno(ptr noundef %2252) #12
  %2254 = call i32 @isatty(i32 noundef %2253) #12
  %.not1287 = icmp eq i32 %2254, 0
  br i1 %.not1287, label %2255, label %2256

2255:                                             ; preds = %2251, %2245
  br label %2256

2256:                                             ; preds = %2251, %2255
  %.str.5.sink2403 = phi ptr [ @.str.5, %2255 ], [ @.str.2, %2251 ]
  store i32 %2246, ptr %260, align 4, !tbaa !5
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = load i32, ptr @test_count, align 4, !tbaa !5
  %2259 = load i32, ptr %206, align 4, !tbaa !5
  %2260 = call ptr @s2n_strerror(i32 noundef %2259, ptr noundef nonnull @.str.4) #12
  %2261 = load i32, ptr %206, align 4, !tbaa !5
  %2262 = call ptr @s2n_strerror_debug(i32 noundef %2261, ptr noundef nonnull @.str.4) #12
  %2263 = load i32, ptr %260, align 4, !tbaa !5
  %2264 = call ptr @strerror(i32 noundef %2263) #12
  %2265 = load i32, ptr %260, align 4, !tbaa !5
  %2266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2257, ptr noundef nonnull %.str.5.sink2403, i32 noundef %2258, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %2260, ptr noundef %2262, ptr noundef %2264, i32 noundef %2265) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2267:                                             ; preds = %2238
  %2268 = load i32, ptr @test_count, align 4, !tbaa !5
  %2269 = add nsw i32 %2268, 1
  store i32 %2269, ptr @test_count, align 4, !tbaa !5
  %2270 = load i32, ptr %206, align 4, !tbaa !5
  %2271 = icmp eq i32 %2270, 335544356
  br i1 %2271, label %2294, label %2272

2272:                                             ; preds = %2267
  %2273 = load i32, ptr %260, align 4, !tbaa !5
  %2274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2275 = call i32 @s2n_print_stacktrace(ptr noundef %2274) #12
  %2276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2277 = trunc nuw i8 %2276 to i1
  br i1 %2277, label %2278, label %2282

2278:                                             ; preds = %2272
  %2279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2280 = call i32 @fileno(ptr noundef %2279) #12
  %2281 = call i32 @isatty(i32 noundef %2280) #12
  %.not1288 = icmp eq i32 %2281, 0
  br i1 %.not1288, label %2282, label %2283

2282:                                             ; preds = %2278, %2272
  br label %2283

2283:                                             ; preds = %2278, %2282
  %.str.5.sink2412 = phi ptr [ @.str.5, %2282 ], [ @.str.2, %2278 ]
  store i32 %2273, ptr %260, align 4, !tbaa !5
  %2284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2285 = load i32, ptr @test_count, align 4, !tbaa !5
  %2286 = load i32, ptr %206, align 4, !tbaa !5
  %2287 = call ptr @s2n_strerror(i32 noundef %2286, ptr noundef nonnull @.str.4) #12
  %2288 = load i32, ptr %206, align 4, !tbaa !5
  %2289 = call ptr @s2n_strerror_debug(i32 noundef %2288, ptr noundef nonnull @.str.4) #12
  %2290 = load i32, ptr %260, align 4, !tbaa !5
  %2291 = call ptr @strerror(i32 noundef %2290) #12
  %2292 = load i32, ptr %260, align 4, !tbaa !5
  %2293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2284, ptr noundef nonnull %.str.5.sink2412, i32 noundef %2285, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %2287, ptr noundef %2289, ptr noundef %2291, i32 noundef %2292) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2294:                                             ; preds = %2267
  %2295 = add nsw i32 %2268, 2
  store i32 %2295, ptr @test_count, align 4, !tbaa !5
  %2296 = call ptr @s2n_strerror_debug(i32 noundef 335544356, ptr noundef nonnull @.str.4) #12
  %2297 = icmp eq ptr %2296, null
  br i1 %2297, label %2298, label %2320

2298:                                             ; preds = %2294
  %2299 = load i32, ptr %260, align 4, !tbaa !5
  %2300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2301 = call i32 @s2n_print_stacktrace(ptr noundef %2300) #12
  %2302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2303 = trunc nuw i8 %2302 to i1
  br i1 %2303, label %2304, label %2308

2304:                                             ; preds = %2298
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = call i32 @fileno(ptr noundef %2305) #12
  %2307 = call i32 @isatty(i32 noundef %2306) #12
  %.not1604 = icmp eq i32 %2307, 0
  br i1 %.not1604, label %2308, label %2309

2308:                                             ; preds = %2304, %2298
  br label %2309

2309:                                             ; preds = %2304, %2308
  %.str.5.sink2421 = phi ptr [ @.str.5, %2308 ], [ @.str.2, %2304 ]
  store i32 %2299, ptr %260, align 4, !tbaa !5
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = load i32, ptr @test_count, align 4, !tbaa !5
  %2312 = load i32, ptr %206, align 4, !tbaa !5
  %2313 = call ptr @s2n_strerror(i32 noundef %2312, ptr noundef nonnull @.str.4) #12
  %2314 = load i32, ptr %206, align 4, !tbaa !5
  %2315 = call ptr @s2n_strerror_debug(i32 noundef %2314, ptr noundef nonnull @.str.4) #12
  %2316 = load i32, ptr %260, align 4, !tbaa !5
  %2317 = call ptr @strerror(i32 noundef %2316) #12
  %2318 = load i32, ptr %260, align 4, !tbaa !5
  %2319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2310, ptr noundef nonnull %.str.5.sink2421, i32 noundef %2311, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %2313, ptr noundef %2315, ptr noundef %2317, i32 noundef %2318) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2320:                                             ; preds = %2294
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %2321 = load i32, ptr @test_count, align 4, !tbaa !5
  %2322 = add nsw i32 %2321, 1
  store i32 %2322, ptr @test_count, align 4, !tbaa !5
  %2323 = call i32 @s2n_connection_free(ptr noundef nonnull %2107) #12
  %2324 = icmp eq i32 %2323, -1
  br i1 %2324, label %2325, label %2347

2325:                                             ; preds = %2320
  %2326 = load i32, ptr %260, align 4, !tbaa !5
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = call i32 @s2n_print_stacktrace(ptr noundef %2327) #12
  %2329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2330 = trunc nuw i8 %2329 to i1
  br i1 %2330, label %2331, label %2335

2331:                                             ; preds = %2325
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = call i32 @fileno(ptr noundef %2332) #12
  %2334 = call i32 @isatty(i32 noundef %2333) #12
  %.not1603 = icmp eq i32 %2334, 0
  br i1 %.not1603, label %2335, label %2336

2335:                                             ; preds = %2331, %2325
  br label %2336

2336:                                             ; preds = %2331, %2335
  %.str.5.sink2430 = phi ptr [ @.str.5, %2335 ], [ @.str.2, %2331 ]
  store i32 %2326, ptr %260, align 4, !tbaa !5
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = load i32, ptr @test_count, align 4, !tbaa !5
  %2339 = load i32, ptr %206, align 4, !tbaa !5
  %2340 = call ptr @s2n_strerror(i32 noundef %2339, ptr noundef nonnull @.str.4) #12
  %2341 = load i32, ptr %206, align 4, !tbaa !5
  %2342 = call ptr @s2n_strerror_debug(i32 noundef %2341, ptr noundef nonnull @.str.4) #12
  %2343 = load i32, ptr %260, align 4, !tbaa !5
  %2344 = call ptr @strerror(i32 noundef %2343) #12
  %2345 = load i32, ptr %260, align 4, !tbaa !5
  %2346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2337, ptr noundef nonnull %.str.5.sink2430, i32 noundef %2338, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %2340, ptr noundef %2342, ptr noundef %2344, i32 noundef %2345) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2347:                                             ; preds = %2320
  %2348 = call i32 @s2n_stuffer_free(ptr noundef nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #12
  store ptr null, ptr %14, align 8, !tbaa !9
  %2349 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_key_share_extension, i64 16), align 8
  br label %2350

2350:                                             ; preds = %2721, %2347
  %indvars.iv = phi i64 [ %indvars.iv.next, %2721 ], [ 0, %2347 ]
  %2351 = load i32, ptr @test_count, align 4, !tbaa !5
  %2352 = add nsw i32 %2351, 1
  store i32 %2352, ptr @test_count, align 4, !tbaa !5
  %2353 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %2354 = icmp eq ptr %2353, null
  br i1 %2354, label %2355, label %2377

2355:                                             ; preds = %2350
  %2356 = load i32, ptr %260, align 4, !tbaa !5
  %2357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2358 = call i32 @s2n_print_stacktrace(ptr noundef %2357) #12
  %2359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2360 = trunc nuw i8 %2359 to i1
  br i1 %2360, label %2361, label %2365

2361:                                             ; preds = %2355
  %2362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2363 = call i32 @fileno(ptr noundef %2362) #12
  %2364 = call i32 @isatty(i32 noundef %2363) #12
  %.not1602 = icmp eq i32 %2364, 0
  br i1 %.not1602, label %2365, label %2366

2365:                                             ; preds = %2361, %2355
  br label %2366

2366:                                             ; preds = %2361, %2365
  %.str.5.sink2439 = phi ptr [ @.str.5, %2365 ], [ @.str.2, %2361 ]
  store i32 %2356, ptr %260, align 4, !tbaa !5
  %2367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2368 = load i32, ptr @test_count, align 4, !tbaa !5
  %2369 = load i32, ptr %206, align 4, !tbaa !5
  %2370 = call ptr @s2n_strerror(i32 noundef %2369, ptr noundef nonnull @.str.4) #12
  %2371 = load i32, ptr %206, align 4, !tbaa !5
  %2372 = call ptr @s2n_strerror_debug(i32 noundef %2371, ptr noundef nonnull @.str.4) #12
  %2373 = load i32, ptr %260, align 4, !tbaa !5
  %2374 = call ptr @strerror(i32 noundef %2373) #12
  %2375 = load i32, ptr %260, align 4, !tbaa !5
  %2376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2367, ptr noundef nonnull %.str.5.sink2439, i32 noundef %2368, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %2370, ptr noundef %2372, ptr noundef %2374, i32 noundef %2375) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2377:                                             ; preds = %2350
  %2378 = load i32, ptr @test_count, align 4, !tbaa !5
  %2379 = add nsw i32 %2378, 1
  store i32 %2379, ptr @test_count, align 4, !tbaa !5
  %2380 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %2381 = icmp eq ptr %2380, null
  br i1 %2381, label %2382, label %2404

2382:                                             ; preds = %2377
  %2383 = load i32, ptr %260, align 4, !tbaa !5
  %2384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2385 = call i32 @s2n_print_stacktrace(ptr noundef %2384) #12
  %2386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2387 = trunc nuw i8 %2386 to i1
  br i1 %2387, label %2388, label %2392

2388:                                             ; preds = %2382
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = call i32 @fileno(ptr noundef %2389) #12
  %2391 = call i32 @isatty(i32 noundef %2390) #12
  %.not1601 = icmp eq i32 %2391, 0
  br i1 %.not1601, label %2392, label %2393

2392:                                             ; preds = %2388, %2382
  br label %2393

2393:                                             ; preds = %2388, %2392
  %.str.5.sink2448 = phi ptr [ @.str.5, %2392 ], [ @.str.2, %2388 ]
  store i32 %2383, ptr %260, align 4, !tbaa !5
  %2394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2395 = load i32, ptr @test_count, align 4, !tbaa !5
  %2396 = load i32, ptr %206, align 4, !tbaa !5
  %2397 = call ptr @s2n_strerror(i32 noundef %2396, ptr noundef nonnull @.str.4) #12
  %2398 = load i32, ptr %206, align 4, !tbaa !5
  %2399 = call ptr @s2n_strerror_debug(i32 noundef %2398, ptr noundef nonnull @.str.4) #12
  %2400 = load i32, ptr %260, align 4, !tbaa !5
  %2401 = call ptr @strerror(i32 noundef %2400) #12
  %2402 = load i32, ptr %260, align 4, !tbaa !5
  %2403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2394, ptr noundef nonnull %.str.5.sink2448, i32 noundef %2395, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %2397, ptr noundef %2399, ptr noundef %2401, i32 noundef %2402) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2404:                                             ; preds = %2377
  %2405 = load i32, ptr @test_count, align 4, !tbaa !5
  %2406 = add nsw i32 %2405, 1
  store i32 %2406, ptr @test_count, align 4, !tbaa !5
  %2407 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %2353, ptr noundef nonnull %14) #12
  %2408 = icmp eq i32 %2407, -1
  br i1 %2408, label %2409, label %2431

2409:                                             ; preds = %2404
  %2410 = load i32, ptr %260, align 4, !tbaa !5
  %2411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2412 = call i32 @s2n_print_stacktrace(ptr noundef %2411) #12
  %2413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2414 = trunc nuw i8 %2413 to i1
  br i1 %2414, label %2415, label %2419

2415:                                             ; preds = %2409
  %2416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2417 = call i32 @fileno(ptr noundef %2416) #12
  %2418 = call i32 @isatty(i32 noundef %2417) #12
  %.not1600 = icmp eq i32 %2418, 0
  br i1 %.not1600, label %2419, label %2420

2419:                                             ; preds = %2415, %2409
  br label %2420

2420:                                             ; preds = %2415, %2419
  %.str.5.sink2457 = phi ptr [ @.str.5, %2419 ], [ @.str.2, %2415 ]
  store i32 %2410, ptr %260, align 4, !tbaa !5
  %2421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2422 = load i32, ptr @test_count, align 4, !tbaa !5
  %2423 = load i32, ptr %206, align 4, !tbaa !5
  %2424 = call ptr @s2n_strerror(i32 noundef %2423, ptr noundef nonnull @.str.4) #12
  %2425 = load i32, ptr %206, align 4, !tbaa !5
  %2426 = call ptr @s2n_strerror_debug(i32 noundef %2425, ptr noundef nonnull @.str.4) #12
  %2427 = load i32, ptr %260, align 4, !tbaa !5
  %2428 = call ptr @strerror(i32 noundef %2427) #12
  %2429 = load i32, ptr %260, align 4, !tbaa !5
  %2430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2421, ptr noundef nonnull %.str.5.sink2457, i32 noundef %2422, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %2424, ptr noundef %2426, ptr noundef %2428, i32 noundef %2429) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2431:                                             ; preds = %2404
  %2432 = load i32, ptr @test_count, align 4, !tbaa !5
  %2433 = add nsw i32 %2432, 1
  store i32 %2433, ptr @test_count, align 4, !tbaa !5
  %2434 = load ptr, ptr %14, align 8, !tbaa !9
  %2435 = icmp eq ptr %2434, null
  br i1 %2435, label %2436, label %2458

2436:                                             ; preds = %2431
  %2437 = load i32, ptr %260, align 4, !tbaa !5
  %2438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2439 = call i32 @s2n_print_stacktrace(ptr noundef %2438) #12
  %2440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2441 = trunc nuw i8 %2440 to i1
  br i1 %2441, label %2442, label %2446

2442:                                             ; preds = %2436
  %2443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2444 = call i32 @fileno(ptr noundef %2443) #12
  %2445 = call i32 @isatty(i32 noundef %2444) #12
  %.not1599 = icmp eq i32 %2445, 0
  br i1 %.not1599, label %2446, label %2447

2446:                                             ; preds = %2442, %2436
  br label %2447

2447:                                             ; preds = %2442, %2446
  %.str.5.sink2466 = phi ptr [ @.str.5, %2446 ], [ @.str.2, %2442 ]
  store i32 %2437, ptr %260, align 4, !tbaa !5
  %2448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2449 = load i32, ptr @test_count, align 4, !tbaa !5
  %2450 = load i32, ptr %206, align 4, !tbaa !5
  %2451 = call ptr @s2n_strerror(i32 noundef %2450, ptr noundef nonnull @.str.4) #12
  %2452 = load i32, ptr %206, align 4, !tbaa !5
  %2453 = call ptr @s2n_strerror_debug(i32 noundef %2452, ptr noundef nonnull @.str.4) #12
  %2454 = load i32, ptr %260, align 4, !tbaa !5
  %2455 = call ptr @strerror(i32 noundef %2454) #12
  %2456 = load i32, ptr %260, align 4, !tbaa !5
  %2457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2448, ptr noundef nonnull %.str.5.sink2466, i32 noundef %2449, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %2451, ptr noundef %2453, ptr noundef %2455, i32 noundef %2456) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2458:                                             ; preds = %2431
  %2459 = getelementptr inbounds i8, ptr %2353, i64 2016
  %2460 = getelementptr inbounds i8, ptr %2434, i64 8
  %2461 = load ptr, ptr %2460, align 8, !tbaa !43
  %2462 = getelementptr inbounds ptr, ptr %2461, i64 %indvars.iv
  %2463 = load ptr, ptr %2462, align 8, !tbaa !9
  %2464 = getelementptr inbounds i8, ptr %2353, i64 656
  store ptr %2463, ptr %2464, align 8, !tbaa !42
  %2465 = getelementptr inbounds i8, ptr %2353, i64 704
  store ptr %2463, ptr %2465, align 8, !tbaa !45
  %2466 = add nsw i32 %2432, 2
  store i32 %2466, ptr @test_count, align 4, !tbaa !5
  %2467 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %2465) #12
  %2468 = icmp eq i32 %2467, -1
  br i1 %2468, label %2469, label %2491

2469:                                             ; preds = %2458
  %2470 = load i32, ptr %260, align 4, !tbaa !5
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = call i32 @s2n_print_stacktrace(ptr noundef %2471) #12
  %2473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2474 = trunc nuw i8 %2473 to i1
  br i1 %2474, label %2475, label %2479

2475:                                             ; preds = %2469
  %2476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2477 = call i32 @fileno(ptr noundef %2476) #12
  %2478 = call i32 @isatty(i32 noundef %2477) #12
  %.not1598 = icmp eq i32 %2478, 0
  br i1 %.not1598, label %2479, label %2480

2479:                                             ; preds = %2475, %2469
  br label %2480

2480:                                             ; preds = %2475, %2479
  %.str.5.sink2475 = phi ptr [ @.str.5, %2479 ], [ @.str.2, %2475 ]
  store i32 %2470, ptr %260, align 4, !tbaa !5
  %2481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2482 = load i32, ptr @test_count, align 4, !tbaa !5
  %2483 = load i32, ptr %206, align 4, !tbaa !5
  %2484 = call ptr @s2n_strerror(i32 noundef %2483, ptr noundef nonnull @.str.4) #12
  %2485 = load i32, ptr %206, align 4, !tbaa !5
  %2486 = call ptr @s2n_strerror_debug(i32 noundef %2485, ptr noundef nonnull @.str.4) #12
  %2487 = load i32, ptr %260, align 4, !tbaa !5
  %2488 = call ptr @strerror(i32 noundef %2487) #12
  %2489 = load i32, ptr %260, align 4, !tbaa !5
  %2490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2481, ptr noundef nonnull %.str.5.sink2475, i32 noundef %2482, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %2484, ptr noundef %2486, ptr noundef %2488, i32 noundef %2489) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2491:                                             ; preds = %2458
  %2492 = load i32, ptr @test_count, align 4, !tbaa !5
  %2493 = add nsw i32 %2492, 1
  store i32 %2493, ptr @test_count, align 4, !tbaa !5
  %2494 = call i32 %2026(ptr noundef nonnull %2353, ptr noundef nonnull %2459) #12
  %2495 = icmp eq i32 %2494, -1
  br i1 %2495, label %2496, label %2518

2496:                                             ; preds = %2491
  %2497 = load i32, ptr %260, align 4, !tbaa !5
  %2498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2499 = call i32 @s2n_print_stacktrace(ptr noundef %2498) #12
  %2500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2501 = trunc nuw i8 %2500 to i1
  br i1 %2501, label %2502, label %2506

2502:                                             ; preds = %2496
  %2503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2504 = call i32 @fileno(ptr noundef %2503) #12
  %2505 = call i32 @isatty(i32 noundef %2504) #12
  %.not1597 = icmp eq i32 %2505, 0
  br i1 %.not1597, label %2506, label %2507

2506:                                             ; preds = %2502, %2496
  br label %2507

2507:                                             ; preds = %2502, %2506
  %.str.5.sink2484 = phi ptr [ @.str.5, %2506 ], [ @.str.2, %2502 ]
  store i32 %2497, ptr %260, align 4, !tbaa !5
  %2508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2509 = load i32, ptr @test_count, align 4, !tbaa !5
  %2510 = load i32, ptr %206, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror(i32 noundef %2510, ptr noundef nonnull @.str.4) #12
  %2512 = load i32, ptr %206, align 4, !tbaa !5
  %2513 = call ptr @s2n_strerror_debug(i32 noundef %2512, ptr noundef nonnull @.str.4) #12
  %2514 = load i32, ptr %260, align 4, !tbaa !5
  %2515 = call ptr @strerror(i32 noundef %2514) #12
  %2516 = load i32, ptr %260, align 4, !tbaa !5
  %2517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2508, ptr noundef nonnull %.str.5.sink2484, i32 noundef %2509, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %2511, ptr noundef %2513, ptr noundef %2515, i32 noundef %2516) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2518:                                             ; preds = %2491
  %2519 = load ptr, ptr %14, align 8, !tbaa !9
  %2520 = getelementptr inbounds i8, ptr %2519, i64 8
  %2521 = load ptr, ptr %2520, align 8, !tbaa !43
  %2522 = getelementptr inbounds ptr, ptr %2521, i64 %indvars.iv
  %2523 = load ptr, ptr %2522, align 8, !tbaa !9
  %2524 = getelementptr inbounds i8, ptr %2380, i64 704
  store ptr %2523, ptr %2524, align 8, !tbaa !45
  %2525 = load i32, ptr @test_count, align 4, !tbaa !5
  %2526 = add nsw i32 %2525, 1
  store i32 %2526, ptr @test_count, align 4, !tbaa !5
  %2527 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %2524) #12
  %2528 = icmp eq i32 %2527, -1
  br i1 %2528, label %2529, label %2551

2529:                                             ; preds = %2518
  %2530 = load i32, ptr %260, align 4, !tbaa !5
  %2531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2532 = call i32 @s2n_print_stacktrace(ptr noundef %2531) #12
  %2533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2534 = trunc nuw i8 %2533 to i1
  br i1 %2534, label %2535, label %2539

2535:                                             ; preds = %2529
  %2536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2537 = call i32 @fileno(ptr noundef %2536) #12
  %2538 = call i32 @isatty(i32 noundef %2537) #12
  %.not1596 = icmp eq i32 %2538, 0
  br i1 %.not1596, label %2539, label %2540

2539:                                             ; preds = %2535, %2529
  br label %2540

2540:                                             ; preds = %2535, %2539
  %.str.5.sink2493 = phi ptr [ @.str.5, %2539 ], [ @.str.2, %2535 ]
  store i32 %2530, ptr %260, align 4, !tbaa !5
  %2541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2542 = load i32, ptr @test_count, align 4, !tbaa !5
  %2543 = load i32, ptr %206, align 4, !tbaa !5
  %2544 = call ptr @s2n_strerror(i32 noundef %2543, ptr noundef nonnull @.str.4) #12
  %2545 = load i32, ptr %206, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror_debug(i32 noundef %2545, ptr noundef nonnull @.str.4) #12
  %2547 = load i32, ptr %260, align 4, !tbaa !5
  %2548 = call ptr @strerror(i32 noundef %2547) #12
  %2549 = load i32, ptr %260, align 4, !tbaa !5
  %2550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2541, ptr noundef nonnull %.str.5.sink2493, i32 noundef %2542, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %2544, ptr noundef %2546, ptr noundef %2548, i32 noundef %2549) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2551:                                             ; preds = %2518
  %2552 = load i32, ptr @test_count, align 4, !tbaa !5
  %2553 = add nsw i32 %2552, 1
  store i32 %2553, ptr @test_count, align 4, !tbaa !5
  %2554 = call i32 %2349(ptr noundef nonnull %2380, ptr noundef nonnull %2459) #12
  %2555 = icmp eq i32 %2554, -1
  br i1 %2555, label %2556, label %2578

2556:                                             ; preds = %2551
  %2557 = load i32, ptr %260, align 4, !tbaa !5
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = call i32 @s2n_print_stacktrace(ptr noundef %2558) #12
  %2560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2561 = trunc nuw i8 %2560 to i1
  br i1 %2561, label %2562, label %2566

2562:                                             ; preds = %2556
  %2563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2564 = call i32 @fileno(ptr noundef %2563) #12
  %2565 = call i32 @isatty(i32 noundef %2564) #12
  %.not1595 = icmp eq i32 %2565, 0
  br i1 %.not1595, label %2566, label %2567

2566:                                             ; preds = %2562, %2556
  br label %2567

2567:                                             ; preds = %2562, %2566
  %.str.5.sink2502 = phi ptr [ @.str.5, %2566 ], [ @.str.2, %2562 ]
  store i32 %2557, ptr %260, align 4, !tbaa !5
  %2568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2569 = load i32, ptr @test_count, align 4, !tbaa !5
  %2570 = load i32, ptr %206, align 4, !tbaa !5
  %2571 = call ptr @s2n_strerror(i32 noundef %2570, ptr noundef nonnull @.str.4) #12
  %2572 = load i32, ptr %206, align 4, !tbaa !5
  %2573 = call ptr @s2n_strerror_debug(i32 noundef %2572, ptr noundef nonnull @.str.4) #12
  %2574 = load i32, ptr %260, align 4, !tbaa !5
  %2575 = call ptr @strerror(i32 noundef %2574) #12
  %2576 = load i32, ptr %260, align 4, !tbaa !5
  %2577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2568, ptr noundef nonnull %.str.5.sink2502, i32 noundef %2569, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %2571, ptr noundef %2573, ptr noundef %2575, i32 noundef %2576) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2578:                                             ; preds = %2551
  %2579 = load i32, ptr @test_count, align 4, !tbaa !5
  %2580 = add nsw i32 %2579, 1
  store i32 %2580, ptr @test_count, align 4, !tbaa !5
  %2581 = getelementptr inbounds i8, ptr %2353, i64 2044
  %2582 = load i32, ptr %2581, align 4, !tbaa !54
  %2583 = getelementptr inbounds i8, ptr %2353, i64 2040
  %2584 = load i32, ptr %2583, align 8, !tbaa !55
  %2585 = icmp eq i32 %2582, %2584
  br i1 %2585, label %2608, label %2586

2586:                                             ; preds = %2578
  %2587 = load i32, ptr %260, align 4, !tbaa !5
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @s2n_print_stacktrace(ptr noundef %2588) #12
  %2590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2591 = trunc nuw i8 %2590 to i1
  br i1 %2591, label %2592, label %2596

2592:                                             ; preds = %2586
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = call i32 @fileno(ptr noundef %2593) #12
  %2595 = call i32 @isatty(i32 noundef %2594) #12
  %.not1289 = icmp eq i32 %2595, 0
  br i1 %.not1289, label %2596, label %2597

2596:                                             ; preds = %2592, %2586
  br label %2597

2597:                                             ; preds = %2592, %2596
  %.str.5.sink2511 = phi ptr [ @.str.5, %2596 ], [ @.str.2, %2592 ]
  store i32 %2587, ptr %260, align 4, !tbaa !5
  %2598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2599 = load i32, ptr @test_count, align 4, !tbaa !5
  %2600 = load i32, ptr %206, align 4, !tbaa !5
  %2601 = call ptr @s2n_strerror(i32 noundef %2600, ptr noundef nonnull @.str.4) #12
  %2602 = load i32, ptr %206, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror_debug(i32 noundef %2602, ptr noundef nonnull @.str.4) #12
  %2604 = load i32, ptr %260, align 4, !tbaa !5
  %2605 = call ptr @strerror(i32 noundef %2604) #12
  %2606 = load i32, ptr %260, align 4, !tbaa !5
  %2607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2598, ptr noundef nonnull %.str.5.sink2511, i32 noundef %2599, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %2601, ptr noundef %2603, ptr noundef %2605, i32 noundef %2606) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2608:                                             ; preds = %2578
  %2609 = add nsw i32 %2579, 2
  store i32 %2609, ptr @test_count, align 4, !tbaa !5
  %2610 = load ptr, ptr %2464, align 8, !tbaa !42
  %2611 = load i16, ptr %2610, align 8, !tbaa !53
  %2612 = getelementptr inbounds i8, ptr %2380, i64 656
  %2613 = load ptr, ptr %2612, align 8, !tbaa !42
  %2614 = load i16, ptr %2613, align 8, !tbaa !53
  %2615 = icmp eq i16 %2611, %2614
  br i1 %2615, label %2638, label %2616

2616:                                             ; preds = %2608
  %2617 = load i32, ptr %260, align 4, !tbaa !5
  %2618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2619 = call i32 @s2n_print_stacktrace(ptr noundef %2618) #12
  %2620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2621 = trunc nuw i8 %2620 to i1
  br i1 %2621, label %2622, label %2626

2622:                                             ; preds = %2616
  %2623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2624 = call i32 @fileno(ptr noundef %2623) #12
  %2625 = call i32 @isatty(i32 noundef %2624) #12
  %.not1290 = icmp eq i32 %2625, 0
  br i1 %.not1290, label %2626, label %2627

2626:                                             ; preds = %2622, %2616
  br label %2627

2627:                                             ; preds = %2622, %2626
  %.str.5.sink2520 = phi ptr [ @.str.5, %2626 ], [ @.str.2, %2622 ]
  store i32 %2617, ptr %260, align 4, !tbaa !5
  %2628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2629 = load i32, ptr @test_count, align 4, !tbaa !5
  %2630 = load i32, ptr %206, align 4, !tbaa !5
  %2631 = call ptr @s2n_strerror(i32 noundef %2630, ptr noundef nonnull @.str.4) #12
  %2632 = load i32, ptr %206, align 4, !tbaa !5
  %2633 = call ptr @s2n_strerror_debug(i32 noundef %2632, ptr noundef nonnull @.str.4) #12
  %2634 = load i32, ptr %260, align 4, !tbaa !5
  %2635 = call ptr @strerror(i32 noundef %2634) #12
  %2636 = load i32, ptr %260, align 4, !tbaa !5
  %2637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2628, ptr noundef nonnull %.str.5.sink2520, i32 noundef %2629, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %2631, ptr noundef %2633, ptr noundef %2635, i32 noundef %2636) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2638:                                             ; preds = %2608
  %2639 = add nsw i32 %2579, 3
  store i32 %2639, ptr @test_count, align 4, !tbaa !5
  %2640 = load ptr, ptr %14, align 8, !tbaa !9
  %2641 = getelementptr inbounds i8, ptr %2640, i64 8
  %2642 = load ptr, ptr %2641, align 8, !tbaa !43
  %2643 = getelementptr inbounds ptr, ptr %2642, i64 %indvars.iv
  %2644 = load ptr, ptr %2643, align 8, !tbaa !9
  %2645 = icmp eq ptr %2610, %2644
  br i1 %2645, label %2668, label %2646

2646:                                             ; preds = %2638
  %2647 = load i32, ptr %260, align 4, !tbaa !5
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = call i32 @s2n_print_stacktrace(ptr noundef %2648) #12
  %2650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2651 = trunc nuw i8 %2650 to i1
  br i1 %2651, label %2652, label %2656

2652:                                             ; preds = %2646
  %2653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2654 = call i32 @fileno(ptr noundef %2653) #12
  %2655 = call i32 @isatty(i32 noundef %2654) #12
  %.not1291 = icmp eq i32 %2655, 0
  br i1 %.not1291, label %2656, label %2657

2656:                                             ; preds = %2652, %2646
  br label %2657

2657:                                             ; preds = %2652, %2656
  %.str.5.sink2529 = phi ptr [ @.str.5, %2656 ], [ @.str.2, %2652 ]
  store i32 %2647, ptr %260, align 4, !tbaa !5
  %2658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2659 = load i32, ptr @test_count, align 4, !tbaa !5
  %2660 = load i32, ptr %206, align 4, !tbaa !5
  %2661 = call ptr @s2n_strerror(i32 noundef %2660, ptr noundef nonnull @.str.4) #12
  %2662 = load i32, ptr %206, align 4, !tbaa !5
  %2663 = call ptr @s2n_strerror_debug(i32 noundef %2662, ptr noundef nonnull @.str.4) #12
  %2664 = load i32, ptr %260, align 4, !tbaa !5
  %2665 = call ptr @strerror(i32 noundef %2664) #12
  %2666 = load i32, ptr %260, align 4, !tbaa !5
  %2667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2658, ptr noundef nonnull %.str.5.sink2529, i32 noundef %2659, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef %2661, ptr noundef %2663, ptr noundef %2665, i32 noundef %2666) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2668:                                             ; preds = %2638
  %2669 = add nsw i32 %2579, 4
  store i32 %2669, ptr @test_count, align 4, !tbaa !5
  %2670 = call i32 @s2n_connection_free(ptr noundef nonnull %2353) #12
  %2671 = icmp eq i32 %2670, -1
  br i1 %2671, label %2672, label %2694

2672:                                             ; preds = %2668
  %2673 = load i32, ptr %260, align 4, !tbaa !5
  %2674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2675 = call i32 @s2n_print_stacktrace(ptr noundef %2674) #12
  %2676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2677 = trunc nuw i8 %2676 to i1
  br i1 %2677, label %2678, label %2682

2678:                                             ; preds = %2672
  %2679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2680 = call i32 @fileno(ptr noundef %2679) #12
  %2681 = call i32 @isatty(i32 noundef %2680) #12
  %.not1594 = icmp eq i32 %2681, 0
  br i1 %.not1594, label %2682, label %2683

2682:                                             ; preds = %2678, %2672
  br label %2683

2683:                                             ; preds = %2678, %2682
  %.str.5.sink2538 = phi ptr [ @.str.5, %2682 ], [ @.str.2, %2678 ]
  store i32 %2673, ptr %260, align 4, !tbaa !5
  %2684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2685 = load i32, ptr @test_count, align 4, !tbaa !5
  %2686 = load i32, ptr %206, align 4, !tbaa !5
  %2687 = call ptr @s2n_strerror(i32 noundef %2686, ptr noundef nonnull @.str.4) #12
  %2688 = load i32, ptr %206, align 4, !tbaa !5
  %2689 = call ptr @s2n_strerror_debug(i32 noundef %2688, ptr noundef nonnull @.str.4) #12
  %2690 = load i32, ptr %260, align 4, !tbaa !5
  %2691 = call ptr @strerror(i32 noundef %2690) #12
  %2692 = load i32, ptr %260, align 4, !tbaa !5
  %2693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2684, ptr noundef nonnull %.str.5.sink2538, i32 noundef %2685, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %2687, ptr noundef %2689, ptr noundef %2691, i32 noundef %2692) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2694:                                             ; preds = %2668
  %2695 = load i32, ptr @test_count, align 4, !tbaa !5
  %2696 = add nsw i32 %2695, 1
  store i32 %2696, ptr @test_count, align 4, !tbaa !5
  %2697 = call i32 @s2n_connection_free(ptr noundef nonnull %2380) #12
  %2698 = icmp eq i32 %2697, -1
  br i1 %2698, label %2699, label %2721

2699:                                             ; preds = %2694
  %2700 = load i32, ptr %260, align 4, !tbaa !5
  %2701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2702 = call i32 @s2n_print_stacktrace(ptr noundef %2701) #12
  %2703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2704 = trunc nuw i8 %2703 to i1
  br i1 %2704, label %2705, label %2709

2705:                                             ; preds = %2699
  %2706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2707 = call i32 @fileno(ptr noundef %2706) #12
  %2708 = call i32 @isatty(i32 noundef %2707) #12
  %.not1593 = icmp eq i32 %2708, 0
  br i1 %.not1593, label %2709, label %2710

2709:                                             ; preds = %2705, %2699
  br label %2710

2710:                                             ; preds = %2705, %2709
  %.str.5.sink2547 = phi ptr [ @.str.5, %2709 ], [ @.str.2, %2705 ]
  store i32 %2700, ptr %260, align 4, !tbaa !5
  %2711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2712 = load i32, ptr @test_count, align 4, !tbaa !5
  %2713 = load i32, ptr %206, align 4, !tbaa !5
  %2714 = call ptr @s2n_strerror(i32 noundef %2713, ptr noundef nonnull @.str.4) #12
  %2715 = load i32, ptr %206, align 4, !tbaa !5
  %2716 = call ptr @s2n_strerror_debug(i32 noundef %2715, ptr noundef nonnull @.str.4) #12
  %2717 = load i32, ptr %260, align 4, !tbaa !5
  %2718 = call ptr @strerror(i32 noundef %2717) #12
  %2719 = load i32, ptr %260, align 4, !tbaa !5
  %2720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2711, ptr noundef nonnull %.str.5.sink2547, i32 noundef %2712, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %2714, ptr noundef %2716, ptr noundef %2718, i32 noundef %2719) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2721:                                             ; preds = %2694
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %2722 = load ptr, ptr %14, align 8, !tbaa !9
  %2723 = load i8, ptr %2722, align 8, !tbaa !49
  %2724 = zext i8 %2723 to i64
  %2725 = icmp ult i64 %indvars.iv.next, %2724
  br i1 %2725, label %2350, label %2726, !llvm.loop !64

2726:                                             ; preds = %2721
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  %2727 = call i32 (...) @s2n_is_evp_apis_supported() #12
  %.not1292 = icmp eq i32 %2727, 0
  br i1 %.not1292, label %3617, label %.preheader1670

.preheader1670:                                   ; preds = %2726
  %2728 = getelementptr inbounds i8, ptr %15, i64 28
  %2729 = getelementptr inbounds i8, ptr %15, i64 24
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %15) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %15, i8 0, i64 40, i1 false)
  %2730 = load i32, ptr @test_count, align 4, !tbaa !5
  %2731 = add nsw i32 %2730, 1
  store i32 %2731, ptr @test_count, align 4, !tbaa !5
  %2732 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %2733 = icmp eq ptr %2732, null
  br i1 %2733, label %2734, label %2756

2734:                                             ; preds = %3131, %3061, %.preheader1670
  %2735 = load i32, ptr %260, align 4, !tbaa !5
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = call i32 @s2n_print_stacktrace(ptr noundef %2736) #12
  %2738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2739 = trunc nuw i8 %2738 to i1
  br i1 %2739, label %2740, label %2744

2740:                                             ; preds = %2734
  %2741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2742 = call i32 @fileno(ptr noundef %2741) #12
  %2743 = call i32 @isatty(i32 noundef %2742) #12
  %.not1592 = icmp eq i32 %2743, 0
  br i1 %.not1592, label %2744, label %2745

2744:                                             ; preds = %2740, %2734
  br label %2745

2745:                                             ; preds = %2740, %2744
  %.str.5.sink2556 = phi ptr [ @.str.5, %2744 ], [ @.str.2, %2740 ]
  store i32 %2735, ptr %260, align 4, !tbaa !5
  %2746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2747 = load i32, ptr @test_count, align 4, !tbaa !5
  %2748 = load i32, ptr %206, align 4, !tbaa !5
  %2749 = call ptr @s2n_strerror(i32 noundef %2748, ptr noundef nonnull @.str.4) #12
  %2750 = load i32, ptr %206, align 4, !tbaa !5
  %2751 = call ptr @s2n_strerror_debug(i32 noundef %2750, ptr noundef nonnull @.str.4) #12
  %2752 = load i32, ptr %260, align 4, !tbaa !5
  %2753 = call ptr @strerror(i32 noundef %2752) #12
  %2754 = load i32, ptr %260, align 4, !tbaa !5
  %2755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2746, ptr noundef nonnull %.str.5.sink2556, i32 noundef %2747, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %2749, ptr noundef %2751, ptr noundef %2753, i32 noundef %2754) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2756:                                             ; preds = %.preheader1670
  %2757 = load i32, ptr @test_count, align 4, !tbaa !5
  %2758 = add nsw i32 %2757, 1
  store i32 %2758, ptr @test_count, align 4, !tbaa !5
  %2759 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2732, ptr noundef nonnull @.str.60) #12
  %2760 = icmp eq i32 %2759, -1
  br i1 %2760, label %2761, label %2783

2761:                                             ; preds = %3136, %3066, %2756
  %2762 = load i32, ptr %260, align 4, !tbaa !5
  %2763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2764 = call i32 @s2n_print_stacktrace(ptr noundef %2763) #12
  %2765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2766 = trunc nuw i8 %2765 to i1
  br i1 %2766, label %2767, label %2771

2767:                                             ; preds = %2761
  %2768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2769 = call i32 @fileno(ptr noundef %2768) #12
  %2770 = call i32 @isatty(i32 noundef %2769) #12
  %.not1591 = icmp eq i32 %2770, 0
  br i1 %.not1591, label %2771, label %2772

2771:                                             ; preds = %2767, %2761
  br label %2772

2772:                                             ; preds = %2767, %2771
  %.str.5.sink2565 = phi ptr [ @.str.5, %2771 ], [ @.str.2, %2767 ]
  store i32 %2762, ptr %260, align 4, !tbaa !5
  %2773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2774 = load i32, ptr @test_count, align 4, !tbaa !5
  %2775 = load i32, ptr %206, align 4, !tbaa !5
  %2776 = call ptr @s2n_strerror(i32 noundef %2775, ptr noundef nonnull @.str.4) #12
  %2777 = load i32, ptr %206, align 4, !tbaa !5
  %2778 = call ptr @s2n_strerror_debug(i32 noundef %2777, ptr noundef nonnull @.str.4) #12
  %2779 = load i32, ptr %260, align 4, !tbaa !5
  %2780 = call ptr @strerror(i32 noundef %2779) #12
  %2781 = load i32, ptr %260, align 4, !tbaa !5
  %2782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2773, ptr noundef nonnull %.str.5.sink2565, i32 noundef %2774, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %2776, ptr noundef %2778, ptr noundef %2780, i32 noundef %2781) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2783:                                             ; preds = %2756
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  store ptr null, ptr %16, align 8, !tbaa !9
  %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 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %2732, ptr noundef nonnull %16) #12
  %2787 = icmp eq i32 %2786, -1
  br i1 %2787, label %2788, label %2810

2788:                                             ; preds = %3141, %3071, %2783
  %2789 = load i32, ptr %260, align 4, !tbaa !5
  %2790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2791 = call i32 @s2n_print_stacktrace(ptr noundef %2790) #12
  %2792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2793 = trunc nuw i8 %2792 to i1
  br i1 %2793, label %2794, label %2798

2794:                                             ; preds = %2788
  %2795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2796 = call i32 @fileno(ptr noundef %2795) #12
  %2797 = call i32 @isatty(i32 noundef %2796) #12
  %.not1590 = icmp eq i32 %2797, 0
  br i1 %.not1590, label %2798, label %2799

2798:                                             ; preds = %2794, %2788
  br label %2799

2799:                                             ; preds = %2794, %2798
  %.str.5.sink2574 = phi ptr [ @.str.5, %2798 ], [ @.str.2, %2794 ]
  store i32 %2789, ptr %260, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = load i32, ptr @test_count, align 4, !tbaa !5
  %2802 = load i32, ptr %206, align 4, !tbaa !5
  %2803 = call ptr @s2n_strerror(i32 noundef %2802, ptr noundef nonnull @.str.4) #12
  %2804 = load i32, ptr %206, align 4, !tbaa !5
  %2805 = call ptr @s2n_strerror_debug(i32 noundef %2804, ptr noundef nonnull @.str.4) #12
  %2806 = load i32, ptr %260, align 4, !tbaa !5
  %2807 = call ptr @strerror(i32 noundef %2806) #12
  %2808 = load i32, ptr %260, align 4, !tbaa !5
  %2809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2800, ptr noundef nonnull %.str.5.sink2574, i32 noundef %2801, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 257, ptr noundef %2803, ptr noundef %2805, ptr noundef %2807, i32 noundef %2808) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2810:                                             ; preds = %2783
  %2811 = load i32, ptr @test_count, align 4, !tbaa !5
  %2812 = add nsw i32 %2811, 1
  store i32 %2812, ptr @test_count, align 4, !tbaa !5
  %2813 = load ptr, ptr %16, align 8, !tbaa !9
  %2814 = icmp eq ptr %2813, null
  br i1 %2814, label %2815, label %2837

2815:                                             ; preds = %3146, %3076, %2810
  %2816 = load i32, ptr %260, align 4, !tbaa !5
  %2817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2818 = call i32 @s2n_print_stacktrace(ptr noundef %2817) #12
  %2819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2820 = trunc nuw i8 %2819 to i1
  br i1 %2820, label %2821, label %2825

2821:                                             ; preds = %2815
  %2822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2823 = call i32 @fileno(ptr noundef %2822) #12
  %2824 = call i32 @isatty(i32 noundef %2823) #12
  %.not1589 = icmp eq i32 %2824, 0
  br i1 %.not1589, label %2825, label %2826

2825:                                             ; preds = %2821, %2815
  br label %2826

2826:                                             ; preds = %2821, %2825
  %.str.5.sink2583 = phi ptr [ @.str.5, %2825 ], [ @.str.2, %2821 ]
  store i32 %2816, ptr %260, align 4, !tbaa !5
  %2827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2828 = load i32, ptr @test_count, align 4, !tbaa !5
  %2829 = load i32, ptr %206, align 4, !tbaa !5
  %2830 = call ptr @s2n_strerror(i32 noundef %2829, ptr noundef nonnull @.str.4) #12
  %2831 = load i32, ptr %206, align 4, !tbaa !5
  %2832 = call ptr @s2n_strerror_debug(i32 noundef %2831, ptr noundef nonnull @.str.4) #12
  %2833 = load i32, ptr %260, align 4, !tbaa !5
  %2834 = call ptr @strerror(i32 noundef %2833) #12
  %2835 = load i32, ptr %260, align 4, !tbaa !5
  %2836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2827, ptr noundef nonnull %.str.5.sink2583, i32 noundef %2828, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %2830, ptr noundef %2832, ptr noundef %2834, i32 noundef %2835) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2837:                                             ; preds = %2810
  %2838 = load ptr, ptr @__const.main.key_share_payloads, align 16, !tbaa !9
  %2839 = add nsw i32 %2811, 2
  store i32 %2839, ptr @test_count, align 4, !tbaa !5
  %2840 = getelementptr inbounds i8, ptr %2732, i64 656
  %2841 = load ptr, ptr %2840, align 8, !tbaa !42
  %2842 = icmp eq ptr %2841, null
  br i1 %2842, label %2865, label %2843

2843:                                             ; preds = %3151, %3081, %2837
  %2844 = load i32, ptr %260, align 4, !tbaa !5
  %2845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2846 = call i32 @s2n_print_stacktrace(ptr noundef %2845) #12
  %2847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2848 = trunc nuw i8 %2847 to i1
  br i1 %2848, label %2849, label %2853

2849:                                             ; preds = %2843
  %2850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2851 = call i32 @fileno(ptr noundef %2850) #12
  %2852 = call i32 @isatty(i32 noundef %2851) #12
  %.not1581 = icmp eq i32 %2852, 0
  br i1 %.not1581, label %2853, label %2854

2853:                                             ; preds = %2849, %2843
  br label %2854

2854:                                             ; preds = %2849, %2853
  %.str.5.sink2592 = phi ptr [ @.str.5, %2853 ], [ @.str.2, %2849 ]
  store i32 %2844, ptr %260, align 4, !tbaa !5
  %2855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2856 = load i32, ptr @test_count, align 4, !tbaa !5
  %2857 = load i32, ptr %206, align 4, !tbaa !5
  %2858 = call ptr @s2n_strerror(i32 noundef %2857, ptr noundef nonnull @.str.4) #12
  %2859 = load i32, ptr %206, align 4, !tbaa !5
  %2860 = call ptr @s2n_strerror_debug(i32 noundef %2859, ptr noundef nonnull @.str.4) #12
  %2861 = load i32, ptr %260, align 4, !tbaa !5
  %2862 = call ptr @strerror(i32 noundef %2861) #12
  %2863 = load i32, ptr %260, align 4, !tbaa !5
  %2864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2855, ptr noundef nonnull %.str.5.sink2592, i32 noundef %2856, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %2858, ptr noundef %2860, ptr noundef %2862, i32 noundef %2863) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2865:                                             ; preds = %2837
  %2866 = add nsw i32 %2811, 3
  store i32 %2866, ptr @test_count, align 4, !tbaa !5
  %2867 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull %15, ptr noundef %2838) #12
  %2868 = call zeroext i1 @s2n_result_is_ok(i32 %2867)
  br i1 %2868, label %2891, label %2869

2869:                                             ; preds = %3157, %3087, %2865
  %2870 = load i32, ptr %260, align 4, !tbaa !5
  %2871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2872 = call i32 @s2n_print_stacktrace(ptr noundef %2871) #12
  %2873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2874 = trunc nuw i8 %2873 to i1
  br i1 %2874, label %2875, label %2879

2875:                                             ; preds = %2869
  %2876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2877 = call i32 @fileno(ptr noundef %2876) #12
  %2878 = call i32 @isatty(i32 noundef %2877) #12
  %.not1582 = icmp eq i32 %2878, 0
  br i1 %.not1582, label %2879, label %2880

2879:                                             ; preds = %2875, %2869
  br label %2880

2880:                                             ; preds = %2875, %2879
  %.str.5.sink2601 = phi ptr [ @.str.5, %2879 ], [ @.str.2, %2875 ]
  store i32 %2870, ptr %260, align 4, !tbaa !5
  %2881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2882 = load i32, ptr @test_count, align 4, !tbaa !5
  %2883 = load i32, ptr %206, align 4, !tbaa !5
  %2884 = call ptr @s2n_strerror(i32 noundef %2883, ptr noundef nonnull @.str.4) #12
  %2885 = load i32, ptr %206, align 4, !tbaa !5
  %2886 = call ptr @s2n_strerror_debug(i32 noundef %2885, ptr noundef nonnull @.str.4) #12
  %2887 = load i32, ptr %260, align 4, !tbaa !5
  %2888 = call ptr @strerror(i32 noundef %2887) #12
  %2889 = load i32, ptr %260, align 4, !tbaa !5
  %2890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2881, ptr noundef nonnull %.str.5.sink2601, i32 noundef %2882, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 263, ptr noundef %2884, ptr noundef %2886, ptr noundef %2888, i32 noundef %2889) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2891:                                             ; preds = %2865
  %2892 = load ptr, ptr %16, align 8, !tbaa !9
  %2893 = getelementptr inbounds i8, ptr %2892, i64 8
  %2894 = load ptr, ptr %2893, align 8, !tbaa !43
  %2895 = load ptr, ptr %2894, align 8, !tbaa !9
  %2896 = getelementptr inbounds i8, ptr %2732, i64 704
  store ptr %2895, ptr %2896, align 8, !tbaa !45
  %2897 = load i32, ptr @test_count, align 4, !tbaa !5
  %2898 = add nsw i32 %2897, 1
  store i32 %2898, ptr @test_count, align 4, !tbaa !5
  %2899 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %2896) #12
  %2900 = icmp eq i32 %2899, -1
  br i1 %2900, label %2901, label %2923

2901:                                             ; preds = %3161, %3091, %2891
  %2902 = load i32, ptr %260, align 4, !tbaa !5
  %2903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2904 = call i32 @s2n_print_stacktrace(ptr noundef %2903) #12
  %2905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2906 = trunc nuw i8 %2905 to i1
  br i1 %2906, label %2907, label %2911

2907:                                             ; preds = %2901
  %2908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2909 = call i32 @fileno(ptr noundef %2908) #12
  %2910 = call i32 @isatty(i32 noundef %2909) #12
  %.not1588 = icmp eq i32 %2910, 0
  br i1 %.not1588, label %2911, label %2912

2911:                                             ; preds = %2907, %2901
  br label %2912

2912:                                             ; preds = %2907, %2911
  %.str.5.sink2610 = phi ptr [ @.str.5, %2911 ], [ @.str.2, %2907 ]
  store i32 %2902, ptr %260, align 4, !tbaa !5
  %2913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2914 = load i32, ptr @test_count, align 4, !tbaa !5
  %2915 = load i32, ptr %206, align 4, !tbaa !5
  %2916 = call ptr @s2n_strerror(i32 noundef %2915, ptr noundef nonnull @.str.4) #12
  %2917 = load i32, ptr %206, align 4, !tbaa !5
  %2918 = call ptr @s2n_strerror_debug(i32 noundef %2917, ptr noundef nonnull @.str.4) #12
  %2919 = load i32, ptr %260, align 4, !tbaa !5
  %2920 = call ptr @strerror(i32 noundef %2919) #12
  %2921 = load i32, ptr %260, align 4, !tbaa !5
  %2922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2913, ptr noundef nonnull %.str.5.sink2610, i32 noundef %2914, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 266, ptr noundef %2916, ptr noundef %2918, ptr noundef %2920, i32 noundef %2921) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2923:                                             ; preds = %2891
  %2924 = load i32, ptr @test_count, align 4, !tbaa !5
  %2925 = add nsw i32 %2924, 1
  store i32 %2925, ptr @test_count, align 4, !tbaa !5
  %2926 = call i32 %2349(ptr noundef nonnull %2732, ptr noundef nonnull %15) #12
  %2927 = icmp eq i32 %2926, -1
  br i1 %2927, label %2928, label %2950

2928:                                             ; preds = %3172, %3102, %2923
  %2929 = load i32, ptr %260, align 4, !tbaa !5
  %2930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2931 = call i32 @s2n_print_stacktrace(ptr noundef %2930) #12
  %2932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2933 = trunc nuw i8 %2932 to i1
  br i1 %2933, label %2934, label %2938

2934:                                             ; preds = %2928
  %2935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2936 = call i32 @fileno(ptr noundef %2935) #12
  %2937 = call i32 @isatty(i32 noundef %2936) #12
  %.not1587 = icmp eq i32 %2937, 0
  br i1 %.not1587, label %2938, label %2939

2938:                                             ; preds = %2934, %2928
  br label %2939

2939:                                             ; preds = %2934, %2938
  %.str.5.sink2619 = phi ptr [ @.str.5, %2938 ], [ @.str.2, %2934 ]
  store i32 %2929, ptr %260, align 4, !tbaa !5
  %2940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2941 = load i32, ptr @test_count, align 4, !tbaa !5
  %2942 = load i32, ptr %206, align 4, !tbaa !5
  %2943 = call ptr @s2n_strerror(i32 noundef %2942, ptr noundef nonnull @.str.4) #12
  %2944 = load i32, ptr %206, align 4, !tbaa !5
  %2945 = call ptr @s2n_strerror_debug(i32 noundef %2944, ptr noundef nonnull @.str.4) #12
  %2946 = load i32, ptr %260, align 4, !tbaa !5
  %2947 = call ptr @strerror(i32 noundef %2946) #12
  %2948 = load i32, ptr %260, align 4, !tbaa !5
  %2949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2940, ptr noundef nonnull %.str.5.sink2619, i32 noundef %2941, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %2943, ptr noundef %2945, ptr noundef %2947, i32 noundef %2948) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2950:                                             ; preds = %2923
  %2951 = load i32, ptr @test_count, align 4, !tbaa !5
  %2952 = add nsw i32 %2951, 1
  store i32 %2952, ptr @test_count, align 4, !tbaa !5
  %2953 = load ptr, ptr %2840, align 8, !tbaa !42
  %2954 = load ptr, ptr %16, align 8, !tbaa !9
  %2955 = getelementptr inbounds i8, ptr %2954, i64 8
  %2956 = load ptr, ptr %2955, align 8, !tbaa !43
  %2957 = load ptr, ptr %2956, align 8, !tbaa !9
  %2958 = icmp eq ptr %2953, %2957
  br i1 %2958, label %2981, label %2959

2959:                                             ; preds = %3177, %3107, %2950
  %2960 = load i32, ptr %260, align 4, !tbaa !5
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = call i32 @s2n_print_stacktrace(ptr noundef %2961) #12
  %2963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2964 = trunc nuw i8 %2963 to i1
  br i1 %2964, label %2965, label %2969

2965:                                             ; preds = %2959
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = call i32 @fileno(ptr noundef %2966) #12
  %2968 = call i32 @isatty(i32 noundef %2967) #12
  %.not1583 = icmp eq i32 %2968, 0
  br i1 %.not1583, label %2969, label %2970

2969:                                             ; preds = %2965, %2959
  br label %2970

2970:                                             ; preds = %2965, %2969
  %.str.5.sink2628 = phi ptr [ @.str.5, %2969 ], [ @.str.2, %2965 ]
  store i32 %2960, ptr %260, align 4, !tbaa !5
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = load i32, ptr @test_count, align 4, !tbaa !5
  %2973 = load i32, ptr %206, align 4, !tbaa !5
  %2974 = call ptr @s2n_strerror(i32 noundef %2973, ptr noundef nonnull @.str.4) #12
  %2975 = load i32, ptr %206, align 4, !tbaa !5
  %2976 = call ptr @s2n_strerror_debug(i32 noundef %2975, ptr noundef nonnull @.str.4) #12
  %2977 = load i32, ptr %260, align 4, !tbaa !5
  %2978 = call ptr @strerror(i32 noundef %2977) #12
  %2979 = load i32, ptr %260, align 4, !tbaa !5
  %2980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2971, ptr noundef nonnull %.str.5.sink2628, i32 noundef %2972, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2974, ptr noundef %2976, ptr noundef %2978, i32 noundef %2979) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2981:                                             ; preds = %2950
  %2982 = add nsw i32 %2951, 2
  store i32 %2982, ptr @test_count, align 4, !tbaa !5
  %2983 = load i32, ptr %2728, align 4, !tbaa !54
  %2984 = load i32, ptr %2729, align 8, !tbaa !55
  %2985 = icmp eq i32 %2983, %2984
  br i1 %2985, label %3008, label %2986

2986:                                             ; preds = %3187, %3117, %2981
  %2987 = load i32, ptr %260, align 4, !tbaa !5
  %2988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2989 = call i32 @s2n_print_stacktrace(ptr noundef %2988) #12
  %2990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2991 = trunc nuw i8 %2990 to i1
  br i1 %2991, label %2992, label %2996

2992:                                             ; preds = %2986
  %2993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2994 = call i32 @fileno(ptr noundef %2993) #12
  %2995 = call i32 @isatty(i32 noundef %2994) #12
  %.not1584 = icmp eq i32 %2995, 0
  br i1 %.not1584, label %2996, label %2997

2996:                                             ; preds = %2992, %2986
  br label %2997

2997:                                             ; preds = %2992, %2996
  %.str.5.sink2637 = phi ptr [ @.str.5, %2996 ], [ @.str.2, %2992 ]
  store i32 %2987, ptr %260, align 4, !tbaa !5
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = load i32, ptr @test_count, align 4, !tbaa !5
  %3000 = load i32, ptr %206, align 4, !tbaa !5
  %3001 = call ptr @s2n_strerror(i32 noundef %3000, ptr noundef nonnull @.str.4) #12
  %3002 = load i32, ptr %206, align 4, !tbaa !5
  %3003 = call ptr @s2n_strerror_debug(i32 noundef %3002, ptr noundef nonnull @.str.4) #12
  %3004 = load i32, ptr %260, align 4, !tbaa !5
  %3005 = call ptr @strerror(i32 noundef %3004) #12
  %3006 = load i32, ptr %260, align 4, !tbaa !5
  %3007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2998, ptr noundef nonnull %.str.5.sink2637, i32 noundef %2999, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %3001, ptr noundef %3003, ptr noundef %3005, i32 noundef %3006) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3008:                                             ; preds = %2981
  %3009 = add nsw i32 %2951, 3
  store i32 %3009, ptr @test_count, align 4, !tbaa !5
  %3010 = call i32 @s2n_stuffer_free(ptr noundef nonnull %15) #12
  %3011 = icmp eq i32 %3010, -1
  br i1 %3011, label %3012, label %3034

3012:                                             ; preds = %3192, %3122, %3008
  %3013 = load i32, ptr %260, align 4, !tbaa !5
  %3014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3015 = call i32 @s2n_print_stacktrace(ptr noundef %3014) #12
  %3016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3017 = trunc nuw i8 %3016 to i1
  br i1 %3017, label %3018, label %3022

3018:                                             ; preds = %3012
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = call i32 @fileno(ptr noundef %3019) #12
  %3021 = call i32 @isatty(i32 noundef %3020) #12
  %.not1586 = icmp eq i32 %3021, 0
  br i1 %.not1586, label %3022, label %3023

3022:                                             ; preds = %3018, %3012
  br label %3023

3023:                                             ; preds = %3018, %3022
  %.str.5.sink2646 = phi ptr [ @.str.5, %3022 ], [ @.str.2, %3018 ]
  store i32 %3013, ptr %260, align 4, !tbaa !5
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = load i32, ptr @test_count, align 4, !tbaa !5
  %3026 = load i32, ptr %206, align 4, !tbaa !5
  %3027 = call ptr @s2n_strerror(i32 noundef %3026, ptr noundef nonnull @.str.4) #12
  %3028 = load i32, ptr %206, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror_debug(i32 noundef %3028, ptr noundef nonnull @.str.4) #12
  %3030 = load i32, ptr %260, align 4, !tbaa !5
  %3031 = call ptr @strerror(i32 noundef %3030) #12
  %3032 = load i32, ptr %260, align 4, !tbaa !5
  %3033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3024, ptr noundef nonnull %.str.5.sink2646, i32 noundef %3025, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %3027, ptr noundef %3029, ptr noundef %3031, i32 noundef %3032) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3034:                                             ; preds = %3008
  %3035 = load i32, ptr @test_count, align 4, !tbaa !5
  %3036 = add nsw i32 %3035, 1
  store i32 %3036, ptr @test_count, align 4, !tbaa !5
  %3037 = call i32 @s2n_connection_free(ptr noundef nonnull %2732) #12
  %3038 = icmp eq i32 %3037, -1
  br i1 %3038, label %3039, label %3061

3039:                                             ; preds = %3196, %3126, %3034
  %3040 = load i32, ptr %260, align 4, !tbaa !5
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @s2n_print_stacktrace(ptr noundef %3041) #12
  %3043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3044 = trunc nuw i8 %3043 to i1
  br i1 %3044, label %3045, label %3049

3045:                                             ; preds = %3039
  %3046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3047 = call i32 @fileno(ptr noundef %3046) #12
  %3048 = call i32 @isatty(i32 noundef %3047) #12
  %.not1585 = icmp eq i32 %3048, 0
  br i1 %.not1585, label %3049, label %3050

3049:                                             ; preds = %3045, %3039
  br label %3050

3050:                                             ; preds = %3045, %3049
  %.str.5.sink2655 = phi ptr [ @.str.5, %3049 ], [ @.str.2, %3045 ]
  store i32 %3040, ptr %260, align 4, !tbaa !5
  %3051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3052 = load i32, ptr @test_count, align 4, !tbaa !5
  %3053 = load i32, ptr %206, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror(i32 noundef %3053, ptr noundef nonnull @.str.4) #12
  %3055 = load i32, ptr %206, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror_debug(i32 noundef %3055, ptr noundef nonnull @.str.4) #12
  %3057 = load i32, ptr %260, align 4, !tbaa !5
  %3058 = call ptr @strerror(i32 noundef %3057) #12
  %3059 = load i32, ptr %260, align 4, !tbaa !5
  %3060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3051, ptr noundef nonnull %.str.5.sink2655, i32 noundef %3052, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %3054, ptr noundef %3056, ptr noundef %3058, i32 noundef %3059) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3061:                                             ; preds = %3034
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %15) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %15, i8 0, i64 40, i1 false)
  %3062 = load i32, ptr @test_count, align 4, !tbaa !5
  %3063 = add nsw i32 %3062, 1
  store i32 %3063, ptr @test_count, align 4, !tbaa !5
  %3064 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %3065 = icmp eq ptr %3064, null
  br i1 %3065, label %2734, label %3066

3066:                                             ; preds = %3061
  %3067 = load i32, ptr @test_count, align 4, !tbaa !5
  %3068 = add nsw i32 %3067, 1
  store i32 %3068, ptr @test_count, align 4, !tbaa !5
  %3069 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3064, ptr noundef nonnull @.str.60) #12
  %3070 = icmp eq i32 %3069, -1
  br i1 %3070, label %2761, label %3071

3071:                                             ; preds = %3066
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  store ptr null, ptr %16, align 8, !tbaa !9
  %3072 = load i32, ptr @test_count, align 4, !tbaa !5
  %3073 = add nsw i32 %3072, 1
  store i32 %3073, ptr @test_count, align 4, !tbaa !5
  %3074 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %3064, ptr noundef nonnull %16) #12
  %3075 = icmp eq i32 %3074, -1
  br i1 %3075, label %2788, label %3076

3076:                                             ; preds = %3071
  %3077 = load i32, ptr @test_count, align 4, !tbaa !5
  %3078 = add nsw i32 %3077, 1
  store i32 %3078, ptr @test_count, align 4, !tbaa !5
  %3079 = load ptr, ptr %16, align 8, !tbaa !9
  %3080 = icmp eq ptr %3079, null
  br i1 %3080, label %2815, label %3081

3081:                                             ; preds = %3076
  %3082 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.key_share_payloads, i64 8), align 8, !tbaa !9
  %3083 = add nsw i32 %3077, 2
  store i32 %3083, ptr @test_count, align 4, !tbaa !5
  %3084 = getelementptr inbounds i8, ptr %3064, i64 656
  %3085 = load ptr, ptr %3084, align 8, !tbaa !42
  %3086 = icmp eq ptr %3085, null
  br i1 %3086, label %3087, label %2843

3087:                                             ; preds = %3081
  %3088 = add nsw i32 %3077, 3
  store i32 %3088, ptr @test_count, align 4, !tbaa !5
  %3089 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull %15, ptr noundef %3082) #12
  %3090 = call zeroext i1 @s2n_result_is_ok(i32 %3089)
  br i1 %3090, label %3091, label %2869

3091:                                             ; preds = %3087
  %3092 = load ptr, ptr %16, align 8, !tbaa !9
  %3093 = getelementptr inbounds i8, ptr %3092, i64 8
  %3094 = load ptr, ptr %3093, align 8, !tbaa !43
  %3095 = getelementptr inbounds i8, ptr %3094, i64 8
  %3096 = load ptr, ptr %3095, align 8, !tbaa !9
  %3097 = getelementptr inbounds i8, ptr %3064, i64 704
  store ptr %3096, ptr %3097, align 8, !tbaa !45
  %3098 = load i32, ptr @test_count, align 4, !tbaa !5
  %3099 = add nsw i32 %3098, 1
  store i32 %3099, ptr @test_count, align 4, !tbaa !5
  %3100 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %3097) #12
  %3101 = icmp eq i32 %3100, -1
  br i1 %3101, label %2901, label %3102

3102:                                             ; preds = %3091
  %3103 = load i32, ptr @test_count, align 4, !tbaa !5
  %3104 = add nsw i32 %3103, 1
  store i32 %3104, ptr @test_count, align 4, !tbaa !5
  %3105 = call i32 %2349(ptr noundef nonnull %3064, ptr noundef nonnull %15) #12
  %3106 = icmp eq i32 %3105, -1
  br i1 %3106, label %2928, label %3107

3107:                                             ; preds = %3102
  %3108 = load i32, ptr @test_count, align 4, !tbaa !5
  %3109 = add nsw i32 %3108, 1
  store i32 %3109, ptr @test_count, align 4, !tbaa !5
  %3110 = load ptr, ptr %3084, align 8, !tbaa !42
  %3111 = load ptr, ptr %16, align 8, !tbaa !9
  %3112 = getelementptr inbounds i8, ptr %3111, i64 8
  %3113 = load ptr, ptr %3112, align 8, !tbaa !43
  %3114 = getelementptr inbounds i8, ptr %3113, i64 8
  %3115 = load ptr, ptr %3114, align 8, !tbaa !9
  %3116 = icmp eq ptr %3110, %3115
  br i1 %3116, label %3117, label %2959

3117:                                             ; preds = %3107
  %3118 = add nsw i32 %3108, 2
  store i32 %3118, ptr @test_count, align 4, !tbaa !5
  %3119 = load i32, ptr %2728, align 4, !tbaa !54
  %3120 = load i32, ptr %2729, align 8, !tbaa !55
  %3121 = icmp eq i32 %3119, %3120
  br i1 %3121, label %3122, label %2986

3122:                                             ; preds = %3117
  %3123 = add nsw i32 %3108, 3
  store i32 %3123, ptr @test_count, align 4, !tbaa !5
  %3124 = call i32 @s2n_stuffer_free(ptr noundef nonnull %15) #12
  %3125 = icmp eq i32 %3124, -1
  br i1 %3125, label %3012, label %3126

3126:                                             ; preds = %3122
  %3127 = load i32, ptr @test_count, align 4, !tbaa !5
  %3128 = add nsw i32 %3127, 1
  store i32 %3128, ptr @test_count, align 4, !tbaa !5
  %3129 = call i32 @s2n_connection_free(ptr noundef nonnull %3064) #12
  %3130 = icmp eq i32 %3129, -1
  br i1 %3130, label %3039, label %3131

3131:                                             ; preds = %3126
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %15) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %15, i8 0, i64 40, i1 false)
  %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 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %3135 = icmp eq ptr %3134, null
  br i1 %3135, label %2734, label %3136

3136:                                             ; preds = %3131
  %3137 = load i32, ptr @test_count, align 4, !tbaa !5
  %3138 = add nsw i32 %3137, 1
  store i32 %3138, ptr @test_count, align 4, !tbaa !5
  %3139 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3134, ptr noundef nonnull @.str.60) #12
  %3140 = icmp eq i32 %3139, -1
  br i1 %3140, label %2761, label %3141

3141:                                             ; preds = %3136
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  store ptr null, ptr %16, align 8, !tbaa !9
  %3142 = load i32, ptr @test_count, align 4, !tbaa !5
  %3143 = add nsw i32 %3142, 1
  store i32 %3143, ptr @test_count, align 4, !tbaa !5
  %3144 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %3134, ptr noundef nonnull %16) #12
  %3145 = icmp eq i32 %3144, -1
  br i1 %3145, label %2788, label %3146

3146:                                             ; preds = %3141
  %3147 = load i32, ptr @test_count, align 4, !tbaa !5
  %3148 = add nsw i32 %3147, 1
  store i32 %3148, ptr @test_count, align 4, !tbaa !5
  %3149 = load ptr, ptr %16, align 8, !tbaa !9
  %3150 = icmp eq ptr %3149, null
  br i1 %3150, label %2815, label %3151

3151:                                             ; preds = %3146
  %3152 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.key_share_payloads, i64 16), align 16, !tbaa !9
  %3153 = add nsw i32 %3147, 2
  store i32 %3153, ptr @test_count, align 4, !tbaa !5
  %3154 = getelementptr inbounds i8, ptr %3134, i64 656
  %3155 = load ptr, ptr %3154, align 8, !tbaa !42
  %3156 = icmp eq ptr %3155, null
  br i1 %3156, label %3157, label %2843

3157:                                             ; preds = %3151
  %3158 = add nsw i32 %3147, 3
  store i32 %3158, ptr @test_count, align 4, !tbaa !5
  %3159 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull %15, ptr noundef %3152) #12
  %3160 = call zeroext i1 @s2n_result_is_ok(i32 %3159)
  br i1 %3160, label %3161, label %2869

3161:                                             ; preds = %3157
  %3162 = load ptr, ptr %16, align 8, !tbaa !9
  %3163 = getelementptr inbounds i8, ptr %3162, i64 8
  %3164 = load ptr, ptr %3163, align 8, !tbaa !43
  %3165 = getelementptr inbounds i8, ptr %3164, i64 16
  %3166 = load ptr, ptr %3165, align 8, !tbaa !9
  %3167 = getelementptr inbounds i8, ptr %3134, i64 704
  store ptr %3166, ptr %3167, align 8, !tbaa !45
  %3168 = load i32, ptr @test_count, align 4, !tbaa !5
  %3169 = add nsw i32 %3168, 1
  store i32 %3169, ptr @test_count, align 4, !tbaa !5
  %3170 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %3167) #12
  %3171 = icmp eq i32 %3170, -1
  br i1 %3171, label %2901, label %3172

3172:                                             ; preds = %3161
  %3173 = load i32, ptr @test_count, align 4, !tbaa !5
  %3174 = add nsw i32 %3173, 1
  store i32 %3174, ptr @test_count, align 4, !tbaa !5
  %3175 = call i32 %2349(ptr noundef nonnull %3134, ptr noundef nonnull %15) #12
  %3176 = icmp eq i32 %3175, -1
  br i1 %3176, label %2928, label %3177

3177:                                             ; preds = %3172
  %3178 = load i32, ptr @test_count, align 4, !tbaa !5
  %3179 = add nsw i32 %3178, 1
  store i32 %3179, ptr @test_count, align 4, !tbaa !5
  %3180 = load ptr, ptr %3154, align 8, !tbaa !42
  %3181 = load ptr, ptr %16, align 8, !tbaa !9
  %3182 = getelementptr inbounds i8, ptr %3181, i64 8
  %3183 = load ptr, ptr %3182, align 8, !tbaa !43
  %3184 = getelementptr inbounds i8, ptr %3183, i64 16
  %3185 = load ptr, ptr %3184, align 8, !tbaa !9
  %3186 = icmp eq ptr %3180, %3185
  br i1 %3186, label %3187, label %2959

3187:                                             ; preds = %3177
  %3188 = add nsw i32 %3178, 2
  store i32 %3188, ptr @test_count, align 4, !tbaa !5
  %3189 = load i32, ptr %2728, align 4, !tbaa !54
  %3190 = load i32, ptr %2729, align 8, !tbaa !55
  %3191 = icmp eq i32 %3189, %3190
  br i1 %3191, label %3192, label %2986

3192:                                             ; preds = %3187
  %3193 = add nsw i32 %3178, 3
  store i32 %3193, ptr @test_count, align 4, !tbaa !5
  %3194 = call i32 @s2n_stuffer_free(ptr noundef nonnull %15) #12
  %3195 = icmp eq i32 %3194, -1
  br i1 %3195, label %3012, label %3196

3196:                                             ; preds = %3192
  %3197 = load i32, ptr @test_count, align 4, !tbaa !5
  %3198 = add nsw i32 %3197, 1
  store i32 %3198, ptr @test_count, align 4, !tbaa !5
  %3199 = call i32 @s2n_connection_free(ptr noundef nonnull %3134) #12
  %3200 = icmp eq i32 %3199, -1
  br i1 %3200, label %3039, label %3201

3201:                                             ; preds = %3196
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %17) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %17, i8 0, i64 40, i1 false)
  %3202 = load i32, ptr @test_count, align 4, !tbaa !5
  %3203 = add nsw i32 %3202, 1
  store i32 %3203, ptr @test_count, align 4, !tbaa !5
  %3204 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %3205 = icmp eq ptr %3204, null
  br i1 %3205, label %3206, label %3228

3206:                                             ; preds = %3201
  %3207 = load i32, ptr %260, align 4, !tbaa !5
  %3208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3209 = call i32 @s2n_print_stacktrace(ptr noundef %3208) #12
  %3210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3211 = trunc nuw i8 %3210 to i1
  br i1 %3211, label %3212, label %3216

3212:                                             ; preds = %3206
  %3213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3214 = call i32 @fileno(ptr noundef %3213) #12
  %3215 = call i32 @isatty(i32 noundef %3214) #12
  %.not1580 = icmp eq i32 %3215, 0
  br i1 %.not1580, label %3216, label %3217

3216:                                             ; preds = %3212, %3206
  br label %3217

3217:                                             ; preds = %3212, %3216
  %.str.5.sink2664 = phi ptr [ @.str.5, %3216 ], [ @.str.2, %3212 ]
  store i32 %3207, ptr %260, align 4, !tbaa !5
  %3218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3219 = load i32, ptr @test_count, align 4, !tbaa !5
  %3220 = load i32, ptr %206, align 4, !tbaa !5
  %3221 = call ptr @s2n_strerror(i32 noundef %3220, ptr noundef nonnull @.str.4) #12
  %3222 = load i32, ptr %206, align 4, !tbaa !5
  %3223 = call ptr @s2n_strerror_debug(i32 noundef %3222, ptr noundef nonnull @.str.4) #12
  %3224 = load i32, ptr %260, align 4, !tbaa !5
  %3225 = call ptr @strerror(i32 noundef %3224) #12
  %3226 = load i32, ptr %260, align 4, !tbaa !5
  %3227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3218, ptr noundef nonnull %.str.5.sink2664, i32 noundef %3219, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %3221, ptr noundef %3223, ptr noundef %3225, i32 noundef %3226) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3228:                                             ; preds = %3201
  %3229 = load i32, ptr @test_count, align 4, !tbaa !5
  %3230 = add nsw i32 %3229, 1
  store i32 %3230, ptr @test_count, align 4, !tbaa !5
  %3231 = load i16, ptr @s2n_server_key_share_extension, align 8, !tbaa !65
  %3232 = call i32 @s2n_connection_allow_response_extension(ptr noundef nonnull %3204, i16 noundef zeroext %3231) #12
  %3233 = icmp eq i32 %3232, -1
  br i1 %3233, label %3234, label %3256

3234:                                             ; preds = %3228
  %3235 = load i32, ptr %260, align 4, !tbaa !5
  %3236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3237 = call i32 @s2n_print_stacktrace(ptr noundef %3236) #12
  %3238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3239 = trunc nuw i8 %3238 to i1
  br i1 %3239, label %3240, label %3244

3240:                                             ; preds = %3234
  %3241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3242 = call i32 @fileno(ptr noundef %3241) #12
  %3243 = call i32 @isatty(i32 noundef %3242) #12
  %.not1579 = icmp eq i32 %3243, 0
  br i1 %.not1579, label %3244, label %3245

3244:                                             ; preds = %3240, %3234
  br label %3245

3245:                                             ; preds = %3240, %3244
  %.str.5.sink2673 = phi ptr [ @.str.5, %3244 ], [ @.str.2, %3240 ]
  store i32 %3235, ptr %260, align 4, !tbaa !5
  %3246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3247 = load i32, ptr @test_count, align 4, !tbaa !5
  %3248 = load i32, ptr %206, align 4, !tbaa !5
  %3249 = call ptr @s2n_strerror(i32 noundef %3248, ptr noundef nonnull @.str.4) #12
  %3250 = load i32, ptr %206, align 4, !tbaa !5
  %3251 = call ptr @s2n_strerror_debug(i32 noundef %3250, ptr noundef nonnull @.str.4) #12
  %3252 = load i32, ptr %260, align 4, !tbaa !5
  %3253 = call ptr @strerror(i32 noundef %3252) #12
  %3254 = load i32, ptr %260, align 4, !tbaa !5
  %3255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3246, ptr noundef nonnull %.str.5.sink2673, i32 noundef %3247, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %3249, ptr noundef %3251, ptr noundef %3253, i32 noundef %3254) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3256:                                             ; preds = %3228
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  store ptr null, ptr %18, align 8, !tbaa !9
  %3257 = load i32, ptr @test_count, align 4, !tbaa !5
  %3258 = add nsw i32 %3257, 1
  store i32 %3258, ptr @test_count, align 4, !tbaa !5
  %3259 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %3204, ptr noundef nonnull %18) #12
  %3260 = icmp eq i32 %3259, -1
  br i1 %3260, label %3261, label %3283

3261:                                             ; preds = %3256
  %3262 = load i32, ptr %260, align 4, !tbaa !5
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = call i32 @s2n_print_stacktrace(ptr noundef %3263) #12
  %3265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3266 = trunc nuw i8 %3265 to i1
  br i1 %3266, label %3267, label %3271

3267:                                             ; preds = %3261
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = call i32 @fileno(ptr noundef %3268) #12
  %3270 = call i32 @isatty(i32 noundef %3269) #12
  %.not1578 = icmp eq i32 %3270, 0
  br i1 %.not1578, label %3271, label %3272

3271:                                             ; preds = %3267, %3261
  br label %3272

3272:                                             ; preds = %3267, %3271
  %.str.5.sink2682 = phi ptr [ @.str.5, %3271 ], [ @.str.2, %3267 ]
  store i32 %3262, ptr %260, align 4, !tbaa !5
  %3273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3274 = load i32, ptr @test_count, align 4, !tbaa !5
  %3275 = load i32, ptr %206, align 4, !tbaa !5
  %3276 = call ptr @s2n_strerror(i32 noundef %3275, ptr noundef nonnull @.str.4) #12
  %3277 = load i32, ptr %206, align 4, !tbaa !5
  %3278 = call ptr @s2n_strerror_debug(i32 noundef %3277, ptr noundef nonnull @.str.4) #12
  %3279 = load i32, ptr %260, align 4, !tbaa !5
  %3280 = call ptr @strerror(i32 noundef %3279) #12
  %3281 = load i32, ptr %260, align 4, !tbaa !5
  %3282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3273, ptr noundef nonnull %.str.5.sink2682, i32 noundef %3274, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %3276, ptr noundef %3278, ptr noundef %3280, i32 noundef %3281) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3283:                                             ; preds = %3256
  %3284 = load i32, ptr @test_count, align 4, !tbaa !5
  %3285 = add nsw i32 %3284, 1
  store i32 %3285, ptr @test_count, align 4, !tbaa !5
  %3286 = load ptr, ptr %18, align 8, !tbaa !9
  %3287 = icmp eq ptr %3286, null
  br i1 %3287, label %3288, label %3310

3288:                                             ; preds = %3283
  %3289 = load i32, ptr %260, align 4, !tbaa !5
  %3290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3291 = call i32 @s2n_print_stacktrace(ptr noundef %3290) #12
  %3292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3293 = trunc nuw i8 %3292 to i1
  br i1 %3293, label %3294, label %3298

3294:                                             ; preds = %3288
  %3295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3296 = call i32 @fileno(ptr noundef %3295) #12
  %3297 = call i32 @isatty(i32 noundef %3296) #12
  %.not1577 = icmp eq i32 %3297, 0
  br i1 %.not1577, label %3298, label %3299

3298:                                             ; preds = %3294, %3288
  br label %3299

3299:                                             ; preds = %3294, %3298
  %.str.5.sink2691 = phi ptr [ @.str.5, %3298 ], [ @.str.2, %3294 ]
  store i32 %3289, ptr %260, align 4, !tbaa !5
  %3300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3301 = load i32, ptr @test_count, align 4, !tbaa !5
  %3302 = load i32, ptr %206, align 4, !tbaa !5
  %3303 = call ptr @s2n_strerror(i32 noundef %3302, ptr noundef nonnull @.str.4) #12
  %3304 = load i32, ptr %206, align 4, !tbaa !5
  %3305 = call ptr @s2n_strerror_debug(i32 noundef %3304, ptr noundef nonnull @.str.4) #12
  %3306 = load i32, ptr %260, align 4, !tbaa !5
  %3307 = call ptr @strerror(i32 noundef %3306) #12
  %3308 = load i32, ptr %260, align 4, !tbaa !5
  %3309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3300, ptr noundef nonnull %.str.5.sink2691, i32 noundef %3301, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %3303, ptr noundef %3305, ptr noundef %3307, i32 noundef %3308) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3310:                                             ; preds = %3283
  %3311 = add nsw i32 %3284, 2
  store i32 %3311, ptr @test_count, align 4, !tbaa !5
  %3312 = getelementptr inbounds i8, ptr %3204, i64 656
  %3313 = load ptr, ptr %3312, align 8, !tbaa !42
  %3314 = icmp eq ptr %3313, null
  br i1 %3314, label %3337, label %3315

3315:                                             ; preds = %3310
  %3316 = load i32, ptr %260, align 4, !tbaa !5
  %3317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3318 = call i32 @s2n_print_stacktrace(ptr noundef %3317) #12
  %3319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3320 = trunc nuw i8 %3319 to i1
  br i1 %3320, label %3321, label %3325

3321:                                             ; preds = %3315
  %3322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3323 = call i32 @fileno(ptr noundef %3322) #12
  %3324 = call i32 @isatty(i32 noundef %3323) #12
  %.not1293 = icmp eq i32 %3324, 0
  br i1 %.not1293, label %3325, label %3326

3325:                                             ; preds = %3321, %3315
  br label %3326

3326:                                             ; preds = %3321, %3325
  %.str.5.sink2700 = phi ptr [ @.str.5, %3325 ], [ @.str.2, %3321 ]
  store i32 %3316, ptr %260, align 4, !tbaa !5
  %3327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3328 = load i32, ptr @test_count, align 4, !tbaa !5
  %3329 = load i32, ptr %206, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror(i32 noundef %3329, ptr noundef nonnull @.str.4) #12
  %3331 = load i32, ptr %206, align 4, !tbaa !5
  %3332 = call ptr @s2n_strerror_debug(i32 noundef %3331, ptr noundef nonnull @.str.4) #12
  %3333 = load i32, ptr %260, align 4, !tbaa !5
  %3334 = call ptr @strerror(i32 noundef %3333) #12
  %3335 = load i32, ptr %260, align 4, !tbaa !5
  %3336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3327, ptr noundef nonnull %.str.5.sink2700, i32 noundef %3328, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %3330, ptr noundef %3332, ptr noundef %3334, i32 noundef %3335) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3337:                                             ; preds = %3310
  %3338 = add nsw i32 %3284, 3
  store i32 %3338, ptr @test_count, align 4, !tbaa !5
  %3339 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull %17, ptr noundef %2838) #12
  %3340 = call zeroext i1 @s2n_result_is_ok(i32 %3339)
  br i1 %3340, label %3363, label %3341

3341:                                             ; preds = %3337
  %3342 = load i32, ptr %260, align 4, !tbaa !5
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = call i32 @s2n_print_stacktrace(ptr noundef %3343) #12
  %3345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3346 = trunc nuw i8 %3345 to i1
  br i1 %3346, label %3347, label %3351

3347:                                             ; preds = %3341
  %3348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3349 = call i32 @fileno(ptr noundef %3348) #12
  %3350 = call i32 @isatty(i32 noundef %3349) #12
  %.not1294 = icmp eq i32 %3350, 0
  br i1 %.not1294, label %3351, label %3352

3351:                                             ; preds = %3347, %3341
  br label %3352

3352:                                             ; preds = %3347, %3351
  %.str.5.sink2709 = phi ptr [ @.str.5, %3351 ], [ @.str.2, %3347 ]
  store i32 %3342, ptr %260, align 4, !tbaa !5
  %3353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3354 = load i32, ptr @test_count, align 4, !tbaa !5
  %3355 = load i32, ptr %206, align 4, !tbaa !5
  %3356 = call ptr @s2n_strerror(i32 noundef %3355, ptr noundef nonnull @.str.4) #12
  %3357 = load i32, ptr %206, align 4, !tbaa !5
  %3358 = call ptr @s2n_strerror_debug(i32 noundef %3357, ptr noundef nonnull @.str.4) #12
  %3359 = load i32, ptr %260, align 4, !tbaa !5
  %3360 = call ptr @strerror(i32 noundef %3359) #12
  %3361 = load i32, ptr %260, align 4, !tbaa !5
  %3362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3353, ptr noundef nonnull %.str.5.sink2709, i32 noundef %3354, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %3356, ptr noundef %3358, ptr noundef %3360, i32 noundef %3361) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3363:                                             ; preds = %3337
  %3364 = load ptr, ptr %18, align 8, !tbaa !9
  %3365 = getelementptr inbounds i8, ptr %3364, i64 8
  %3366 = load ptr, ptr %3365, align 8, !tbaa !43
  %3367 = load ptr, ptr %3366, align 8, !tbaa !9
  %3368 = getelementptr inbounds i8, ptr %3204, i64 704
  store ptr %3367, ptr %3368, align 8, !tbaa !45
  %3369 = load i32, ptr @test_count, align 4, !tbaa !5
  %3370 = add nsw i32 %3369, 1
  store i32 %3370, ptr @test_count, align 4, !tbaa !5
  %3371 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %3368) #12
  %3372 = icmp eq i32 %3371, -1
  br i1 %3372, label %3373, label %3395

3373:                                             ; preds = %3363
  %3374 = load i32, ptr %260, align 4, !tbaa !5
  %3375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3376 = call i32 @s2n_print_stacktrace(ptr noundef %3375) #12
  %3377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3378 = trunc nuw i8 %3377 to i1
  br i1 %3378, label %3379, label %3383

3379:                                             ; preds = %3373
  %3380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3381 = call i32 @fileno(ptr noundef %3380) #12
  %3382 = call i32 @isatty(i32 noundef %3381) #12
  %.not1576 = icmp eq i32 %3382, 0
  br i1 %.not1576, label %3383, label %3384

3383:                                             ; preds = %3379, %3373
  br label %3384

3384:                                             ; preds = %3379, %3383
  %.str.5.sink2718 = phi ptr [ @.str.5, %3383 ], [ @.str.2, %3379 ]
  store i32 %3374, ptr %260, align 4, !tbaa !5
  %3385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3386 = load i32, ptr @test_count, align 4, !tbaa !5
  %3387 = load i32, ptr %206, align 4, !tbaa !5
  %3388 = call ptr @s2n_strerror(i32 noundef %3387, ptr noundef nonnull @.str.4) #12
  %3389 = load i32, ptr %206, align 4, !tbaa !5
  %3390 = call ptr @s2n_strerror_debug(i32 noundef %3389, ptr noundef nonnull @.str.4) #12
  %3391 = load i32, ptr %260, align 4, !tbaa !5
  %3392 = call ptr @strerror(i32 noundef %3391) #12
  %3393 = load i32, ptr %260, align 4, !tbaa !5
  %3394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3385, ptr noundef nonnull %.str.5.sink2718, i32 noundef %3386, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %3388, ptr noundef %3390, ptr noundef %3392, i32 noundef %3393) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3395:                                             ; preds = %3363
  %3396 = getelementptr inbounds i8, ptr %3204, i64 220
  store i8 33, ptr %3396, align 4, !tbaa !56
  %3397 = load i32, ptr @test_count, align 4, !tbaa !5
  %3398 = add nsw i32 %3397, 1
  store i32 %3398, ptr @test_count, align 4, !tbaa !5
  %3399 = call i32 @s2n_extension_recv(ptr noundef nonnull @s2n_server_key_share_extension, ptr noundef nonnull %3204, ptr noundef nonnull %17) #12
  %3400 = icmp eq i32 %3399, -1
  br i1 %3400, label %3401, label %3423

3401:                                             ; preds = %3395
  %3402 = load i32, ptr %260, align 4, !tbaa !5
  %3403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3404 = call i32 @s2n_print_stacktrace(ptr noundef %3403) #12
  %3405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3406 = trunc nuw i8 %3405 to i1
  br i1 %3406, label %3407, label %3411

3407:                                             ; preds = %3401
  %3408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3409 = call i32 @fileno(ptr noundef %3408) #12
  %3410 = call i32 @isatty(i32 noundef %3409) #12
  %.not1575 = icmp eq i32 %3410, 0
  br i1 %.not1575, label %3411, label %3412

3411:                                             ; preds = %3407, %3401
  br label %3412

3412:                                             ; preds = %3407, %3411
  %.str.5.sink2727 = phi ptr [ @.str.5, %3411 ], [ @.str.2, %3407 ]
  store i32 %3402, ptr %260, align 4, !tbaa !5
  %3413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3414 = load i32, ptr @test_count, align 4, !tbaa !5
  %3415 = load i32, ptr %206, align 4, !tbaa !5
  %3416 = call ptr @s2n_strerror(i32 noundef %3415, ptr noundef nonnull @.str.4) #12
  %3417 = load i32, ptr %206, align 4, !tbaa !5
  %3418 = call ptr @s2n_strerror_debug(i32 noundef %3417, ptr noundef nonnull @.str.4) #12
  %3419 = load i32, ptr %260, align 4, !tbaa !5
  %3420 = call ptr @strerror(i32 noundef %3419) #12
  %3421 = load i32, ptr %260, align 4, !tbaa !5
  %3422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3413, ptr noundef nonnull %.str.5.sink2727, i32 noundef %3414, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %3416, ptr noundef %3418, ptr noundef %3420, i32 noundef %3421) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3423:                                             ; preds = %3395
  %3424 = load i32, ptr @test_count, align 4, !tbaa !5
  %3425 = add nsw i32 %3424, 1
  store i32 %3425, ptr @test_count, align 4, !tbaa !5
  %3426 = load ptr, ptr %3312, align 8, !tbaa !42
  %3427 = icmp eq ptr %3426, null
  br i1 %3427, label %3450, label %3428

3428:                                             ; preds = %3423
  %3429 = load i32, ptr %260, align 4, !tbaa !5
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = call i32 @s2n_print_stacktrace(ptr noundef %3430) #12
  %3432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3433 = trunc nuw i8 %3432 to i1
  br i1 %3433, label %3434, label %3438

3434:                                             ; preds = %3428
  %3435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3436 = call i32 @fileno(ptr noundef %3435) #12
  %3437 = call i32 @isatty(i32 noundef %3436) #12
  %.not1295 = icmp eq i32 %3437, 0
  br i1 %.not1295, label %3438, label %3439

3438:                                             ; preds = %3434, %3428
  br label %3439

3439:                                             ; preds = %3434, %3438
  %.str.5.sink2736 = phi ptr [ @.str.5, %3438 ], [ @.str.2, %3434 ]
  store i32 %3429, ptr %260, align 4, !tbaa !5
  %3440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3441 = load i32, ptr @test_count, align 4, !tbaa !5
  %3442 = load i32, ptr %206, align 4, !tbaa !5
  %3443 = call ptr @s2n_strerror(i32 noundef %3442, ptr noundef nonnull @.str.4) #12
  %3444 = load i32, ptr %206, align 4, !tbaa !5
  %3445 = call ptr @s2n_strerror_debug(i32 noundef %3444, ptr noundef nonnull @.str.4) #12
  %3446 = load i32, ptr %260, align 4, !tbaa !5
  %3447 = call ptr @strerror(i32 noundef %3446) #12
  %3448 = load i32, ptr %260, align 4, !tbaa !5
  %3449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3440, ptr noundef nonnull %.str.5.sink2736, i32 noundef %3441, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 300, ptr noundef %3443, ptr noundef %3445, ptr noundef %3447, i32 noundef %3448) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3450:                                             ; preds = %3423
  %3451 = add nsw i32 %3424, 2
  store i32 %3451, ptr @test_count, align 4, !tbaa !5
  %3452 = getelementptr inbounds i8, ptr %17, i64 28
  %3453 = load i32, ptr %3452, align 4, !tbaa !54
  %3454 = getelementptr inbounds i8, ptr %17, i64 24
  %3455 = load i32, ptr %3454, align 8, !tbaa !55
  %3456 = icmp eq i32 %3453, %3455
  br i1 %3456, label %3457, label %3479

3457:                                             ; preds = %3450
  %3458 = load i32, ptr %260, align 4, !tbaa !5
  %3459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3460 = call i32 @s2n_print_stacktrace(ptr noundef %3459) #12
  %3461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3462 = trunc nuw i8 %3461 to i1
  br i1 %3462, label %3463, label %3467

3463:                                             ; preds = %3457
  %3464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3465 = call i32 @fileno(ptr noundef %3464) #12
  %3466 = call i32 @isatty(i32 noundef %3465) #12
  %.not1574 = icmp eq i32 %3466, 0
  br i1 %.not1574, label %3467, label %3468

3467:                                             ; preds = %3463, %3457
  br label %3468

3468:                                             ; preds = %3463, %3467
  %.str.5.sink2745 = phi ptr [ @.str.5, %3467 ], [ @.str.2, %3463 ]
  store i32 %3458, ptr %260, align 4, !tbaa !5
  %3469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3470 = load i32, ptr @test_count, align 4, !tbaa !5
  %3471 = load i32, ptr %206, align 4, !tbaa !5
  %3472 = call ptr @s2n_strerror(i32 noundef %3471, ptr noundef nonnull @.str.4) #12
  %3473 = load i32, ptr %206, align 4, !tbaa !5
  %3474 = call ptr @s2n_strerror_debug(i32 noundef %3473, ptr noundef nonnull @.str.4) #12
  %3475 = load i32, ptr %260, align 4, !tbaa !5
  %3476 = call ptr @strerror(i32 noundef %3475) #12
  %3477 = load i32, ptr %260, align 4, !tbaa !5
  %3478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3469, ptr noundef nonnull %.str.5.sink2745, i32 noundef %3470, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %3472, ptr noundef %3474, ptr noundef %3476, i32 noundef %3477) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3479:                                             ; preds = %3450
  store i8 34, ptr %3396, align 4, !tbaa !56
  %3480 = add nsw i32 %3424, 3
  store i32 %3480, ptr @test_count, align 4, !tbaa !5
  %3481 = call i32 %2349(ptr noundef nonnull %3204, ptr noundef nonnull %17) #12
  %3482 = icmp eq i32 %3481, -1
  br i1 %3482, label %3483, label %3505

3483:                                             ; preds = %3479
  %3484 = load i32, ptr %260, align 4, !tbaa !5
  %3485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3486 = call i32 @s2n_print_stacktrace(ptr noundef %3485) #12
  %3487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3488 = trunc nuw i8 %3487 to i1
  br i1 %3488, label %3489, label %3493

3489:                                             ; preds = %3483
  %3490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3491 = call i32 @fileno(ptr noundef %3490) #12
  %3492 = call i32 @isatty(i32 noundef %3491) #12
  %.not1573 = icmp eq i32 %3492, 0
  br i1 %.not1573, label %3493, label %3494

3493:                                             ; preds = %3489, %3483
  br label %3494

3494:                                             ; preds = %3489, %3493
  %.str.5.sink2754 = phi ptr [ @.str.5, %3493 ], [ @.str.2, %3489 ]
  store i32 %3484, ptr %260, align 4, !tbaa !5
  %3495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3496 = load i32, ptr @test_count, align 4, !tbaa !5
  %3497 = load i32, ptr %206, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror(i32 noundef %3497, ptr noundef nonnull @.str.4) #12
  %3499 = load i32, ptr %206, align 4, !tbaa !5
  %3500 = call ptr @s2n_strerror_debug(i32 noundef %3499, ptr noundef nonnull @.str.4) #12
  %3501 = load i32, ptr %260, align 4, !tbaa !5
  %3502 = call ptr @strerror(i32 noundef %3501) #12
  %3503 = load i32, ptr %260, align 4, !tbaa !5
  %3504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3495, ptr noundef nonnull %.str.5.sink2754, i32 noundef %3496, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 304, ptr noundef %3498, ptr noundef %3500, ptr noundef %3502, i32 noundef %3503) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3505:                                             ; preds = %3479
  %3506 = load i32, ptr @test_count, align 4, !tbaa !5
  %3507 = add nsw i32 %3506, 1
  store i32 %3507, ptr @test_count, align 4, !tbaa !5
  %3508 = load ptr, ptr %3312, align 8, !tbaa !42
  %3509 = load ptr, ptr %18, align 8, !tbaa !9
  %3510 = getelementptr inbounds i8, ptr %3509, i64 8
  %3511 = load ptr, ptr %3510, align 8, !tbaa !43
  %3512 = load ptr, ptr %3511, align 8, !tbaa !9
  %3513 = icmp eq ptr %3508, %3512
  br i1 %3513, label %3536, label %3514

3514:                                             ; preds = %3505
  %3515 = load i32, ptr %260, align 4, !tbaa !5
  %3516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3517 = call i32 @s2n_print_stacktrace(ptr noundef %3516) #12
  %3518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3519 = trunc nuw i8 %3518 to i1
  br i1 %3519, label %3520, label %3524

3520:                                             ; preds = %3514
  %3521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3522 = call i32 @fileno(ptr noundef %3521) #12
  %3523 = call i32 @isatty(i32 noundef %3522) #12
  %.not1296 = icmp eq i32 %3523, 0
  br i1 %.not1296, label %3524, label %3525

3524:                                             ; preds = %3520, %3514
  br label %3525

3525:                                             ; preds = %3520, %3524
  %.str.5.sink2763 = phi ptr [ @.str.5, %3524 ], [ @.str.2, %3520 ]
  store i32 %3515, ptr %260, align 4, !tbaa !5
  %3526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3527 = load i32, ptr @test_count, align 4, !tbaa !5
  %3528 = load i32, ptr %206, align 4, !tbaa !5
  %3529 = call ptr @s2n_strerror(i32 noundef %3528, ptr noundef nonnull @.str.4) #12
  %3530 = load i32, ptr %206, align 4, !tbaa !5
  %3531 = call ptr @s2n_strerror_debug(i32 noundef %3530, ptr noundef nonnull @.str.4) #12
  %3532 = load i32, ptr %260, align 4, !tbaa !5
  %3533 = call ptr @strerror(i32 noundef %3532) #12
  %3534 = load i32, ptr %260, align 4, !tbaa !5
  %3535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3526, ptr noundef nonnull %.str.5.sink2763, i32 noundef %3527, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %3529, ptr noundef %3531, ptr noundef %3533, i32 noundef %3534) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3536:                                             ; preds = %3505
  %3537 = add nsw i32 %3506, 2
  store i32 %3537, ptr @test_count, align 4, !tbaa !5
  %3538 = load i32, ptr %3452, align 4, !tbaa !54
  %3539 = load i32, ptr %3454, align 8, !tbaa !55
  %3540 = icmp eq i32 %3538, %3539
  br i1 %3540, label %3563, label %3541

3541:                                             ; preds = %3536
  %3542 = load i32, ptr %260, align 4, !tbaa !5
  %3543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3544 = call i32 @s2n_print_stacktrace(ptr noundef %3543) #12
  %3545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3546 = trunc nuw i8 %3545 to i1
  br i1 %3546, label %3547, label %3551

3547:                                             ; preds = %3541
  %3548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3549 = call i32 @fileno(ptr noundef %3548) #12
  %3550 = call i32 @isatty(i32 noundef %3549) #12
  %.not1297 = icmp eq i32 %3550, 0
  br i1 %.not1297, label %3551, label %3552

3551:                                             ; preds = %3547, %3541
  br label %3552

3552:                                             ; preds = %3547, %3551
  %.str.5.sink2772 = phi ptr [ @.str.5, %3551 ], [ @.str.2, %3547 ]
  store i32 %3542, ptr %260, align 4, !tbaa !5
  %3553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3554 = load i32, ptr @test_count, align 4, !tbaa !5
  %3555 = load i32, ptr %206, align 4, !tbaa !5
  %3556 = call ptr @s2n_strerror(i32 noundef %3555, ptr noundef nonnull @.str.4) #12
  %3557 = load i32, ptr %206, align 4, !tbaa !5
  %3558 = call ptr @s2n_strerror_debug(i32 noundef %3557, ptr noundef nonnull @.str.4) #12
  %3559 = load i32, ptr %260, align 4, !tbaa !5
  %3560 = call ptr @strerror(i32 noundef %3559) #12
  %3561 = load i32, ptr %260, align 4, !tbaa !5
  %3562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3553, ptr noundef nonnull %.str.5.sink2772, i32 noundef %3554, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %3556, ptr noundef %3558, ptr noundef %3560, i32 noundef %3561) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3563:                                             ; preds = %3536
  %3564 = add nsw i32 %3506, 3
  store i32 %3564, ptr @test_count, align 4, !tbaa !5
  %3565 = call i32 @s2n_stuffer_free(ptr noundef nonnull %17) #12
  %3566 = icmp eq i32 %3565, -1
  br i1 %3566, label %3567, label %3589

3567:                                             ; preds = %3563
  %3568 = load i32, ptr %260, align 4, !tbaa !5
  %3569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3570 = call i32 @s2n_print_stacktrace(ptr noundef %3569) #12
  %3571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3572 = trunc nuw i8 %3571 to i1
  br i1 %3572, label %3573, label %3577

3573:                                             ; preds = %3567
  %3574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3575 = call i32 @fileno(ptr noundef %3574) #12
  %3576 = call i32 @isatty(i32 noundef %3575) #12
  %.not1572 = icmp eq i32 %3576, 0
  br i1 %.not1572, label %3577, label %3578

3577:                                             ; preds = %3573, %3567
  br label %3578

3578:                                             ; preds = %3573, %3577
  %.str.5.sink2781 = phi ptr [ @.str.5, %3577 ], [ @.str.2, %3573 ]
  store i32 %3568, ptr %260, align 4, !tbaa !5
  %3579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3580 = load i32, ptr @test_count, align 4, !tbaa !5
  %3581 = load i32, ptr %206, align 4, !tbaa !5
  %3582 = call ptr @s2n_strerror(i32 noundef %3581, ptr noundef nonnull @.str.4) #12
  %3583 = load i32, ptr %206, align 4, !tbaa !5
  %3584 = call ptr @s2n_strerror_debug(i32 noundef %3583, ptr noundef nonnull @.str.4) #12
  %3585 = load i32, ptr %260, align 4, !tbaa !5
  %3586 = call ptr @strerror(i32 noundef %3585) #12
  %3587 = load i32, ptr %260, align 4, !tbaa !5
  %3588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3579, ptr noundef nonnull %.str.5.sink2781, i32 noundef %3580, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 308, ptr noundef %3582, ptr noundef %3584, ptr noundef %3586, i32 noundef %3587) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3589:                                             ; preds = %3563
  %3590 = load i32, ptr @test_count, align 4, !tbaa !5
  %3591 = add nsw i32 %3590, 1
  store i32 %3591, ptr @test_count, align 4, !tbaa !5
  %3592 = call i32 @s2n_connection_free(ptr noundef nonnull %3204) #12
  %3593 = icmp eq i32 %3592, -1
  br i1 %3593, label %3594, label %3616

3594:                                             ; preds = %3589
  %3595 = load i32, ptr %260, align 4, !tbaa !5
  %3596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3597 = call i32 @s2n_print_stacktrace(ptr noundef %3596) #12
  %3598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3599 = trunc nuw i8 %3598 to i1
  br i1 %3599, label %3600, label %3604

3600:                                             ; preds = %3594
  %3601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3602 = call i32 @fileno(ptr noundef %3601) #12
  %3603 = call i32 @isatty(i32 noundef %3602) #12
  %.not1571 = icmp eq i32 %3603, 0
  br i1 %.not1571, label %3604, label %3605

3604:                                             ; preds = %3600, %3594
  br label %3605

3605:                                             ; preds = %3600, %3604
  %.str.5.sink2790 = phi ptr [ @.str.5, %3604 ], [ @.str.2, %3600 ]
  store i32 %3595, ptr %260, align 4, !tbaa !5
  %3606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3607 = load i32, ptr @test_count, align 4, !tbaa !5
  %3608 = load i32, ptr %206, align 4, !tbaa !5
  %3609 = call ptr @s2n_strerror(i32 noundef %3608, ptr noundef nonnull @.str.4) #12
  %3610 = load i32, ptr %206, align 4, !tbaa !5
  %3611 = call ptr @s2n_strerror_debug(i32 noundef %3610, ptr noundef nonnull @.str.4) #12
  %3612 = load i32, ptr %260, align 4, !tbaa !5
  %3613 = call ptr @strerror(i32 noundef %3612) #12
  %3614 = load i32, ptr %260, align 4, !tbaa !5
  %3615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3606, ptr noundef nonnull %.str.5.sink2790, i32 noundef %3607, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 309, ptr noundef %3609, ptr noundef %3611, ptr noundef %3613, i32 noundef %3614) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3616:                                             ; preds = %3589
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #12
  br label %3617

3617:                                             ; preds = %3616, %2726
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %19) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %19, i8 0, i64 40, i1 false)
  %3618 = load i32, ptr @test_count, align 4, !tbaa !5
  %3619 = add nsw i32 %3618, 1
  store i32 %3619, ptr @test_count, align 4, !tbaa !5
  %3620 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %3621 = icmp eq ptr %3620, null
  br i1 %3621, label %3622, label %3644

3622:                                             ; preds = %3617
  %3623 = load i32, ptr %260, align 4, !tbaa !5
  %3624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3625 = call i32 @s2n_print_stacktrace(ptr noundef %3624) #12
  %3626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3627 = trunc nuw i8 %3626 to i1
  br i1 %3627, label %3628, label %3632

3628:                                             ; preds = %3622
  %3629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3630 = call i32 @fileno(ptr noundef %3629) #12
  %3631 = call i32 @isatty(i32 noundef %3630) #12
  %.not1570 = icmp eq i32 %3631, 0
  br i1 %.not1570, label %3632, label %3633

3632:                                             ; preds = %3628, %3622
  br label %3633

3633:                                             ; preds = %3628, %3632
  %.str.5.sink2799 = phi ptr [ @.str.5, %3632 ], [ @.str.2, %3628 ]
  store i32 %3623, ptr %260, align 4, !tbaa !5
  %3634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3635 = load i32, ptr @test_count, align 4, !tbaa !5
  %3636 = load i32, ptr %206, align 4, !tbaa !5
  %3637 = call ptr @s2n_strerror(i32 noundef %3636, ptr noundef nonnull @.str.4) #12
  %3638 = load i32, ptr %206, align 4, !tbaa !5
  %3639 = call ptr @s2n_strerror_debug(i32 noundef %3638, ptr noundef nonnull @.str.4) #12
  %3640 = load i32, ptr %260, align 4, !tbaa !5
  %3641 = call ptr @strerror(i32 noundef %3640) #12
  %3642 = load i32, ptr %260, align 4, !tbaa !5
  %3643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3634, ptr noundef nonnull %.str.5.sink2799, i32 noundef %3635, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 318, ptr noundef %3637, ptr noundef %3639, ptr noundef %3641, i32 noundef %3642) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3644:                                             ; preds = %3617
  %3645 = load i32, ptr @test_count, align 4, !tbaa !5
  %3646 = add nsw i32 %3645, 1
  store i32 %3646, ptr @test_count, align 4, !tbaa !5
  %3647 = getelementptr inbounds i8, ptr %3620, i64 656
  %3648 = load ptr, ptr %3647, align 8, !tbaa !42
  %3649 = icmp eq ptr %3648, null
  br i1 %3649, label %3672, label %3650

3650:                                             ; preds = %3644
  %3651 = load i32, ptr %260, align 4, !tbaa !5
  %3652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3653 = call i32 @s2n_print_stacktrace(ptr noundef %3652) #12
  %3654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3655 = trunc nuw i8 %3654 to i1
  br i1 %3655, label %3656, label %3660

3656:                                             ; preds = %3650
  %3657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3658 = call i32 @fileno(ptr noundef %3657) #12
  %3659 = call i32 @isatty(i32 noundef %3658) #12
  %.not1298 = icmp eq i32 %3659, 0
  br i1 %.not1298, label %3660, label %3661

3660:                                             ; preds = %3656, %3650
  br label %3661

3661:                                             ; preds = %3656, %3660
  %.str.5.sink2808 = phi ptr [ @.str.5, %3660 ], [ @.str.2, %3656 ]
  store i32 %3651, ptr %260, align 4, !tbaa !5
  %3662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3663 = load i32, ptr @test_count, align 4, !tbaa !5
  %3664 = load i32, ptr %206, align 4, !tbaa !5
  %3665 = call ptr @s2n_strerror(i32 noundef %3664, ptr noundef nonnull @.str.4) #12
  %3666 = load i32, ptr %206, align 4, !tbaa !5
  %3667 = call ptr @s2n_strerror_debug(i32 noundef %3666, ptr noundef nonnull @.str.4) #12
  %3668 = load i32, ptr %260, align 4, !tbaa !5
  %3669 = call ptr @strerror(i32 noundef %3668) #12
  %3670 = load i32, ptr %260, align 4, !tbaa !5
  %3671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3662, ptr noundef nonnull %.str.5.sink2808, i32 noundef %3663, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %3665, ptr noundef %3667, ptr noundef %3669, i32 noundef %3670) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3672:                                             ; preds = %3644
  %3673 = add nsw i32 %3645, 2
  store i32 %3673, ptr @test_count, align 4, !tbaa !5
  %3674 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull %19, ptr noundef nonnull @.str.75) #12
  %3675 = call zeroext i1 @s2n_result_is_ok(i32 %3674)
  br i1 %3675, label %3698, label %3676

3676:                                             ; preds = %3672
  %3677 = load i32, ptr %260, align 4, !tbaa !5
  %3678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3679 = call i32 @s2n_print_stacktrace(ptr noundef %3678) #12
  %3680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3681 = trunc nuw i8 %3680 to i1
  br i1 %3681, label %3682, label %3686

3682:                                             ; preds = %3676
  %3683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3684 = call i32 @fileno(ptr noundef %3683) #12
  %3685 = call i32 @isatty(i32 noundef %3684) #12
  %.not1299 = icmp eq i32 %3685, 0
  br i1 %.not1299, label %3686, label %3687

3686:                                             ; preds = %3682, %3676
  br label %3687

3687:                                             ; preds = %3682, %3686
  %.str.5.sink2817 = phi ptr [ @.str.5, %3686 ], [ @.str.2, %3682 ]
  store i32 %3677, ptr %260, align 4, !tbaa !5
  %3688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3689 = load i32, ptr @test_count, align 4, !tbaa !5
  %3690 = load i32, ptr %206, align 4, !tbaa !5
  %3691 = call ptr @s2n_strerror(i32 noundef %3690, ptr noundef nonnull @.str.4) #12
  %3692 = load i32, ptr %206, align 4, !tbaa !5
  %3693 = call ptr @s2n_strerror_debug(i32 noundef %3692, ptr noundef nonnull @.str.4) #12
  %3694 = load i32, ptr %260, align 4, !tbaa !5
  %3695 = call ptr @strerror(i32 noundef %3694) #12
  %3696 = load i32, ptr %260, align 4, !tbaa !5
  %3697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3688, ptr noundef nonnull %.str.5.sink2817, i32 noundef %3689, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 322, ptr noundef %3691, ptr noundef %3693, ptr noundef %3695, i32 noundef %3696) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3698:                                             ; preds = %3672
  %3699 = load i32, ptr @test_count, align 4, !tbaa !5
  %3700 = add nsw i32 %3699, 1
  store i32 %3700, ptr @test_count, align 4, !tbaa !5
  %3701 = call i32 %2349(ptr noundef nonnull %3620, ptr noundef nonnull %19) #12
  %3702 = icmp eq i32 %3701, -1
  br i1 %3702, label %3725, label %3703

3703:                                             ; preds = %3698
  %3704 = load i32, ptr %260, align 4, !tbaa !5
  %3705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3706 = call i32 @s2n_print_stacktrace(ptr noundef %3705) #12
  %3707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3708 = trunc nuw i8 %3707 to i1
  br i1 %3708, label %3709, label %3713

3709:                                             ; preds = %3703
  %3710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3711 = call i32 @fileno(ptr noundef %3710) #12
  %3712 = call i32 @isatty(i32 noundef %3711) #12
  %.not1300 = icmp eq i32 %3712, 0
  br i1 %.not1300, label %3713, label %3714

3713:                                             ; preds = %3709, %3703
  br label %3714

3714:                                             ; preds = %3709, %3713
  %.str.5.sink2826 = phi ptr [ @.str.5, %3713 ], [ @.str.2, %3709 ]
  store i32 %3704, ptr %260, align 4, !tbaa !5
  %3715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3716 = load i32, ptr @test_count, align 4, !tbaa !5
  %3717 = load i32, ptr %206, align 4, !tbaa !5
  %3718 = call ptr @s2n_strerror(i32 noundef %3717, ptr noundef nonnull @.str.4) #12
  %3719 = load i32, ptr %206, align 4, !tbaa !5
  %3720 = call ptr @s2n_strerror_debug(i32 noundef %3719, ptr noundef nonnull @.str.4) #12
  %3721 = load i32, ptr %260, align 4, !tbaa !5
  %3722 = call ptr @strerror(i32 noundef %3721) #12
  %3723 = load i32, ptr %260, align 4, !tbaa !5
  %3724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3715, ptr noundef nonnull %.str.5.sink2826, i32 noundef %3716, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 324, ptr noundef %3718, ptr noundef %3720, ptr noundef %3722, i32 noundef %3723) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3725:                                             ; preds = %3698
  %3726 = load i32, ptr @test_count, align 4, !tbaa !5
  %3727 = add nsw i32 %3726, 1
  store i32 %3727, ptr @test_count, align 4, !tbaa !5
  %3728 = load i32, ptr %206, align 4, !tbaa !5
  %3729 = icmp eq i32 %3728, 335544385
  br i1 %3729, label %3752, label %3730

3730:                                             ; preds = %3725
  %3731 = load i32, ptr %260, align 4, !tbaa !5
  %3732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3733 = call i32 @s2n_print_stacktrace(ptr noundef %3732) #12
  %3734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3735 = trunc nuw i8 %3734 to i1
  br i1 %3735, label %3736, label %3740

3736:                                             ; preds = %3730
  %3737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3738 = call i32 @fileno(ptr noundef %3737) #12
  %3739 = call i32 @isatty(i32 noundef %3738) #12
  %.not1301 = icmp eq i32 %3739, 0
  br i1 %.not1301, label %3740, label %3741

3740:                                             ; preds = %3736, %3730
  br label %3741

3741:                                             ; preds = %3736, %3740
  %.str.5.sink2835 = phi ptr [ @.str.5, %3740 ], [ @.str.2, %3736 ]
  store i32 %3731, ptr %260, align 4, !tbaa !5
  %3742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3743 = load i32, ptr @test_count, align 4, !tbaa !5
  %3744 = load i32, ptr %206, align 4, !tbaa !5
  %3745 = call ptr @s2n_strerror(i32 noundef %3744, ptr noundef nonnull @.str.4) #12
  %3746 = load i32, ptr %206, align 4, !tbaa !5
  %3747 = call ptr @s2n_strerror_debug(i32 noundef %3746, ptr noundef nonnull @.str.4) #12
  %3748 = load i32, ptr %260, align 4, !tbaa !5
  %3749 = call ptr @strerror(i32 noundef %3748) #12
  %3750 = load i32, ptr %260, align 4, !tbaa !5
  %3751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3742, ptr noundef nonnull %.str.5.sink2835, i32 noundef %3743, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 324, ptr noundef %3745, ptr noundef %3747, ptr noundef %3749, i32 noundef %3750) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3752:                                             ; preds = %3725
  %3753 = add nsw i32 %3726, 2
  store i32 %3753, ptr @test_count, align 4, !tbaa !5
  %3754 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %3755 = icmp eq ptr %3754, null
  br i1 %3755, label %3756, label %3778

3756:                                             ; preds = %3752
  %3757 = load i32, ptr %260, align 4, !tbaa !5
  %3758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3759 = call i32 @s2n_print_stacktrace(ptr noundef %3758) #12
  %3760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3761 = trunc nuw i8 %3760 to i1
  br i1 %3761, label %3762, label %3766

3762:                                             ; preds = %3756
  %3763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3764 = call i32 @fileno(ptr noundef %3763) #12
  %3765 = call i32 @isatty(i32 noundef %3764) #12
  %.not1569 = icmp eq i32 %3765, 0
  br i1 %.not1569, label %3766, label %3767

3766:                                             ; preds = %3762, %3756
  br label %3767

3767:                                             ; preds = %3762, %3766
  %.str.5.sink2844 = phi ptr [ @.str.5, %3766 ], [ @.str.2, %3762 ]
  store i32 %3757, ptr %260, align 4, !tbaa !5
  %3768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3769 = load i32, ptr @test_count, align 4, !tbaa !5
  %3770 = load i32, ptr %206, align 4, !tbaa !5
  %3771 = call ptr @s2n_strerror(i32 noundef %3770, ptr noundef nonnull @.str.4) #12
  %3772 = load i32, ptr %206, align 4, !tbaa !5
  %3773 = call ptr @s2n_strerror_debug(i32 noundef %3772, ptr noundef nonnull @.str.4) #12
  %3774 = load i32, ptr %260, align 4, !tbaa !5
  %3775 = call ptr @strerror(i32 noundef %3774) #12
  %3776 = load i32, ptr %260, align 4, !tbaa !5
  %3777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3768, ptr noundef nonnull %.str.5.sink2844, i32 noundef %3769, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 324, ptr noundef %3771, ptr noundef %3773, ptr noundef %3775, i32 noundef %3776) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3778:                                             ; preds = %3752
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %3779 = load i32, ptr @test_count, align 4, !tbaa !5
  %3780 = add nsw i32 %3779, 1
  store i32 %3780, ptr @test_count, align 4, !tbaa !5
  %3781 = call i32 @s2n_stuffer_free(ptr noundef nonnull %19) #12
  %3782 = icmp eq i32 %3781, -1
  br i1 %3782, label %3783, label %3805

3783:                                             ; preds = %3778
  %3784 = load i32, ptr %260, align 4, !tbaa !5
  %3785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3786 = call i32 @s2n_print_stacktrace(ptr noundef %3785) #12
  %3787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3788 = trunc nuw i8 %3787 to i1
  br i1 %3788, label %3789, label %3793

3789:                                             ; preds = %3783
  %3790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3791 = call i32 @fileno(ptr noundef %3790) #12
  %3792 = call i32 @isatty(i32 noundef %3791) #12
  %.not1568 = icmp eq i32 %3792, 0
  br i1 %.not1568, label %3793, label %3794

3793:                                             ; preds = %3789, %3783
  br label %3794

3794:                                             ; preds = %3789, %3793
  %.str.5.sink2853 = phi ptr [ @.str.5, %3793 ], [ @.str.2, %3789 ]
  store i32 %3784, ptr %260, align 4, !tbaa !5
  %3795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3796 = load i32, ptr @test_count, align 4, !tbaa !5
  %3797 = load i32, ptr %206, align 4, !tbaa !5
  %3798 = call ptr @s2n_strerror(i32 noundef %3797, ptr noundef nonnull @.str.4) #12
  %3799 = load i32, ptr %206, align 4, !tbaa !5
  %3800 = call ptr @s2n_strerror_debug(i32 noundef %3799, ptr noundef nonnull @.str.4) #12
  %3801 = load i32, ptr %260, align 4, !tbaa !5
  %3802 = call ptr @strerror(i32 noundef %3801) #12
  %3803 = load i32, ptr %260, align 4, !tbaa !5
  %3804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3795, ptr noundef nonnull %.str.5.sink2853, i32 noundef %3796, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %3798, ptr noundef %3800, ptr noundef %3802, i32 noundef %3803) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3805:                                             ; preds = %3778
  %3806 = load i32, ptr @test_count, align 4, !tbaa !5
  %3807 = add nsw i32 %3806, 1
  store i32 %3807, ptr @test_count, align 4, !tbaa !5
  %3808 = call i32 @s2n_connection_free(ptr noundef nonnull %3620) #12
  %3809 = icmp eq i32 %3808, -1
  br i1 %3809, label %3810, label %3832

3810:                                             ; preds = %3805
  %3811 = load i32, ptr %260, align 4, !tbaa !5
  %3812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3813 = call i32 @s2n_print_stacktrace(ptr noundef %3812) #12
  %3814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3815 = trunc nuw i8 %3814 to i1
  br i1 %3815, label %3816, label %3820

3816:                                             ; preds = %3810
  %3817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3818 = call i32 @fileno(ptr noundef %3817) #12
  %3819 = call i32 @isatty(i32 noundef %3818) #12
  %.not1567 = icmp eq i32 %3819, 0
  br i1 %.not1567, label %3820, label %3821

3820:                                             ; preds = %3816, %3810
  br label %3821

3821:                                             ; preds = %3816, %3820
  %.str.5.sink2862 = phi ptr [ @.str.5, %3820 ], [ @.str.2, %3816 ]
  store i32 %3811, ptr %260, align 4, !tbaa !5
  %3822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3823 = load i32, ptr @test_count, align 4, !tbaa !5
  %3824 = load i32, ptr %206, align 4, !tbaa !5
  %3825 = call ptr @s2n_strerror(i32 noundef %3824, ptr noundef nonnull @.str.4) #12
  %3826 = load i32, ptr %206, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror_debug(i32 noundef %3826, ptr noundef nonnull @.str.4) #12
  %3828 = load i32, ptr %260, align 4, !tbaa !5
  %3829 = call ptr @strerror(i32 noundef %3828) #12
  %3830 = load i32, ptr %260, align 4, !tbaa !5
  %3831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3822, ptr noundef nonnull %.str.5.sink2862, i32 noundef %3823, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %3825, ptr noundef %3827, ptr noundef %3829, i32 noundef %3830) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3832:                                             ; preds = %3805
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %19) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 0, i64 40, i1 false)
  %3833 = load i32, ptr @test_count, align 4, !tbaa !5
  %3834 = add nsw i32 %3833, 1
  store i32 %3834, ptr @test_count, align 4, !tbaa !5
  %3835 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %3836 = icmp eq ptr %3835, null
  br i1 %3836, label %3837, label %3859

3837:                                             ; preds = %3832
  %3838 = load i32, ptr %260, align 4, !tbaa !5
  %3839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3840 = call i32 @s2n_print_stacktrace(ptr noundef %3839) #12
  %3841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3842 = trunc nuw i8 %3841 to i1
  br i1 %3842, label %3843, label %3847

3843:                                             ; preds = %3837
  %3844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3845 = call i32 @fileno(ptr noundef %3844) #12
  %3846 = call i32 @isatty(i32 noundef %3845) #12
  %.not1566 = icmp eq i32 %3846, 0
  br i1 %.not1566, label %3847, label %3848

3847:                                             ; preds = %3843, %3837
  br label %3848

3848:                                             ; preds = %3843, %3847
  %.str.5.sink2871 = phi ptr [ @.str.5, %3847 ], [ @.str.2, %3843 ]
  store i32 %3838, ptr %260, align 4, !tbaa !5
  %3849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3850 = load i32, ptr @test_count, align 4, !tbaa !5
  %3851 = load i32, ptr %206, align 4, !tbaa !5
  %3852 = call ptr @s2n_strerror(i32 noundef %3851, ptr noundef nonnull @.str.4) #12
  %3853 = load i32, ptr %206, align 4, !tbaa !5
  %3854 = call ptr @s2n_strerror_debug(i32 noundef %3853, ptr noundef nonnull @.str.4) #12
  %3855 = load i32, ptr %260, align 4, !tbaa !5
  %3856 = call ptr @strerror(i32 noundef %3855) #12
  %3857 = load i32, ptr %260, align 4, !tbaa !5
  %3858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3849, ptr noundef nonnull %.str.5.sink2871, i32 noundef %3850, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 335, ptr noundef %3852, ptr noundef %3854, ptr noundef %3856, i32 noundef %3857) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3859:                                             ; preds = %3832
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  store ptr null, ptr %21, align 8, !tbaa !9
  %3860 = load i32, ptr @test_count, align 4, !tbaa !5
  %3861 = add nsw i32 %3860, 1
  store i32 %3861, ptr @test_count, align 4, !tbaa !5
  %3862 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %3835, ptr noundef nonnull %21) #12
  %3863 = icmp eq i32 %3862, -1
  br i1 %3863, label %3864, label %3886

3864:                                             ; preds = %3859
  %3865 = load i32, ptr %260, align 4, !tbaa !5
  %3866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3867 = call i32 @s2n_print_stacktrace(ptr noundef %3866) #12
  %3868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3869 = trunc nuw i8 %3868 to i1
  br i1 %3869, label %3870, label %3874

3870:                                             ; preds = %3864
  %3871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3872 = call i32 @fileno(ptr noundef %3871) #12
  %3873 = call i32 @isatty(i32 noundef %3872) #12
  %.not1565 = icmp eq i32 %3873, 0
  br i1 %.not1565, label %3874, label %3875

3874:                                             ; preds = %3870, %3864
  br label %3875

3875:                                             ; preds = %3870, %3874
  %.str.5.sink2880 = phi ptr [ @.str.5, %3874 ], [ @.str.2, %3870 ]
  store i32 %3865, ptr %260, align 4, !tbaa !5
  %3876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3877 = load i32, ptr @test_count, align 4, !tbaa !5
  %3878 = load i32, ptr %206, align 4, !tbaa !5
  %3879 = call ptr @s2n_strerror(i32 noundef %3878, ptr noundef nonnull @.str.4) #12
  %3880 = load i32, ptr %206, align 4, !tbaa !5
  %3881 = call ptr @s2n_strerror_debug(i32 noundef %3880, ptr noundef nonnull @.str.4) #12
  %3882 = load i32, ptr %260, align 4, !tbaa !5
  %3883 = call ptr @strerror(i32 noundef %3882) #12
  %3884 = load i32, ptr %260, align 4, !tbaa !5
  %3885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3876, ptr noundef nonnull %.str.5.sink2880, i32 noundef %3877, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 337, ptr noundef %3879, ptr noundef %3881, ptr noundef %3883, i32 noundef %3884) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3886:                                             ; preds = %3859
  %3887 = load i32, ptr @test_count, align 4, !tbaa !5
  %3888 = add nsw i32 %3887, 1
  store i32 %3888, ptr @test_count, align 4, !tbaa !5
  %3889 = load ptr, ptr %21, align 8, !tbaa !9
  %3890 = icmp eq ptr %3889, null
  br i1 %3890, label %3891, label %3913

3891:                                             ; preds = %3886
  %3892 = load i32, ptr %260, align 4, !tbaa !5
  %3893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3894 = call i32 @s2n_print_stacktrace(ptr noundef %3893) #12
  %3895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3896 = trunc nuw i8 %3895 to i1
  br i1 %3896, label %3897, label %3901

3897:                                             ; preds = %3891
  %3898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3899 = call i32 @fileno(ptr noundef %3898) #12
  %3900 = call i32 @isatty(i32 noundef %3899) #12
  %.not1564 = icmp eq i32 %3900, 0
  br i1 %.not1564, label %3901, label %3902

3901:                                             ; preds = %3897, %3891
  br label %3902

3902:                                             ; preds = %3897, %3901
  %.str.5.sink2889 = phi ptr [ @.str.5, %3901 ], [ @.str.2, %3897 ]
  store i32 %3892, ptr %260, align 4, !tbaa !5
  %3903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3904 = load i32, ptr @test_count, align 4, !tbaa !5
  %3905 = load i32, ptr %206, align 4, !tbaa !5
  %3906 = call ptr @s2n_strerror(i32 noundef %3905, ptr noundef nonnull @.str.4) #12
  %3907 = load i32, ptr %206, align 4, !tbaa !5
  %3908 = call ptr @s2n_strerror_debug(i32 noundef %3907, ptr noundef nonnull @.str.4) #12
  %3909 = load i32, ptr %260, align 4, !tbaa !5
  %3910 = call ptr @strerror(i32 noundef %3909) #12
  %3911 = load i32, ptr %260, align 4, !tbaa !5
  %3912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3903, ptr noundef nonnull %.str.5.sink2889, i32 noundef %3904, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %3906, ptr noundef %3908, ptr noundef %3910, i32 noundef %3911) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3913:                                             ; preds = %3886
  %3914 = add nsw i32 %3887, 2
  store i32 %3914, ptr @test_count, align 4, !tbaa !5
  %3915 = getelementptr inbounds i8, ptr %3835, i64 656
  %3916 = load ptr, ptr %3915, align 8, !tbaa !42
  %3917 = icmp eq ptr %3916, null
  br i1 %3917, label %3940, label %3918

3918:                                             ; preds = %3913
  %3919 = load i32, ptr %260, align 4, !tbaa !5
  %3920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3921 = call i32 @s2n_print_stacktrace(ptr noundef %3920) #12
  %3922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3923 = trunc nuw i8 %3922 to i1
  br i1 %3923, label %3924, label %3928

3924:                                             ; preds = %3918
  %3925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3926 = call i32 @fileno(ptr noundef %3925) #12
  %3927 = call i32 @isatty(i32 noundef %3926) #12
  %.not1302 = icmp eq i32 %3927, 0
  br i1 %.not1302, label %3928, label %3929

3928:                                             ; preds = %3924, %3918
  br label %3929

3929:                                             ; preds = %3924, %3928
  %.str.5.sink2898 = phi ptr [ @.str.5, %3928 ], [ @.str.2, %3924 ]
  store i32 %3919, ptr %260, align 4, !tbaa !5
  %3930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3931 = load i32, ptr @test_count, align 4, !tbaa !5
  %3932 = load i32, ptr %206, align 4, !tbaa !5
  %3933 = call ptr @s2n_strerror(i32 noundef %3932, ptr noundef nonnull @.str.4) #12
  %3934 = load i32, ptr %206, align 4, !tbaa !5
  %3935 = call ptr @s2n_strerror_debug(i32 noundef %3934, ptr noundef nonnull @.str.4) #12
  %3936 = load i32, ptr %260, align 4, !tbaa !5
  %3937 = call ptr @strerror(i32 noundef %3936) #12
  %3938 = load i32, ptr %260, align 4, !tbaa !5
  %3939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3930, ptr noundef nonnull %.str.5.sink2898, i32 noundef %3931, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %3933, ptr noundef %3935, ptr noundef %3937, i32 noundef %3938) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3940:                                             ; preds = %3913
  %3941 = add nsw i32 %3887, 3
  store i32 %3941, ptr @test_count, align 4, !tbaa !5
  %3942 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull %20, ptr noundef nonnull @.str.56) #12
  %3943 = call zeroext i1 @s2n_result_is_ok(i32 %3942)
  br i1 %3943, label %3966, label %3944

3944:                                             ; preds = %3940
  %3945 = load i32, ptr %260, align 4, !tbaa !5
  %3946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3947 = call i32 @s2n_print_stacktrace(ptr noundef %3946) #12
  %3948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3949 = trunc nuw i8 %3948 to i1
  br i1 %3949, label %3950, label %3954

3950:                                             ; preds = %3944
  %3951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3952 = call i32 @fileno(ptr noundef %3951) #12
  %3953 = call i32 @isatty(i32 noundef %3952) #12
  %.not1303 = icmp eq i32 %3953, 0
  br i1 %.not1303, label %3954, label %3955

3954:                                             ; preds = %3950, %3944
  br label %3955

3955:                                             ; preds = %3950, %3954
  %.str.5.sink2907 = phi ptr [ @.str.5, %3954 ], [ @.str.2, %3950 ]
  store i32 %3945, ptr %260, align 4, !tbaa !5
  %3956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3957 = load i32, ptr @test_count, align 4, !tbaa !5
  %3958 = load i32, ptr %206, align 4, !tbaa !5
  %3959 = call ptr @s2n_strerror(i32 noundef %3958, ptr noundef nonnull @.str.4) #12
  %3960 = load i32, ptr %206, align 4, !tbaa !5
  %3961 = call ptr @s2n_strerror_debug(i32 noundef %3960, ptr noundef nonnull @.str.4) #12
  %3962 = load i32, ptr %260, align 4, !tbaa !5
  %3963 = call ptr @strerror(i32 noundef %3962) #12
  %3964 = load i32, ptr %260, align 4, !tbaa !5
  %3965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3956, ptr noundef nonnull %.str.5.sink2907, i32 noundef %3957, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %3959, ptr noundef %3961, ptr noundef %3963, i32 noundef %3964) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3966:                                             ; preds = %3940
  %3967 = call i32 (...) @s2n_is_evp_apis_supported() #12
  %.not1304 = icmp eq i32 %3967, 0
  %3968 = select i1 %.not1304, i64 1, i64 2
  %3969 = load ptr, ptr %21, align 8, !tbaa !9
  %3970 = getelementptr inbounds i8, ptr %3969, i64 8
  %3971 = load ptr, ptr %3970, align 8, !tbaa !43
  %3972 = getelementptr inbounds ptr, ptr %3971, i64 %3968
  %3973 = load ptr, ptr %3972, align 8, !tbaa !9
  %3974 = getelementptr inbounds i8, ptr %3835, i64 704
  store ptr %3973, ptr %3974, align 8, !tbaa !45
  %3975 = load i32, ptr @test_count, align 4, !tbaa !5
  %3976 = add nsw i32 %3975, 1
  store i32 %3976, ptr @test_count, align 4, !tbaa !5
  %3977 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %3974) #12
  %3978 = icmp eq i32 %3977, -1
  br i1 %3978, label %3979, label %4001

3979:                                             ; preds = %3966
  %3980 = load i32, ptr %260, align 4, !tbaa !5
  %3981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3982 = call i32 @s2n_print_stacktrace(ptr noundef %3981) #12
  %3983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3984 = trunc nuw i8 %3983 to i1
  br i1 %3984, label %3985, label %3989

3985:                                             ; preds = %3979
  %3986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3987 = call i32 @fileno(ptr noundef %3986) #12
  %3988 = call i32 @isatty(i32 noundef %3987) #12
  %.not1563 = icmp eq i32 %3988, 0
  br i1 %.not1563, label %3989, label %3990

3989:                                             ; preds = %3985, %3979
  br label %3990

3990:                                             ; preds = %3985, %3989
  %.str.5.sink2916 = phi ptr [ @.str.5, %3989 ], [ @.str.2, %3985 ]
  store i32 %3980, ptr %260, align 4, !tbaa !5
  %3991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3992 = load i32, ptr @test_count, align 4, !tbaa !5
  %3993 = load i32, ptr %206, align 4, !tbaa !5
  %3994 = call ptr @s2n_strerror(i32 noundef %3993, ptr noundef nonnull @.str.4) #12
  %3995 = load i32, ptr %206, align 4, !tbaa !5
  %3996 = call ptr @s2n_strerror_debug(i32 noundef %3995, ptr noundef nonnull @.str.4) #12
  %3997 = load i32, ptr %260, align 4, !tbaa !5
  %3998 = call ptr @strerror(i32 noundef %3997) #12
  %3999 = load i32, ptr %260, align 4, !tbaa !5
  %4000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3991, ptr noundef nonnull %.str.5.sink2916, i32 noundef %3992, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %3994, ptr noundef %3996, ptr noundef %3998, i32 noundef %3999) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4001:                                             ; preds = %3966
  %4002 = load i32, ptr @test_count, align 4, !tbaa !5
  %4003 = add nsw i32 %4002, 1
  store i32 %4003, ptr @test_count, align 4, !tbaa !5
  %4004 = call i32 %2349(ptr noundef nonnull %3835, ptr noundef nonnull %20) #12
  %4005 = icmp eq i32 %4004, -1
  br i1 %4005, label %4028, label %4006

4006:                                             ; preds = %4001
  %4007 = load i32, ptr %260, align 4, !tbaa !5
  %4008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4009 = call i32 @s2n_print_stacktrace(ptr noundef %4008) #12
  %4010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4011 = trunc nuw i8 %4010 to i1
  br i1 %4011, label %4012, label %4016

4012:                                             ; preds = %4006
  %4013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4014 = call i32 @fileno(ptr noundef %4013) #12
  %4015 = call i32 @isatty(i32 noundef %4014) #12
  %.not1305 = icmp eq i32 %4015, 0
  br i1 %.not1305, label %4016, label %4017

4016:                                             ; preds = %4012, %4006
  br label %4017

4017:                                             ; preds = %4012, %4016
  %.str.5.sink2925 = phi ptr [ @.str.5, %4016 ], [ @.str.2, %4012 ]
  store i32 %4007, ptr %260, align 4, !tbaa !5
  %4018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4019 = load i32, ptr @test_count, align 4, !tbaa !5
  %4020 = load i32, ptr %206, align 4, !tbaa !5
  %4021 = call ptr @s2n_strerror(i32 noundef %4020, ptr noundef nonnull @.str.4) #12
  %4022 = load i32, ptr %206, align 4, !tbaa !5
  %4023 = call ptr @s2n_strerror_debug(i32 noundef %4022, ptr noundef nonnull @.str.4) #12
  %4024 = load i32, ptr %260, align 4, !tbaa !5
  %4025 = call ptr @strerror(i32 noundef %4024) #12
  %4026 = load i32, ptr %260, align 4, !tbaa !5
  %4027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4018, ptr noundef nonnull %.str.5.sink2925, i32 noundef %4019, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %4021, ptr noundef %4023, ptr noundef %4025, i32 noundef %4026) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4028:                                             ; preds = %4001
  %4029 = load i32, ptr @test_count, align 4, !tbaa !5
  %4030 = add nsw i32 %4029, 1
  store i32 %4030, ptr @test_count, align 4, !tbaa !5
  %4031 = load i32, ptr %206, align 4, !tbaa !5
  %4032 = icmp eq i32 %4031, 335544385
  br i1 %4032, label %4055, label %4033

4033:                                             ; preds = %4028
  %4034 = load i32, ptr %260, align 4, !tbaa !5
  %4035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4036 = call i32 @s2n_print_stacktrace(ptr noundef %4035) #12
  %4037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4038 = trunc nuw i8 %4037 to i1
  br i1 %4038, label %4039, label %4043

4039:                                             ; preds = %4033
  %4040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4041 = call i32 @fileno(ptr noundef %4040) #12
  %4042 = call i32 @isatty(i32 noundef %4041) #12
  %.not1306 = icmp eq i32 %4042, 0
  br i1 %.not1306, label %4043, label %4044

4043:                                             ; preds = %4039, %4033
  br label %4044

4044:                                             ; preds = %4039, %4043
  %.str.5.sink2934 = phi ptr [ @.str.5, %4043 ], [ @.str.2, %4039 ]
  store i32 %4034, ptr %260, align 4, !tbaa !5
  %4045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4046 = load i32, ptr @test_count, align 4, !tbaa !5
  %4047 = load i32, ptr %206, align 4, !tbaa !5
  %4048 = call ptr @s2n_strerror(i32 noundef %4047, ptr noundef nonnull @.str.4) #12
  %4049 = load i32, ptr %206, align 4, !tbaa !5
  %4050 = call ptr @s2n_strerror_debug(i32 noundef %4049, ptr noundef nonnull @.str.4) #12
  %4051 = load i32, ptr %260, align 4, !tbaa !5
  %4052 = call ptr @strerror(i32 noundef %4051) #12
  %4053 = load i32, ptr %260, align 4, !tbaa !5
  %4054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4045, ptr noundef nonnull %.str.5.sink2934, i32 noundef %4046, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %4048, ptr noundef %4050, ptr noundef %4052, i32 noundef %4053) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4055:                                             ; preds = %4028
  %4056 = add nsw i32 %4029, 2
  store i32 %4056, ptr @test_count, align 4, !tbaa !5
  %4057 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %4058 = icmp eq ptr %4057, null
  br i1 %4058, label %4059, label %4081

4059:                                             ; preds = %4055
  %4060 = load i32, ptr %260, align 4, !tbaa !5
  %4061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4062 = call i32 @s2n_print_stacktrace(ptr noundef %4061) #12
  %4063 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4064 = trunc nuw i8 %4063 to i1
  br i1 %4064, label %4065, label %4069

4065:                                             ; preds = %4059
  %4066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4067 = call i32 @fileno(ptr noundef %4066) #12
  %4068 = call i32 @isatty(i32 noundef %4067) #12
  %.not1562 = icmp eq i32 %4068, 0
  br i1 %.not1562, label %4069, label %4070

4069:                                             ; preds = %4065, %4059
  br label %4070

4070:                                             ; preds = %4065, %4069
  %.str.5.sink2943 = phi ptr [ @.str.5, %4069 ], [ @.str.2, %4065 ]
  store i32 %4060, ptr %260, align 4, !tbaa !5
  %4071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4072 = load i32, ptr @test_count, align 4, !tbaa !5
  %4073 = load i32, ptr %206, align 4, !tbaa !5
  %4074 = call ptr @s2n_strerror(i32 noundef %4073, ptr noundef nonnull @.str.4) #12
  %4075 = load i32, ptr %206, align 4, !tbaa !5
  %4076 = call ptr @s2n_strerror_debug(i32 noundef %4075, ptr noundef nonnull @.str.4) #12
  %4077 = load i32, ptr %260, align 4, !tbaa !5
  %4078 = call ptr @strerror(i32 noundef %4077) #12
  %4079 = load i32, ptr %260, align 4, !tbaa !5
  %4080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4071, ptr noundef nonnull %.str.5.sink2943, i32 noundef %4072, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %4074, ptr noundef %4076, ptr noundef %4078, i32 noundef %4079) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4081:                                             ; preds = %4055
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %4082 = load i32, ptr @test_count, align 4, !tbaa !5
  %4083 = add nsw i32 %4082, 1
  store i32 %4083, ptr @test_count, align 4, !tbaa !5
  %4084 = call i32 @s2n_stuffer_free(ptr noundef nonnull %20) #12
  %4085 = icmp eq i32 %4084, -1
  br i1 %4085, label %4086, label %4108

4086:                                             ; preds = %4081
  %4087 = load i32, ptr %260, align 4, !tbaa !5
  %4088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4089 = call i32 @s2n_print_stacktrace(ptr noundef %4088) #12
  %4090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4091 = trunc nuw i8 %4090 to i1
  br i1 %4091, label %4092, label %4096

4092:                                             ; preds = %4086
  %4093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4094 = call i32 @fileno(ptr noundef %4093) #12
  %4095 = call i32 @isatty(i32 noundef %4094) #12
  %.not1561 = icmp eq i32 %4095, 0
  br i1 %.not1561, label %4096, label %4097

4096:                                             ; preds = %4092, %4086
  br label %4097

4097:                                             ; preds = %4092, %4096
  %.str.5.sink2952 = phi ptr [ @.str.5, %4096 ], [ @.str.2, %4092 ]
  store i32 %4087, ptr %260, align 4, !tbaa !5
  %4098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4099 = load i32, ptr @test_count, align 4, !tbaa !5
  %4100 = load i32, ptr %206, align 4, !tbaa !5
  %4101 = call ptr @s2n_strerror(i32 noundef %4100, ptr noundef nonnull @.str.4) #12
  %4102 = load i32, ptr %206, align 4, !tbaa !5
  %4103 = call ptr @s2n_strerror_debug(i32 noundef %4102, ptr noundef nonnull @.str.4) #12
  %4104 = load i32, ptr %260, align 4, !tbaa !5
  %4105 = call ptr @strerror(i32 noundef %4104) #12
  %4106 = load i32, ptr %260, align 4, !tbaa !5
  %4107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4098, ptr noundef nonnull %.str.5.sink2952, i32 noundef %4099, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %4101, ptr noundef %4103, ptr noundef %4105, i32 noundef %4106) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4108:                                             ; preds = %4081
  %4109 = load i32, ptr @test_count, align 4, !tbaa !5
  %4110 = add nsw i32 %4109, 1
  store i32 %4110, ptr @test_count, align 4, !tbaa !5
  %4111 = call i32 @s2n_connection_free(ptr noundef nonnull %3835) #12
  %4112 = icmp eq i32 %4111, -1
  br i1 %4112, label %4113, label %4135

4113:                                             ; preds = %4108
  %4114 = load i32, ptr %260, align 4, !tbaa !5
  %4115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4116 = call i32 @s2n_print_stacktrace(ptr noundef %4115) #12
  %4117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4118 = trunc nuw i8 %4117 to i1
  br i1 %4118, label %4119, label %4123

4119:                                             ; preds = %4113
  %4120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4121 = call i32 @fileno(ptr noundef %4120) #12
  %4122 = call i32 @isatty(i32 noundef %4121) #12
  %.not1560 = icmp eq i32 %4122, 0
  br i1 %.not1560, label %4123, label %4124

4123:                                             ; preds = %4119, %4113
  br label %4124

4124:                                             ; preds = %4119, %4123
  %.str.5.sink2961 = phi ptr [ @.str.5, %4123 ], [ @.str.2, %4119 ]
  store i32 %4114, ptr %260, align 4, !tbaa !5
  %4125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4126 = load i32, ptr @test_count, align 4, !tbaa !5
  %4127 = load i32, ptr %206, align 4, !tbaa !5
  %4128 = call ptr @s2n_strerror(i32 noundef %4127, ptr noundef nonnull @.str.4) #12
  %4129 = load i32, ptr %206, align 4, !tbaa !5
  %4130 = call ptr @s2n_strerror_debug(i32 noundef %4129, ptr noundef nonnull @.str.4) #12
  %4131 = load i32, ptr %260, align 4, !tbaa !5
  %4132 = call ptr @strerror(i32 noundef %4131) #12
  %4133 = load i32, ptr %260, align 4, !tbaa !5
  %4134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4125, ptr noundef nonnull %.str.5.sink2961, i32 noundef %4126, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 354, ptr noundef %4128, ptr noundef %4130, ptr noundef %4132, i32 noundef %4133) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4135:                                             ; preds = %4108
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %22, i8 0, i64 40, i1 false)
  %4136 = load i32, ptr @test_count, align 4, !tbaa !5
  %4137 = add nsw i32 %4136, 1
  store i32 %4137, ptr @test_count, align 4, !tbaa !5
  %4138 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %4139 = icmp eq ptr %4138, null
  br i1 %4139, label %4140, label %4162

4140:                                             ; preds = %4135
  %4141 = load i32, ptr %260, align 4, !tbaa !5
  %4142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4143 = call i32 @s2n_print_stacktrace(ptr noundef %4142) #12
  %4144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4145 = trunc nuw i8 %4144 to i1
  br i1 %4145, label %4146, label %4150

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

4150:                                             ; preds = %4146, %4140
  br label %4151

4151:                                             ; preds = %4146, %4150
  %.str.5.sink2970 = phi ptr [ @.str.5, %4150 ], [ @.str.2, %4146 ]
  store i32 %4141, ptr %260, align 4, !tbaa !5
  %4152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4153 = load i32, ptr @test_count, align 4, !tbaa !5
  %4154 = load i32, ptr %206, align 4, !tbaa !5
  %4155 = call ptr @s2n_strerror(i32 noundef %4154, ptr noundef nonnull @.str.4) #12
  %4156 = load i32, ptr %206, align 4, !tbaa !5
  %4157 = call ptr @s2n_strerror_debug(i32 noundef %4156, ptr noundef nonnull @.str.4) #12
  %4158 = load i32, ptr %260, align 4, !tbaa !5
  %4159 = call ptr @strerror(i32 noundef %4158) #12
  %4160 = load i32, ptr %260, align 4, !tbaa !5
  %4161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4152, ptr noundef nonnull %.str.5.sink2970, i32 noundef %4153, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 363, ptr noundef %4155, ptr noundef %4157, ptr noundef %4159, i32 noundef %4160) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4162:                                             ; preds = %4135
  %4163 = load i32, ptr @test_count, align 4, !tbaa !5
  %4164 = add nsw i32 %4163, 1
  store i32 %4164, ptr @test_count, align 4, !tbaa !5
  %4165 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %4166 = icmp eq ptr %4165, null
  br i1 %4166, label %4167, label %4189

4167:                                             ; preds = %4162
  %4168 = load i32, ptr %260, align 4, !tbaa !5
  %4169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4170 = call i32 @s2n_print_stacktrace(ptr noundef %4169) #12
  %4171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4172 = trunc nuw i8 %4171 to i1
  br i1 %4172, label %4173, label %4177

4173:                                             ; preds = %4167
  %4174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4175 = call i32 @fileno(ptr noundef %4174) #12
  %4176 = call i32 @isatty(i32 noundef %4175) #12
  %.not1558 = icmp eq i32 %4176, 0
  br i1 %.not1558, label %4177, label %4178

4177:                                             ; preds = %4173, %4167
  br label %4178

4178:                                             ; preds = %4173, %4177
  %.str.5.sink2979 = phi ptr [ @.str.5, %4177 ], [ @.str.2, %4173 ]
  store i32 %4168, ptr %260, align 4, !tbaa !5
  %4179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4180 = load i32, ptr @test_count, align 4, !tbaa !5
  %4181 = load i32, ptr %206, align 4, !tbaa !5
  %4182 = call ptr @s2n_strerror(i32 noundef %4181, ptr noundef nonnull @.str.4) #12
  %4183 = load i32, ptr %206, align 4, !tbaa !5
  %4184 = call ptr @s2n_strerror_debug(i32 noundef %4183, ptr noundef nonnull @.str.4) #12
  %4185 = load i32, ptr %260, align 4, !tbaa !5
  %4186 = call ptr @strerror(i32 noundef %4185) #12
  %4187 = load i32, ptr %260, align 4, !tbaa !5
  %4188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4179, ptr noundef nonnull %.str.5.sink2979, i32 noundef %4180, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 364, ptr noundef %4182, ptr noundef %4184, ptr noundef %4186, i32 noundef %4187) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4189:                                             ; preds = %4162
  %4190 = getelementptr inbounds i8, ptr %4165, i64 220
  store i8 34, ptr %4190, align 4, !tbaa !56
  %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 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %4165) #12
  %4194 = call zeroext i1 @s2n_result_is_ok(i32 %4193)
  br i1 %4194, label %4217, label %4195

4195:                                             ; preds = %4189
  %4196 = load i32, ptr %260, align 4, !tbaa !5
  %4197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4198 = call i32 @s2n_print_stacktrace(ptr noundef %4197) #12
  %4199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4200 = trunc nuw i8 %4199 to i1
  br i1 %4200, label %4201, label %4205

4201:                                             ; preds = %4195
  %4202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4203 = call i32 @fileno(ptr noundef %4202) #12
  %4204 = call i32 @isatty(i32 noundef %4203) #12
  %.not1307 = icmp eq i32 %4204, 0
  br i1 %.not1307, label %4205, label %4206

4205:                                             ; preds = %4201, %4195
  br label %4206

4206:                                             ; preds = %4201, %4205
  %.str.5.sink2988 = phi ptr [ @.str.5, %4205 ], [ @.str.2, %4201 ]
  store i32 %4196, ptr %260, align 4, !tbaa !5
  %4207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4208 = load i32, ptr @test_count, align 4, !tbaa !5
  %4209 = load i32, ptr %206, align 4, !tbaa !5
  %4210 = call ptr @s2n_strerror(i32 noundef %4209, ptr noundef nonnull @.str.4) #12
  %4211 = load i32, ptr %206, align 4, !tbaa !5
  %4212 = call ptr @s2n_strerror_debug(i32 noundef %4211, ptr noundef nonnull @.str.4) #12
  %4213 = load i32, ptr %260, align 4, !tbaa !5
  %4214 = call ptr @strerror(i32 noundef %4213) #12
  %4215 = load i32, ptr %260, align 4, !tbaa !5
  %4216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4207, ptr noundef nonnull %.str.5.sink2988, i32 noundef %4208, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %4210, ptr noundef %4212, ptr noundef %4214, i32 noundef %4215) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4217:                                             ; preds = %4189
  %4218 = load i32, ptr @test_count, align 4, !tbaa !5
  %4219 = add nsw i32 %4218, 1
  store i32 %4219, ptr @test_count, align 4, !tbaa !5
  %4220 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %22, i32 noundef 0) #12
  %4221 = icmp eq i32 %4220, -1
  br i1 %4221, label %4222, label %4244

4222:                                             ; preds = %4217
  %4223 = load i32, ptr %260, align 4, !tbaa !5
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = call i32 @s2n_print_stacktrace(ptr noundef %4224) #12
  %4226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4227 = trunc nuw i8 %4226 to i1
  br i1 %4227, label %4228, label %4232

4228:                                             ; preds = %4222
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = call i32 @fileno(ptr noundef %4229) #12
  %4231 = call i32 @isatty(i32 noundef %4230) #12
  %.not1557 = icmp eq i32 %4231, 0
  br i1 %.not1557, label %4232, label %4233

4232:                                             ; preds = %4228, %4222
  br label %4233

4233:                                             ; preds = %4228, %4232
  %.str.5.sink2997 = phi ptr [ @.str.5, %4232 ], [ @.str.2, %4228 ]
  store i32 %4223, ptr %260, align 4, !tbaa !5
  %4234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4235 = load i32, ptr @test_count, align 4, !tbaa !5
  %4236 = load i32, ptr %206, align 4, !tbaa !5
  %4237 = call ptr @s2n_strerror(i32 noundef %4236, ptr noundef nonnull @.str.4) #12
  %4238 = load i32, ptr %206, align 4, !tbaa !5
  %4239 = call ptr @s2n_strerror_debug(i32 noundef %4238, ptr noundef nonnull @.str.4) #12
  %4240 = load i32, ptr %260, align 4, !tbaa !5
  %4241 = call ptr @strerror(i32 noundef %4240) #12
  %4242 = load i32, ptr %260, align 4, !tbaa !5
  %4243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4234, ptr noundef nonnull %.str.5.sink2997, i32 noundef %4235, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %4237, ptr noundef %4239, ptr noundef %4241, i32 noundef %4242) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4244:                                             ; preds = %4217
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  store ptr null, ptr %23, align 8, !tbaa !9
  %4245 = load i32, ptr @test_count, align 4, !tbaa !5
  %4246 = add nsw i32 %4245, 1
  store i32 %4246, ptr @test_count, align 4, !tbaa !5
  %4247 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %4165, ptr noundef nonnull %23) #12
  %4248 = icmp eq i32 %4247, -1
  br i1 %4248, label %4249, label %4271

4249:                                             ; preds = %4244
  %4250 = load i32, ptr %260, align 4, !tbaa !5
  %4251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4252 = call i32 @s2n_print_stacktrace(ptr noundef %4251) #12
  %4253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4254 = trunc nuw i8 %4253 to i1
  br i1 %4254, label %4255, label %4259

4255:                                             ; preds = %4249
  %4256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4257 = call i32 @fileno(ptr noundef %4256) #12
  %4258 = call i32 @isatty(i32 noundef %4257) #12
  %.not1556 = icmp eq i32 %4258, 0
  br i1 %.not1556, label %4259, label %4260

4259:                                             ; preds = %4255, %4249
  br label %4260

4260:                                             ; preds = %4255, %4259
  %.str.5.sink3006 = phi ptr [ @.str.5, %4259 ], [ @.str.2, %4255 ]
  store i32 %4250, ptr %260, align 4, !tbaa !5
  %4261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4262 = load i32, ptr @test_count, align 4, !tbaa !5
  %4263 = load i32, ptr %206, align 4, !tbaa !5
  %4264 = call ptr @s2n_strerror(i32 noundef %4263, ptr noundef nonnull @.str.4) #12
  %4265 = load i32, ptr %206, align 4, !tbaa !5
  %4266 = call ptr @s2n_strerror_debug(i32 noundef %4265, ptr noundef nonnull @.str.4) #12
  %4267 = load i32, ptr %260, align 4, !tbaa !5
  %4268 = call ptr @strerror(i32 noundef %4267) #12
  %4269 = load i32, ptr %260, align 4, !tbaa !5
  %4270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4261, ptr noundef nonnull %.str.5.sink3006, i32 noundef %4262, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %4264, ptr noundef %4266, ptr noundef %4268, i32 noundef %4269) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4271:                                             ; preds = %4244
  %4272 = load i32, ptr @test_count, align 4, !tbaa !5
  %4273 = add nsw i32 %4272, 1
  store i32 %4273, ptr @test_count, align 4, !tbaa !5
  %4274 = load ptr, ptr %23, align 8, !tbaa !9
  %4275 = icmp eq ptr %4274, null
  br i1 %4275, label %4276, label %4298

4276:                                             ; preds = %4271
  %4277 = load i32, ptr %260, align 4, !tbaa !5
  %4278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4279 = call i32 @s2n_print_stacktrace(ptr noundef %4278) #12
  %4280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4281 = trunc nuw i8 %4280 to i1
  br i1 %4281, label %4282, label %4286

4282:                                             ; preds = %4276
  %4283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4284 = call i32 @fileno(ptr noundef %4283) #12
  %4285 = call i32 @isatty(i32 noundef %4284) #12
  %.not1555 = icmp eq i32 %4285, 0
  br i1 %.not1555, label %4286, label %4287

4286:                                             ; preds = %4282, %4276
  br label %4287

4287:                                             ; preds = %4282, %4286
  %.str.5.sink3015 = phi ptr [ @.str.5, %4286 ], [ @.str.2, %4282 ]
  store i32 %4277, ptr %260, align 4, !tbaa !5
  %4288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4289 = load i32, ptr @test_count, align 4, !tbaa !5
  %4290 = load i32, ptr %206, align 4, !tbaa !5
  %4291 = call ptr @s2n_strerror(i32 noundef %4290, ptr noundef nonnull @.str.4) #12
  %4292 = load i32, ptr %206, align 4, !tbaa !5
  %4293 = call ptr @s2n_strerror_debug(i32 noundef %4292, ptr noundef nonnull @.str.4) #12
  %4294 = load i32, ptr %260, align 4, !tbaa !5
  %4295 = call ptr @strerror(i32 noundef %4294) #12
  %4296 = load i32, ptr %260, align 4, !tbaa !5
  %4297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4288, ptr noundef nonnull %.str.5.sink3015, i32 noundef %4289, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %4291, ptr noundef %4293, ptr noundef %4295, i32 noundef %4296) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4298:                                             ; preds = %4271
  %4299 = add nsw i32 %4272, 2
  store i32 %4299, ptr @test_count, align 4, !tbaa !5
  %4300 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_key_share_extension, i64 8), align 8, !tbaa !62
  %4301 = call i32 %4300(ptr noundef nonnull %4138, ptr noundef nonnull %22) #12
  %4302 = icmp eq i32 %4301, -1
  br i1 %4302, label %4303, label %4325

4303:                                             ; preds = %4298
  %4304 = load i32, ptr %260, align 4, !tbaa !5
  %4305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4306 = call i32 @s2n_print_stacktrace(ptr noundef %4305) #12
  %4307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4308 = trunc nuw i8 %4307 to i1
  br i1 %4308, label %4309, label %4313

4309:                                             ; preds = %4303
  %4310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4311 = call i32 @fileno(ptr noundef %4310) #12
  %4312 = call i32 @isatty(i32 noundef %4311) #12
  %.not1554 = icmp eq i32 %4312, 0
  br i1 %.not1554, label %4313, label %4314

4313:                                             ; preds = %4309, %4303
  br label %4314

4314:                                             ; preds = %4309, %4313
  %.str.5.sink3024 = phi ptr [ @.str.5, %4313 ], [ @.str.2, %4309 ]
  store i32 %4304, ptr %260, align 4, !tbaa !5
  %4315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4316 = load i32, ptr @test_count, align 4, !tbaa !5
  %4317 = load i32, ptr %206, align 4, !tbaa !5
  %4318 = call ptr @s2n_strerror(i32 noundef %4317, ptr noundef nonnull @.str.4) #12
  %4319 = load i32, ptr %206, align 4, !tbaa !5
  %4320 = call ptr @s2n_strerror_debug(i32 noundef %4319, ptr noundef nonnull @.str.4) #12
  %4321 = load i32, ptr %260, align 4, !tbaa !5
  %4322 = call ptr @strerror(i32 noundef %4321) #12
  %4323 = load i32, ptr %260, align 4, !tbaa !5
  %4324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4315, ptr noundef nonnull %.str.5.sink3024, i32 noundef %4316, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %4318, ptr noundef %4320, ptr noundef %4322, i32 noundef %4323) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4325:                                             ; preds = %4298
  %4326 = load i32, ptr @test_count, align 4, !tbaa !5
  %4327 = add nsw i32 %4326, 1
  store i32 %4327, ptr @test_count, align 4, !tbaa !5
  %4328 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_key_share_extension, i64 16), align 8, !tbaa !66
  %4329 = call i32 %4328(ptr noundef nonnull %4165, ptr noundef nonnull %22) #12
  %4330 = icmp eq i32 %4329, -1
  br i1 %4330, label %4331, label %4353

4331:                                             ; preds = %4325
  %4332 = load i32, ptr %260, align 4, !tbaa !5
  %4333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4334 = call i32 @s2n_print_stacktrace(ptr noundef %4333) #12
  %4335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4336 = trunc nuw i8 %4335 to i1
  br i1 %4336, label %4337, label %4341

4337:                                             ; preds = %4331
  %4338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4339 = call i32 @fileno(ptr noundef %4338) #12
  %4340 = call i32 @isatty(i32 noundef %4339) #12
  %.not1553 = icmp eq i32 %4340, 0
  br i1 %.not1553, label %4341, label %4342

4341:                                             ; preds = %4337, %4331
  br label %4342

4342:                                             ; preds = %4337, %4341
  %.str.5.sink3033 = phi ptr [ @.str.5, %4341 ], [ @.str.2, %4337 ]
  store i32 %4332, ptr %260, align 4, !tbaa !5
  %4343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4344 = load i32, ptr @test_count, align 4, !tbaa !5
  %4345 = load i32, ptr %206, align 4, !tbaa !5
  %4346 = call ptr @s2n_strerror(i32 noundef %4345, ptr noundef nonnull @.str.4) #12
  %4347 = load i32, ptr %206, align 4, !tbaa !5
  %4348 = call ptr @s2n_strerror_debug(i32 noundef %4347, ptr noundef nonnull @.str.4) #12
  %4349 = load i32, ptr %260, align 4, !tbaa !5
  %4350 = call ptr @strerror(i32 noundef %4349) #12
  %4351 = load i32, ptr %260, align 4, !tbaa !5
  %4352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4343, ptr noundef nonnull %.str.5.sink3033, i32 noundef %4344, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %4346, ptr noundef %4348, ptr noundef %4350, i32 noundef %4351) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4353:                                             ; preds = %4325
  %4354 = load i32, ptr @test_count, align 4, !tbaa !5
  %4355 = add nsw i32 %4354, 1
  store i32 %4355, ptr @test_count, align 4, !tbaa !5
  %4356 = getelementptr inbounds i8, ptr %22, i64 28
  %4357 = load i32, ptr %4356, align 4, !tbaa !54
  %4358 = getelementptr inbounds i8, ptr %22, i64 24
  %4359 = load i32, ptr %4358, align 8, !tbaa !55
  %4360 = icmp eq i32 %4357, %4359
  br i1 %4360, label %4383, label %4361

4361:                                             ; preds = %4353
  %4362 = load i32, ptr %260, align 4, !tbaa !5
  %4363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4364 = call i32 @s2n_print_stacktrace(ptr noundef %4363) #12
  %4365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4366 = trunc nuw i8 %4365 to i1
  br i1 %4366, label %4367, label %4371

4367:                                             ; preds = %4361
  %4368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4369 = call i32 @fileno(ptr noundef %4368) #12
  %4370 = call i32 @isatty(i32 noundef %4369) #12
  %.not1308 = icmp eq i32 %4370, 0
  br i1 %.not1308, label %4371, label %4372

4371:                                             ; preds = %4367, %4361
  br label %4372

4372:                                             ; preds = %4367, %4371
  %.str.5.sink3042 = phi ptr [ @.str.5, %4371 ], [ @.str.2, %4367 ]
  store i32 %4362, ptr %260, align 4, !tbaa !5
  %4373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4374 = load i32, ptr @test_count, align 4, !tbaa !5
  %4375 = load i32, ptr %206, align 4, !tbaa !5
  %4376 = call ptr @s2n_strerror(i32 noundef %4375, ptr noundef nonnull @.str.4) #12
  %4377 = load i32, ptr %206, align 4, !tbaa !5
  %4378 = call ptr @s2n_strerror_debug(i32 noundef %4377, ptr noundef nonnull @.str.4) #12
  %4379 = load i32, ptr %260, align 4, !tbaa !5
  %4380 = call ptr @strerror(i32 noundef %4379) #12
  %4381 = load i32, ptr %260, align 4, !tbaa !5
  %4382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4373, ptr noundef nonnull %.str.5.sink3042, i32 noundef %4374, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %4376, ptr noundef %4378, ptr noundef %4380, i32 noundef %4381) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4383:                                             ; preds = %4353
  %4384 = load ptr, ptr %23, align 8, !tbaa !9
  %4385 = getelementptr inbounds i8, ptr %4384, i64 8
  %4386 = load ptr, ptr %4385, align 8, !tbaa !43
  %4387 = load ptr, ptr %4386, align 8, !tbaa !9
  %4388 = getelementptr inbounds i8, ptr %4165, i64 656
  store ptr %4387, ptr %4388, align 8, !tbaa !42
  %4389 = add nsw i32 %4354, 2
  store i32 %4389, ptr @test_count, align 4, !tbaa !5
  %4390 = call i32 %2026(ptr noundef nonnull %4165, ptr noundef nonnull %22) #12
  %4391 = icmp eq i32 %4390, -1
  br i1 %4391, label %4392, label %4414

4392:                                             ; preds = %4383
  %4393 = load i32, ptr %260, align 4, !tbaa !5
  %4394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4395 = call i32 @s2n_print_stacktrace(ptr noundef %4394) #12
  %4396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4397 = trunc nuw i8 %4396 to i1
  br i1 %4397, label %4398, label %4402

4398:                                             ; preds = %4392
  %4399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4400 = call i32 @fileno(ptr noundef %4399) #12
  %4401 = call i32 @isatty(i32 noundef %4400) #12
  %.not1552 = icmp eq i32 %4401, 0
  br i1 %.not1552, label %4402, label %4403

4402:                                             ; preds = %4398, %4392
  br label %4403

4403:                                             ; preds = %4398, %4402
  %.str.5.sink3051 = phi ptr [ @.str.5, %4402 ], [ @.str.2, %4398 ]
  store i32 %4393, ptr %260, align 4, !tbaa !5
  %4404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4405 = load i32, ptr @test_count, align 4, !tbaa !5
  %4406 = load i32, ptr %206, align 4, !tbaa !5
  %4407 = call ptr @s2n_strerror(i32 noundef %4406, ptr noundef nonnull @.str.4) #12
  %4408 = load i32, ptr %206, align 4, !tbaa !5
  %4409 = call ptr @s2n_strerror_debug(i32 noundef %4408, ptr noundef nonnull @.str.4) #12
  %4410 = load i32, ptr %260, align 4, !tbaa !5
  %4411 = call ptr @strerror(i32 noundef %4410) #12
  %4412 = load i32, ptr %260, align 4, !tbaa !5
  %4413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4404, ptr noundef nonnull %.str.5.sink3051, i32 noundef %4405, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %4407, ptr noundef %4409, ptr noundef %4411, i32 noundef %4412) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4414:                                             ; preds = %4383
  %4415 = load i32, ptr @test_count, align 4, !tbaa !5
  %4416 = add nsw i32 %4415, 1
  store i32 %4416, ptr @test_count, align 4, !tbaa !5
  %4417 = call i32 %2349(ptr noundef nonnull %4138, ptr noundef nonnull %22) #12
  %4418 = icmp eq i32 %4417, -1
  br i1 %4418, label %4419, label %4441

4419:                                             ; preds = %4414
  %4420 = load i32, ptr %260, align 4, !tbaa !5
  %4421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4422 = call i32 @s2n_print_stacktrace(ptr noundef %4421) #12
  %4423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4424 = trunc nuw i8 %4423 to i1
  br i1 %4424, label %4425, label %4429

4425:                                             ; preds = %4419
  %4426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4427 = call i32 @fileno(ptr noundef %4426) #12
  %4428 = call i32 @isatty(i32 noundef %4427) #12
  %.not1551 = icmp eq i32 %4428, 0
  br i1 %.not1551, label %4429, label %4430

4429:                                             ; preds = %4425, %4419
  br label %4430

4430:                                             ; preds = %4425, %4429
  %.str.5.sink3060 = phi ptr [ @.str.5, %4429 ], [ @.str.2, %4425 ]
  store i32 %4420, ptr %260, align 4, !tbaa !5
  %4431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4432 = load i32, ptr @test_count, align 4, !tbaa !5
  %4433 = load i32, ptr %206, align 4, !tbaa !5
  %4434 = call ptr @s2n_strerror(i32 noundef %4433, ptr noundef nonnull @.str.4) #12
  %4435 = load i32, ptr %206, align 4, !tbaa !5
  %4436 = call ptr @s2n_strerror_debug(i32 noundef %4435, ptr noundef nonnull @.str.4) #12
  %4437 = load i32, ptr %260, align 4, !tbaa !5
  %4438 = call ptr @strerror(i32 noundef %4437) #12
  %4439 = load i32, ptr %260, align 4, !tbaa !5
  %4440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4431, ptr noundef nonnull %.str.5.sink3060, i32 noundef %4432, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 383, ptr noundef %4434, ptr noundef %4436, ptr noundef %4438, i32 noundef %4439) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4441:                                             ; preds = %4414
  %4442 = load i32, ptr @test_count, align 4, !tbaa !5
  %4443 = add nsw i32 %4442, 1
  store i32 %4443, ptr @test_count, align 4, !tbaa !5
  %4444 = load i32, ptr %4356, align 4, !tbaa !54
  %4445 = load i32, ptr %4358, align 8, !tbaa !55
  %4446 = icmp eq i32 %4444, %4445
  br i1 %4446, label %4469, label %4447

4447:                                             ; preds = %4441
  %4448 = load i32, ptr %260, align 4, !tbaa !5
  %4449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4450 = call i32 @s2n_print_stacktrace(ptr noundef %4449) #12
  %4451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4452 = trunc nuw i8 %4451 to i1
  br i1 %4452, label %4453, label %4457

4453:                                             ; preds = %4447
  %4454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4455 = call i32 @fileno(ptr noundef %4454) #12
  %4456 = call i32 @isatty(i32 noundef %4455) #12
  %.not1309 = icmp eq i32 %4456, 0
  br i1 %.not1309, label %4457, label %4458

4457:                                             ; preds = %4453, %4447
  br label %4458

4458:                                             ; preds = %4453, %4457
  %.str.5.sink3069 = phi ptr [ @.str.5, %4457 ], [ @.str.2, %4453 ]
  store i32 %4448, ptr %260, align 4, !tbaa !5
  %4459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4460 = load i32, ptr @test_count, align 4, !tbaa !5
  %4461 = load i32, ptr %206, align 4, !tbaa !5
  %4462 = call ptr @s2n_strerror(i32 noundef %4461, ptr noundef nonnull @.str.4) #12
  %4463 = load i32, ptr %206, align 4, !tbaa !5
  %4464 = call ptr @s2n_strerror_debug(i32 noundef %4463, ptr noundef nonnull @.str.4) #12
  %4465 = load i32, ptr %260, align 4, !tbaa !5
  %4466 = call ptr @strerror(i32 noundef %4465) #12
  %4467 = load i32, ptr %260, align 4, !tbaa !5
  %4468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4459, ptr noundef nonnull %.str.5.sink3069, i32 noundef %4460, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 384, ptr noundef %4462, ptr noundef %4464, ptr noundef %4466, i32 noundef %4467) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4469:                                             ; preds = %4441
  %4470 = add nsw i32 %4442, 2
  store i32 %4470, ptr @test_count, align 4, !tbaa !5
  %4471 = load ptr, ptr %4388, align 8, !tbaa !42
  %4472 = getelementptr inbounds i8, ptr %4138, i64 656
  %4473 = load ptr, ptr %4472, align 8, !tbaa !42
  %4474 = icmp eq ptr %4471, %4473
  br i1 %4474, label %4497, label %4475

4475:                                             ; preds = %4469
  %4476 = load i32, ptr %260, align 4, !tbaa !5
  %4477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4478 = call i32 @s2n_print_stacktrace(ptr noundef %4477) #12
  %4479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4480 = trunc nuw i8 %4479 to i1
  br i1 %4480, label %4481, label %4485

4481:                                             ; preds = %4475
  %4482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4483 = call i32 @fileno(ptr noundef %4482) #12
  %4484 = call i32 @isatty(i32 noundef %4483) #12
  %.not1310 = icmp eq i32 %4484, 0
  br i1 %.not1310, label %4485, label %4486

4485:                                             ; preds = %4481, %4475
  br label %4486

4486:                                             ; preds = %4481, %4485
  %.str.5.sink3078 = phi ptr [ @.str.5, %4485 ], [ @.str.2, %4481 ]
  store i32 %4476, ptr %260, align 4, !tbaa !5
  %4487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4488 = load i32, ptr @test_count, align 4, !tbaa !5
  %4489 = load i32, ptr %206, align 4, !tbaa !5
  %4490 = call ptr @s2n_strerror(i32 noundef %4489, ptr noundef nonnull @.str.4) #12
  %4491 = load i32, ptr %206, align 4, !tbaa !5
  %4492 = call ptr @s2n_strerror_debug(i32 noundef %4491, ptr noundef nonnull @.str.4) #12
  %4493 = load i32, ptr %260, align 4, !tbaa !5
  %4494 = call ptr @strerror(i32 noundef %4493) #12
  %4495 = load i32, ptr %260, align 4, !tbaa !5
  %4496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4487, ptr noundef nonnull %.str.5.sink3078, i32 noundef %4488, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %4490, ptr noundef %4492, ptr noundef %4494, i32 noundef %4495) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4497:                                             ; preds = %4469
  %4498 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef nonnull %4388, ptr noundef nonnull %4472) #12
  %4499 = getelementptr inbounds i8, ptr %4165, i64 704
  %4500 = getelementptr inbounds i8, ptr %4138, i64 704
  %4501 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef nonnull %4499, ptr noundef nonnull %4500) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %24, i8 0, i64 24, i1 false)
  %4502 = load i32, ptr @test_count, align 4, !tbaa !5
  %4503 = add nsw i32 %4502, 1
  store i32 %4503, ptr @test_count, align 4, !tbaa !5
  %4504 = call i32 @s2n_ecc_evp_compute_shared_secret_from_params(ptr noundef nonnull %4388, ptr noundef nonnull %4499, ptr noundef nonnull %24) #12
  %4505 = icmp eq i32 %4504, -1
  br i1 %4505, label %4506, label %4528

4506:                                             ; preds = %4497
  %4507 = load i32, ptr %260, align 4, !tbaa !5
  %4508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4509 = call i32 @s2n_print_stacktrace(ptr noundef %4508) #12
  %4510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4511 = trunc nuw i8 %4510 to i1
  br i1 %4511, label %4512, label %4516

4512:                                             ; preds = %4506
  %4513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4514 = call i32 @fileno(ptr noundef %4513) #12
  %4515 = call i32 @isatty(i32 noundef %4514) #12
  %.not1550 = icmp eq i32 %4515, 0
  br i1 %.not1550, label %4516, label %4517

4516:                                             ; preds = %4512, %4506
  br label %4517

4517:                                             ; preds = %4512, %4516
  %.str.5.sink3087 = phi ptr [ @.str.5, %4516 ], [ @.str.2, %4512 ]
  store i32 %4507, ptr %260, align 4, !tbaa !5
  %4518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4519 = load i32, ptr @test_count, align 4, !tbaa !5
  %4520 = load i32, ptr %206, align 4, !tbaa !5
  %4521 = call ptr @s2n_strerror(i32 noundef %4520, ptr noundef nonnull @.str.4) #12
  %4522 = load i32, ptr %206, align 4, !tbaa !5
  %4523 = call ptr @s2n_strerror_debug(i32 noundef %4522, ptr noundef nonnull @.str.4) #12
  %4524 = load i32, ptr %260, align 4, !tbaa !5
  %4525 = call ptr @strerror(i32 noundef %4524) #12
  %4526 = load i32, ptr %260, align 4, !tbaa !5
  %4527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4518, ptr noundef nonnull %.str.5.sink3087, i32 noundef %4519, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 397, ptr noundef %4521, ptr noundef %4523, ptr noundef %4525, i32 noundef %4526) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4528:                                             ; preds = %4497
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %25, i8 0, i64 24, i1 false)
  %4529 = load i32, ptr @test_count, align 4, !tbaa !5
  %4530 = add nsw i32 %4529, 1
  store i32 %4530, ptr @test_count, align 4, !tbaa !5
  %4531 = call i32 @s2n_ecc_evp_compute_shared_secret_from_params(ptr noundef nonnull %4500, ptr noundef nonnull %4472, ptr noundef nonnull %25) #12
  %4532 = icmp eq i32 %4531, -1
  br i1 %4532, label %4533, label %4555

4533:                                             ; preds = %4528
  %4534 = load i32, ptr %260, align 4, !tbaa !5
  %4535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4536 = call i32 @s2n_print_stacktrace(ptr noundef %4535) #12
  %4537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4538 = trunc nuw i8 %4537 to i1
  br i1 %4538, label %4539, label %4543

4539:                                             ; preds = %4533
  %4540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4541 = call i32 @fileno(ptr noundef %4540) #12
  %4542 = call i32 @isatty(i32 noundef %4541) #12
  %.not1549 = icmp eq i32 %4542, 0
  br i1 %.not1549, label %4543, label %4544

4543:                                             ; preds = %4539, %4533
  br label %4544

4544:                                             ; preds = %4539, %4543
  %.str.5.sink3096 = phi ptr [ @.str.5, %4543 ], [ @.str.2, %4539 ]
  store i32 %4534, ptr %260, align 4, !tbaa !5
  %4545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4546 = load i32, ptr @test_count, align 4, !tbaa !5
  %4547 = load i32, ptr %206, align 4, !tbaa !5
  %4548 = call ptr @s2n_strerror(i32 noundef %4547, ptr noundef nonnull @.str.4) #12
  %4549 = load i32, ptr %206, align 4, !tbaa !5
  %4550 = call ptr @s2n_strerror_debug(i32 noundef %4549, ptr noundef nonnull @.str.4) #12
  %4551 = load i32, ptr %260, align 4, !tbaa !5
  %4552 = call ptr @strerror(i32 noundef %4551) #12
  %4553 = load i32, ptr %260, align 4, !tbaa !5
  %4554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4545, ptr noundef nonnull %.str.5.sink3096, i32 noundef %4546, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 404, ptr noundef %4548, ptr noundef %4550, ptr noundef %4552, i32 noundef %4553) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4555:                                             ; preds = %4528
  %4556 = load ptr, ptr %23, align 8, !tbaa !9
  %4557 = getelementptr inbounds i8, ptr %4556, i64 8
  %4558 = load ptr, ptr %4557, align 8, !tbaa !43
  %4559 = load ptr, ptr %4558, align 8, !tbaa !9
  %4560 = icmp eq ptr %4559, @s2n_ecc_curve_secp256r1
  %4561 = icmp eq ptr %4559, @s2n_ecc_curve_secp384r1
  %or.cond = or i1 %4560, %4561
  %4562 = load i32, ptr @test_count, align 4, !tbaa !5
  %4563 = add nsw i32 %4562, 1
  store i32 %4563, ptr @test_count, align 4, !tbaa !5
  %4564 = getelementptr inbounds i8, ptr %24, i64 8
  %4565 = load i32, ptr %4564, align 8, !tbaa !67
  br i1 %or.cond, label %4566, label %4597

4566:                                             ; preds = %4555
  %4567 = uitofp i32 %4565 to double
  %4568 = getelementptr inbounds i8, ptr %4559, i64 16
  %4569 = load i8, ptr %4568, align 8, !tbaa !46
  %4570 = zext i8 %4569 to i32
  %4571 = add nsw i32 %4570, -1
  %4572 = sitofp i32 %4571 to double
  %4573 = fmul double %4572, 5.000000e-01
  %4574 = fcmp oeq double %4573, %4567
  br i1 %4574, label %4624, label %4575

4575:                                             ; preds = %4566
  %4576 = load i32, ptr %260, align 4, !tbaa !5
  %4577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4578 = call i32 @s2n_print_stacktrace(ptr noundef %4577) #12
  %4579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4580 = trunc nuw i8 %4579 to i1
  br i1 %4580, label %4581, label %4585

4581:                                             ; preds = %4575
  %4582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4583 = call i32 @fileno(ptr noundef %4582) #12
  %4584 = call i32 @isatty(i32 noundef %4583) #12
  %.not1312 = icmp eq i32 %4584, 0
  br i1 %.not1312, label %4585, label %4586

4585:                                             ; preds = %4581, %4575
  br label %4586

4586:                                             ; preds = %4581, %4585
  %.str.5.sink3105 = phi ptr [ @.str.5, %4585 ], [ @.str.2, %4581 ]
  store i32 %4576, ptr %260, align 4, !tbaa !5
  %4587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4588 = load i32, ptr @test_count, align 4, !tbaa !5
  %4589 = load i32, ptr %206, align 4, !tbaa !5
  %4590 = call ptr @s2n_strerror(i32 noundef %4589, ptr noundef nonnull @.str.4) #12
  %4591 = load i32, ptr %206, align 4, !tbaa !5
  %4592 = call ptr @s2n_strerror_debug(i32 noundef %4591, ptr noundef nonnull @.str.4) #12
  %4593 = load i32, ptr %260, align 4, !tbaa !5
  %4594 = call ptr @strerror(i32 noundef %4593) #12
  %4595 = load i32, ptr %260, align 4, !tbaa !5
  %4596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4587, ptr noundef nonnull %.str.5.sink3105, i32 noundef %4588, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 410, ptr noundef %4590, ptr noundef %4592, ptr noundef %4594, i32 noundef %4595) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4597:                                             ; preds = %4555
  %4598 = getelementptr inbounds i8, ptr %4559, i64 16
  %4599 = load i8, ptr %4598, align 8, !tbaa !46
  %4600 = zext i8 %4599 to i32
  %4601 = icmp eq i32 %4565, %4600
  br i1 %4601, label %4624, label %4602

4602:                                             ; preds = %4597
  %4603 = load i32, ptr %260, align 4, !tbaa !5
  %4604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4605 = call i32 @s2n_print_stacktrace(ptr noundef %4604) #12
  %4606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4607 = trunc nuw i8 %4606 to i1
  br i1 %4607, label %4608, label %4612

4608:                                             ; preds = %4602
  %4609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4610 = call i32 @fileno(ptr noundef %4609) #12
  %4611 = call i32 @isatty(i32 noundef %4610) #12
  %.not1311 = icmp eq i32 %4611, 0
  br i1 %.not1311, label %4612, label %4613

4612:                                             ; preds = %4608, %4602
  br label %4613

4613:                                             ; preds = %4608, %4612
  %.str.5.sink3114 = phi ptr [ @.str.5, %4612 ], [ @.str.2, %4608 ]
  store i32 %4603, ptr %260, align 4, !tbaa !5
  %4614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4615 = load i32, ptr @test_count, align 4, !tbaa !5
  %4616 = load i32, ptr %206, align 4, !tbaa !5
  %4617 = call ptr @s2n_strerror(i32 noundef %4616, ptr noundef nonnull @.str.4) #12
  %4618 = load i32, ptr %206, align 4, !tbaa !5
  %4619 = call ptr @s2n_strerror_debug(i32 noundef %4618, ptr noundef nonnull @.str.4) #12
  %4620 = load i32, ptr %260, align 4, !tbaa !5
  %4621 = call ptr @strerror(i32 noundef %4620) #12
  %4622 = load i32, ptr %260, align 4, !tbaa !5
  %4623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4614, ptr noundef nonnull %.str.5.sink3114, i32 noundef %4615, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 412, ptr noundef %4617, ptr noundef %4619, ptr noundef %4621, i32 noundef %4622) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4624:                                             ; preds = %4597, %4566
  %4625 = add nsw i32 %4562, 2
  store i32 %4625, ptr @test_count, align 4, !tbaa !5
  %4626 = getelementptr inbounds i8, ptr %25, i64 8
  %4627 = load i32, ptr %4626, align 8, !tbaa !67
  %4628 = icmp eq i32 %4565, %4627
  br i1 %4628, label %4651, label %4629

4629:                                             ; preds = %4624
  %4630 = load i32, ptr %260, align 4, !tbaa !5
  %4631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4632 = call i32 @s2n_print_stacktrace(ptr noundef %4631) #12
  %4633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4634 = trunc nuw i8 %4633 to i1
  br i1 %4634, label %4635, label %4639

4635:                                             ; preds = %4629
  %4636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4637 = call i32 @fileno(ptr noundef %4636) #12
  %4638 = call i32 @isatty(i32 noundef %4637) #12
  %.not1313 = icmp eq i32 %4638, 0
  br i1 %.not1313, label %4639, label %4640

4639:                                             ; preds = %4635, %4629
  br label %4640

4640:                                             ; preds = %4635, %4639
  %.str.5.sink3123 = phi ptr [ @.str.5, %4639 ], [ @.str.2, %4635 ]
  store i32 %4630, ptr %260, align 4, !tbaa !5
  %4641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4642 = load i32, ptr @test_count, align 4, !tbaa !5
  %4643 = load i32, ptr %206, align 4, !tbaa !5
  %4644 = call ptr @s2n_strerror(i32 noundef %4643, ptr noundef nonnull @.str.4) #12
  %4645 = load i32, ptr %206, align 4, !tbaa !5
  %4646 = call ptr @s2n_strerror_debug(i32 noundef %4645, ptr noundef nonnull @.str.4) #12
  %4647 = load i32, ptr %260, align 4, !tbaa !5
  %4648 = call ptr @strerror(i32 noundef %4647) #12
  %4649 = load i32, ptr %260, align 4, !tbaa !5
  %4650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4641, ptr noundef nonnull %.str.5.sink3123, i32 noundef %4642, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 415, ptr noundef %4644, ptr noundef %4646, ptr noundef %4648, i32 noundef %4649) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4651:                                             ; preds = %4624
  %.not1314 = icmp eq i32 %4565, 0
  br i1 %.not1314, label %4680, label %4652

4652:                                             ; preds = %4651
  %4653 = add nsw i32 %4562, 3
  store i32 %4653, ptr @test_count, align 4, !tbaa !5
  %4654 = load ptr, ptr %24, align 8, !tbaa !68
  %4655 = load ptr, ptr %25, align 8, !tbaa !68
  %4656 = zext i32 %4565 to i64
  %bcmp = call i32 @bcmp(ptr %4654, ptr %4655, i64 %4656)
  %4657 = icmp eq i32 %bcmp, 0
  br i1 %4657, label %4680, label %4658

4658:                                             ; preds = %4652
  %4659 = load i32, ptr %260, align 4, !tbaa !5
  %4660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4661 = call i32 @s2n_print_stacktrace(ptr noundef %4660) #12
  %4662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4663 = trunc nuw i8 %4662 to i1
  br i1 %4663, label %4664, label %4668

4664:                                             ; preds = %4658
  %4665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4666 = call i32 @fileno(ptr noundef %4665) #12
  %4667 = call i32 @isatty(i32 noundef %4666) #12
  %.not1315 = icmp eq i32 %4667, 0
  br i1 %.not1315, label %4668, label %4669

4668:                                             ; preds = %4664, %4658
  br label %4669

4669:                                             ; preds = %4664, %4668
  %.str.5.sink3132 = phi ptr [ @.str.5, %4668 ], [ @.str.2, %4664 ]
  store i32 %4659, ptr %260, align 4, !tbaa !5
  %4670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4671 = load i32, ptr @test_count, align 4, !tbaa !5
  %4672 = load i32, ptr %206, align 4, !tbaa !5
  %4673 = call ptr @s2n_strerror(i32 noundef %4672, ptr noundef nonnull @.str.4) #12
  %4674 = load i32, ptr %206, align 4, !tbaa !5
  %4675 = call ptr @s2n_strerror_debug(i32 noundef %4674, ptr noundef nonnull @.str.4) #12
  %4676 = load i32, ptr %260, align 4, !tbaa !5
  %4677 = call ptr @strerror(i32 noundef %4676) #12
  %4678 = load i32, ptr %260, align 4, !tbaa !5
  %4679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4670, ptr noundef nonnull %.str.5.sink3132, i32 noundef %4671, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 415, ptr noundef %4673, ptr noundef %4675, ptr noundef %4677, i32 noundef %4678) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4680:                                             ; preds = %4651, %4652
  %4681 = phi i32 [ %4625, %4651 ], [ %4653, %4652 ]
  %4682 = add nsw i32 %4681, 1
  store i32 %4682, ptr @test_count, align 4, !tbaa !5
  %4683 = call i32 @s2n_free(ptr noundef nonnull %25) #12
  %4684 = icmp eq i32 %4683, -1
  br i1 %4684, label %4685, label %4707

4685:                                             ; preds = %4680
  %4686 = load i32, ptr %260, align 4, !tbaa !5
  %4687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4688 = call i32 @s2n_print_stacktrace(ptr noundef %4687) #12
  %4689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4690 = trunc nuw i8 %4689 to i1
  br i1 %4690, label %4691, label %4695

4691:                                             ; preds = %4685
  %4692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4693 = call i32 @fileno(ptr noundef %4692) #12
  %4694 = call i32 @isatty(i32 noundef %4693) #12
  %.not1548 = icmp eq i32 %4694, 0
  br i1 %.not1548, label %4695, label %4696

4695:                                             ; preds = %4691, %4685
  br label %4696

4696:                                             ; preds = %4691, %4695
  %.str.5.sink3141 = phi ptr [ @.str.5, %4695 ], [ @.str.2, %4691 ]
  store i32 %4686, ptr %260, align 4, !tbaa !5
  %4697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4698 = load i32, ptr @test_count, align 4, !tbaa !5
  %4699 = load i32, ptr %206, align 4, !tbaa !5
  %4700 = call ptr @s2n_strerror(i32 noundef %4699, ptr noundef nonnull @.str.4) #12
  %4701 = load i32, ptr %206, align 4, !tbaa !5
  %4702 = call ptr @s2n_strerror_debug(i32 noundef %4701, ptr noundef nonnull @.str.4) #12
  %4703 = load i32, ptr %260, align 4, !tbaa !5
  %4704 = call ptr @strerror(i32 noundef %4703) #12
  %4705 = load i32, ptr %260, align 4, !tbaa !5
  %4706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4697, ptr noundef nonnull %.str.5.sink3141, i32 noundef %4698, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 417, ptr noundef %4700, ptr noundef %4702, ptr noundef %4704, i32 noundef %4705) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4707:                                             ; preds = %4680
  %4708 = load i32, ptr @test_count, align 4, !tbaa !5
  %4709 = add nsw i32 %4708, 1
  store i32 %4709, ptr @test_count, align 4, !tbaa !5
  %4710 = call i32 @s2n_free(ptr noundef nonnull %24) #12
  %4711 = icmp eq i32 %4710, -1
  br i1 %4711, label %4712, label %4734

4712:                                             ; preds = %4707
  %4713 = load i32, ptr %260, align 4, !tbaa !5
  %4714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4715 = call i32 @s2n_print_stacktrace(ptr noundef %4714) #12
  %4716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4717 = trunc nuw i8 %4716 to i1
  br i1 %4717, label %4718, label %4722

4718:                                             ; preds = %4712
  %4719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4720 = call i32 @fileno(ptr noundef %4719) #12
  %4721 = call i32 @isatty(i32 noundef %4720) #12
  %.not1547 = icmp eq i32 %4721, 0
  br i1 %.not1547, label %4722, label %4723

4722:                                             ; preds = %4718, %4712
  br label %4723

4723:                                             ; preds = %4718, %4722
  %.str.5.sink3150 = phi ptr [ @.str.5, %4722 ], [ @.str.2, %4718 ]
  store i32 %4713, ptr %260, align 4, !tbaa !5
  %4724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4725 = load i32, ptr @test_count, align 4, !tbaa !5
  %4726 = load i32, ptr %206, align 4, !tbaa !5
  %4727 = call ptr @s2n_strerror(i32 noundef %4726, ptr noundef nonnull @.str.4) #12
  %4728 = load i32, ptr %206, align 4, !tbaa !5
  %4729 = call ptr @s2n_strerror_debug(i32 noundef %4728, ptr noundef nonnull @.str.4) #12
  %4730 = load i32, ptr %260, align 4, !tbaa !5
  %4731 = call ptr @strerror(i32 noundef %4730) #12
  %4732 = load i32, ptr %260, align 4, !tbaa !5
  %4733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4724, ptr noundef nonnull %.str.5.sink3150, i32 noundef %4725, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 418, ptr noundef %4727, ptr noundef %4729, ptr noundef %4731, i32 noundef %4732) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4734:                                             ; preds = %4707
  %4735 = load i32, ptr @test_count, align 4, !tbaa !5
  %4736 = add nsw i32 %4735, 1
  store i32 %4736, ptr @test_count, align 4, !tbaa !5
  %4737 = call i32 @s2n_stuffer_free(ptr noundef nonnull %22) #12
  %4738 = icmp eq i32 %4737, -1
  br i1 %4738, label %4739, label %4761

4739:                                             ; preds = %4734
  %4740 = load i32, ptr %260, align 4, !tbaa !5
  %4741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4742 = call i32 @s2n_print_stacktrace(ptr noundef %4741) #12
  %4743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4744 = trunc nuw i8 %4743 to i1
  br i1 %4744, label %4745, label %4749

4745:                                             ; preds = %4739
  %4746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4747 = call i32 @fileno(ptr noundef %4746) #12
  %4748 = call i32 @isatty(i32 noundef %4747) #12
  %.not1546 = icmp eq i32 %4748, 0
  br i1 %.not1546, label %4749, label %4750

4749:                                             ; preds = %4745, %4739
  br label %4750

4750:                                             ; preds = %4745, %4749
  %.str.5.sink3159 = phi ptr [ @.str.5, %4749 ], [ @.str.2, %4745 ]
  store i32 %4740, ptr %260, align 4, !tbaa !5
  %4751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4752 = load i32, ptr @test_count, align 4, !tbaa !5
  %4753 = load i32, ptr %206, align 4, !tbaa !5
  %4754 = call ptr @s2n_strerror(i32 noundef %4753, ptr noundef nonnull @.str.4) #12
  %4755 = load i32, ptr %206, align 4, !tbaa !5
  %4756 = call ptr @s2n_strerror_debug(i32 noundef %4755, ptr noundef nonnull @.str.4) #12
  %4757 = load i32, ptr %260, align 4, !tbaa !5
  %4758 = call ptr @strerror(i32 noundef %4757) #12
  %4759 = load i32, ptr %260, align 4, !tbaa !5
  %4760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4751, ptr noundef nonnull %.str.5.sink3159, i32 noundef %4752, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 421, ptr noundef %4754, ptr noundef %4756, ptr noundef %4758, i32 noundef %4759) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4761:                                             ; preds = %4734
  %4762 = load i32, ptr @test_count, align 4, !tbaa !5
  %4763 = add nsw i32 %4762, 1
  store i32 %4763, ptr @test_count, align 4, !tbaa !5
  %4764 = call i32 @s2n_connection_free(ptr noundef nonnull %4138) #12
  %4765 = icmp eq i32 %4764, -1
  br i1 %4765, label %4766, label %4788

4766:                                             ; preds = %4761
  %4767 = load i32, ptr %260, align 4, !tbaa !5
  %4768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4769 = call i32 @s2n_print_stacktrace(ptr noundef %4768) #12
  %4770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4771 = trunc nuw i8 %4770 to i1
  br i1 %4771, label %4772, label %4776

4772:                                             ; preds = %4766
  %4773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4774 = call i32 @fileno(ptr noundef %4773) #12
  %4775 = call i32 @isatty(i32 noundef %4774) #12
  %.not1545 = icmp eq i32 %4775, 0
  br i1 %.not1545, label %4776, label %4777

4776:                                             ; preds = %4772, %4766
  br label %4777

4777:                                             ; preds = %4772, %4776
  %.str.5.sink3168 = phi ptr [ @.str.5, %4776 ], [ @.str.2, %4772 ]
  store i32 %4767, ptr %260, align 4, !tbaa !5
  %4778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4779 = load i32, ptr @test_count, align 4, !tbaa !5
  %4780 = load i32, ptr %206, align 4, !tbaa !5
  %4781 = call ptr @s2n_strerror(i32 noundef %4780, ptr noundef nonnull @.str.4) #12
  %4782 = load i32, ptr %206, align 4, !tbaa !5
  %4783 = call ptr @s2n_strerror_debug(i32 noundef %4782, ptr noundef nonnull @.str.4) #12
  %4784 = load i32, ptr %260, align 4, !tbaa !5
  %4785 = call ptr @strerror(i32 noundef %4784) #12
  %4786 = load i32, ptr %260, align 4, !tbaa !5
  %4787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4778, ptr noundef nonnull %.str.5.sink3168, i32 noundef %4779, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 422, ptr noundef %4781, ptr noundef %4783, ptr noundef %4785, i32 noundef %4786) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4788:                                             ; preds = %4761
  %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 = call i32 @s2n_connection_free(ptr noundef nonnull %4165) #12
  %4792 = icmp eq i32 %4791, -1
  br i1 %4792, label %4793, label %4815

4793:                                             ; preds = %4788
  %4794 = load i32, ptr %260, align 4, !tbaa !5
  %4795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4796 = call i32 @s2n_print_stacktrace(ptr noundef %4795) #12
  %4797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4798 = trunc nuw i8 %4797 to i1
  br i1 %4798, label %4799, label %4803

4799:                                             ; preds = %4793
  %4800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4801 = call i32 @fileno(ptr noundef %4800) #12
  %4802 = call i32 @isatty(i32 noundef %4801) #12
  %.not1544 = icmp eq i32 %4802, 0
  br i1 %.not1544, label %4803, label %4804

4803:                                             ; preds = %4799, %4793
  br label %4804

4804:                                             ; preds = %4799, %4803
  %.str.5.sink3177 = phi ptr [ @.str.5, %4803 ], [ @.str.2, %4799 ]
  store i32 %4794, ptr %260, align 4, !tbaa !5
  %4805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4806 = load i32, ptr @test_count, align 4, !tbaa !5
  %4807 = load i32, ptr %206, align 4, !tbaa !5
  %4808 = call ptr @s2n_strerror(i32 noundef %4807, ptr noundef nonnull @.str.4) #12
  %4809 = load i32, ptr %206, align 4, !tbaa !5
  %4810 = call ptr @s2n_strerror_debug(i32 noundef %4809, ptr noundef nonnull @.str.4) #12
  %4811 = load i32, ptr %260, align 4, !tbaa !5
  %4812 = call ptr @strerror(i32 noundef %4811) #12
  %4813 = load i32, ptr %260, align 4, !tbaa !5
  %4814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4805, ptr noundef nonnull %.str.5.sink3177, i32 noundef %4806, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 423, ptr noundef %4808, ptr noundef %4810, ptr noundef %4812, i32 noundef %4813) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4815:                                             ; preds = %4788
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #12
  %4816 = call i32 (...) @s2n_is_evp_apis_supported() #12
  %.not1316 = icmp eq i32 %4816, 0
  br i1 %.not1316, label %5008, label %4817

4817:                                             ; preds = %4815
  %4818 = load i32, ptr @test_count, align 4, !tbaa !5
  %4819 = add nsw i32 %4818, 1
  store i32 %4819, ptr @test_count, align 4, !tbaa !5
  %4820 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %4821 = icmp eq ptr %4820, null
  br i1 %4821, label %4822, label %4844

4822:                                             ; preds = %4817
  %4823 = load i32, ptr %260, align 4, !tbaa !5
  %4824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4825 = call i32 @s2n_print_stacktrace(ptr noundef %4824) #12
  %4826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4827 = trunc nuw i8 %4826 to i1
  br i1 %4827, label %4828, label %4832

4828:                                             ; preds = %4822
  %4829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4830 = call i32 @fileno(ptr noundef %4829) #12
  %4831 = call i32 @isatty(i32 noundef %4830) #12
  %.not1543 = icmp eq i32 %4831, 0
  br i1 %.not1543, label %4832, label %4833

4832:                                             ; preds = %4828, %4822
  br label %4833

4833:                                             ; preds = %4828, %4832
  %.str.5.sink3186 = phi ptr [ @.str.5, %4832 ], [ @.str.2, %4828 ]
  store i32 %4823, ptr %260, align 4, !tbaa !5
  %4834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4835 = load i32, ptr @test_count, align 4, !tbaa !5
  %4836 = load i32, ptr %206, align 4, !tbaa !5
  %4837 = call ptr @s2n_strerror(i32 noundef %4836, ptr noundef nonnull @.str.4) #12
  %4838 = load i32, ptr %206, align 4, !tbaa !5
  %4839 = call ptr @s2n_strerror_debug(i32 noundef %4838, ptr noundef nonnull @.str.4) #12
  %4840 = load i32, ptr %260, align 4, !tbaa !5
  %4841 = call ptr @strerror(i32 noundef %4840) #12
  %4842 = load i32, ptr %260, align 4, !tbaa !5
  %4843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4834, ptr noundef nonnull %.str.5.sink3186, i32 noundef %4835, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 429, ptr noundef %4837, ptr noundef %4839, ptr noundef %4841, i32 noundef %4842) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4844:                                             ; preds = %4817
  %4845 = load i32, ptr @test_count, align 4, !tbaa !5
  %4846 = add nsw i32 %4845, 1
  store i32 %4846, ptr @test_count, align 4, !tbaa !5
  %4847 = getelementptr inbounds i8, ptr %4820, i64 8
  %4848 = load ptr, ptr %4847, align 8, !tbaa !69
  %4849 = icmp eq ptr %4848, null
  br i1 %4849, label %4850, label %4872

4850:                                             ; preds = %4844
  %4851 = load i32, ptr %260, align 4, !tbaa !5
  %4852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4853 = call i32 @s2n_print_stacktrace(ptr noundef %4852) #12
  %4854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4855 = trunc nuw i8 %4854 to i1
  br i1 %4855, label %4856, label %4860

4856:                                             ; preds = %4850
  %4857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4858 = call i32 @fileno(ptr noundef %4857) #12
  %4859 = call i32 @isatty(i32 noundef %4858) #12
  %.not1542 = icmp eq i32 %4859, 0
  br i1 %.not1542, label %4860, label %4861

4860:                                             ; preds = %4856, %4850
  br label %4861

4861:                                             ; preds = %4856, %4860
  %.str.5.sink3195 = phi ptr [ @.str.5, %4860 ], [ @.str.2, %4856 ]
  store i32 %4851, ptr %260, align 4, !tbaa !5
  %4862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4863 = load i32, ptr @test_count, align 4, !tbaa !5
  %4864 = load i32, ptr %206, align 4, !tbaa !5
  %4865 = call ptr @s2n_strerror(i32 noundef %4864, ptr noundef nonnull @.str.4) #12
  %4866 = load i32, ptr %206, align 4, !tbaa !5
  %4867 = call ptr @s2n_strerror_debug(i32 noundef %4866, ptr noundef nonnull @.str.4) #12
  %4868 = load i32, ptr %260, align 4, !tbaa !5
  %4869 = call ptr @strerror(i32 noundef %4868) #12
  %4870 = load i32, ptr %260, align 4, !tbaa !5
  %4871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4862, ptr noundef nonnull %.str.5.sink3195, i32 noundef %4863, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 430, ptr noundef %4865, ptr noundef %4867, ptr noundef %4869, i32 noundef %4870) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4872:                                             ; preds = %4844
  %4873 = add nsw i32 %4845, 2
  store i32 %4873, ptr @test_count, align 4, !tbaa !5
  %4874 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %4848, ptr noundef nonnull @.str.99) #12
  %4875 = icmp eq i32 %4874, -1
  br i1 %4875, label %4876, label %4898

4876:                                             ; preds = %4872
  %4877 = load i32, ptr %260, align 4, !tbaa !5
  %4878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4879 = call i32 @s2n_print_stacktrace(ptr noundef %4878) #12
  %4880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4881 = trunc nuw i8 %4880 to i1
  br i1 %4881, label %4882, label %4886

4882:                                             ; preds = %4876
  %4883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4884 = call i32 @fileno(ptr noundef %4883) #12
  %4885 = call i32 @isatty(i32 noundef %4884) #12
  %.not1541 = icmp eq i32 %4885, 0
  br i1 %.not1541, label %4886, label %4887

4886:                                             ; preds = %4882, %4876
  br label %4887

4887:                                             ; preds = %4882, %4886
  %.str.5.sink3204 = phi ptr [ @.str.5, %4886 ], [ @.str.2, %4882 ]
  store i32 %4877, ptr %260, align 4, !tbaa !5
  %4888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4889 = load i32, ptr @test_count, align 4, !tbaa !5
  %4890 = load i32, ptr %206, align 4, !tbaa !5
  %4891 = call ptr @s2n_strerror(i32 noundef %4890, ptr noundef nonnull @.str.4) #12
  %4892 = load i32, ptr %206, align 4, !tbaa !5
  %4893 = call ptr @s2n_strerror_debug(i32 noundef %4892, ptr noundef nonnull @.str.4) #12
  %4894 = load i32, ptr %260, align 4, !tbaa !5
  %4895 = call ptr @strerror(i32 noundef %4894) #12
  %4896 = load i32, ptr %260, align 4, !tbaa !5
  %4897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4888, ptr noundef nonnull %.str.5.sink3204, i32 noundef %4889, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 434, ptr noundef %4891, ptr noundef %4893, ptr noundef %4895, i32 noundef %4896) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4898:                                             ; preds = %4872
  %4899 = getelementptr inbounds i8, ptr %4820, i64 656
  store ptr @s2n_ecc_curve_x25519, ptr %4899, align 8, !tbaa !42
  %4900 = getelementptr inbounds i8, ptr %4820, i64 704
  store ptr @s2n_ecc_curve_x25519, ptr %4900, align 8, !tbaa !45
  %4901 = load i32, ptr @test_count, align 4, !tbaa !5
  %4902 = add nsw i32 %4901, 1
  store i32 %4902, ptr @test_count, align 4, !tbaa !5
  %4903 = getelementptr inbounds i8, ptr %4820, i64 2016
  %4904 = call i32 %2026(ptr noundef nonnull %4820, ptr noundef nonnull %4903) #12
  %4905 = icmp eq i32 %4904, -1
  br i1 %4905, label %4928, label %4906

4906:                                             ; preds = %4898
  %4907 = load i32, ptr %260, align 4, !tbaa !5
  %4908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4909 = call i32 @s2n_print_stacktrace(ptr noundef %4908) #12
  %4910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4911 = trunc nuw i8 %4910 to i1
  br i1 %4911, label %4912, label %4916

4912:                                             ; preds = %4906
  %4913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4914 = call i32 @fileno(ptr noundef %4913) #12
  %4915 = call i32 @isatty(i32 noundef %4914) #12
  %.not1317 = icmp eq i32 %4915, 0
  br i1 %.not1317, label %4916, label %4917

4916:                                             ; preds = %4912, %4906
  br label %4917

4917:                                             ; preds = %4912, %4916
  %.str.5.sink3213 = phi ptr [ @.str.5, %4916 ], [ @.str.2, %4912 ]
  store i32 %4907, ptr %260, align 4, !tbaa !5
  %4918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4919 = load i32, ptr @test_count, align 4, !tbaa !5
  %4920 = load i32, ptr %206, align 4, !tbaa !5
  %4921 = call ptr @s2n_strerror(i32 noundef %4920, ptr noundef nonnull @.str.4) #12
  %4922 = load i32, ptr %206, align 4, !tbaa !5
  %4923 = call ptr @s2n_strerror_debug(i32 noundef %4922, ptr noundef nonnull @.str.4) #12
  %4924 = load i32, ptr %260, align 4, !tbaa !5
  %4925 = call ptr @strerror(i32 noundef %4924) #12
  %4926 = load i32, ptr %260, align 4, !tbaa !5
  %4927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4918, ptr noundef nonnull %.str.5.sink3213, i32 noundef %4919, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 438, ptr noundef %4921, ptr noundef %4923, ptr noundef %4925, i32 noundef %4926) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4928:                                             ; preds = %4898
  %4929 = load i32, ptr @test_count, align 4, !tbaa !5
  %4930 = add nsw i32 %4929, 1
  store i32 %4930, ptr @test_count, align 4, !tbaa !5
  %4931 = load i32, ptr %206, align 4, !tbaa !5
  %4932 = icmp eq i32 %4931, 0
  br i1 %4932, label %4933, label %4955

4933:                                             ; preds = %4928
  %4934 = load i32, ptr %260, align 4, !tbaa !5
  %4935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4936 = call i32 @s2n_print_stacktrace(ptr noundef %4935) #12
  %4937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4938 = trunc nuw i8 %4937 to i1
  br i1 %4938, label %4939, label %4943

4939:                                             ; preds = %4933
  %4940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4941 = call i32 @fileno(ptr noundef %4940) #12
  %4942 = call i32 @isatty(i32 noundef %4941) #12
  %.not1540 = icmp eq i32 %4942, 0
  br i1 %.not1540, label %4943, label %4944

4943:                                             ; preds = %4939, %4933
  br label %4944

4944:                                             ; preds = %4939, %4943
  %.str.5.sink3222 = phi ptr [ @.str.5, %4943 ], [ @.str.2, %4939 ]
  store i32 %4934, ptr %260, align 4, !tbaa !5
  %4945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4946 = load i32, ptr @test_count, align 4, !tbaa !5
  %4947 = load i32, ptr %206, align 4, !tbaa !5
  %4948 = call ptr @s2n_strerror(i32 noundef %4947, ptr noundef nonnull @.str.4) #12
  %4949 = load i32, ptr %206, align 4, !tbaa !5
  %4950 = call ptr @s2n_strerror_debug(i32 noundef %4949, ptr noundef nonnull @.str.4) #12
  %4951 = load i32, ptr %260, align 4, !tbaa !5
  %4952 = call ptr @strerror(i32 noundef %4951) #12
  %4953 = load i32, ptr %260, align 4, !tbaa !5
  %4954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4945, ptr noundef nonnull %.str.5.sink3222, i32 noundef %4946, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 438, ptr noundef %4948, ptr noundef %4950, ptr noundef %4952, i32 noundef %4953) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4955:                                             ; preds = %4928
  %4956 = add nsw i32 %4929, 2
  store i32 %4956, ptr @test_count, align 4, !tbaa !5
  %4957 = call ptr @s2n_strerror_debug(i32 noundef %4931, ptr noundef nonnull @.str.4) #12
  %4958 = icmp eq ptr %4957, null
  br i1 %4958, label %4959, label %4981

4959:                                             ; preds = %4955
  %4960 = load i32, ptr %260, align 4, !tbaa !5
  %4961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4962 = call i32 @s2n_print_stacktrace(ptr noundef %4961) #12
  %4963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4964 = trunc nuw i8 %4963 to i1
  br i1 %4964, label %4965, label %4969

4965:                                             ; preds = %4959
  %4966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4967 = call i32 @fileno(ptr noundef %4966) #12
  %4968 = call i32 @isatty(i32 noundef %4967) #12
  %.not1539 = icmp eq i32 %4968, 0
  br i1 %.not1539, label %4969, label %4970

4969:                                             ; preds = %4965, %4959
  br label %4970

4970:                                             ; preds = %4965, %4969
  %.str.5.sink3231 = phi ptr [ @.str.5, %4969 ], [ @.str.2, %4965 ]
  store i32 %4960, ptr %260, align 4, !tbaa !5
  %4971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4972 = load i32, ptr @test_count, align 4, !tbaa !5
  %4973 = load i32, ptr %206, align 4, !tbaa !5
  %4974 = call ptr @s2n_strerror(i32 noundef %4973, ptr noundef nonnull @.str.4) #12
  %4975 = load i32, ptr %206, align 4, !tbaa !5
  %4976 = call ptr @s2n_strerror_debug(i32 noundef %4975, ptr noundef nonnull @.str.4) #12
  %4977 = load i32, ptr %260, align 4, !tbaa !5
  %4978 = call ptr @strerror(i32 noundef %4977) #12
  %4979 = load i32, ptr %260, align 4, !tbaa !5
  %4980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4971, ptr noundef nonnull %.str.5.sink3231, i32 noundef %4972, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 438, ptr noundef %4974, ptr noundef %4976, ptr noundef %4978, i32 noundef %4979) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4981:                                             ; preds = %4955
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %4982 = load i32, ptr @test_count, align 4, !tbaa !5
  %4983 = add nsw i32 %4982, 1
  store i32 %4983, ptr @test_count, align 4, !tbaa !5
  %4984 = call i32 @s2n_connection_free(ptr noundef nonnull %4820) #12
  %4985 = icmp eq i32 %4984, -1
  br i1 %4985, label %4986, label %5008

4986:                                             ; preds = %4981
  %4987 = load i32, ptr %260, align 4, !tbaa !5
  %4988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4989 = call i32 @s2n_print_stacktrace(ptr noundef %4988) #12
  %4990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4991 = trunc nuw i8 %4990 to i1
  br i1 %4991, label %4992, label %4996

4992:                                             ; preds = %4986
  %4993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4994 = call i32 @fileno(ptr noundef %4993) #12
  %4995 = call i32 @isatty(i32 noundef %4994) #12
  %.not1538 = icmp eq i32 %4995, 0
  br i1 %.not1538, label %4996, label %4997

4996:                                             ; preds = %4992, %4986
  br label %4997

4997:                                             ; preds = %4992, %4996
  %.str.5.sink3240 = phi ptr [ @.str.5, %4996 ], [ @.str.2, %4992 ]
  store i32 %4987, ptr %260, align 4, !tbaa !5
  %4998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4999 = load i32, ptr @test_count, align 4, !tbaa !5
  %5000 = load i32, ptr %206, align 4, !tbaa !5
  %5001 = call ptr @s2n_strerror(i32 noundef %5000, ptr noundef nonnull @.str.4) #12
  %5002 = load i32, ptr %206, align 4, !tbaa !5
  %5003 = call ptr @s2n_strerror_debug(i32 noundef %5002, ptr noundef nonnull @.str.4) #12
  %5004 = load i32, ptr %260, align 4, !tbaa !5
  %5005 = call ptr @strerror(i32 noundef %5004) #12
  %5006 = load i32, ptr %260, align 4, !tbaa !5
  %5007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4998, ptr noundef nonnull %.str.5.sink3240, i32 noundef %4999, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 440, ptr noundef %5001, ptr noundef %5003, ptr noundef %5005, i32 noundef %5006) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5008:                                             ; preds = %4981, %4815
  %5009 = call i32 (...) @s2n_is_evp_apis_supported() #12
  %.not1318 = icmp eq i32 %5009, 0
  br i1 %.not1318, label %5202, label %5010

5010:                                             ; preds = %5008
  %5011 = load i32, ptr @test_count, align 4, !tbaa !5
  %5012 = add nsw i32 %5011, 1
  store i32 %5012, ptr @test_count, align 4, !tbaa !5
  %5013 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %5014 = icmp eq ptr %5013, null
  br i1 %5014, label %5015, label %5037

5015:                                             ; preds = %5010
  %5016 = load i32, ptr %260, align 4, !tbaa !5
  %5017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5018 = call i32 @s2n_print_stacktrace(ptr noundef %5017) #12
  %5019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5020 = trunc nuw i8 %5019 to i1
  br i1 %5020, label %5021, label %5025

5021:                                             ; preds = %5015
  %5022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5023 = call i32 @fileno(ptr noundef %5022) #12
  %5024 = call i32 @isatty(i32 noundef %5023) #12
  %.not1537 = icmp eq i32 %5024, 0
  br i1 %.not1537, label %5025, label %5026

5025:                                             ; preds = %5021, %5015
  br label %5026

5026:                                             ; preds = %5021, %5025
  %.str.5.sink3249 = phi ptr [ @.str.5, %5025 ], [ @.str.2, %5021 ]
  store i32 %5016, ptr %260, align 4, !tbaa !5
  %5027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5028 = load i32, ptr @test_count, align 4, !tbaa !5
  %5029 = load i32, ptr %206, align 4, !tbaa !5
  %5030 = call ptr @s2n_strerror(i32 noundef %5029, ptr noundef nonnull @.str.4) #12
  %5031 = load i32, ptr %206, align 4, !tbaa !5
  %5032 = call ptr @s2n_strerror_debug(i32 noundef %5031, ptr noundef nonnull @.str.4) #12
  %5033 = load i32, ptr %260, align 4, !tbaa !5
  %5034 = call ptr @strerror(i32 noundef %5033) #12
  %5035 = load i32, ptr %260, align 4, !tbaa !5
  %5036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5027, ptr noundef nonnull %.str.5.sink3249, i32 noundef %5028, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %5030, ptr noundef %5032, ptr noundef %5034, i32 noundef %5035) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5037:                                             ; preds = %5010
  %5038 = getelementptr inbounds i8, ptr %5013, i64 2016
  %5039 = load i32, ptr @test_count, align 4, !tbaa !5
  %5040 = add nsw i32 %5039, 1
  store i32 %5040, ptr @test_count, align 4, !tbaa !5
  %5041 = getelementptr inbounds i8, ptr %5013, i64 8
  %5042 = load ptr, ptr %5041, align 8, !tbaa !69
  %5043 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %5042, ptr noundef nonnull @.str.99) #12
  %5044 = icmp eq i32 %5043, -1
  br i1 %5044, label %5045, label %5067

5045:                                             ; preds = %5037
  %5046 = load i32, ptr %260, align 4, !tbaa !5
  %5047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5048 = call i32 @s2n_print_stacktrace(ptr noundef %5047) #12
  %5049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5050 = trunc nuw i8 %5049 to i1
  br i1 %5050, label %5051, label %5055

5051:                                             ; preds = %5045
  %5052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5053 = call i32 @fileno(ptr noundef %5052) #12
  %5054 = call i32 @isatty(i32 noundef %5053) #12
  %.not1536 = icmp eq i32 %5054, 0
  br i1 %.not1536, label %5055, label %5056

5055:                                             ; preds = %5051, %5045
  br label %5056

5056:                                             ; preds = %5051, %5055
  %.str.5.sink3258 = phi ptr [ @.str.5, %5055 ], [ @.str.2, %5051 ]
  store i32 %5046, ptr %260, align 4, !tbaa !5
  %5057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5058 = load i32, ptr @test_count, align 4, !tbaa !5
  %5059 = load i32, ptr %206, align 4, !tbaa !5
  %5060 = call ptr @s2n_strerror(i32 noundef %5059, ptr noundef nonnull @.str.4) #12
  %5061 = load i32, ptr %206, align 4, !tbaa !5
  %5062 = call ptr @s2n_strerror_debug(i32 noundef %5061, ptr noundef nonnull @.str.4) #12
  %5063 = load i32, ptr %260, align 4, !tbaa !5
  %5064 = call ptr @strerror(i32 noundef %5063) #12
  %5065 = load i32, ptr %260, align 4, !tbaa !5
  %5066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5057, ptr noundef nonnull %.str.5.sink3258, i32 noundef %5058, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 451, ptr noundef %5060, ptr noundef %5062, ptr noundef %5064, i32 noundef %5065) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5067:                                             ; preds = %5037
  %5068 = load i32, ptr @test_count, align 4, !tbaa !5
  %5069 = add nsw i32 %5068, 1
  store i32 %5069, ptr @test_count, align 4, !tbaa !5
  %5070 = load i16, ptr @s2n_ecc_curve_x25519, align 8, !tbaa !53
  %5071 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %5038, i16 noundef zeroext %5070) #12
  %5072 = icmp eq i32 %5071, -1
  br i1 %5072, label %5073, label %5095

5073:                                             ; preds = %5067
  %5074 = load i32, ptr %260, align 4, !tbaa !5
  %5075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5076 = call i32 @s2n_print_stacktrace(ptr noundef %5075) #12
  %5077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5078 = trunc nuw i8 %5077 to i1
  br i1 %5078, label %5079, label %5083

5079:                                             ; preds = %5073
  %5080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5081 = call i32 @fileno(ptr noundef %5080) #12
  %5082 = call i32 @isatty(i32 noundef %5081) #12
  %.not1535 = icmp eq i32 %5082, 0
  br i1 %.not1535, label %5083, label %5084

5083:                                             ; preds = %5079, %5073
  br label %5084

5084:                                             ; preds = %5079, %5083
  %.str.5.sink3267 = phi ptr [ @.str.5, %5083 ], [ @.str.2, %5079 ]
  store i32 %5074, ptr %260, align 4, !tbaa !5
  %5085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5086 = load i32, ptr @test_count, align 4, !tbaa !5
  %5087 = load i32, ptr %206, align 4, !tbaa !5
  %5088 = call ptr @s2n_strerror(i32 noundef %5087, ptr noundef nonnull @.str.4) #12
  %5089 = load i32, ptr %206, align 4, !tbaa !5
  %5090 = call ptr @s2n_strerror_debug(i32 noundef %5089, ptr noundef nonnull @.str.4) #12
  %5091 = load i32, ptr %260, align 4, !tbaa !5
  %5092 = call ptr @strerror(i32 noundef %5091) #12
  %5093 = load i32, ptr %260, align 4, !tbaa !5
  %5094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5085, ptr noundef nonnull %.str.5.sink3267, i32 noundef %5086, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %5088, ptr noundef %5090, ptr noundef %5092, i32 noundef %5093) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5095:                                             ; preds = %5067
  %5096 = load i32, ptr @test_count, align 4, !tbaa !5
  %5097 = add nsw i32 %5096, 1
  store i32 %5097, ptr @test_count, align 4, !tbaa !5
  %5098 = call i32 %2349(ptr noundef nonnull %5013, ptr noundef nonnull %5038) #12
  %5099 = icmp eq i32 %5098, -1
  br i1 %5099, label %5122, label %5100

5100:                                             ; preds = %5095
  %5101 = load i32, ptr %260, align 4, !tbaa !5
  %5102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5103 = call i32 @s2n_print_stacktrace(ptr noundef %5102) #12
  %5104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5105 = trunc nuw i8 %5104 to i1
  br i1 %5105, label %5106, label %5110

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

5110:                                             ; preds = %5106, %5100
  br label %5111

5111:                                             ; preds = %5106, %5110
  %.str.5.sink3276 = phi ptr [ @.str.5, %5110 ], [ @.str.2, %5106 ]
  store i32 %5101, ptr %260, align 4, !tbaa !5
  %5112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5113 = load i32, ptr @test_count, align 4, !tbaa !5
  %5114 = load i32, ptr %206, align 4, !tbaa !5
  %5115 = call ptr @s2n_strerror(i32 noundef %5114, ptr noundef nonnull @.str.4) #12
  %5116 = load i32, ptr %206, align 4, !tbaa !5
  %5117 = call ptr @s2n_strerror_debug(i32 noundef %5116, ptr noundef nonnull @.str.4) #12
  %5118 = load i32, ptr %260, align 4, !tbaa !5
  %5119 = call ptr @strerror(i32 noundef %5118) #12
  %5120 = load i32, ptr %260, align 4, !tbaa !5
  %5121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5112, ptr noundef nonnull %.str.5.sink3276, i32 noundef %5113, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %5115, ptr noundef %5117, ptr noundef %5119, i32 noundef %5120) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5122:                                             ; preds = %5095
  %5123 = load i32, ptr @test_count, align 4, !tbaa !5
  %5124 = add nsw i32 %5123, 1
  store i32 %5124, ptr @test_count, align 4, !tbaa !5
  %5125 = load i32, ptr %206, align 4, !tbaa !5
  %5126 = icmp eq i32 %5125, 335544356
  br i1 %5126, label %5149, label %5127

5127:                                             ; preds = %5122
  %5128 = load i32, ptr %260, align 4, !tbaa !5
  %5129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5130 = call i32 @s2n_print_stacktrace(ptr noundef %5129) #12
  %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) #12
  %5136 = call i32 @isatty(i32 noundef %5135) #12
  %.not1320 = icmp eq i32 %5136, 0
  br i1 %.not1320, label %5137, label %5138

5137:                                             ; preds = %5133, %5127
  br label %5138

5138:                                             ; preds = %5133, %5137
  %.str.5.sink3285 = phi ptr [ @.str.5, %5137 ], [ @.str.2, %5133 ]
  store i32 %5128, ptr %260, 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 %206, align 4, !tbaa !5
  %5142 = call ptr @s2n_strerror(i32 noundef %5141, ptr noundef nonnull @.str.4) #12
  %5143 = load i32, ptr %206, align 4, !tbaa !5
  %5144 = call ptr @s2n_strerror_debug(i32 noundef %5143, ptr noundef nonnull @.str.4) #12
  %5145 = load i32, ptr %260, align 4, !tbaa !5
  %5146 = call ptr @strerror(i32 noundef %5145) #12
  %5147 = load i32, ptr %260, align 4, !tbaa !5
  %5148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5139, ptr noundef nonnull %.str.5.sink3285, i32 noundef %5140, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %5142, ptr noundef %5144, ptr noundef %5146, i32 noundef %5147) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5149:                                             ; preds = %5122
  %5150 = add nsw i32 %5123, 2
  store i32 %5150, ptr @test_count, align 4, !tbaa !5
  %5151 = call ptr @s2n_strerror_debug(i32 noundef 335544356, ptr noundef nonnull @.str.4) #12
  %5152 = icmp eq ptr %5151, null
  br i1 %5152, label %5153, label %5175

5153:                                             ; preds = %5149
  %5154 = load i32, ptr %260, align 4, !tbaa !5
  %5155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5156 = call i32 @s2n_print_stacktrace(ptr noundef %5155) #12
  %5157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5158 = trunc nuw i8 %5157 to i1
  br i1 %5158, label %5159, label %5163

5159:                                             ; preds = %5153
  %5160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5161 = call i32 @fileno(ptr noundef %5160) #12
  %5162 = call i32 @isatty(i32 noundef %5161) #12
  %.not1534 = icmp eq i32 %5162, 0
  br i1 %.not1534, label %5163, label %5164

5163:                                             ; preds = %5159, %5153
  br label %5164

5164:                                             ; preds = %5159, %5163
  %.str.5.sink3294 = phi ptr [ @.str.5, %5163 ], [ @.str.2, %5159 ]
  store i32 %5154, ptr %260, align 4, !tbaa !5
  %5165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5166 = load i32, ptr @test_count, align 4, !tbaa !5
  %5167 = load i32, ptr %206, align 4, !tbaa !5
  %5168 = call ptr @s2n_strerror(i32 noundef %5167, ptr noundef nonnull @.str.4) #12
  %5169 = load i32, ptr %206, align 4, !tbaa !5
  %5170 = call ptr @s2n_strerror_debug(i32 noundef %5169, ptr noundef nonnull @.str.4) #12
  %5171 = load i32, ptr %260, align 4, !tbaa !5
  %5172 = call ptr @strerror(i32 noundef %5171) #12
  %5173 = load i32, ptr %260, align 4, !tbaa !5
  %5174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5165, ptr noundef nonnull %.str.5.sink3294, i32 noundef %5166, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %5168, ptr noundef %5170, ptr noundef %5172, i32 noundef %5173) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5175:                                             ; preds = %5149
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %5176 = load i32, ptr @test_count, align 4, !tbaa !5
  %5177 = add nsw i32 %5176, 1
  store i32 %5177, ptr @test_count, align 4, !tbaa !5
  %5178 = call i32 @s2n_connection_free(ptr noundef nonnull %5013) #12
  %5179 = icmp eq i32 %5178, -1
  br i1 %5179, label %5180, label %5202

5180:                                             ; preds = %5175
  %5181 = load i32, ptr %260, align 4, !tbaa !5
  %5182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5183 = call i32 @s2n_print_stacktrace(ptr noundef %5182) #12
  %5184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5185 = trunc nuw i8 %5184 to i1
  br i1 %5185, label %5186, label %5190

5186:                                             ; preds = %5180
  %5187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5188 = call i32 @fileno(ptr noundef %5187) #12
  %5189 = call i32 @isatty(i32 noundef %5188) #12
  %.not1533 = icmp eq i32 %5189, 0
  br i1 %.not1533, label %5190, label %5191

5190:                                             ; preds = %5186, %5180
  br label %5191

5191:                                             ; preds = %5186, %5190
  %.str.5.sink3303 = phi ptr [ @.str.5, %5190 ], [ @.str.2, %5186 ]
  store i32 %5181, ptr %260, align 4, !tbaa !5
  %5192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5193 = load i32, ptr @test_count, align 4, !tbaa !5
  %5194 = load i32, ptr %206, align 4, !tbaa !5
  %5195 = call ptr @s2n_strerror(i32 noundef %5194, ptr noundef nonnull @.str.4) #12
  %5196 = load i32, ptr %206, align 4, !tbaa !5
  %5197 = call ptr @s2n_strerror_debug(i32 noundef %5196, ptr noundef nonnull @.str.4) #12
  %5198 = load i32, ptr %260, align 4, !tbaa !5
  %5199 = call ptr @strerror(i32 noundef %5198) #12
  %5200 = load i32, ptr %260, align 4, !tbaa !5
  %5201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5192, ptr noundef nonnull %.str.5.sink3303, i32 noundef %5193, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 459, ptr noundef %5195, ptr noundef %5197, ptr noundef %5199, i32 noundef %5200) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5202:                                             ; preds = %5175, %5008
  %5203 = load i32, ptr @test_count, align 4, !tbaa !5
  %5204 = add nsw i32 %5203, 1
  store i32 %5204, ptr @test_count, align 4, !tbaa !5
  %5205 = call i32 (...) @s2n_enable_tls13_in_test() #12
  %5206 = icmp eq i32 %5205, -1
  br i1 %5206, label %5207, label %5229

5207:                                             ; preds = %5202
  %5208 = load i32, ptr %260, align 4, !tbaa !5
  %5209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5210 = call i32 @s2n_print_stacktrace(ptr noundef %5209) #12
  %5211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5212 = trunc nuw i8 %5211 to i1
  br i1 %5212, label %5213, label %5217

5213:                                             ; preds = %5207
  %5214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5215 = call i32 @fileno(ptr noundef %5214) #12
  %5216 = call i32 @isatty(i32 noundef %5215) #12
  %.not1532 = icmp eq i32 %5216, 0
  br i1 %.not1532, label %5217, label %5218

5217:                                             ; preds = %5213, %5207
  br label %5218

5218:                                             ; preds = %5213, %5217
  %.str.5.sink3312 = phi ptr [ @.str.5, %5217 ], [ @.str.2, %5213 ]
  store i32 %5208, ptr %260, align 4, !tbaa !5
  %5219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5220 = load i32, ptr @test_count, align 4, !tbaa !5
  %5221 = load i32, ptr %206, align 4, !tbaa !5
  %5222 = call ptr @s2n_strerror(i32 noundef %5221, ptr noundef nonnull @.str.4) #12
  %5223 = load i32, ptr %206, align 4, !tbaa !5
  %5224 = call ptr @s2n_strerror_debug(i32 noundef %5223, ptr noundef nonnull @.str.4) #12
  %5225 = load i32, ptr %260, align 4, !tbaa !5
  %5226 = call ptr @strerror(i32 noundef %5225) #12
  %5227 = load i32, ptr %260, align 4, !tbaa !5
  %5228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5219, ptr noundef nonnull %.str.5.sink3312, i32 noundef %5220, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 464, ptr noundef %5222, ptr noundef %5224, ptr noundef %5226, i32 noundef %5227) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5229:                                             ; preds = %5202
  %5230 = load i32, ptr @test_count, align 4, !tbaa !5
  %5231 = add nsw i32 %5230, 1
  store i32 %5231, ptr @test_count, align 4, !tbaa !5
  %5232 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %5233 = icmp eq ptr %5232, null
  br i1 %5233, label %5234, label %5256

5234:                                             ; preds = %5229
  %5235 = load i32, ptr %260, align 4, !tbaa !5
  %5236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5237 = call i32 @s2n_print_stacktrace(ptr noundef %5236) #12
  %5238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5239 = trunc nuw i8 %5238 to i1
  br i1 %5239, label %5240, label %5244

5240:                                             ; preds = %5234
  %5241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5242 = call i32 @fileno(ptr noundef %5241) #12
  %5243 = call i32 @isatty(i32 noundef %5242) #12
  %.not1531 = icmp eq i32 %5243, 0
  br i1 %.not1531, label %5244, label %5245

5244:                                             ; preds = %5240, %5234
  br label %5245

5245:                                             ; preds = %5240, %5244
  %.str.5.sink3321 = phi ptr [ @.str.5, %5244 ], [ @.str.2, %5240 ]
  store i32 %5235, ptr %260, align 4, !tbaa !5
  %5246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5247 = load i32, ptr @test_count, align 4, !tbaa !5
  %5248 = load i32, ptr %206, align 4, !tbaa !5
  %5249 = call ptr @s2n_strerror(i32 noundef %5248, ptr noundef nonnull @.str.4) #12
  %5250 = load i32, ptr %206, align 4, !tbaa !5
  %5251 = call ptr @s2n_strerror_debug(i32 noundef %5250, ptr noundef nonnull @.str.4) #12
  %5252 = load i32, ptr %260, align 4, !tbaa !5
  %5253 = call ptr @strerror(i32 noundef %5252) #12
  %5254 = load i32, ptr %260, align 4, !tbaa !5
  %5255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5246, ptr noundef nonnull %.str.5.sink3321, i32 noundef %5247, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 471, ptr noundef %5249, ptr noundef %5251, ptr noundef %5253, i32 noundef %5254) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5256:                                             ; preds = %5229
  %5257 = load i32, ptr @test_count, align 4, !tbaa !5
  %5258 = add nsw i32 %5257, 1
  store i32 %5258, ptr @test_count, align 4, !tbaa !5
  %5259 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %5260 = icmp eq ptr %5259, null
  br i1 %5260, label %5261, label %5283

5261:                                             ; preds = %5256
  %5262 = load i32, ptr %260, align 4, !tbaa !5
  %5263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5264 = call i32 @s2n_print_stacktrace(ptr noundef %5263) #12
  %5265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5266 = trunc nuw i8 %5265 to i1
  br i1 %5266, label %5267, label %5271

5267:                                             ; preds = %5261
  %5268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5269 = call i32 @fileno(ptr noundef %5268) #12
  %5270 = call i32 @isatty(i32 noundef %5269) #12
  %.not1530 = icmp eq i32 %5270, 0
  br i1 %.not1530, label %5271, label %5272

5271:                                             ; preds = %5267, %5261
  br label %5272

5272:                                             ; preds = %5267, %5271
  %.str.5.sink3330 = phi ptr [ @.str.5, %5271 ], [ @.str.2, %5267 ]
  store i32 %5262, ptr %260, align 4, !tbaa !5
  %5273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5274 = load i32, ptr @test_count, align 4, !tbaa !5
  %5275 = load i32, ptr %206, align 4, !tbaa !5
  %5276 = call ptr @s2n_strerror(i32 noundef %5275, ptr noundef nonnull @.str.4) #12
  %5277 = load i32, ptr %206, align 4, !tbaa !5
  %5278 = call ptr @s2n_strerror_debug(i32 noundef %5277, ptr noundef nonnull @.str.4) #12
  %5279 = load i32, ptr %260, align 4, !tbaa !5
  %5280 = call ptr @strerror(i32 noundef %5279) #12
  %5281 = load i32, ptr %260, align 4, !tbaa !5
  %5282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5273, ptr noundef nonnull %.str.5.sink3330, i32 noundef %5274, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %5276, ptr noundef %5278, ptr noundef %5280, i32 noundef %5281) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5283:                                             ; preds = %5256
  %5284 = getelementptr inbounds i8, ptr %5232, i64 2016
  %5285 = load i32, ptr @test_count, align 4, !tbaa !5
  %5286 = add nsw i32 %5285, 1
  store i32 %5286, ptr @test_count, align 4, !tbaa !5
  %5287 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %5232, i8 noundef zeroext 34) #12
  %5288 = icmp eq i32 %5287, -1
  br i1 %5288, label %5289, label %5311

5289:                                             ; preds = %5283
  %5290 = load i32, ptr %260, align 4, !tbaa !5
  %5291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5292 = call i32 @s2n_print_stacktrace(ptr noundef %5291) #12
  %5293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5294 = trunc nuw i8 %5293 to i1
  br i1 %5294, label %5295, label %5299

5295:                                             ; preds = %5289
  %5296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5297 = call i32 @fileno(ptr noundef %5296) #12
  %5298 = call i32 @isatty(i32 noundef %5297) #12
  %.not1529 = icmp eq i32 %5298, 0
  br i1 %.not1529, label %5299, label %5300

5299:                                             ; preds = %5295, %5289
  br label %5300

5300:                                             ; preds = %5295, %5299
  %.str.5.sink3339 = phi ptr [ @.str.5, %5299 ], [ @.str.2, %5295 ]
  store i32 %5290, ptr %260, align 4, !tbaa !5
  %5301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5302 = load i32, ptr @test_count, align 4, !tbaa !5
  %5303 = load i32, ptr %206, align 4, !tbaa !5
  %5304 = call ptr @s2n_strerror(i32 noundef %5303, ptr noundef nonnull @.str.4) #12
  %5305 = load i32, ptr %206, align 4, !tbaa !5
  %5306 = call ptr @s2n_strerror_debug(i32 noundef %5305, ptr noundef nonnull @.str.4) #12
  %5307 = load i32, ptr %260, align 4, !tbaa !5
  %5308 = call ptr @strerror(i32 noundef %5307) #12
  %5309 = load i32, ptr %260, align 4, !tbaa !5
  %5310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5301, ptr noundef nonnull %.str.5.sink3339, i32 noundef %5302, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 476, ptr noundef %5304, ptr noundef %5306, ptr noundef %5308, i32 noundef %5309) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5311:                                             ; preds = %5283
  %5312 = load i32, ptr @test_count, align 4, !tbaa !5
  %5313 = add nsw i32 %5312, 1
  store i32 %5313, ptr @test_count, align 4, !tbaa !5
  %5314 = call i32 @s2n_conn_choose_state_machine(ptr noundef nonnull %5232, i8 noundef zeroext 34) #12
  %5315 = call zeroext i1 @s2n_result_is_ok(i32 %5314)
  br i1 %5315, label %5338, label %5316

5316:                                             ; preds = %5311
  %5317 = load i32, ptr %260, align 4, !tbaa !5
  %5318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5319 = call i32 @s2n_print_stacktrace(ptr noundef %5318) #12
  %5320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5321 = trunc nuw i8 %5320 to i1
  br i1 %5321, label %5322, label %5326

5322:                                             ; preds = %5316
  %5323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5324 = call i32 @fileno(ptr noundef %5323) #12
  %5325 = call i32 @isatty(i32 noundef %5324) #12
  %.not1321 = icmp eq i32 %5325, 0
  br i1 %.not1321, label %5326, label %5327

5326:                                             ; preds = %5322, %5316
  br label %5327

5327:                                             ; preds = %5322, %5326
  %.str.5.sink3348 = phi ptr [ @.str.5, %5326 ], [ @.str.2, %5322 ]
  store i32 %5317, ptr %260, align 4, !tbaa !5
  %5328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5329 = load i32, ptr @test_count, align 4, !tbaa !5
  %5330 = load i32, ptr %206, align 4, !tbaa !5
  %5331 = call ptr @s2n_strerror(i32 noundef %5330, ptr noundef nonnull @.str.4) #12
  %5332 = load i32, ptr %206, align 4, !tbaa !5
  %5333 = call ptr @s2n_strerror_debug(i32 noundef %5332, ptr noundef nonnull @.str.4) #12
  %5334 = load i32, ptr %260, align 4, !tbaa !5
  %5335 = call ptr @strerror(i32 noundef %5334) #12
  %5336 = load i32, ptr %260, align 4, !tbaa !5
  %5337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5328, ptr noundef nonnull %.str.5.sink3348, i32 noundef %5329, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 477, ptr noundef %5331, ptr noundef %5333, ptr noundef %5335, i32 noundef %5336) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5338:                                             ; preds = %5311
  %5339 = getelementptr inbounds i8, ptr %5259, i64 16
  store ptr @security_policy_test_tls13_retry, ptr %5339, align 8, !tbaa !15
  %5340 = getelementptr inbounds i8, ptr %5232, i64 656
  store ptr %1042, ptr %5340, align 8, !tbaa !42
  %5341 = load i32, ptr @test_count, align 4, !tbaa !5
  %5342 = add nsw i32 %5341, 1
  store i32 %5342, ptr @test_count, align 4, !tbaa !5
  %5343 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %5232) #12
  %5344 = icmp eq i32 %5343, -1
  br i1 %5344, label %5345, label %5367

5345:                                             ; preds = %5338
  %5346 = load i32, ptr %260, align 4, !tbaa !5
  %5347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5348 = call i32 @s2n_print_stacktrace(ptr noundef %5347) #12
  %5349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5350 = trunc nuw i8 %5349 to i1
  br i1 %5350, label %5351, label %5355

5351:                                             ; preds = %5345
  %5352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5353 = call i32 @fileno(ptr noundef %5352) #12
  %5354 = call i32 @isatty(i32 noundef %5353) #12
  %.not1528 = icmp eq i32 %5354, 0
  br i1 %.not1528, label %5355, label %5356

5355:                                             ; preds = %5351, %5345
  br label %5356

5356:                                             ; preds = %5351, %5355
  %.str.5.sink3357 = phi ptr [ @.str.5, %5355 ], [ @.str.2, %5351 ]
  store i32 %5346, ptr %260, align 4, !tbaa !5
  %5357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5358 = load i32, ptr @test_count, align 4, !tbaa !5
  %5359 = load i32, ptr %206, align 4, !tbaa !5
  %5360 = call ptr @s2n_strerror(i32 noundef %5359, ptr noundef nonnull @.str.4) #12
  %5361 = load i32, ptr %206, align 4, !tbaa !5
  %5362 = call ptr @s2n_strerror_debug(i32 noundef %5361, ptr noundef nonnull @.str.4) #12
  %5363 = load i32, ptr %260, align 4, !tbaa !5
  %5364 = call ptr @strerror(i32 noundef %5363) #12
  %5365 = load i32, ptr %260, align 4, !tbaa !5
  %5366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5357, ptr noundef nonnull %.str.5.sink3357, i32 noundef %5358, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 481, ptr noundef %5360, ptr noundef %5362, ptr noundef %5364, i32 noundef %5365) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5367:                                             ; preds = %5338
  %5368 = getelementptr inbounds i8, ptr %5232, i64 1650
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(32) %5368, ptr noundef nonnull align 16 dereferenceable(32) @hello_retry_req_random, i64 32, i1 false)
  %5369 = load i32, ptr @test_count, align 4, !tbaa !5
  %5370 = add nsw i32 %5369, 1
  store i32 %5370, ptr @test_count, align 4, !tbaa !5
  %5371 = call i32 %2026(ptr noundef nonnull %5232, ptr noundef nonnull %5284) #12
  %5372 = icmp eq i32 %5371, -1
  br i1 %5372, label %5373, label %5395

5373:                                             ; preds = %5367
  %5374 = load i32, ptr %260, align 4, !tbaa !5
  %5375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5376 = call i32 @s2n_print_stacktrace(ptr noundef %5375) #12
  %5377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5378 = trunc nuw i8 %5377 to i1
  br i1 %5378, label %5379, label %5383

5379:                                             ; preds = %5373
  %5380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5381 = call i32 @fileno(ptr noundef %5380) #12
  %5382 = call i32 @isatty(i32 noundef %5381) #12
  %.not1527 = icmp eq i32 %5382, 0
  br i1 %.not1527, label %5383, label %5384

5383:                                             ; preds = %5379, %5373
  br label %5384

5384:                                             ; preds = %5379, %5383
  %.str.5.sink3366 = phi ptr [ @.str.5, %5383 ], [ @.str.2, %5379 ]
  store i32 %5374, ptr %260, align 4, !tbaa !5
  %5385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5386 = load i32, ptr @test_count, align 4, !tbaa !5
  %5387 = load i32, ptr %206, align 4, !tbaa !5
  %5388 = call ptr @s2n_strerror(i32 noundef %5387, ptr noundef nonnull @.str.4) #12
  %5389 = load i32, ptr %206, align 4, !tbaa !5
  %5390 = call ptr @s2n_strerror_debug(i32 noundef %5389, ptr noundef nonnull @.str.4) #12
  %5391 = load i32, ptr %260, align 4, !tbaa !5
  %5392 = call ptr @strerror(i32 noundef %5391) #12
  %5393 = load i32, ptr %260, align 4, !tbaa !5
  %5394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5385, ptr noundef nonnull %.str.5.sink3366, i32 noundef %5386, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %5388, ptr noundef %5390, ptr noundef %5392, i32 noundef %5393) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5395:                                             ; preds = %5367
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #12
  store ptr null, ptr %26, align 8, !tbaa !9
  %5396 = load i32, ptr @test_count, align 4, !tbaa !5
  %5397 = add nsw i32 %5396, 1
  store i32 %5397, ptr @test_count, align 4, !tbaa !5
  %5398 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %5232, ptr noundef nonnull %26) #12
  %5399 = icmp eq i32 %5398, -1
  br i1 %5399, label %5400, label %5422

5400:                                             ; preds = %5395
  %5401 = load i32, ptr %260, align 4, !tbaa !5
  %5402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5403 = call i32 @s2n_print_stacktrace(ptr noundef %5402) #12
  %5404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5405 = trunc nuw i8 %5404 to i1
  br i1 %5405, label %5406, label %5410

5406:                                             ; preds = %5400
  %5407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5408 = call i32 @fileno(ptr noundef %5407) #12
  %5409 = call i32 @isatty(i32 noundef %5408) #12
  %.not1526 = icmp eq i32 %5409, 0
  br i1 %.not1526, label %5410, label %5411

5410:                                             ; preds = %5406, %5400
  br label %5411

5411:                                             ; preds = %5406, %5410
  %.str.5.sink3375 = phi ptr [ @.str.5, %5410 ], [ @.str.2, %5406 ]
  store i32 %5401, ptr %260, align 4, !tbaa !5
  %5412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5413 = load i32, ptr @test_count, align 4, !tbaa !5
  %5414 = load i32, ptr %206, align 4, !tbaa !5
  %5415 = call ptr @s2n_strerror(i32 noundef %5414, ptr noundef nonnull @.str.4) #12
  %5416 = load i32, ptr %206, align 4, !tbaa !5
  %5417 = call ptr @s2n_strerror_debug(i32 noundef %5416, ptr noundef nonnull @.str.4) #12
  %5418 = load i32, ptr %260, align 4, !tbaa !5
  %5419 = call ptr @strerror(i32 noundef %5418) #12
  %5420 = load i32, ptr %260, align 4, !tbaa !5
  %5421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5412, ptr noundef nonnull %.str.5.sink3375, i32 noundef %5413, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.1, i32 noundef 486, ptr noundef %5415, ptr noundef %5417, ptr noundef %5419, i32 noundef %5420) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5422:                                             ; preds = %5395
  %5423 = load i32, ptr @test_count, align 4, !tbaa !5
  %5424 = add nsw i32 %5423, 1
  store i32 %5424, ptr @test_count, align 4, !tbaa !5
  %5425 = load ptr, ptr %26, align 8, !tbaa !9
  %5426 = icmp eq ptr %5425, null
  br i1 %5426, label %5427, label %5449

5427:                                             ; preds = %5422
  %5428 = load i32, ptr %260, align 4, !tbaa !5
  %5429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5430 = call i32 @s2n_print_stacktrace(ptr noundef %5429) #12
  %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) #12
  %5436 = call i32 @isatty(i32 noundef %5435) #12
  %.not1525 = icmp eq i32 %5436, 0
  br i1 %.not1525, label %5437, label %5438

5437:                                             ; preds = %5433, %5427
  br label %5438

5438:                                             ; preds = %5433, %5437
  %.str.5.sink3384 = phi ptr [ @.str.5, %5437 ], [ @.str.2, %5433 ]
  store i32 %5428, ptr %260, 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 %206, align 4, !tbaa !5
  %5442 = call ptr @s2n_strerror(i32 noundef %5441, ptr noundef nonnull @.str.4) #12
  %5443 = load i32, ptr %206, align 4, !tbaa !5
  %5444 = call ptr @s2n_strerror_debug(i32 noundef %5443, ptr noundef nonnull @.str.4) #12
  %5445 = load i32, ptr %260, align 4, !tbaa !5
  %5446 = call ptr @strerror(i32 noundef %5445) #12
  %5447 = load i32, ptr %260, align 4, !tbaa !5
  %5448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5439, ptr noundef nonnull %.str.5.sink3384, i32 noundef %5440, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %5442, ptr noundef %5444, ptr noundef %5446, i32 noundef %5447) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5449:                                             ; preds = %5422
  %5450 = getelementptr inbounds i8, ptr %5232, i64 704
  %5451 = add nsw i32 %5423, 2
  store i32 %5451, ptr @test_count, align 4, !tbaa !5
  %5452 = load ptr, ptr %5450, align 8, !tbaa !70
  %5453 = icmp eq ptr %5452, null
  br i1 %5453, label %5476, label %5454

5454:                                             ; preds = %5449
  %5455 = load i32, ptr %260, align 4, !tbaa !5
  %5456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5457 = call i32 @s2n_print_stacktrace(ptr noundef %5456) #12
  %5458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5459 = trunc nuw i8 %5458 to i1
  br i1 %5459, label %5460, label %5464

5460:                                             ; preds = %5454
  %5461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5462 = call i32 @fileno(ptr noundef %5461) #12
  %5463 = call i32 @isatty(i32 noundef %5462) #12
  %.not1322 = icmp eq i32 %5463, 0
  br i1 %.not1322, label %5464, label %5465

5464:                                             ; preds = %5460, %5454
  br label %5465

5465:                                             ; preds = %5460, %5464
  %.str.5.sink3393 = phi ptr [ @.str.5, %5464 ], [ @.str.2, %5460 ]
  store i32 %5455, ptr %260, align 4, !tbaa !5
  %5466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5467 = load i32, ptr @test_count, align 4, !tbaa !5
  %5468 = load i32, ptr %206, align 4, !tbaa !5
  %5469 = call ptr @s2n_strerror(i32 noundef %5468, ptr noundef nonnull @.str.4) #12
  %5470 = load i32, ptr %206, align 4, !tbaa !5
  %5471 = call ptr @s2n_strerror_debug(i32 noundef %5470, ptr noundef nonnull @.str.4) #12
  %5472 = load i32, ptr %260, align 4, !tbaa !5
  %5473 = call ptr @strerror(i32 noundef %5472) #12
  %5474 = load i32, ptr %260, align 4, !tbaa !5
  %5475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5466, ptr noundef nonnull %.str.5.sink3393, i32 noundef %5467, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.1, i32 noundef 491, ptr noundef %5469, ptr noundef %5471, ptr noundef %5473, i32 noundef %5474) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5476:                                             ; preds = %5449
  %5477 = add nsw i32 %5423, 3
  store i32 %5477, ptr @test_count, align 4, !tbaa !5
  %5478 = getelementptr inbounds i8, ptr %5232, i64 712
  %5479 = load ptr, ptr %5478, align 8, !tbaa !71
  %5480 = icmp eq ptr %5479, null
  br i1 %5480, label %5503, label %5481

5481:                                             ; preds = %5476
  %5482 = load i32, ptr %260, align 4, !tbaa !5
  %5483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5484 = call i32 @s2n_print_stacktrace(ptr noundef %5483) #12
  %5485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5486 = trunc nuw i8 %5485 to i1
  br i1 %5486, label %5487, label %5491

5487:                                             ; preds = %5481
  %5488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5489 = call i32 @fileno(ptr noundef %5488) #12
  %5490 = call i32 @isatty(i32 noundef %5489) #12
  %.not1323 = icmp eq i32 %5490, 0
  br i1 %.not1323, label %5491, label %5492

5491:                                             ; preds = %5487, %5481
  br label %5492

5492:                                             ; preds = %5487, %5491
  %.str.5.sink3402 = phi ptr [ @.str.5, %5491 ], [ @.str.2, %5487 ]
  store i32 %5482, ptr %260, align 4, !tbaa !5
  %5493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5494 = load i32, ptr @test_count, align 4, !tbaa !5
  %5495 = load i32, ptr %206, align 4, !tbaa !5
  %5496 = call ptr @s2n_strerror(i32 noundef %5495, ptr noundef nonnull @.str.4) #12
  %5497 = load i32, ptr %206, align 4, !tbaa !5
  %5498 = call ptr @s2n_strerror_debug(i32 noundef %5497, ptr noundef nonnull @.str.4) #12
  %5499 = load i32, ptr %260, align 4, !tbaa !5
  %5500 = call ptr @strerror(i32 noundef %5499) #12
  %5501 = load i32, ptr %260, align 4, !tbaa !5
  %5502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5493, ptr noundef nonnull %.str.5.sink3402, i32 noundef %5494, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %5496, ptr noundef %5498, ptr noundef %5500, i32 noundef %5501) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5503:                                             ; preds = %5476
  %5504 = getelementptr inbounds i8, ptr %5259, i64 1650
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(32) %5504, ptr noundef nonnull align 16 dereferenceable(32) @hello_retry_req_random, i64 32, i1 false)
  %5505 = add nsw i32 %5423, 4
  store i32 %5505, ptr @test_count, align 4, !tbaa !5
  %5506 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %5259, i8 noundef zeroext 34) #12
  %5507 = icmp eq i32 %5506, -1
  br i1 %5507, label %5508, label %5530

5508:                                             ; preds = %5503
  %5509 = load i32, ptr %260, align 4, !tbaa !5
  %5510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5511 = call i32 @s2n_print_stacktrace(ptr noundef %5510) #12
  %5512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5513 = trunc nuw i8 %5512 to i1
  br i1 %5513, label %5514, label %5518

5514:                                             ; preds = %5508
  %5515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5516 = call i32 @fileno(ptr noundef %5515) #12
  %5517 = call i32 @isatty(i32 noundef %5516) #12
  %.not1524 = icmp eq i32 %5517, 0
  br i1 %.not1524, label %5518, label %5519

5518:                                             ; preds = %5514, %5508
  br label %5519

5519:                                             ; preds = %5514, %5518
  %.str.5.sink3411 = phi ptr [ @.str.5, %5518 ], [ @.str.2, %5514 ]
  store i32 %5509, ptr %260, align 4, !tbaa !5
  %5520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5521 = load i32, ptr @test_count, align 4, !tbaa !5
  %5522 = load i32, ptr %206, align 4, !tbaa !5
  %5523 = call ptr @s2n_strerror(i32 noundef %5522, ptr noundef nonnull @.str.4) #12
  %5524 = load i32, ptr %206, align 4, !tbaa !5
  %5525 = call ptr @s2n_strerror_debug(i32 noundef %5524, ptr noundef nonnull @.str.4) #12
  %5526 = load i32, ptr %260, align 4, !tbaa !5
  %5527 = call ptr @strerror(i32 noundef %5526) #12
  %5528 = load i32, ptr %260, align 4, !tbaa !5
  %5529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5520, ptr noundef nonnull %.str.5.sink3411, i32 noundef %5521, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %5523, ptr noundef %5525, ptr noundef %5527, i32 noundef %5528) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5530:                                             ; preds = %5503
  %5531 = load i32, ptr @test_count, align 4, !tbaa !5
  %5532 = add nsw i32 %5531, 1
  store i32 %5532, ptr @test_count, align 4, !tbaa !5
  %5533 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %5259) #12
  %5534 = icmp eq i32 %5533, -1
  br i1 %5534, label %5535, label %5557

5535:                                             ; preds = %5530
  %5536 = load i32, ptr %260, align 4, !tbaa !5
  %5537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5538 = call i32 @s2n_print_stacktrace(ptr noundef %5537) #12
  %5539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5540 = trunc nuw i8 %5539 to i1
  br i1 %5540, label %5541, label %5545

5541:                                             ; preds = %5535
  %5542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5543 = call i32 @fileno(ptr noundef %5542) #12
  %5544 = call i32 @isatty(i32 noundef %5543) #12
  %.not1523 = icmp eq i32 %5544, 0
  br i1 %.not1523, label %5545, label %5546

5545:                                             ; preds = %5541, %5535
  br label %5546

5546:                                             ; preds = %5541, %5545
  %.str.5.sink3420 = phi ptr [ @.str.5, %5545 ], [ @.str.2, %5541 ]
  store i32 %5536, ptr %260, align 4, !tbaa !5
  %5547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5548 = load i32, ptr @test_count, align 4, !tbaa !5
  %5549 = load i32, ptr %206, align 4, !tbaa !5
  %5550 = call ptr @s2n_strerror(i32 noundef %5549, ptr noundef nonnull @.str.4) #12
  %5551 = load i32, ptr %206, align 4, !tbaa !5
  %5552 = call ptr @s2n_strerror_debug(i32 noundef %5551, ptr noundef nonnull @.str.4) #12
  %5553 = load i32, ptr %260, align 4, !tbaa !5
  %5554 = call ptr @strerror(i32 noundef %5553) #12
  %5555 = load i32, ptr %260, align 4, !tbaa !5
  %5556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5547, ptr noundef nonnull %.str.5.sink3420, i32 noundef %5548, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 497, ptr noundef %5550, ptr noundef %5552, ptr noundef %5554, i32 noundef %5555) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5557:                                             ; preds = %5530
  %5558 = load i32, ptr @test_count, align 4, !tbaa !5
  %5559 = add nsw i32 %5558, 1
  store i32 %5559, ptr @test_count, align 4, !tbaa !5
  %5560 = call i32 @s2n_set_hello_retry_required(ptr noundef nonnull %5259) #12
  %5561 = icmp eq i32 %5560, -1
  br i1 %5561, label %5562, label %5584

5562:                                             ; preds = %5557
  %5563 = load i32, ptr %260, align 4, !tbaa !5
  %5564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5565 = call i32 @s2n_print_stacktrace(ptr noundef %5564) #12
  %5566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5567 = trunc nuw i8 %5566 to i1
  br i1 %5567, label %5568, label %5572

5568:                                             ; preds = %5562
  %5569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5570 = call i32 @fileno(ptr noundef %5569) #12
  %5571 = call i32 @isatty(i32 noundef %5570) #12
  %.not1522 = icmp eq i32 %5571, 0
  br i1 %.not1522, label %5572, label %5573

5572:                                             ; preds = %5568, %5562
  br label %5573

5573:                                             ; preds = %5568, %5572
  %.str.5.sink3429 = phi ptr [ @.str.5, %5572 ], [ @.str.2, %5568 ]
  store i32 %5563, ptr %260, align 4, !tbaa !5
  %5574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5575 = load i32, ptr @test_count, align 4, !tbaa !5
  %5576 = load i32, ptr %206, align 4, !tbaa !5
  %5577 = call ptr @s2n_strerror(i32 noundef %5576, ptr noundef nonnull @.str.4) #12
  %5578 = load i32, ptr %206, align 4, !tbaa !5
  %5579 = call ptr @s2n_strerror_debug(i32 noundef %5578, ptr noundef nonnull @.str.4) #12
  %5580 = load i32, ptr %260, align 4, !tbaa !5
  %5581 = call ptr @strerror(i32 noundef %5580) #12
  %5582 = load i32, ptr %260, align 4, !tbaa !5
  %5583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5574, ptr noundef nonnull %.str.5.sink3429, i32 noundef %5575, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.1, i32 noundef 498, ptr noundef %5577, ptr noundef %5579, ptr noundef %5581, i32 noundef %5582) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5584:                                             ; preds = %5557
  %5585 = load i32, ptr @test_count, align 4, !tbaa !5
  %5586 = add nsw i32 %5585, 1
  store i32 %5586, ptr @test_count, align 4, !tbaa !5
  %5587 = call i32 %2349(ptr noundef nonnull %5259, ptr noundef nonnull %5284) #12
  %5588 = icmp eq i32 %5587, -1
  br i1 %5588, label %5589, label %5611

5589:                                             ; preds = %5584
  %5590 = load i32, ptr %260, align 4, !tbaa !5
  %5591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5592 = call i32 @s2n_print_stacktrace(ptr noundef %5591) #12
  %5593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5594 = trunc nuw i8 %5593 to i1
  br i1 %5594, label %5595, label %5599

5595:                                             ; preds = %5589
  %5596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5597 = call i32 @fileno(ptr noundef %5596) #12
  %5598 = call i32 @isatty(i32 noundef %5597) #12
  %.not1521 = icmp eq i32 %5598, 0
  br i1 %.not1521, label %5599, label %5600

5599:                                             ; preds = %5595, %5589
  br label %5600

5600:                                             ; preds = %5595, %5599
  %.str.5.sink3438 = phi ptr [ @.str.5, %5599 ], [ @.str.2, %5595 ]
  store i32 %5590, ptr %260, align 4, !tbaa !5
  %5601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5602 = load i32, ptr @test_count, align 4, !tbaa !5
  %5603 = load i32, ptr %206, align 4, !tbaa !5
  %5604 = call ptr @s2n_strerror(i32 noundef %5603, ptr noundef nonnull @.str.4) #12
  %5605 = load i32, ptr %206, align 4, !tbaa !5
  %5606 = call ptr @s2n_strerror_debug(i32 noundef %5605, ptr noundef nonnull @.str.4) #12
  %5607 = load i32, ptr %260, align 4, !tbaa !5
  %5608 = call ptr @strerror(i32 noundef %5607) #12
  %5609 = load i32, ptr %260, align 4, !tbaa !5
  %5610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5601, ptr noundef nonnull %.str.5.sink3438, i32 noundef %5602, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 501, ptr noundef %5604, ptr noundef %5606, ptr noundef %5608, i32 noundef %5609) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5611:                                             ; preds = %5584
  %5612 = load i32, ptr @test_count, align 4, !tbaa !5
  %5613 = add nsw i32 %5612, 1
  store i32 %5613, ptr @test_count, align 4, !tbaa !5
  %5614 = getelementptr inbounds i8, ptr %5232, i64 2044
  %5615 = load i32, ptr %5614, align 4, !tbaa !54
  %5616 = getelementptr inbounds i8, ptr %5232, i64 2040
  %5617 = load i32, ptr %5616, align 8, !tbaa !55
  %5618 = icmp eq i32 %5615, %5617
  br i1 %5618, label %5641, label %5619

5619:                                             ; preds = %5611
  %5620 = load i32, ptr %260, align 4, !tbaa !5
  %5621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5622 = call i32 @s2n_print_stacktrace(ptr noundef %5621) #12
  %5623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5624 = trunc nuw i8 %5623 to i1
  br i1 %5624, label %5625, label %5629

5625:                                             ; preds = %5619
  %5626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5627 = call i32 @fileno(ptr noundef %5626) #12
  %5628 = call i32 @isatty(i32 noundef %5627) #12
  %.not1324 = icmp eq i32 %5628, 0
  br i1 %.not1324, label %5629, label %5630

5629:                                             ; preds = %5625, %5619
  br label %5630

5630:                                             ; preds = %5625, %5629
  %.str.5.sink3447 = phi ptr [ @.str.5, %5629 ], [ @.str.2, %5625 ]
  store i32 %5620, ptr %260, align 4, !tbaa !5
  %5631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5632 = load i32, ptr @test_count, align 4, !tbaa !5
  %5633 = load i32, ptr %206, align 4, !tbaa !5
  %5634 = call ptr @s2n_strerror(i32 noundef %5633, ptr noundef nonnull @.str.4) #12
  %5635 = load i32, ptr %206, align 4, !tbaa !5
  %5636 = call ptr @s2n_strerror_debug(i32 noundef %5635, ptr noundef nonnull @.str.4) #12
  %5637 = load i32, ptr %260, align 4, !tbaa !5
  %5638 = call ptr @strerror(i32 noundef %5637) #12
  %5639 = load i32, ptr %260, align 4, !tbaa !5
  %5640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5631, ptr noundef nonnull %.str.5.sink3447, i32 noundef %5632, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %5634, ptr noundef %5636, ptr noundef %5638, i32 noundef %5639) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5641:                                             ; preds = %5611
  %5642 = add nsw i32 %5612, 2
  store i32 %5642, ptr @test_count, align 4, !tbaa !5
  %5643 = load ptr, ptr %5340, align 8, !tbaa !42
  %5644 = getelementptr inbounds i8, ptr %5259, i64 656
  %5645 = load ptr, ptr %5644, align 8, !tbaa !42
  %5646 = icmp eq ptr %5643, %5645
  br i1 %5646, label %5669, label %5647

5647:                                             ; preds = %5641
  %5648 = load i32, ptr %260, align 4, !tbaa !5
  %5649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5650 = call i32 @s2n_print_stacktrace(ptr noundef %5649) #12
  %5651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5652 = trunc nuw i8 %5651 to i1
  br i1 %5652, label %5653, label %5657

5653:                                             ; preds = %5647
  %5654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5655 = call i32 @fileno(ptr noundef %5654) #12
  %5656 = call i32 @isatty(i32 noundef %5655) #12
  %.not1325 = icmp eq i32 %5656, 0
  br i1 %.not1325, label %5657, label %5658

5657:                                             ; preds = %5653, %5647
  br label %5658

5658:                                             ; preds = %5653, %5657
  %.str.5.sink3456 = phi ptr [ @.str.5, %5657 ], [ @.str.2, %5653 ]
  store i32 %5648, ptr %260, align 4, !tbaa !5
  %5659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5660 = load i32, ptr @test_count, align 4, !tbaa !5
  %5661 = load i32, ptr %206, align 4, !tbaa !5
  %5662 = call ptr @s2n_strerror(i32 noundef %5661, ptr noundef nonnull @.str.4) #12
  %5663 = load i32, ptr %206, align 4, !tbaa !5
  %5664 = call ptr @s2n_strerror_debug(i32 noundef %5663, ptr noundef nonnull @.str.4) #12
  %5665 = load i32, ptr %260, align 4, !tbaa !5
  %5666 = call ptr @strerror(i32 noundef %5665) #12
  %5667 = load i32, ptr %260, align 4, !tbaa !5
  %5668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5659, ptr noundef nonnull %.str.5.sink3456, i32 noundef %5660, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 504, ptr noundef %5662, ptr noundef %5664, ptr noundef %5666, i32 noundef %5667) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5669:                                             ; preds = %5641
  %5670 = add nsw i32 %5612, 3
  store i32 %5670, ptr @test_count, align 4, !tbaa !5
  %5671 = getelementptr inbounds i8, ptr %5259, i64 664
  %5672 = load ptr, ptr %5671, align 8, !tbaa !59
  %5673 = icmp eq ptr %5672, null
  br i1 %5673, label %5696, label %5674

5674:                                             ; preds = %5669
  %5675 = load i32, ptr %260, align 4, !tbaa !5
  %5676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5677 = call i32 @s2n_print_stacktrace(ptr noundef %5676) #12
  %5678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5679 = trunc nuw i8 %5678 to i1
  br i1 %5679, label %5680, label %5684

5680:                                             ; preds = %5674
  %5681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5682 = call i32 @fileno(ptr noundef %5681) #12
  %5683 = call i32 @isatty(i32 noundef %5682) #12
  %.not1326 = icmp eq i32 %5683, 0
  br i1 %.not1326, label %5684, label %5685

5684:                                             ; preds = %5680, %5674
  br label %5685

5685:                                             ; preds = %5680, %5684
  %.str.5.sink3465 = phi ptr [ @.str.5, %5684 ], [ @.str.2, %5680 ]
  store i32 %5675, ptr %260, align 4, !tbaa !5
  %5686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5687 = load i32, ptr @test_count, align 4, !tbaa !5
  %5688 = load i32, ptr %206, align 4, !tbaa !5
  %5689 = call ptr @s2n_strerror(i32 noundef %5688, ptr noundef nonnull @.str.4) #12
  %5690 = load i32, ptr %206, align 4, !tbaa !5
  %5691 = call ptr @s2n_strerror_debug(i32 noundef %5690, ptr noundef nonnull @.str.4) #12
  %5692 = load i32, ptr %260, align 4, !tbaa !5
  %5693 = call ptr @strerror(i32 noundef %5692) #12
  %5694 = load i32, ptr %260, align 4, !tbaa !5
  %5695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5686, ptr noundef nonnull %.str.5.sink3465, i32 noundef %5687, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %5689, ptr noundef %5691, ptr noundef %5693, i32 noundef %5694) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5696:                                             ; preds = %5669
  %5697 = add nsw i32 %5612, 4
  store i32 %5697, ptr @test_count, align 4, !tbaa !5
  %5698 = call i32 @s2n_stuffer_free(ptr noundef nonnull %5284) #12
  %5699 = icmp eq i32 %5698, -1
  br i1 %5699, label %5700, label %5722

5700:                                             ; preds = %5696
  %5701 = load i32, ptr %260, align 4, !tbaa !5
  %5702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5703 = call i32 @s2n_print_stacktrace(ptr noundef %5702) #12
  %5704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5705 = trunc nuw i8 %5704 to i1
  br i1 %5705, label %5706, label %5710

5706:                                             ; preds = %5700
  %5707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5708 = call i32 @fileno(ptr noundef %5707) #12
  %5709 = call i32 @isatty(i32 noundef %5708) #12
  %.not1520 = icmp eq i32 %5709, 0
  br i1 %.not1520, label %5710, label %5711

5710:                                             ; preds = %5706, %5700
  br label %5711

5711:                                             ; preds = %5706, %5710
  %.str.5.sink3474 = phi ptr [ @.str.5, %5710 ], [ @.str.2, %5706 ]
  store i32 %5701, ptr %260, align 4, !tbaa !5
  %5712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5713 = load i32, ptr @test_count, align 4, !tbaa !5
  %5714 = load i32, ptr %206, align 4, !tbaa !5
  %5715 = call ptr @s2n_strerror(i32 noundef %5714, ptr noundef nonnull @.str.4) #12
  %5716 = load i32, ptr %206, align 4, !tbaa !5
  %5717 = call ptr @s2n_strerror_debug(i32 noundef %5716, ptr noundef nonnull @.str.4) #12
  %5718 = load i32, ptr %260, align 4, !tbaa !5
  %5719 = call ptr @strerror(i32 noundef %5718) #12
  %5720 = load i32, ptr %260, align 4, !tbaa !5
  %5721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5712, ptr noundef nonnull %.str.5.sink3474, i32 noundef %5713, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.1, i32 noundef 507, ptr noundef %5715, ptr noundef %5717, ptr noundef %5719, i32 noundef %5720) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5722:                                             ; preds = %5696
  %5723 = load i32, ptr @test_count, align 4, !tbaa !5
  %5724 = add nsw i32 %5723, 1
  store i32 %5724, ptr @test_count, align 4, !tbaa !5
  %5725 = call i32 @s2n_connection_free(ptr noundef nonnull %5232) #12
  %5726 = icmp eq i32 %5725, -1
  br i1 %5726, label %5727, label %5749

5727:                                             ; preds = %5722
  %5728 = load i32, ptr %260, align 4, !tbaa !5
  %5729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5730 = call i32 @s2n_print_stacktrace(ptr noundef %5729) #12
  %5731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5732 = trunc nuw i8 %5731 to i1
  br i1 %5732, label %5733, label %5737

5733:                                             ; preds = %5727
  %5734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5735 = call i32 @fileno(ptr noundef %5734) #12
  %5736 = call i32 @isatty(i32 noundef %5735) #12
  %.not1519 = icmp eq i32 %5736, 0
  br i1 %.not1519, label %5737, label %5738

5737:                                             ; preds = %5733, %5727
  br label %5738

5738:                                             ; preds = %5733, %5737
  %.str.5.sink3483 = phi ptr [ @.str.5, %5737 ], [ @.str.2, %5733 ]
  store i32 %5728, ptr %260, align 4, !tbaa !5
  %5739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5740 = load i32, ptr @test_count, align 4, !tbaa !5
  %5741 = load i32, ptr %206, align 4, !tbaa !5
  %5742 = call ptr @s2n_strerror(i32 noundef %5741, ptr noundef nonnull @.str.4) #12
  %5743 = load i32, ptr %206, align 4, !tbaa !5
  %5744 = call ptr @s2n_strerror_debug(i32 noundef %5743, ptr noundef nonnull @.str.4) #12
  %5745 = load i32, ptr %260, align 4, !tbaa !5
  %5746 = call ptr @strerror(i32 noundef %5745) #12
  %5747 = load i32, ptr %260, align 4, !tbaa !5
  %5748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5739, ptr noundef nonnull %.str.5.sink3483, i32 noundef %5740, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 508, ptr noundef %5742, ptr noundef %5744, ptr noundef %5746, i32 noundef %5747) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5749:                                             ; preds = %5722
  %5750 = load i32, ptr @test_count, align 4, !tbaa !5
  %5751 = add nsw i32 %5750, 1
  store i32 %5751, ptr @test_count, align 4, !tbaa !5
  %5752 = call i32 @s2n_connection_free(ptr noundef nonnull %5259) #12
  %5753 = icmp eq i32 %5752, -1
  br i1 %5753, label %5754, label %5776

5754:                                             ; preds = %5749
  %5755 = load i32, ptr %260, align 4, !tbaa !5
  %5756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5757 = call i32 @s2n_print_stacktrace(ptr noundef %5756) #12
  %5758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5759 = trunc nuw i8 %5758 to i1
  br i1 %5759, label %5760, label %5764

5760:                                             ; preds = %5754
  %5761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5762 = call i32 @fileno(ptr noundef %5761) #12
  %5763 = call i32 @isatty(i32 noundef %5762) #12
  %.not1518 = icmp eq i32 %5763, 0
  br i1 %.not1518, label %5764, label %5765

5764:                                             ; preds = %5760, %5754
  br label %5765

5765:                                             ; preds = %5760, %5764
  %.str.5.sink3492 = phi ptr [ @.str.5, %5764 ], [ @.str.2, %5760 ]
  store i32 %5755, ptr %260, align 4, !tbaa !5
  %5766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5767 = load i32, ptr @test_count, align 4, !tbaa !5
  %5768 = load i32, ptr %206, align 4, !tbaa !5
  %5769 = call ptr @s2n_strerror(i32 noundef %5768, ptr noundef nonnull @.str.4) #12
  %5770 = load i32, ptr %206, align 4, !tbaa !5
  %5771 = call ptr @s2n_strerror_debug(i32 noundef %5770, ptr noundef nonnull @.str.4) #12
  %5772 = load i32, ptr %260, align 4, !tbaa !5
  %5773 = call ptr @strerror(i32 noundef %5772) #12
  %5774 = load i32, ptr %260, align 4, !tbaa !5
  %5775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5766, ptr noundef nonnull %.str.5.sink3492, i32 noundef %5767, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 509, ptr noundef %5769, ptr noundef %5771, ptr noundef %5773, i32 noundef %5774) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5776:                                             ; preds = %5749
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #12
  %5777 = load i32, ptr @test_count, align 4, !tbaa !5
  %5778 = add nsw i32 %5777, 1
  store i32 %5778, ptr @test_count, align 4, !tbaa !5
  %5779 = call i32 (...) @s2n_disable_tls13_in_test() #12
  %5780 = icmp eq i32 %5779, -1
  br i1 %5780, label %5781, label %5803

5781:                                             ; preds = %5776
  %5782 = load i32, ptr %260, align 4, !tbaa !5
  %5783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5784 = call i32 @s2n_print_stacktrace(ptr noundef %5783) #12
  %5785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5786 = trunc nuw i8 %5785 to i1
  br i1 %5786, label %5787, label %5791

5787:                                             ; preds = %5781
  %5788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5789 = call i32 @fileno(ptr noundef %5788) #12
  %5790 = call i32 @isatty(i32 noundef %5789) #12
  %.not1517 = icmp eq i32 %5790, 0
  br i1 %.not1517, label %5791, label %5792

5791:                                             ; preds = %5787, %5781
  br label %5792

5792:                                             ; preds = %5787, %5791
  %.str.5.sink3501 = phi ptr [ @.str.5, %5791 ], [ @.str.2, %5787 ]
  store i32 %5782, ptr %260, align 4, !tbaa !5
  %5793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5794 = load i32, ptr @test_count, align 4, !tbaa !5
  %5795 = load i32, ptr %206, align 4, !tbaa !5
  %5796 = call ptr @s2n_strerror(i32 noundef %5795, ptr noundef nonnull @.str.4) #12
  %5797 = load i32, ptr %206, align 4, !tbaa !5
  %5798 = call ptr @s2n_strerror_debug(i32 noundef %5797, ptr noundef nonnull @.str.4) #12
  %5799 = load i32, ptr %260, align 4, !tbaa !5
  %5800 = call ptr @strerror(i32 noundef %5799) #12
  %5801 = load i32, ptr %260, align 4, !tbaa !5
  %5802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5793, ptr noundef nonnull %.str.5.sink3501, i32 noundef %5794, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.1, i32 noundef 511, ptr noundef %5796, ptr noundef %5798, ptr noundef %5800, i32 noundef %5801) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5803:                                             ; preds = %5776
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %27, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.test_kem_groups, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %28) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %28, i8 0, i64 40, i1 false)
  %5804 = getelementptr inbounds i8, ptr %28, i64 16
  store i8 2, ptr %5804, align 8, !tbaa !72
  %5805 = getelementptr inbounds i8, ptr %28, i64 24
  store ptr %27, ptr %5805, align 8, !tbaa !74
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %29) #12
  store i8 30, ptr %29, align 8, !tbaa !75
  %5806 = getelementptr inbounds i8, ptr %29, i64 8
  store ptr @cipher_preferences_test_all_tls13, ptr %5806, align 8, !tbaa !77
  %5807 = getelementptr inbounds i8, ptr %29, i64 16
  store ptr %28, ptr %5807, align 8, !tbaa !78
  %5808 = getelementptr inbounds i8, ptr %29, i64 24
  store ptr @s2n_signature_preferences_20200207, ptr %5808, align 8, !tbaa !79
  %5809 = getelementptr inbounds i8, ptr %29, i64 32
  store ptr null, ptr %5809, align 8, !tbaa !80
  %5810 = getelementptr inbounds i8, ptr %29, i64 40
  store ptr @s2n_ecc_preferences_20200310, ptr %5810, align 8, !tbaa !81
  %5811 = getelementptr inbounds i8, ptr %29, i64 48
  store ptr null, ptr %5811, align 8, !tbaa !82
  %5812 = getelementptr inbounds i8, ptr %29, i64 56
  store i8 0, ptr %5812, align 8, !tbaa !83
  %5813 = getelementptr inbounds i8, ptr %29, i64 57
  store i16 0, ptr %5813, align 1
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %30) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %30, i8 0, i64 40, i1 false)
  %5814 = getelementptr inbounds i8, ptr %30, i64 16
  %5815 = load i8, ptr getelementptr inbounds (i8, ptr @kem_preferences_all, i64 16), align 8, !tbaa !72
  store i8 %5815, ptr %5814, align 8, !tbaa !72
  %5816 = getelementptr inbounds i8, ptr %30, i64 24
  %5817 = load ptr, ptr getelementptr inbounds (i8, ptr @kem_preferences_all, i64 24), align 8, !tbaa !74
  store ptr %5817, ptr %5816, align 8, !tbaa !74
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %31) #12
  store i8 30, ptr %31, align 8, !tbaa !75
  %5818 = getelementptr inbounds i8, ptr %31, i64 8
  store ptr @cipher_preferences_test_all_tls13, ptr %5818, align 8, !tbaa !77
  %5819 = getelementptr inbounds i8, ptr %31, i64 16
  store ptr %30, ptr %5819, align 8, !tbaa !78
  %5820 = getelementptr inbounds i8, ptr %31, i64 24
  store ptr @s2n_signature_preferences_20200207, ptr %5820, align 8, !tbaa !79
  %5821 = getelementptr inbounds i8, ptr %31, i64 32
  store ptr null, ptr %5821, align 8, !tbaa !80
  %5822 = getelementptr inbounds i8, ptr %31, i64 40
  store ptr @s2n_ecc_preferences_20200310, ptr %5822, align 8, !tbaa !81
  %5823 = getelementptr inbounds i8, ptr %31, i64 48
  store ptr null, ptr %5823, align 8, !tbaa !82
  %5824 = getelementptr inbounds i8, ptr %31, i64 56
  store i8 0, ptr %5824, align 8, !tbaa !83
  %5825 = getelementptr inbounds i8, ptr %31, i64 57
  store i16 0, ptr %5825, align 1
  %5826 = load i32, ptr @test_count, align 4, !tbaa !5
  %5827 = add nsw i32 %5826, 1
  store i32 %5827, ptr @test_count, align 4, !tbaa !5
  %5828 = call i32 (...) @s2n_enable_tls13_in_test() #12
  %5829 = icmp eq i32 %5828, -1
  br i1 %5829, label %5830, label %5852

5830:                                             ; preds = %5803
  %5831 = load i32, ptr %260, align 4, !tbaa !5
  %5832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5833 = call i32 @s2n_print_stacktrace(ptr noundef %5832) #12
  %5834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5835 = trunc nuw i8 %5834 to i1
  br i1 %5835, label %5836, label %5840

5836:                                             ; preds = %5830
  %5837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5838 = call i32 @fileno(ptr noundef %5837) #12
  %5839 = call i32 @isatty(i32 noundef %5838) #12
  %.not1516 = icmp eq i32 %5839, 0
  br i1 %.not1516, label %5840, label %5841

5840:                                             ; preds = %5836, %5830
  br label %5841

5841:                                             ; preds = %5836, %5840
  %.str.5.sink3510 = phi ptr [ @.str.5, %5840 ], [ @.str.2, %5836 ]
  store i32 %5831, ptr %260, align 4, !tbaa !5
  %5842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5843 = load i32, ptr @test_count, align 4, !tbaa !5
  %5844 = load i32, ptr %206, align 4, !tbaa !5
  %5845 = call ptr @s2n_strerror(i32 noundef %5844, ptr noundef nonnull @.str.4) #12
  %5846 = load i32, ptr %206, align 4, !tbaa !5
  %5847 = call ptr @s2n_strerror_debug(i32 noundef %5846, ptr noundef nonnull @.str.4) #12
  %5848 = load i32, ptr %260, align 4, !tbaa !5
  %5849 = call ptr @strerror(i32 noundef %5848) #12
  %5850 = load i32, ptr %260, align 4, !tbaa !5
  %5851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5842, ptr noundef nonnull %.str.5.sink3510, i32 noundef %5843, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 555, ptr noundef %5845, ptr noundef %5847, ptr noundef %5849, i32 noundef %5850) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5852:                                             ; preds = %5803
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #12
  %5853 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %5853, ptr %32, align 8, !tbaa !9
  %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 = icmp eq ptr %5853, null
  br i1 %5856, label %5857, label %5879

5857:                                             ; preds = %5852
  %5858 = load i32, ptr %260, align 4, !tbaa !5
  %5859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5860 = call i32 @s2n_print_stacktrace(ptr noundef %5859) #12
  %5861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5862 = trunc nuw i8 %5861 to i1
  br i1 %5862, label %5863, label %5867

5863:                                             ; preds = %5857
  %5864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5865 = call i32 @fileno(ptr noundef %5864) #12
  %5866 = call i32 @isatty(i32 noundef %5865) #12
  %.not1515 = icmp eq i32 %5866, 0
  br i1 %.not1515, label %5867, label %5868

5867:                                             ; preds = %5863, %5857
  br label %5868

5868:                                             ; preds = %5863, %5867
  %.str.5.sink3519 = phi ptr [ @.str.5, %5867 ], [ @.str.2, %5863 ]
  store i32 %5858, ptr %260, align 4, !tbaa !5
  %5869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5870 = load i32, ptr @test_count, align 4, !tbaa !5
  %5871 = load i32, ptr %206, align 4, !tbaa !5
  %5872 = call ptr @s2n_strerror(i32 noundef %5871, ptr noundef nonnull @.str.4) #12
  %5873 = load i32, ptr %206, align 4, !tbaa !5
  %5874 = call ptr @s2n_strerror_debug(i32 noundef %5873, ptr noundef nonnull @.str.4) #12
  %5875 = load i32, ptr %260, align 4, !tbaa !5
  %5876 = call ptr @strerror(i32 noundef %5875) #12
  %5877 = load i32, ptr %260, align 4, !tbaa !5
  %5878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5869, ptr noundef nonnull %.str.5.sink3519, i32 noundef %5870, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.1, i32 noundef 562, ptr noundef %5872, ptr noundef %5874, ptr noundef %5876, i32 noundef %5877) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5879:                                             ; preds = %5852
  %5880 = getelementptr inbounds i8, ptr %5853, i64 16
  store ptr %29, ptr %5880, align 8, !tbaa !15
  %5881 = getelementptr inbounds i8, ptr %5853, i64 2204
  store i32 2, ptr %5881, align 4, !tbaa !84
  %5882 = add nsw i32 %5854, 2
  store i32 %5882, ptr @test_count, align 4, !tbaa !5
  %5883 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %5853) #12
  %5884 = icmp eq i32 %5883, -1
  br i1 %5884, label %5885, label %5907

5885:                                             ; preds = %5879
  %5886 = load i32, ptr %260, align 4, !tbaa !5
  %5887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5888 = call i32 @s2n_print_stacktrace(ptr noundef %5887) #12
  %5889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5890 = trunc nuw i8 %5889 to i1
  br i1 %5890, label %5891, label %5895

5891:                                             ; preds = %5885
  %5892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5893 = call i32 @fileno(ptr noundef %5892) #12
  %5894 = call i32 @isatty(i32 noundef %5893) #12
  %.not1514 = icmp eq i32 %5894, 0
  br i1 %.not1514, label %5895, label %5896

5895:                                             ; preds = %5891, %5885
  br label %5896

5896:                                             ; preds = %5891, %5895
  %.str.5.sink3528 = phi ptr [ @.str.5, %5895 ], [ @.str.2, %5891 ]
  store i32 %5886, ptr %260, align 4, !tbaa !5
  %5897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5898 = load i32, ptr @test_count, align 4, !tbaa !5
  %5899 = load i32, ptr %206, align 4, !tbaa !5
  %5900 = call ptr @s2n_strerror(i32 noundef %5899, ptr noundef nonnull @.str.4) #12
  %5901 = load i32, ptr %206, align 4, !tbaa !5
  %5902 = call ptr @s2n_strerror_debug(i32 noundef %5901, ptr noundef nonnull @.str.4) #12
  %5903 = load i32, ptr %260, align 4, !tbaa !5
  %5904 = call ptr @strerror(i32 noundef %5903) #12
  %5905 = load i32, ptr %260, align 4, !tbaa !5
  %5906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5897, ptr noundef nonnull %.str.5.sink3528, i32 noundef %5898, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 569, ptr noundef %5900, ptr noundef %5902, ptr noundef %5904, i32 noundef %5905) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5907:                                             ; preds = %5879
  %5908 = load i32, ptr @test_count, align 4, !tbaa !5
  %5909 = add nsw i32 %5908, 1
  store i32 %5909, ptr @test_count, align 4, !tbaa !5
  %5910 = load ptr, ptr %32, align 8, !tbaa !9
  %5911 = call zeroext i1 @s2n_is_hello_retry_message(ptr noundef %5910) #12
  br i1 %5911, label %5934, label %5912

5912:                                             ; preds = %5907
  %5913 = load i32, ptr %260, align 4, !tbaa !5
  %5914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5915 = call i32 @s2n_print_stacktrace(ptr noundef %5914) #12
  %5916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5917 = trunc nuw i8 %5916 to i1
  br i1 %5917, label %5918, label %5922

5918:                                             ; preds = %5912
  %5919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5920 = call i32 @fileno(ptr noundef %5919) #12
  %5921 = call i32 @isatty(i32 noundef %5920) #12
  %.not1327 = icmp eq i32 %5921, 0
  br i1 %.not1327, label %5922, label %5923

5922:                                             ; preds = %5918, %5912
  br label %5923

5923:                                             ; preds = %5918, %5922
  %.str.5.sink3537 = phi ptr [ @.str.5, %5922 ], [ @.str.2, %5918 ]
  store i32 %5913, ptr %260, align 4, !tbaa !5
  %5924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5925 = load i32, ptr @test_count, align 4, !tbaa !5
  %5926 = load i32, ptr %206, align 4, !tbaa !5
  %5927 = call ptr @s2n_strerror(i32 noundef %5926, ptr noundef nonnull @.str.4) #12
  %5928 = load i32, ptr %206, align 4, !tbaa !5
  %5929 = call ptr @s2n_strerror_debug(i32 noundef %5928, ptr noundef nonnull @.str.4) #12
  %5930 = load i32, ptr %260, align 4, !tbaa !5
  %5931 = call ptr @strerror(i32 noundef %5930) #12
  %5932 = load i32, ptr %260, align 4, !tbaa !5
  %5933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5924, ptr noundef nonnull %.str.5.sink3537, i32 noundef %5925, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.1, i32 noundef 570, ptr noundef %5927, ptr noundef %5929, ptr noundef %5931, i32 noundef %5932) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5934:                                             ; preds = %5907
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %33) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %34, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %35) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %35, i8 0, i64 40, i1 false)
  %5935 = load i32, ptr @test_count, align 4, !tbaa !5
  %5936 = add nsw i32 %5935, 1
  store i32 %5936, ptr @test_count, align 4, !tbaa !5
  %5937 = call i32 @s2n_blob_init(ptr noundef nonnull %34, ptr noundef nonnull %33, i32 noundef 2) #12
  %5938 = icmp eq i32 %5937, -1
  br i1 %5938, label %5939, label %5961

5939:                                             ; preds = %5934
  %5940 = load i32, ptr %260, align 4, !tbaa !5
  %5941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5942 = call i32 @s2n_print_stacktrace(ptr noundef %5941) #12
  %5943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5944 = trunc nuw i8 %5943 to i1
  br i1 %5944, label %5945, label %5949

5945:                                             ; preds = %5939
  %5946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5947 = call i32 @fileno(ptr noundef %5946) #12
  %5948 = call i32 @isatty(i32 noundef %5947) #12
  %.not1513 = icmp eq i32 %5948, 0
  br i1 %.not1513, label %5949, label %5950

5949:                                             ; preds = %5945, %5939
  br label %5950

5950:                                             ; preds = %5945, %5949
  %.str.5.sink3546 = phi ptr [ @.str.5, %5949 ], [ @.str.2, %5945 ]
  store i32 %5940, ptr %260, align 4, !tbaa !5
  %5951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5952 = load i32, ptr @test_count, align 4, !tbaa !5
  %5953 = load i32, ptr %206, align 4, !tbaa !5
  %5954 = call ptr @s2n_strerror(i32 noundef %5953, ptr noundef nonnull @.str.4) #12
  %5955 = load i32, ptr %206, align 4, !tbaa !5
  %5956 = call ptr @s2n_strerror_debug(i32 noundef %5955, ptr noundef nonnull @.str.4) #12
  %5957 = load i32, ptr %260, align 4, !tbaa !5
  %5958 = call ptr @strerror(i32 noundef %5957) #12
  %5959 = load i32, ptr %260, align 4, !tbaa !5
  %5960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5951, ptr noundef nonnull %.str.5.sink3546, i32 noundef %5952, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.1, i32 noundef 575, ptr noundef %5954, ptr noundef %5956, ptr noundef %5958, i32 noundef %5959) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5961:                                             ; preds = %5934
  %5962 = load i32, ptr @test_count, align 4, !tbaa !5
  %5963 = add nsw i32 %5962, 1
  store i32 %5963, ptr @test_count, align 4, !tbaa !5
  %5964 = call i32 @s2n_stuffer_init(ptr noundef nonnull %35, ptr noundef nonnull %34) #12
  %5965 = icmp eq i32 %5964, -1
  br i1 %5965, label %5966, label %5988

5966:                                             ; preds = %5961
  %5967 = load i32, ptr %260, align 4, !tbaa !5
  %5968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5969 = call i32 @s2n_print_stacktrace(ptr noundef %5968) #12
  %5970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5971 = trunc nuw i8 %5970 to i1
  br i1 %5971, label %5972, label %5976

5972:                                             ; preds = %5966
  %5973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5974 = call i32 @fileno(ptr noundef %5973) #12
  %5975 = call i32 @isatty(i32 noundef %5974) #12
  %.not1512 = icmp eq i32 %5975, 0
  br i1 %.not1512, label %5976, label %5977

5976:                                             ; preds = %5972, %5966
  br label %5977

5977:                                             ; preds = %5972, %5976
  %.str.5.sink3555 = phi ptr [ @.str.5, %5976 ], [ @.str.2, %5972 ]
  store i32 %5967, ptr %260, align 4, !tbaa !5
  %5978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5979 = load i32, ptr @test_count, align 4, !tbaa !5
  %5980 = load i32, ptr %206, align 4, !tbaa !5
  %5981 = call ptr @s2n_strerror(i32 noundef %5980, ptr noundef nonnull @.str.4) #12
  %5982 = load i32, ptr %206, align 4, !tbaa !5
  %5983 = call ptr @s2n_strerror_debug(i32 noundef %5982, ptr noundef nonnull @.str.4) #12
  %5984 = load i32, ptr %260, align 4, !tbaa !5
  %5985 = call ptr @strerror(i32 noundef %5984) #12
  %5986 = load i32, ptr %260, align 4, !tbaa !5
  %5987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5978, ptr noundef nonnull %.str.5.sink3555, i32 noundef %5979, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.1, i32 noundef 576, ptr noundef %5981, ptr noundef %5983, ptr noundef %5985, i32 noundef %5986) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5988:                                             ; preds = %5961
  %5989 = load i32, ptr @test_count, align 4, !tbaa !5
  %5990 = add nsw i32 %5989, 1
  store i32 %5990, ptr @test_count, align 4, !tbaa !5
  %5991 = load ptr, ptr %5807, align 8, !tbaa !78
  %5992 = getelementptr inbounds i8, ptr %5991, i64 24
  %5993 = load ptr, ptr %5992, align 8, !tbaa !74
  %5994 = load ptr, ptr %5993, align 8, !tbaa !9
  %5995 = getelementptr inbounds i8, ptr %5994, i64 8
  %5996 = load i16, ptr %5995, align 8, !tbaa !85
  %5997 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %35, i16 noundef zeroext %5996) #12
  %5998 = icmp eq i32 %5997, -1
  br i1 %5998, label %5999, label %6021

5999:                                             ; preds = %5988
  %6000 = load i32, ptr %260, align 4, !tbaa !5
  %6001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6002 = call i32 @s2n_print_stacktrace(ptr noundef %6001) #12
  %6003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6004 = trunc nuw i8 %6003 to i1
  br i1 %6004, label %6005, label %6009

6005:                                             ; preds = %5999
  %6006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6007 = call i32 @fileno(ptr noundef %6006) #12
  %6008 = call i32 @isatty(i32 noundef %6007) #12
  %.not1511 = icmp eq i32 %6008, 0
  br i1 %.not1511, label %6009, label %6010

6009:                                             ; preds = %6005, %5999
  br label %6010

6010:                                             ; preds = %6005, %6009
  %.str.5.sink3564 = phi ptr [ @.str.5, %6009 ], [ @.str.2, %6005 ]
  store i32 %6000, ptr %260, align 4, !tbaa !5
  %6011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6012 = load i32, ptr @test_count, align 4, !tbaa !5
  %6013 = load i32, ptr %206, align 4, !tbaa !5
  %6014 = call ptr @s2n_strerror(i32 noundef %6013, ptr noundef nonnull @.str.4) #12
  %6015 = load i32, ptr %206, align 4, !tbaa !5
  %6016 = call ptr @s2n_strerror_debug(i32 noundef %6015, ptr noundef nonnull @.str.4) #12
  %6017 = load i32, ptr %260, align 4, !tbaa !5
  %6018 = call ptr @strerror(i32 noundef %6017) #12
  %6019 = load i32, ptr %260, align 4, !tbaa !5
  %6020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6011, ptr noundef nonnull %.str.5.sink3564, i32 noundef %6012, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.1, i32 noundef 577, ptr noundef %6014, ptr noundef %6016, ptr noundef %6018, i32 noundef %6019) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6021:                                             ; preds = %5988
  %6022 = load ptr, ptr %32, align 8, !tbaa !9
  %6023 = call i32 %2349(ptr noundef %6022, ptr noundef nonnull %35) #12
  %6024 = call zeroext i1 @s2n_pq_is_enabled() #12
  %6025 = load i32, ptr @test_count, align 4, !tbaa !5
  %6026 = add nsw i32 %6025, 1
  store i32 %6026, ptr @test_count, align 4, !tbaa !5
  %6027 = icmp eq i32 %6023, -1
  br i1 %6024, label %6028, label %6051

6028:                                             ; preds = %6021
  br i1 %6027, label %6029, label %6127

6029:                                             ; preds = %6028
  %6030 = load i32, ptr %260, align 4, !tbaa !5
  %6031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6032 = call i32 @s2n_print_stacktrace(ptr noundef %6031) #12
  %6033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6034 = trunc nuw i8 %6033 to i1
  br i1 %6034, label %6035, label %6039

6035:                                             ; preds = %6029
  %6036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6037 = call i32 @fileno(ptr noundef %6036) #12
  %6038 = call i32 @isatty(i32 noundef %6037) #12
  %.not1510 = icmp eq i32 %6038, 0
  br i1 %.not1510, label %6039, label %6040

6039:                                             ; preds = %6035, %6029
  br label %6040

6040:                                             ; preds = %6035, %6039
  %.str.5.sink3573 = phi ptr [ @.str.5, %6039 ], [ @.str.2, %6035 ]
  store i32 %6030, ptr %260, align 4, !tbaa !5
  %6041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6042 = load i32, ptr @test_count, align 4, !tbaa !5
  %6043 = load i32, ptr %206, align 4, !tbaa !5
  %6044 = call ptr @s2n_strerror(i32 noundef %6043, ptr noundef nonnull @.str.4) #12
  %6045 = load i32, ptr %206, align 4, !tbaa !5
  %6046 = call ptr @s2n_strerror_debug(i32 noundef %6045, ptr noundef nonnull @.str.4) #12
  %6047 = load i32, ptr %260, align 4, !tbaa !5
  %6048 = call ptr @strerror(i32 noundef %6047) #12
  %6049 = load i32, ptr %260, align 4, !tbaa !5
  %6050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6041, ptr noundef nonnull %.str.5.sink3573, i32 noundef %6042, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.1, i32 noundef 581, ptr noundef %6044, ptr noundef %6046, ptr noundef %6048, i32 noundef %6049) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6051:                                             ; preds = %6021
  br i1 %6027, label %6074, label %6052

6052:                                             ; preds = %6051
  %6053 = load i32, ptr %260, align 4, !tbaa !5
  %6054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6055 = call i32 @s2n_print_stacktrace(ptr noundef %6054) #12
  %6056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6057 = trunc nuw i8 %6056 to i1
  br i1 %6057, label %6058, label %6062

6058:                                             ; preds = %6052
  %6059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6060 = call i32 @fileno(ptr noundef %6059) #12
  %6061 = call i32 @isatty(i32 noundef %6060) #12
  %.not1328 = icmp eq i32 %6061, 0
  br i1 %.not1328, label %6062, label %6063

6062:                                             ; preds = %6058, %6052
  br label %6063

6063:                                             ; preds = %6058, %6062
  %.str.5.sink3582 = phi ptr [ @.str.5, %6062 ], [ @.str.2, %6058 ]
  store i32 %6053, ptr %260, align 4, !tbaa !5
  %6064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6065 = load i32, ptr @test_count, align 4, !tbaa !5
  %6066 = load i32, ptr %206, align 4, !tbaa !5
  %6067 = call ptr @s2n_strerror(i32 noundef %6066, ptr noundef nonnull @.str.4) #12
  %6068 = load i32, ptr %206, align 4, !tbaa !5
  %6069 = call ptr @s2n_strerror_debug(i32 noundef %6068, ptr noundef nonnull @.str.4) #12
  %6070 = load i32, ptr %260, align 4, !tbaa !5
  %6071 = call ptr @strerror(i32 noundef %6070) #12
  %6072 = load i32, ptr %260, align 4, !tbaa !5
  %6073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6064, ptr noundef nonnull %.str.5.sink3582, i32 noundef %6065, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.1, i32 noundef 583, ptr noundef %6067, ptr noundef %6069, ptr noundef %6071, i32 noundef %6072) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6074:                                             ; preds = %6051
  %6075 = add nsw i32 %6025, 2
  store i32 %6075, ptr @test_count, align 4, !tbaa !5
  %6076 = load i32, ptr %206, align 4, !tbaa !5
  %6077 = icmp eq i32 %6076, 335544356
  br i1 %6077, label %6100, label %6078

6078:                                             ; preds = %6074
  %6079 = load i32, ptr %260, align 4, !tbaa !5
  %6080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6081 = call i32 @s2n_print_stacktrace(ptr noundef %6080) #12
  %6082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6083 = trunc nuw i8 %6082 to i1
  br i1 %6083, label %6084, label %6088

6084:                                             ; preds = %6078
  %6085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6086 = call i32 @fileno(ptr noundef %6085) #12
  %6087 = call i32 @isatty(i32 noundef %6086) #12
  %.not1329 = icmp eq i32 %6087, 0
  br i1 %.not1329, label %6088, label %6089

6088:                                             ; preds = %6084, %6078
  br label %6089

6089:                                             ; preds = %6084, %6088
  %.str.5.sink3591 = phi ptr [ @.str.5, %6088 ], [ @.str.2, %6084 ]
  store i32 %6079, ptr %260, align 4, !tbaa !5
  %6090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6091 = load i32, ptr @test_count, align 4, !tbaa !5
  %6092 = load i32, ptr %206, align 4, !tbaa !5
  %6093 = call ptr @s2n_strerror(i32 noundef %6092, ptr noundef nonnull @.str.4) #12
  %6094 = load i32, ptr %206, align 4, !tbaa !5
  %6095 = call ptr @s2n_strerror_debug(i32 noundef %6094, ptr noundef nonnull @.str.4) #12
  %6096 = load i32, ptr %260, align 4, !tbaa !5
  %6097 = call ptr @strerror(i32 noundef %6096) #12
  %6098 = load i32, ptr %260, align 4, !tbaa !5
  %6099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6090, ptr noundef nonnull %.str.5.sink3591, i32 noundef %6091, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 583, ptr noundef %6093, ptr noundef %6095, ptr noundef %6097, i32 noundef %6098) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6100:                                             ; preds = %6074
  %6101 = add nsw i32 %6025, 3
  store i32 %6101, ptr @test_count, align 4, !tbaa !5
  %6102 = call ptr @s2n_strerror_debug(i32 noundef 335544356, ptr noundef nonnull @.str.4) #12
  %6103 = icmp eq ptr %6102, null
  br i1 %6103, label %6104, label %6126

6104:                                             ; preds = %6100
  %6105 = load i32, ptr %260, align 4, !tbaa !5
  %6106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6107 = call i32 @s2n_print_stacktrace(ptr noundef %6106) #12
  %6108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6109 = trunc nuw i8 %6108 to i1
  br i1 %6109, label %6110, label %6114

6110:                                             ; preds = %6104
  %6111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6112 = call i32 @fileno(ptr noundef %6111) #12
  %6113 = call i32 @isatty(i32 noundef %6112) #12
  %.not1330 = icmp eq i32 %6113, 0
  br i1 %.not1330, label %6114, label %6115

6114:                                             ; preds = %6110, %6104
  br label %6115

6115:                                             ; preds = %6110, %6114
  %.str.5.sink3600 = phi ptr [ @.str.5, %6114 ], [ @.str.2, %6110 ]
  store i32 %6105, ptr %260, align 4, !tbaa !5
  %6116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6117 = load i32, ptr @test_count, align 4, !tbaa !5
  %6118 = load i32, ptr %206, align 4, !tbaa !5
  %6119 = call ptr @s2n_strerror(i32 noundef %6118, ptr noundef nonnull @.str.4) #12
  %6120 = load i32, ptr %206, align 4, !tbaa !5
  %6121 = call ptr @s2n_strerror_debug(i32 noundef %6120, ptr noundef nonnull @.str.4) #12
  %6122 = load i32, ptr %260, align 4, !tbaa !5
  %6123 = call ptr @strerror(i32 noundef %6122) #12
  %6124 = load i32, ptr %260, align 4, !tbaa !5
  %6125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6116, ptr noundef nonnull %.str.5.sink3600, i32 noundef %6117, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 583, ptr noundef %6119, ptr noundef %6121, ptr noundef %6123, i32 noundef %6124) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6126:                                             ; preds = %6100
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  br label %6127

6127:                                             ; preds = %6028, %6126
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %33) #12
  %6128 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %32) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #12
  %6129 = call zeroext i1 @s2n_pq_is_enabled() #12
  br i1 %6129, label %.preheader1669, label %.loopexit1668

.preheader1669:                                   ; preds = %6127
  %6130 = getelementptr inbounds i8, ptr %37, i64 28
  %6131 = getelementptr inbounds i8, ptr %37, i64 24
  br label %6137

6132:                                             ; preds = %6772
  %6133 = load i32, ptr @test_count, align 4, !tbaa !5
  %6134 = add nsw i32 %6133, 1
  store i32 %6134, ptr @test_count, align 4, !tbaa !5
  %6135 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %6136 = icmp eq ptr %6135, null
  br i1 %6136, label %6773, label %6795

6137:                                             ; preds = %.preheader1669, %6772
  %6138 = phi i1 [ true, %.preheader1669 ], [ false, %6772 ]
  %.012251684.sroa.phi = phi ptr [ %27, %.preheader1669 ], [ %.012251684.sroa.gep5167, %6772 ]
  %.012251684 = phi i64 [ 0, %.preheader1669 ], [ 1, %6772 ]
  %6139 = load ptr, ptr %.012251684.sroa.phi, align 8, !tbaa !9
  %6140 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %6139) #12
  br i1 %6140, label %6141, label %6772

6141:                                             ; preds = %6137
  %6142 = load i32, ptr @test_count, align 4, !tbaa !5
  %6143 = add nsw i32 %6142, 1
  store i32 %6143, ptr @test_count, align 4, !tbaa !5
  %6144 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %6145 = icmp eq ptr %6144, null
  br i1 %6145, label %6146, label %6168

6146:                                             ; preds = %6141
  %6147 = load i32, ptr %260, align 4, !tbaa !5
  %6148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6149 = call i32 @s2n_print_stacktrace(ptr noundef %6148) #12
  %6150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6151 = trunc nuw i8 %6150 to i1
  br i1 %6151, label %6152, label %6156

6152:                                             ; preds = %6146
  %6153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6154 = call i32 @fileno(ptr noundef %6153) #12
  %6155 = call i32 @isatty(i32 noundef %6154) #12
  %.not1509 = icmp eq i32 %6155, 0
  br i1 %.not1509, label %6156, label %6157

6156:                                             ; preds = %6152, %6146
  br label %6157

6157:                                             ; preds = %6152, %6156
  %.str.5.sink3609 = phi ptr [ @.str.5, %6156 ], [ @.str.2, %6152 ]
  store i32 %6147, ptr %260, align 4, !tbaa !5
  %6158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6159 = load i32, ptr @test_count, align 4, !tbaa !5
  %6160 = load i32, ptr %206, align 4, !tbaa !5
  %6161 = call ptr @s2n_strerror(i32 noundef %6160, ptr noundef nonnull @.str.4) #12
  %6162 = load i32, ptr %206, align 4, !tbaa !5
  %6163 = call ptr @s2n_strerror_debug(i32 noundef %6162, ptr noundef nonnull @.str.4) #12
  %6164 = load i32, ptr %260, align 4, !tbaa !5
  %6165 = call ptr @strerror(i32 noundef %6164) #12
  %6166 = load i32, ptr %260, align 4, !tbaa !5
  %6167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6158, ptr noundef nonnull %.str.5.sink3609, i32 noundef %6159, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 596, ptr noundef %6161, ptr noundef %6163, ptr noundef %6165, i32 noundef %6166) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6168:                                             ; preds = %6141
  %6169 = getelementptr inbounds i8, ptr %6144, i64 16
  store ptr %29, ptr %6169, align 8, !tbaa !15
  %6170 = getelementptr inbounds i8, ptr %6144, i64 832
  %6171 = getelementptr inbounds i8, ptr %6144, i64 840
  %6172 = getelementptr inbounds i8, ptr %6144, i64 872
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %36) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %36, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %37) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %37, i8 0, i64 40, i1 false)
  %6173 = load i32, ptr @test_count, align 4, !tbaa !5
  %6174 = add nsw i32 %6173, 1
  store i32 %6174, ptr @test_count, align 4, !tbaa !5
  %6175 = call i32 @s2n_read_server_key_share_hybrid_test_vectors(ptr noundef %6139, ptr noundef nonnull %6172, ptr noundef nonnull %36, ptr noundef nonnull %37)
  %6176 = icmp eq i32 %6175, -1
  br i1 %6176, label %6177, label %6199

6177:                                             ; preds = %6168
  %6178 = load i32, ptr %260, align 4, !tbaa !5
  %6179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6180 = call i32 @s2n_print_stacktrace(ptr noundef %6179) #12
  %6181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6182 = trunc nuw i8 %6181 to i1
  br i1 %6182, label %6183, label %6187

6183:                                             ; preds = %6177
  %6184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6185 = call i32 @fileno(ptr noundef %6184) #12
  %6186 = call i32 @isatty(i32 noundef %6185) #12
  %.not1508 = icmp eq i32 %6186, 0
  br i1 %.not1508, label %6187, label %6188

6187:                                             ; preds = %6183, %6177
  br label %6188

6188:                                             ; preds = %6183, %6187
  %.str.5.sink3618 = phi ptr [ @.str.5, %6187 ], [ @.str.2, %6183 ]
  store i32 %6178, ptr %260, align 4, !tbaa !5
  %6189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6190 = load i32, ptr @test_count, align 4, !tbaa !5
  %6191 = load i32, ptr %206, align 4, !tbaa !5
  %6192 = call ptr @s2n_strerror(i32 noundef %6191, ptr noundef nonnull @.str.4) #12
  %6193 = load i32, ptr %206, align 4, !tbaa !5
  %6194 = call ptr @s2n_strerror_debug(i32 noundef %6193, ptr noundef nonnull @.str.4) #12
  %6195 = load i32, ptr %260, align 4, !tbaa !5
  %6196 = call ptr @strerror(i32 noundef %6195) #12
  %6197 = load i32, ptr %260, align 4, !tbaa !5
  %6198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6189, ptr noundef nonnull %.str.5.sink3618, i32 noundef %6190, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.1, i32 noundef 605, ptr noundef %6192, ptr noundef %6194, ptr noundef %6196, i32 noundef %6197) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6199:                                             ; preds = %6168
  %6200 = load i32, ptr @test_count, align 4, !tbaa !5
  %6201 = add nsw i32 %6200, 1
  store i32 %6201, ptr @test_count, align 4, !tbaa !5
  %6202 = getelementptr inbounds i8, ptr %6144, i64 720
  %6203 = load ptr, ptr %6202, align 8, !tbaa !48
  %6204 = icmp eq ptr %6203, null
  br i1 %6204, label %6227, label %6205

6205:                                             ; preds = %6199
  %6206 = load i32, ptr %260, align 4, !tbaa !5
  %6207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6208 = call i32 @s2n_print_stacktrace(ptr noundef %6207) #12
  %6209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6210 = trunc nuw i8 %6209 to i1
  br i1 %6210, label %6211, label %6215

6211:                                             ; preds = %6205
  %6212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6213 = call i32 @fileno(ptr noundef %6212) #12
  %6214 = call i32 @isatty(i32 noundef %6213) #12
  %.not1485 = icmp eq i32 %6214, 0
  br i1 %.not1485, label %6215, label %6216

6215:                                             ; preds = %6211, %6205
  br label %6216

6216:                                             ; preds = %6211, %6215
  %.str.5.sink3627 = phi ptr [ @.str.5, %6215 ], [ @.str.2, %6211 ]
  store i32 %6206, ptr %260, align 4, !tbaa !5
  %6217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6218 = load i32, ptr @test_count, align 4, !tbaa !5
  %6219 = load i32, ptr %206, align 4, !tbaa !5
  %6220 = call ptr @s2n_strerror(i32 noundef %6219, ptr noundef nonnull @.str.4) #12
  %6221 = load i32, ptr %206, align 4, !tbaa !5
  %6222 = call ptr @s2n_strerror_debug(i32 noundef %6221, ptr noundef nonnull @.str.4) #12
  %6223 = load i32, ptr %260, align 4, !tbaa !5
  %6224 = call ptr @strerror(i32 noundef %6223) #12
  %6225 = load i32, ptr %260, align 4, !tbaa !5
  %6226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6217, ptr noundef nonnull %.str.5.sink3627, i32 noundef %6218, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.1, i32 noundef 608, ptr noundef %6220, ptr noundef %6222, ptr noundef %6224, i32 noundef %6225) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6227:                                             ; preds = %6199
  %6228 = add nsw i32 %6200, 2
  store i32 %6228, ptr @test_count, align 4, !tbaa !5
  %6229 = load ptr, ptr %6170, align 8, !tbaa !87
  %6230 = icmp eq ptr %6229, null
  br i1 %6230, label %6253, label %6231

6231:                                             ; preds = %6227
  %6232 = load i32, ptr %260, align 4, !tbaa !5
  %6233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6234 = call i32 @s2n_print_stacktrace(ptr noundef %6233) #12
  %6235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6236 = trunc nuw i8 %6235 to i1
  br i1 %6236, label %6237, label %6241

6237:                                             ; preds = %6231
  %6238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6239 = call i32 @fileno(ptr noundef %6238) #12
  %6240 = call i32 @isatty(i32 noundef %6239) #12
  %.not1486 = icmp eq i32 %6240, 0
  br i1 %.not1486, label %6241, label %6242

6241:                                             ; preds = %6237, %6231
  br label %6242

6242:                                             ; preds = %6237, %6241
  %.str.5.sink3636 = phi ptr [ @.str.5, %6241 ], [ @.str.2, %6237 ]
  store i32 %6232, ptr %260, align 4, !tbaa !5
  %6243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6244 = load i32, ptr @test_count, align 4, !tbaa !5
  %6245 = load i32, ptr %206, align 4, !tbaa !5
  %6246 = call ptr @s2n_strerror(i32 noundef %6245, ptr noundef nonnull @.str.4) #12
  %6247 = load i32, ptr %206, align 4, !tbaa !5
  %6248 = call ptr @s2n_strerror_debug(i32 noundef %6247, ptr noundef nonnull @.str.4) #12
  %6249 = load i32, ptr %260, align 4, !tbaa !5
  %6250 = call ptr @strerror(i32 noundef %6249) #12
  %6251 = load i32, ptr %260, align 4, !tbaa !5
  %6252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6243, ptr noundef nonnull %.str.5.sink3636, i32 noundef %6244, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.1, i32 noundef 609, ptr noundef %6246, ptr noundef %6248, ptr noundef %6250, i32 noundef %6251) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6253:                                             ; preds = %6227
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #12
  store ptr null, ptr %38, align 8, !tbaa !9
  %6254 = add nsw i32 %6200, 3
  store i32 %6254, ptr @test_count, align 4, !tbaa !5
  %6255 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %6144, ptr noundef nonnull %38) #12
  %6256 = icmp eq i32 %6255, -1
  br i1 %6256, label %6257, label %6279

6257:                                             ; preds = %6253
  %6258 = load i32, ptr %260, align 4, !tbaa !5
  %6259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6260 = call i32 @s2n_print_stacktrace(ptr noundef %6259) #12
  %6261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6262 = trunc nuw i8 %6261 to i1
  br i1 %6262, label %6263, label %6267

6263:                                             ; preds = %6257
  %6264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6265 = call i32 @fileno(ptr noundef %6264) #12
  %6266 = call i32 @isatty(i32 noundef %6265) #12
  %.not1507 = icmp eq i32 %6266, 0
  br i1 %.not1507, label %6267, label %6268

6267:                                             ; preds = %6263, %6257
  br label %6268

6268:                                             ; preds = %6263, %6267
  %.str.5.sink3645 = phi ptr [ @.str.5, %6267 ], [ @.str.2, %6263 ]
  store i32 %6258, ptr %260, align 4, !tbaa !5
  %6269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6270 = load i32, ptr @test_count, align 4, !tbaa !5
  %6271 = load i32, ptr %206, align 4, !tbaa !5
  %6272 = call ptr @s2n_strerror(i32 noundef %6271, ptr noundef nonnull @.str.4) #12
  %6273 = load i32, ptr %206, align 4, !tbaa !5
  %6274 = call ptr @s2n_strerror_debug(i32 noundef %6273, ptr noundef nonnull @.str.4) #12
  %6275 = load i32, ptr %260, align 4, !tbaa !5
  %6276 = call ptr @strerror(i32 noundef %6275) #12
  %6277 = load i32, ptr %260, align 4, !tbaa !5
  %6278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6269, ptr noundef nonnull %.str.5.sink3645, i32 noundef %6270, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.1, i32 noundef 612, ptr noundef %6272, ptr noundef %6274, ptr noundef %6276, i32 noundef %6277) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6279:                                             ; preds = %6253
  %6280 = load i32, ptr @test_count, align 4, !tbaa !5
  %6281 = add nsw i32 %6280, 1
  store i32 %6281, ptr @test_count, align 4, !tbaa !5
  %6282 = load ptr, ptr %38, align 8, !tbaa !9
  %6283 = icmp eq ptr %6282, null
  br i1 %6283, label %6284, label %6306

6284:                                             ; preds = %6279
  %6285 = load i32, ptr %260, align 4, !tbaa !5
  %6286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6287 = call i32 @s2n_print_stacktrace(ptr noundef %6286) #12
  %6288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6289 = trunc nuw i8 %6288 to i1
  br i1 %6289, label %6290, label %6294

6290:                                             ; preds = %6284
  %6291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6292 = call i32 @fileno(ptr noundef %6291) #12
  %6293 = call i32 @isatty(i32 noundef %6292) #12
  %.not1506 = icmp eq i32 %6293, 0
  br i1 %.not1506, label %6294, label %6295

6294:                                             ; preds = %6290, %6284
  br label %6295

6295:                                             ; preds = %6290, %6294
  %.str.5.sink3654 = phi ptr [ @.str.5, %6294 ], [ @.str.2, %6290 ]
  store i32 %6285, ptr %260, align 4, !tbaa !5
  %6296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6297 = load i32, ptr @test_count, align 4, !tbaa !5
  %6298 = load i32, ptr %206, align 4, !tbaa !5
  %6299 = call ptr @s2n_strerror(i32 noundef %6298, ptr noundef nonnull @.str.4) #12
  %6300 = load i32, ptr %206, align 4, !tbaa !5
  %6301 = call ptr @s2n_strerror_debug(i32 noundef %6300, ptr noundef nonnull @.str.4) #12
  %6302 = load i32, ptr %260, align 4, !tbaa !5
  %6303 = call ptr @strerror(i32 noundef %6302) #12
  %6304 = load i32, ptr %260, align 4, !tbaa !5
  %6305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6296, ptr noundef nonnull %.str.5.sink3654, i32 noundef %6297, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 613, ptr noundef %6299, ptr noundef %6301, ptr noundef %6303, i32 noundef %6304) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6306:                                             ; preds = %6279
  %6307 = add nsw i32 %6280, 2
  store i32 %6307, ptr @test_count, align 4, !tbaa !5
  %6308 = getelementptr inbounds i8, ptr %6282, i64 24
  %6309 = load ptr, ptr %6308, align 8, !tbaa !74
  %6310 = getelementptr inbounds ptr, ptr %6309, i64 %.012251684
  %6311 = load ptr, ptr %6310, align 8, !tbaa !9
  %6312 = icmp eq ptr %6139, %6311
  br i1 %6312, label %6335, label %6313

6313:                                             ; preds = %6306
  %6314 = load i32, ptr %260, align 4, !tbaa !5
  %6315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6316 = call i32 @s2n_print_stacktrace(ptr noundef %6315) #12
  %6317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6318 = trunc nuw i8 %6317 to i1
  br i1 %6318, label %6319, label %6323

6319:                                             ; preds = %6313
  %6320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6321 = call i32 @fileno(ptr noundef %6320) #12
  %6322 = call i32 @isatty(i32 noundef %6321) #12
  %.not1487 = icmp eq i32 %6322, 0
  br i1 %.not1487, label %6323, label %6324

6323:                                             ; preds = %6319, %6313
  br label %6324

6324:                                             ; preds = %6319, %6323
  %.str.5.sink3663 = phi ptr [ @.str.5, %6323 ], [ @.str.2, %6319 ]
  store i32 %6314, ptr %260, align 4, !tbaa !5
  %6325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6326 = load i32, ptr @test_count, align 4, !tbaa !5
  %6327 = load i32, ptr %206, align 4, !tbaa !5
  %6328 = call ptr @s2n_strerror(i32 noundef %6327, ptr noundef nonnull @.str.4) #12
  %6329 = load i32, ptr %206, align 4, !tbaa !5
  %6330 = call ptr @s2n_strerror_debug(i32 noundef %6329, ptr noundef nonnull @.str.4) #12
  %6331 = load i32, ptr %260, align 4, !tbaa !5
  %6332 = call ptr @strerror(i32 noundef %6331) #12
  %6333 = load i32, ptr %260, align 4, !tbaa !5
  %6334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6325, ptr noundef nonnull %.str.5.sink3663, i32 noundef %6326, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.1, i32 noundef 614, ptr noundef %6328, ptr noundef %6330, ptr noundef %6332, i32 noundef %6333) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6335:                                             ; preds = %6306
  store ptr %6139, ptr %6170, align 8, !tbaa !87
  %6336 = getelementptr inbounds i8, ptr %6139, i64 16
  %6337 = load ptr, ptr %6336, align 8, !tbaa !88
  %6338 = getelementptr inbounds i8, ptr %6144, i64 928
  store ptr %6337, ptr %6338, align 8, !tbaa !89
  %6339 = getelementptr inbounds i8, ptr %6139, i64 24
  %6340 = load ptr, ptr %6339, align 8, !tbaa !90
  store ptr %6340, ptr %6171, align 8, !tbaa !91
  %6341 = getelementptr inbounds i8, ptr %6144, i64 920
  store i8 1, ptr %6341, align 8, !tbaa !92
  %6342 = add nsw i32 %6280, 3
  store i32 %6342, ptr @test_count, align 4, !tbaa !5
  %6343 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %6338) #12
  %6344 = icmp eq i32 %6343, -1
  br i1 %6344, label %6345, label %6367

6345:                                             ; preds = %6335
  %6346 = load i32, ptr %260, align 4, !tbaa !5
  %6347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6348 = call i32 @s2n_print_stacktrace(ptr noundef %6347) #12
  %6349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6350 = trunc nuw i8 %6349 to i1
  br i1 %6350, label %6351, label %6355

6351:                                             ; preds = %6345
  %6352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6353 = call i32 @fileno(ptr noundef %6352) #12
  %6354 = call i32 @isatty(i32 noundef %6353) #12
  %.not1505 = icmp eq i32 %6354, 0
  br i1 %.not1505, label %6355, label %6356

6355:                                             ; preds = %6351, %6345
  br label %6356

6356:                                             ; preds = %6351, %6355
  %.str.5.sink3672 = phi ptr [ @.str.5, %6355 ], [ @.str.2, %6351 ]
  store i32 %6346, ptr %260, align 4, !tbaa !5
  %6357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6358 = load i32, ptr @test_count, align 4, !tbaa !5
  %6359 = load i32, ptr %206, align 4, !tbaa !5
  %6360 = call ptr @s2n_strerror(i32 noundef %6359, ptr noundef nonnull @.str.4) #12
  %6361 = load i32, ptr %206, align 4, !tbaa !5
  %6362 = call ptr @s2n_strerror_debug(i32 noundef %6361, ptr noundef nonnull @.str.4) #12
  %6363 = load i32, ptr %260, align 4, !tbaa !5
  %6364 = call ptr @strerror(i32 noundef %6363) #12
  %6365 = load i32, ptr %260, align 4, !tbaa !5
  %6366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6357, ptr noundef nonnull %.str.5.sink3672, i32 noundef %6358, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 621, ptr noundef %6360, ptr noundef %6362, ptr noundef %6364, i32 noundef %6365) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6367:                                             ; preds = %6335
  %6368 = load i32, ptr @test_count, align 4, !tbaa !5
  %6369 = add nsw i32 %6368, 1
  store i32 %6369, ptr @test_count, align 4, !tbaa !5
  %6370 = call i32 %2349(ptr noundef nonnull %6144, ptr noundef nonnull %37) #12
  %6371 = icmp eq i32 %6370, -1
  br i1 %6371, label %6372, label %6394

6372:                                             ; preds = %6367
  %6373 = load i32, ptr %260, align 4, !tbaa !5
  %6374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6375 = call i32 @s2n_print_stacktrace(ptr noundef %6374) #12
  %6376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6377 = trunc nuw i8 %6376 to i1
  br i1 %6377, label %6378, label %6382

6378:                                             ; preds = %6372
  %6379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6380 = call i32 @fileno(ptr noundef %6379) #12
  %6381 = call i32 @isatty(i32 noundef %6380) #12
  %.not1504 = icmp eq i32 %6381, 0
  br i1 %.not1504, label %6382, label %6383

6382:                                             ; preds = %6378, %6372
  br label %6383

6383:                                             ; preds = %6378, %6382
  %.str.5.sink3681 = phi ptr [ @.str.5, %6382 ], [ @.str.2, %6378 ]
  store i32 %6373, ptr %260, align 4, !tbaa !5
  %6384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6385 = load i32, ptr @test_count, align 4, !tbaa !5
  %6386 = load i32, ptr %206, align 4, !tbaa !5
  %6387 = call ptr @s2n_strerror(i32 noundef %6386, ptr noundef nonnull @.str.4) #12
  %6388 = load i32, ptr %206, align 4, !tbaa !5
  %6389 = call ptr @s2n_strerror_debug(i32 noundef %6388, ptr noundef nonnull @.str.4) #12
  %6390 = load i32, ptr %260, align 4, !tbaa !5
  %6391 = call ptr @strerror(i32 noundef %6390) #12
  %6392 = load i32, ptr %260, align 4, !tbaa !5
  %6393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6384, ptr noundef nonnull %.str.5.sink3681, i32 noundef %6385, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.1, i32 noundef 624, ptr noundef %6387, ptr noundef %6389, ptr noundef %6391, i32 noundef %6392) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6394:                                             ; preds = %6367
  %6395 = load i32, ptr @test_count, align 4, !tbaa !5
  %6396 = add nsw i32 %6395, 1
  store i32 %6396, ptr @test_count, align 4, !tbaa !5
  %6397 = load ptr, ptr %6202, align 8, !tbaa !48
  %6398 = icmp eq ptr %6397, null
  br i1 %6398, label %6399, label %6421

6399:                                             ; preds = %6394
  %6400 = load i32, ptr %260, align 4, !tbaa !5
  %6401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6402 = call i32 @s2n_print_stacktrace(ptr noundef %6401) #12
  %6403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6404 = trunc nuw i8 %6403 to i1
  br i1 %6404, label %6405, label %6409

6405:                                             ; preds = %6399
  %6406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6407 = call i32 @fileno(ptr noundef %6406) #12
  %6408 = call i32 @isatty(i32 noundef %6407) #12
  %.not1503 = icmp eq i32 %6408, 0
  br i1 %.not1503, label %6409, label %6410

6409:                                             ; preds = %6405, %6399
  br label %6410

6410:                                             ; preds = %6405, %6409
  %.str.5.sink3690 = phi ptr [ @.str.5, %6409 ], [ @.str.2, %6405 ]
  store i32 %6400, ptr %260, align 4, !tbaa !5
  %6411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6412 = load i32, ptr @test_count, align 4, !tbaa !5
  %6413 = load i32, ptr %206, align 4, !tbaa !5
  %6414 = call ptr @s2n_strerror(i32 noundef %6413, ptr noundef nonnull @.str.4) #12
  %6415 = load i32, ptr %206, align 4, !tbaa !5
  %6416 = call ptr @s2n_strerror_debug(i32 noundef %6415, ptr noundef nonnull @.str.4) #12
  %6417 = load i32, ptr %260, align 4, !tbaa !5
  %6418 = call ptr @strerror(i32 noundef %6417) #12
  %6419 = load i32, ptr %260, align 4, !tbaa !5
  %6420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6411, ptr noundef nonnull %.str.5.sink3690, i32 noundef %6412, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.1, i32 noundef 626, ptr noundef %6414, ptr noundef %6416, ptr noundef %6418, i32 noundef %6419) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6421:                                             ; preds = %6394
  %6422 = add nsw i32 %6395, 2
  store i32 %6422, ptr @test_count, align 4, !tbaa !5
  %6423 = icmp eq ptr %6397, %6139
  br i1 %6423, label %6446, label %6424

6424:                                             ; preds = %6421
  %6425 = load i32, ptr %260, align 4, !tbaa !5
  %6426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6427 = call i32 @s2n_print_stacktrace(ptr noundef %6426) #12
  %6428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6429 = trunc nuw i8 %6428 to i1
  br i1 %6429, label %6430, label %6434

6430:                                             ; preds = %6424
  %6431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6432 = call i32 @fileno(ptr noundef %6431) #12
  %6433 = call i32 @isatty(i32 noundef %6432) #12
  %.not1488 = icmp eq i32 %6433, 0
  br i1 %.not1488, label %6434, label %6435

6434:                                             ; preds = %6430, %6424
  br label %6435

6435:                                             ; preds = %6430, %6434
  %.str.5.sink3699 = phi ptr [ @.str.5, %6434 ], [ @.str.2, %6430 ]
  store i32 %6425, ptr %260, align 4, !tbaa !5
  %6436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6437 = load i32, ptr @test_count, align 4, !tbaa !5
  %6438 = load i32, ptr %206, align 4, !tbaa !5
  %6439 = call ptr @s2n_strerror(i32 noundef %6438, ptr noundef nonnull @.str.4) #12
  %6440 = load i32, ptr %206, align 4, !tbaa !5
  %6441 = call ptr @s2n_strerror_debug(i32 noundef %6440, ptr noundef nonnull @.str.4) #12
  %6442 = load i32, ptr %260, align 4, !tbaa !5
  %6443 = call ptr @strerror(i32 noundef %6442) #12
  %6444 = load i32, ptr %260, align 4, !tbaa !5
  %6445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6436, ptr noundef nonnull %.str.5.sink3699, i32 noundef %6437, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.1, i32 noundef 627, ptr noundef %6439, ptr noundef %6441, ptr noundef %6443, i32 noundef %6444) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6446:                                             ; preds = %6421
  %6447 = add nsw i32 %6395, 3
  store i32 %6447, ptr @test_count, align 4, !tbaa !5
  %6448 = getelementptr inbounds i8, ptr %6144, i64 816
  %6449 = load ptr, ptr %6448, align 8, !tbaa !93
  %6450 = icmp eq ptr %6449, null
  br i1 %6450, label %6451, label %6473

6451:                                             ; preds = %6446
  %6452 = load i32, ptr %260, align 4, !tbaa !5
  %6453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6454 = call i32 @s2n_print_stacktrace(ptr noundef %6453) #12
  %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) #12
  %6460 = call i32 @isatty(i32 noundef %6459) #12
  %.not1502 = icmp eq i32 %6460, 0
  br i1 %.not1502, label %6461, label %6462

6461:                                             ; preds = %6457, %6451
  br label %6462

6462:                                             ; preds = %6457, %6461
  %.str.5.sink3708 = phi ptr [ @.str.5, %6461 ], [ @.str.2, %6457 ]
  store i32 %6452, ptr %260, 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 %206, align 4, !tbaa !5
  %6466 = call ptr @s2n_strerror(i32 noundef %6465, ptr noundef nonnull @.str.4) #12
  %6467 = load i32, ptr %206, align 4, !tbaa !5
  %6468 = call ptr @s2n_strerror_debug(i32 noundef %6467, ptr noundef nonnull @.str.4) #12
  %6469 = load i32, ptr %260, align 4, !tbaa !5
  %6470 = call ptr @strerror(i32 noundef %6469) #12
  %6471 = load i32, ptr %260, align 4, !tbaa !5
  %6472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6463, ptr noundef nonnull %.str.5.sink3708, i32 noundef %6464, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.1, i32 noundef 628, ptr noundef %6466, ptr noundef %6468, ptr noundef %6470, i32 noundef %6471) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6473:                                             ; preds = %6446
  %6474 = add nsw i32 %6395, 4
  store i32 %6474, ptr @test_count, align 4, !tbaa !5
  %6475 = load ptr, ptr %6336, align 8, !tbaa !88
  %6476 = icmp eq ptr %6449, %6475
  br i1 %6476, label %6499, label %6477

6477:                                             ; preds = %6473
  %6478 = load i32, ptr %260, align 4, !tbaa !5
  %6479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6480 = call i32 @s2n_print_stacktrace(ptr noundef %6479) #12
  %6481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6482 = trunc nuw i8 %6481 to i1
  br i1 %6482, label %6483, label %6487

6483:                                             ; preds = %6477
  %6484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6485 = call i32 @fileno(ptr noundef %6484) #12
  %6486 = call i32 @isatty(i32 noundef %6485) #12
  %.not1489 = icmp eq i32 %6486, 0
  br i1 %.not1489, label %6487, label %6488

6487:                                             ; preds = %6483, %6477
  br label %6488

6488:                                             ; preds = %6483, %6487
  %.str.5.sink3717 = phi ptr [ @.str.5, %6487 ], [ @.str.2, %6483 ]
  store i32 %6478, ptr %260, align 4, !tbaa !5
  %6489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6490 = load i32, ptr @test_count, align 4, !tbaa !5
  %6491 = load i32, ptr %206, align 4, !tbaa !5
  %6492 = call ptr @s2n_strerror(i32 noundef %6491, ptr noundef nonnull @.str.4) #12
  %6493 = load i32, ptr %206, align 4, !tbaa !5
  %6494 = call ptr @s2n_strerror_debug(i32 noundef %6493, ptr noundef nonnull @.str.4) #12
  %6495 = load i32, ptr %260, align 4, !tbaa !5
  %6496 = call ptr @strerror(i32 noundef %6495) #12
  %6497 = load i32, ptr %260, align 4, !tbaa !5
  %6498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6489, ptr noundef nonnull %.str.5.sink3717, i32 noundef %6490, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 629, ptr noundef %6492, ptr noundef %6494, ptr noundef %6496, i32 noundef %6497) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6499:                                             ; preds = %6473
  %6500 = add nsw i32 %6395, 5
  store i32 %6500, ptr @test_count, align 4, !tbaa !5
  %6501 = getelementptr inbounds i8, ptr %6144, i64 728
  %6502 = load ptr, ptr %6501, align 8, !tbaa !94
  %6503 = icmp eq ptr %6502, null
  br i1 %6503, label %6504, label %6526

6504:                                             ; preds = %6499
  %6505 = load i32, ptr %260, align 4, !tbaa !5
  %6506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6507 = call i32 @s2n_print_stacktrace(ptr noundef %6506) #12
  %6508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6509 = trunc nuw i8 %6508 to i1
  br i1 %6509, label %6510, label %6514

6510:                                             ; preds = %6504
  %6511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6512 = call i32 @fileno(ptr noundef %6511) #12
  %6513 = call i32 @isatty(i32 noundef %6512) #12
  %.not1501 = icmp eq i32 %6513, 0
  br i1 %.not1501, label %6514, label %6515

6514:                                             ; preds = %6510, %6504
  br label %6515

6515:                                             ; preds = %6510, %6514
  %.str.5.sink3726 = phi ptr [ @.str.5, %6514 ], [ @.str.2, %6510 ]
  store i32 %6505, ptr %260, align 4, !tbaa !5
  %6516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6517 = load i32, ptr @test_count, align 4, !tbaa !5
  %6518 = load i32, ptr %206, align 4, !tbaa !5
  %6519 = call ptr @s2n_strerror(i32 noundef %6518, ptr noundef nonnull @.str.4) #12
  %6520 = load i32, ptr %206, align 4, !tbaa !5
  %6521 = call ptr @s2n_strerror_debug(i32 noundef %6520, ptr noundef nonnull @.str.4) #12
  %6522 = load i32, ptr %260, align 4, !tbaa !5
  %6523 = call ptr @strerror(i32 noundef %6522) #12
  %6524 = load i32, ptr %260, align 4, !tbaa !5
  %6525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6516, ptr noundef nonnull %.str.5.sink3726, i32 noundef %6517, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 630, ptr noundef %6519, ptr noundef %6521, ptr noundef %6523, i32 noundef %6524) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6526:                                             ; preds = %6499
  %6527 = add nsw i32 %6395, 6
  store i32 %6527, ptr @test_count, align 4, !tbaa !5
  %6528 = load ptr, ptr %6339, align 8, !tbaa !90
  %6529 = icmp eq ptr %6502, %6528
  br i1 %6529, label %6552, label %6530

6530:                                             ; preds = %6526
  %6531 = load i32, ptr %260, align 4, !tbaa !5
  %6532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6533 = call i32 @s2n_print_stacktrace(ptr noundef %6532) #12
  %6534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6535 = trunc nuw i8 %6534 to i1
  br i1 %6535, label %6536, label %6540

6536:                                             ; preds = %6530
  %6537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6538 = call i32 @fileno(ptr noundef %6537) #12
  %6539 = call i32 @isatty(i32 noundef %6538) #12
  %.not1490 = icmp eq i32 %6539, 0
  br i1 %.not1490, label %6540, label %6541

6540:                                             ; preds = %6536, %6530
  br label %6541

6541:                                             ; preds = %6536, %6540
  %.str.5.sink3735 = phi ptr [ @.str.5, %6540 ], [ @.str.2, %6536 ]
  store i32 %6531, ptr %260, align 4, !tbaa !5
  %6542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6543 = load i32, ptr @test_count, align 4, !tbaa !5
  %6544 = load i32, ptr %206, align 4, !tbaa !5
  %6545 = call ptr @s2n_strerror(i32 noundef %6544, ptr noundef nonnull @.str.4) #12
  %6546 = load i32, ptr %206, align 4, !tbaa !5
  %6547 = call ptr @s2n_strerror_debug(i32 noundef %6546, ptr noundef nonnull @.str.4) #12
  %6548 = load i32, ptr %260, align 4, !tbaa !5
  %6549 = call ptr @strerror(i32 noundef %6548) #12
  %6550 = load i32, ptr %260, align 4, !tbaa !5
  %6551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6542, ptr noundef nonnull %.str.5.sink3735, i32 noundef %6543, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.1, i32 noundef 631, ptr noundef %6545, ptr noundef %6547, ptr noundef %6549, i32 noundef %6550) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6552:                                             ; preds = %6526
  %6553 = add nsw i32 %6395, 7
  store i32 %6553, ptr @test_count, align 4, !tbaa !5
  %6554 = load ptr, ptr %6170, align 8, !tbaa !87
  %6555 = icmp eq ptr %6554, %6139
  br i1 %6555, label %6578, label %6556

6556:                                             ; preds = %6552
  %6557 = load i32, ptr %260, align 4, !tbaa !5
  %6558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6559 = call i32 @s2n_print_stacktrace(ptr noundef %6558) #12
  %6560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6561 = trunc nuw i8 %6560 to i1
  br i1 %6561, label %6562, label %6566

6562:                                             ; preds = %6556
  %6563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6564 = call i32 @fileno(ptr noundef %6563) #12
  %6565 = call i32 @isatty(i32 noundef %6564) #12
  %.not1491 = icmp eq i32 %6565, 0
  br i1 %.not1491, label %6566, label %6567

6566:                                             ; preds = %6562, %6556
  br label %6567

6567:                                             ; preds = %6562, %6566
  %.str.5.sink3744 = phi ptr [ @.str.5, %6566 ], [ @.str.2, %6562 ]
  store i32 %6557, ptr %260, align 4, !tbaa !5
  %6568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6569 = load i32, ptr @test_count, align 4, !tbaa !5
  %6570 = load i32, ptr %206, align 4, !tbaa !5
  %6571 = call ptr @s2n_strerror(i32 noundef %6570, ptr noundef nonnull @.str.4) #12
  %6572 = load i32, ptr %206, align 4, !tbaa !5
  %6573 = call ptr @s2n_strerror_debug(i32 noundef %6572, ptr noundef nonnull @.str.4) #12
  %6574 = load i32, ptr %260, align 4, !tbaa !5
  %6575 = call ptr @strerror(i32 noundef %6574) #12
  %6576 = load i32, ptr %260, align 4, !tbaa !5
  %6577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6568, ptr noundef nonnull %.str.5.sink3744, i32 noundef %6569, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.1, i32 noundef 633, ptr noundef %6571, ptr noundef %6573, ptr noundef %6575, i32 noundef %6576) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6578:                                             ; preds = %6552
  %6579 = add nsw i32 %6395, 8
  store i32 %6579, ptr @test_count, align 4, !tbaa !5
  %6580 = load ptr, ptr %6338, align 8, !tbaa !89
  %6581 = icmp eq ptr %6580, %6449
  br i1 %6581, label %6604, label %6582

6582:                                             ; preds = %6578
  %6583 = load i32, ptr %260, align 4, !tbaa !5
  %6584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6585 = call i32 @s2n_print_stacktrace(ptr noundef %6584) #12
  %6586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6587 = trunc nuw i8 %6586 to i1
  br i1 %6587, label %6588, label %6592

6588:                                             ; preds = %6582
  %6589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6590 = call i32 @fileno(ptr noundef %6589) #12
  %6591 = call i32 @isatty(i32 noundef %6590) #12
  %.not1492 = icmp eq i32 %6591, 0
  br i1 %.not1492, label %6592, label %6593

6592:                                             ; preds = %6588, %6582
  br label %6593

6593:                                             ; preds = %6588, %6592
  %.str.5.sink3753 = phi ptr [ @.str.5, %6592 ], [ @.str.2, %6588 ]
  store i32 %6583, ptr %260, align 4, !tbaa !5
  %6594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6595 = load i32, ptr @test_count, align 4, !tbaa !5
  %6596 = load i32, ptr %206, align 4, !tbaa !5
  %6597 = call ptr @s2n_strerror(i32 noundef %6596, ptr noundef nonnull @.str.4) #12
  %6598 = load i32, ptr %206, align 4, !tbaa !5
  %6599 = call ptr @s2n_strerror_debug(i32 noundef %6598, ptr noundef nonnull @.str.4) #12
  %6600 = load i32, ptr %260, align 4, !tbaa !5
  %6601 = call ptr @strerror(i32 noundef %6600) #12
  %6602 = load i32, ptr %260, align 4, !tbaa !5
  %6603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6594, ptr noundef nonnull %.str.5.sink3753, i32 noundef %6595, ptr noundef nonnull @.str.145, ptr noundef nonnull @.str.1, i32 noundef 634, ptr noundef %6597, ptr noundef %6599, ptr noundef %6601, i32 noundef %6602) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6604:                                             ; preds = %6578
  %6605 = add nsw i32 %6395, 9
  store i32 %6605, ptr @test_count, align 4, !tbaa !5
  %6606 = load ptr, ptr %6171, align 8, !tbaa !91
  %6607 = icmp eq ptr %6606, %6502
  br i1 %6607, label %6630, label %6608

6608:                                             ; preds = %6604
  %6609 = load i32, ptr %260, align 4, !tbaa !5
  %6610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6611 = call i32 @s2n_print_stacktrace(ptr noundef %6610) #12
  %6612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6613 = trunc nuw i8 %6612 to i1
  br i1 %6613, label %6614, label %6618

6614:                                             ; preds = %6608
  %6615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6616 = call i32 @fileno(ptr noundef %6615) #12
  %6617 = call i32 @isatty(i32 noundef %6616) #12
  %.not1493 = icmp eq i32 %6617, 0
  br i1 %.not1493, label %6618, label %6619

6618:                                             ; preds = %6614, %6608
  br label %6619

6619:                                             ; preds = %6614, %6618
  %.str.5.sink3762 = phi ptr [ @.str.5, %6618 ], [ @.str.2, %6614 ]
  store i32 %6609, ptr %260, align 4, !tbaa !5
  %6620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6621 = load i32, ptr @test_count, align 4, !tbaa !5
  %6622 = load i32, ptr %206, align 4, !tbaa !5
  %6623 = call ptr @s2n_strerror(i32 noundef %6622, ptr noundef nonnull @.str.4) #12
  %6624 = load i32, ptr %206, align 4, !tbaa !5
  %6625 = call ptr @s2n_strerror_debug(i32 noundef %6624, ptr noundef nonnull @.str.4) #12
  %6626 = load i32, ptr %260, align 4, !tbaa !5
  %6627 = call ptr @strerror(i32 noundef %6626) #12
  %6628 = load i32, ptr %260, align 4, !tbaa !5
  %6629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6620, ptr noundef nonnull %.str.5.sink3762, i32 noundef %6621, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.1, i32 noundef 635, ptr noundef %6623, ptr noundef %6625, ptr noundef %6627, i32 noundef %6628) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6630:                                             ; preds = %6604
  %6631 = add nsw i32 %6395, 10
  store i32 %6631, ptr @test_count, align 4, !tbaa !5
  %6632 = getelementptr inbounds i8, ptr %6144, i64 896
  %6633 = load ptr, ptr %6632, align 8, !tbaa !95
  %6634 = icmp eq ptr %6633, null
  br i1 %6634, label %6635, label %6657

6635:                                             ; preds = %6630
  %6636 = load i32, ptr %260, align 4, !tbaa !5
  %6637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6638 = call i32 @s2n_print_stacktrace(ptr noundef %6637) #12
  %6639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6640 = trunc nuw i8 %6639 to i1
  br i1 %6640, label %6641, label %6645

6641:                                             ; preds = %6635
  %6642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6643 = call i32 @fileno(ptr noundef %6642) #12
  %6644 = call i32 @isatty(i32 noundef %6643) #12
  %.not1500 = icmp eq i32 %6644, 0
  br i1 %.not1500, label %6645, label %6646

6645:                                             ; preds = %6641, %6635
  br label %6646

6646:                                             ; preds = %6641, %6645
  %.str.5.sink3771 = phi ptr [ @.str.5, %6645 ], [ @.str.2, %6641 ]
  store i32 %6636, ptr %260, align 4, !tbaa !5
  %6647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6648 = load i32, ptr @test_count, align 4, !tbaa !5
  %6649 = load i32, ptr %206, align 4, !tbaa !5
  %6650 = call ptr @s2n_strerror(i32 noundef %6649, ptr noundef nonnull @.str.4) #12
  %6651 = load i32, ptr %206, align 4, !tbaa !5
  %6652 = call ptr @s2n_strerror_debug(i32 noundef %6651, ptr noundef nonnull @.str.4) #12
  %6653 = load i32, ptr %260, align 4, !tbaa !5
  %6654 = call ptr @strerror(i32 noundef %6653) #12
  %6655 = load i32, ptr %260, align 4, !tbaa !5
  %6656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6647, ptr noundef nonnull %.str.5.sink3771, i32 noundef %6648, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 636, ptr noundef %6650, ptr noundef %6652, ptr noundef %6654, i32 noundef %6655) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6657:                                             ; preds = %6630
  %6658 = add nsw i32 %6395, 11
  store i32 %6658, ptr @test_count, align 4, !tbaa !5
  %6659 = getelementptr inbounds i8, ptr %6144, i64 904
  %6660 = load i32, ptr %6659, align 8, !tbaa !96
  %6661 = getelementptr inbounds i8, ptr %6528, i64 18
  %6662 = load i16, ptr %6661, align 2, !tbaa !97
  %6663 = zext i16 %6662 to i32
  %6664 = icmp eq i32 %6660, %6663
  br i1 %6664, label %6687, label %6665

6665:                                             ; preds = %6657
  %6666 = load i32, ptr %260, align 4, !tbaa !5
  %6667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6668 = call i32 @s2n_print_stacktrace(ptr noundef %6667) #12
  %6669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6670 = trunc nuw i8 %6669 to i1
  br i1 %6670, label %6671, label %6675

6671:                                             ; preds = %6665
  %6672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6673 = call i32 @fileno(ptr noundef %6672) #12
  %6674 = call i32 @isatty(i32 noundef %6673) #12
  %.not1494 = icmp eq i32 %6674, 0
  br i1 %.not1494, label %6675, label %6676

6675:                                             ; preds = %6671, %6665
  br label %6676

6676:                                             ; preds = %6671, %6675
  %.str.5.sink3780 = phi ptr [ @.str.5, %6675 ], [ @.str.2, %6671 ]
  store i32 %6666, ptr %260, align 4, !tbaa !5
  %6677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6678 = load i32, ptr @test_count, align 4, !tbaa !5
  %6679 = load i32, ptr %206, align 4, !tbaa !5
  %6680 = call ptr @s2n_strerror(i32 noundef %6679, ptr noundef nonnull @.str.4) #12
  %6681 = load i32, ptr %206, align 4, !tbaa !5
  %6682 = call ptr @s2n_strerror_debug(i32 noundef %6681, ptr noundef nonnull @.str.4) #12
  %6683 = load i32, ptr %260, align 4, !tbaa !5
  %6684 = call ptr @strerror(i32 noundef %6683) #12
  %6685 = load i32, ptr %260, align 4, !tbaa !5
  %6686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6677, ptr noundef nonnull %.str.5.sink3780, i32 noundef %6678, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.1, i32 noundef 638, ptr noundef %6680, ptr noundef %6682, ptr noundef %6684, i32 noundef %6685) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6687:                                             ; preds = %6657
  %.not1495 = icmp eq i16 %6662, 0
  br i1 %.not1495, label %6715, label %6688

6688:                                             ; preds = %6687
  %6689 = add nsw i32 %6395, 12
  store i32 %6689, ptr @test_count, align 4, !tbaa !5
  %6690 = load ptr, ptr %36, align 8, !tbaa !99
  %6691 = zext i16 %6662 to i64
  %bcmp1496 = call i32 @bcmp(ptr nonnull %6633, ptr %6690, i64 %6691)
  %6692 = icmp eq i32 %bcmp1496, 0
  br i1 %6692, label %6715, label %6693

6693:                                             ; preds = %6688
  %6694 = load i32, ptr %260, align 4, !tbaa !5
  %6695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6696 = call i32 @s2n_print_stacktrace(ptr noundef %6695) #12
  %6697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6698 = trunc nuw i8 %6697 to i1
  br i1 %6698, label %6699, label %6703

6699:                                             ; preds = %6693
  %6700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6701 = call i32 @fileno(ptr noundef %6700) #12
  %6702 = call i32 @isatty(i32 noundef %6701) #12
  %.not1497 = icmp eq i32 %6702, 0
  br i1 %.not1497, label %6703, label %6704

6703:                                             ; preds = %6699, %6693
  br label %6704

6704:                                             ; preds = %6699, %6703
  %.str.5.sink3789 = phi ptr [ @.str.5, %6703 ], [ @.str.2, %6699 ]
  store i32 %6694, ptr %260, align 4, !tbaa !5
  %6705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6706 = load i32, ptr @test_count, align 4, !tbaa !5
  %6707 = load i32, ptr %206, align 4, !tbaa !5
  %6708 = call ptr @s2n_strerror(i32 noundef %6707, ptr noundef nonnull @.str.4) #12
  %6709 = load i32, ptr %206, align 4, !tbaa !5
  %6710 = call ptr @s2n_strerror_debug(i32 noundef %6709, ptr noundef nonnull @.str.4) #12
  %6711 = load i32, ptr %260, align 4, !tbaa !5
  %6712 = call ptr @strerror(i32 noundef %6711) #12
  %6713 = load i32, ptr %260, align 4, !tbaa !5
  %6714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6705, ptr noundef nonnull %.str.5.sink3789, i32 noundef %6706, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.1, i32 noundef 640, ptr noundef %6708, ptr noundef %6710, ptr noundef %6712, i32 noundef %6713) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6715:                                             ; preds = %6687, %6688
  %6716 = phi i32 [ %6658, %6687 ], [ %6689, %6688 ]
  %6717 = add nsw i32 %6716, 1
  store i32 %6717, ptr @test_count, align 4, !tbaa !5
  %6718 = load i32, ptr %6130, align 4, !tbaa !54
  %6719 = load i32, ptr %6131, align 8, !tbaa !55
  %6720 = icmp eq i32 %6718, %6719
  br i1 %6720, label %6743, label %6721

6721:                                             ; preds = %6715
  %6722 = load i32, ptr %260, align 4, !tbaa !5
  %6723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6724 = call i32 @s2n_print_stacktrace(ptr noundef %6723) #12
  %6725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6726 = trunc nuw i8 %6725 to i1
  br i1 %6726, label %6727, label %6731

6727:                                             ; preds = %6721
  %6728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6729 = call i32 @fileno(ptr noundef %6728) #12
  %6730 = call i32 @isatty(i32 noundef %6729) #12
  %.not1498 = icmp eq i32 %6730, 0
  br i1 %.not1498, label %6731, label %6732

6731:                                             ; preds = %6727, %6721
  br label %6732

6732:                                             ; preds = %6727, %6731
  %.str.5.sink3798 = phi ptr [ @.str.5, %6731 ], [ @.str.2, %6727 ]
  store i32 %6722, ptr %260, align 4, !tbaa !5
  %6733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6734 = load i32, ptr @test_count, align 4, !tbaa !5
  %6735 = load i32, ptr %206, align 4, !tbaa !5
  %6736 = call ptr @s2n_strerror(i32 noundef %6735, ptr noundef nonnull @.str.4) #12
  %6737 = load i32, ptr %206, align 4, !tbaa !5
  %6738 = call ptr @s2n_strerror_debug(i32 noundef %6737, ptr noundef nonnull @.str.4) #12
  %6739 = load i32, ptr %260, align 4, !tbaa !5
  %6740 = call ptr @strerror(i32 noundef %6739) #12
  %6741 = load i32, ptr %260, align 4, !tbaa !5
  %6742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6733, ptr noundef nonnull %.str.5.sink3798, i32 noundef %6734, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 642, ptr noundef %6736, ptr noundef %6738, ptr noundef %6740, i32 noundef %6741) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6743:                                             ; preds = %6715
  %6744 = add nsw i32 %6716, 2
  store i32 %6744, ptr @test_count, align 4, !tbaa !5
  %6745 = call i32 @s2n_connection_free(ptr noundef nonnull %6144) #12
  %6746 = icmp eq i32 %6745, -1
  br i1 %6746, label %6747, label %6769

6747:                                             ; preds = %6743
  %6748 = load i32, ptr %260, align 4, !tbaa !5
  %6749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6750 = call i32 @s2n_print_stacktrace(ptr noundef %6749) #12
  %6751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6752 = trunc nuw i8 %6751 to i1
  br i1 %6752, label %6753, label %6757

6753:                                             ; preds = %6747
  %6754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6755 = call i32 @fileno(ptr noundef %6754) #12
  %6756 = call i32 @isatty(i32 noundef %6755) #12
  %.not1499 = icmp eq i32 %6756, 0
  br i1 %.not1499, label %6757, label %6758

6757:                                             ; preds = %6753, %6747
  br label %6758

6758:                                             ; preds = %6753, %6757
  %.str.5.sink3807 = phi ptr [ @.str.5, %6757 ], [ @.str.2, %6753 ]
  store i32 %6748, ptr %260, align 4, !tbaa !5
  %6759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6760 = load i32, ptr @test_count, align 4, !tbaa !5
  %6761 = load i32, ptr %206, align 4, !tbaa !5
  %6762 = call ptr @s2n_strerror(i32 noundef %6761, ptr noundef nonnull @.str.4) #12
  %6763 = load i32, ptr %206, align 4, !tbaa !5
  %6764 = call ptr @s2n_strerror_debug(i32 noundef %6763, ptr noundef nonnull @.str.4) #12
  %6765 = load i32, ptr %260, align 4, !tbaa !5
  %6766 = call ptr @strerror(i32 noundef %6765) #12
  %6767 = load i32, ptr %260, align 4, !tbaa !5
  %6768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6759, ptr noundef nonnull %.str.5.sink3807, i32 noundef %6760, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 644, ptr noundef %6762, ptr noundef %6764, ptr noundef %6766, i32 noundef %6767) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6769:                                             ; preds = %6743
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #12
  %6770 = call i32 @s2n_stuffer_free(ptr noundef nonnull %37) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %37) #12
  %6771 = call i32 @s2n_stuffer_free(ptr noundef nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #12
  br label %6772

6772:                                             ; preds = %6137, %6769
  br i1 %6138, label %6137, label %6132, !llvm.loop !100

6773:                                             ; preds = %6132
  %6774 = load i32, ptr %260, align 4, !tbaa !5
  %6775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6776 = call i32 @s2n_print_stacktrace(ptr noundef %6775) #12
  %6777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6778 = trunc nuw i8 %6777 to i1
  br i1 %6778, label %6779, label %6783

6779:                                             ; preds = %6773
  %6780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6781 = call i32 @fileno(ptr noundef %6780) #12
  %6782 = call i32 @isatty(i32 noundef %6781) #12
  %.not1484 = icmp eq i32 %6782, 0
  br i1 %.not1484, label %6783, label %6784

6783:                                             ; preds = %6779, %6773
  br label %6784

6784:                                             ; preds = %6779, %6783
  %.str.5.sink3816 = phi ptr [ @.str.5, %6783 ], [ @.str.2, %6779 ]
  store i32 %6774, ptr %260, align 4, !tbaa !5
  %6785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6786 = load i32, ptr @test_count, align 4, !tbaa !5
  %6787 = load i32, ptr %206, align 4, !tbaa !5
  %6788 = call ptr @s2n_strerror(i32 noundef %6787, ptr noundef nonnull @.str.4) #12
  %6789 = load i32, ptr %206, align 4, !tbaa !5
  %6790 = call ptr @s2n_strerror_debug(i32 noundef %6789, ptr noundef nonnull @.str.4) #12
  %6791 = load i32, ptr %260, align 4, !tbaa !5
  %6792 = call ptr @strerror(i32 noundef %6791) #12
  %6793 = load i32, ptr %260, align 4, !tbaa !5
  %6794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6785, ptr noundef nonnull %.str.5.sink3816, i32 noundef %6786, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 651, ptr noundef %6788, ptr noundef %6790, ptr noundef %6792, i32 noundef %6793) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6795:                                             ; preds = %6132
  %6796 = getelementptr inbounds i8, ptr %6135, i64 16
  store ptr %29, ptr %6796, align 8, !tbaa !15
  %6797 = getelementptr inbounds i8, ptr %6135, i64 220
  store i8 34, ptr %6797, align 4, !tbaa !56
  %6798 = load i32, ptr @test_count, align 4, !tbaa !5
  %6799 = add nsw i32 %6798, 1
  store i32 %6799, ptr @test_count, align 4, !tbaa !5
  %6800 = call i32 @s2n_conn_choose_state_machine(ptr noundef nonnull %6135, i8 noundef zeroext 34) #12
  %6801 = call zeroext i1 @s2n_result_is_ok(i32 %6800)
  br i1 %6801, label %6824, label %6802

6802:                                             ; preds = %6795
  %6803 = load i32, ptr %260, align 4, !tbaa !5
  %6804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6805 = call i32 @s2n_print_stacktrace(ptr noundef %6804) #12
  %6806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6807 = trunc nuw i8 %6806 to i1
  br i1 %6807, label %6808, label %6812

6808:                                             ; preds = %6802
  %6809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6810 = call i32 @fileno(ptr noundef %6809) #12
  %6811 = call i32 @isatty(i32 noundef %6810) #12
  %.not1331 = icmp eq i32 %6811, 0
  br i1 %.not1331, label %6812, label %6813

6812:                                             ; preds = %6808, %6802
  br label %6813

6813:                                             ; preds = %6808, %6812
  %.str.5.sink3825 = phi ptr [ @.str.5, %6812 ], [ @.str.2, %6808 ]
  store i32 %6803, ptr %260, align 4, !tbaa !5
  %6814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6815 = load i32, ptr @test_count, align 4, !tbaa !5
  %6816 = load i32, ptr %206, align 4, !tbaa !5
  %6817 = call ptr @s2n_strerror(i32 noundef %6816, ptr noundef nonnull @.str.4) #12
  %6818 = load i32, ptr %206, align 4, !tbaa !5
  %6819 = call ptr @s2n_strerror_debug(i32 noundef %6818, ptr noundef nonnull @.str.4) #12
  %6820 = load i32, ptr %260, align 4, !tbaa !5
  %6821 = call ptr @strerror(i32 noundef %6820) #12
  %6822 = load i32, ptr %260, align 4, !tbaa !5
  %6823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6814, ptr noundef nonnull %.str.5.sink3825, i32 noundef %6815, ptr noundef nonnull @.str.151, ptr noundef nonnull @.str.1, i32 noundef 654, ptr noundef %6817, ptr noundef %6819, ptr noundef %6821, i32 noundef %6822) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6824:                                             ; preds = %6795
  %6825 = getelementptr inbounds i8, ptr %6135, i64 2172
  store i32 16, ptr %6825, align 4, !tbaa !57
  %6826 = getelementptr inbounds i8, ptr %6135, i64 2176
  store i32 1, ptr %6826, align 8, !tbaa !58
  %6827 = getelementptr inbounds i8, ptr %6135, i64 222
  store i8 1, ptr %6827, align 2, !tbaa !101
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %39) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %39, i8 0, i64 40, i1 false)
  %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 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull %39, ptr noundef nonnull @.str.152) #12
  %6831 = call zeroext i1 @s2n_result_is_ok(i32 %6830)
  br i1 %6831, label %6854, label %6832

6832:                                             ; preds = %6824
  %6833 = load i32, ptr %260, align 4, !tbaa !5
  %6834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6835 = call i32 @s2n_print_stacktrace(ptr noundef %6834) #12
  %6836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6837 = trunc nuw i8 %6836 to i1
  br i1 %6837, label %6838, label %6842

6838:                                             ; preds = %6832
  %6839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6840 = call i32 @fileno(ptr noundef %6839) #12
  %6841 = call i32 @isatty(i32 noundef %6840) #12
  %.not1332 = icmp eq i32 %6841, 0
  br i1 %.not1332, label %6842, label %6843

6842:                                             ; preds = %6838, %6832
  br label %6843

6843:                                             ; preds = %6838, %6842
  %.str.5.sink3834 = phi ptr [ @.str.5, %6842 ], [ @.str.2, %6838 ]
  store i32 %6833, ptr %260, align 4, !tbaa !5
  %6844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6845 = load i32, ptr @test_count, align 4, !tbaa !5
  %6846 = load i32, ptr %206, align 4, !tbaa !5
  %6847 = call ptr @s2n_strerror(i32 noundef %6846, ptr noundef nonnull @.str.4) #12
  %6848 = load i32, ptr %206, align 4, !tbaa !5
  %6849 = call ptr @s2n_strerror_debug(i32 noundef %6848, ptr noundef nonnull @.str.4) #12
  %6850 = load i32, ptr %260, align 4, !tbaa !5
  %6851 = call ptr @strerror(i32 noundef %6850) #12
  %6852 = load i32, ptr %260, align 4, !tbaa !5
  %6853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6844, ptr noundef nonnull %.str.5.sink3834, i32 noundef %6845, ptr noundef nonnull @.str.153, ptr noundef nonnull @.str.1, i32 noundef 662, ptr noundef %6847, ptr noundef %6849, ptr noundef %6851, i32 noundef %6852) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6854:                                             ; preds = %6824
  %6855 = load i32, ptr @test_count, align 4, !tbaa !5
  %6856 = add nsw i32 %6855, 1
  store i32 %6856, ptr @test_count, align 4, !tbaa !5
  %6857 = call i32 %2349(ptr noundef nonnull %6135, ptr noundef nonnull %39) #12
  %6858 = icmp eq i32 %6857, -1
  br i1 %6858, label %6859, label %6881

6859:                                             ; preds = %6854
  %6860 = load i32, ptr %260, align 4, !tbaa !5
  %6861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6862 = call i32 @s2n_print_stacktrace(ptr noundef %6861) #12
  %6863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6864 = trunc nuw i8 %6863 to i1
  br i1 %6864, label %6865, label %6869

6865:                                             ; preds = %6859
  %6866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6867 = call i32 @fileno(ptr noundef %6866) #12
  %6868 = call i32 @isatty(i32 noundef %6867) #12
  %.not1483 = icmp eq i32 %6868, 0
  br i1 %.not1483, label %6869, label %6870

6869:                                             ; preds = %6865, %6859
  br label %6870

6870:                                             ; preds = %6865, %6869
  %.str.5.sink3843 = phi ptr [ @.str.5, %6869 ], [ @.str.2, %6865 ]
  store i32 %6860, ptr %260, align 4, !tbaa !5
  %6871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6872 = load i32, ptr @test_count, align 4, !tbaa !5
  %6873 = load i32, ptr %206, align 4, !tbaa !5
  %6874 = call ptr @s2n_strerror(i32 noundef %6873, ptr noundef nonnull @.str.4) #12
  %6875 = load i32, ptr %206, align 4, !tbaa !5
  %6876 = call ptr @s2n_strerror_debug(i32 noundef %6875, ptr noundef nonnull @.str.4) #12
  %6877 = load i32, ptr %260, align 4, !tbaa !5
  %6878 = call ptr @strerror(i32 noundef %6877) #12
  %6879 = load i32, ptr %260, align 4, !tbaa !5
  %6880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6871, ptr noundef nonnull %.str.5.sink3843, i32 noundef %6872, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.1, i32 noundef 665, ptr noundef %6874, ptr noundef %6876, ptr noundef %6878, i32 noundef %6879) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6881:                                             ; preds = %6854
  %6882 = load i32, ptr @test_count, align 4, !tbaa !5
  %6883 = add nsw i32 %6882, 1
  store i32 %6883, ptr @test_count, align 4, !tbaa !5
  %6884 = getelementptr inbounds i8, ptr %6135, i64 720
  %6885 = load ptr, ptr %6884, align 8, !tbaa !48
  %6886 = icmp eq ptr %6885, null
  br i1 %6886, label %6887, label %6909

6887:                                             ; preds = %6881
  %6888 = load i32, ptr %260, align 4, !tbaa !5
  %6889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6890 = call i32 @s2n_print_stacktrace(ptr noundef %6889) #12
  %6891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6892 = trunc nuw i8 %6891 to i1
  br i1 %6892, label %6893, label %6897

6893:                                             ; preds = %6887
  %6894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6895 = call i32 @fileno(ptr noundef %6894) #12
  %6896 = call i32 @isatty(i32 noundef %6895) #12
  %.not1482 = icmp eq i32 %6896, 0
  br i1 %.not1482, label %6897, label %6898

6897:                                             ; preds = %6893, %6887
  br label %6898

6898:                                             ; preds = %6893, %6897
  %.str.5.sink3852 = phi ptr [ @.str.5, %6897 ], [ @.str.2, %6893 ]
  store i32 %6888, ptr %260, align 4, !tbaa !5
  %6899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6900 = load i32, ptr @test_count, align 4, !tbaa !5
  %6901 = load i32, ptr %206, align 4, !tbaa !5
  %6902 = call ptr @s2n_strerror(i32 noundef %6901, ptr noundef nonnull @.str.4) #12
  %6903 = load i32, ptr %206, align 4, !tbaa !5
  %6904 = call ptr @s2n_strerror_debug(i32 noundef %6903, ptr noundef nonnull @.str.4) #12
  %6905 = load i32, ptr %260, align 4, !tbaa !5
  %6906 = call ptr @strerror(i32 noundef %6905) #12
  %6907 = load i32, ptr %260, align 4, !tbaa !5
  %6908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6899, ptr noundef nonnull %.str.5.sink3852, i32 noundef %6900, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.1, i32 noundef 667, ptr noundef %6902, ptr noundef %6904, ptr noundef %6906, i32 noundef %6907) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6909:                                             ; preds = %6881
  %6910 = add nsw i32 %6882, 2
  store i32 %6910, ptr @test_count, align 4, !tbaa !5
  %6911 = icmp eq ptr %6885, @s2n_secp256r1_kyber_512_r3
  br i1 %6911, label %6934, label %6912

6912:                                             ; preds = %6909
  %6913 = load i32, ptr %260, align 4, !tbaa !5
  %6914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6915 = call i32 @s2n_print_stacktrace(ptr noundef %6914) #12
  %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) #12
  %6921 = call i32 @isatty(i32 noundef %6920) #12
  %.not1333 = icmp eq i32 %6921, 0
  br i1 %.not1333, label %6922, label %6923

6922:                                             ; preds = %6918, %6912
  br label %6923

6923:                                             ; preds = %6918, %6922
  %.str.5.sink3861 = phi ptr [ @.str.5, %6922 ], [ @.str.2, %6918 ]
  store i32 %6913, ptr %260, 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 %206, align 4, !tbaa !5
  %6927 = call ptr @s2n_strerror(i32 noundef %6926, ptr noundef nonnull @.str.4) #12
  %6928 = load i32, ptr %206, align 4, !tbaa !5
  %6929 = call ptr @s2n_strerror_debug(i32 noundef %6928, ptr noundef nonnull @.str.4) #12
  %6930 = load i32, ptr %260, align 4, !tbaa !5
  %6931 = call ptr @strerror(i32 noundef %6930) #12
  %6932 = load i32, ptr %260, align 4, !tbaa !5
  %6933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6924, ptr noundef nonnull %.str.5.sink3861, i32 noundef %6925, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.1, i32 noundef 668, ptr noundef %6927, ptr noundef %6929, ptr noundef %6931, i32 noundef %6932) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6934:                                             ; preds = %6909
  %6935 = add nsw i32 %6882, 3
  store i32 %6935, ptr @test_count, align 4, !tbaa !5
  %6936 = getelementptr inbounds i8, ptr %6135, i64 816
  %6937 = load ptr, ptr %6936, align 8, !tbaa !93
  %6938 = icmp eq ptr %6937, null
  br i1 %6938, label %6939, label %6961

6939:                                             ; preds = %6934
  %6940 = load i32, ptr %260, align 4, !tbaa !5
  %6941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6942 = call i32 @s2n_print_stacktrace(ptr noundef %6941) #12
  %6943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6944 = trunc nuw i8 %6943 to i1
  br i1 %6944, label %6945, label %6949

6945:                                             ; preds = %6939
  %6946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6947 = call i32 @fileno(ptr noundef %6946) #12
  %6948 = call i32 @isatty(i32 noundef %6947) #12
  %.not1481 = icmp eq i32 %6948, 0
  br i1 %.not1481, label %6949, label %6950

6949:                                             ; preds = %6945, %6939
  br label %6950

6950:                                             ; preds = %6945, %6949
  %.str.5.sink3870 = phi ptr [ @.str.5, %6949 ], [ @.str.2, %6945 ]
  store i32 %6940, ptr %260, align 4, !tbaa !5
  %6951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6952 = load i32, ptr @test_count, align 4, !tbaa !5
  %6953 = load i32, ptr %206, align 4, !tbaa !5
  %6954 = call ptr @s2n_strerror(i32 noundef %6953, ptr noundef nonnull @.str.4) #12
  %6955 = load i32, ptr %206, align 4, !tbaa !5
  %6956 = call ptr @s2n_strerror_debug(i32 noundef %6955, ptr noundef nonnull @.str.4) #12
  %6957 = load i32, ptr %260, align 4, !tbaa !5
  %6958 = call ptr @strerror(i32 noundef %6957) #12
  %6959 = load i32, ptr %260, align 4, !tbaa !5
  %6960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6951, ptr noundef nonnull %.str.5.sink3870, i32 noundef %6952, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.1, i32 noundef 669, ptr noundef %6954, ptr noundef %6956, ptr noundef %6958, i32 noundef %6959) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6961:                                             ; preds = %6934
  %6962 = add nsw i32 %6882, 4
  store i32 %6962, ptr @test_count, align 4, !tbaa !5
  %6963 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_secp256r1_kyber_512_r3, i64 16), align 8, !tbaa !88
  %6964 = icmp eq ptr %6937, %6963
  br i1 %6964, label %6987, label %6965

6965:                                             ; preds = %6961
  %6966 = load i32, ptr %260, align 4, !tbaa !5
  %6967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6968 = call i32 @s2n_print_stacktrace(ptr noundef %6967) #12
  %6969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6970 = trunc nuw i8 %6969 to i1
  br i1 %6970, label %6971, label %6975

6971:                                             ; preds = %6965
  %6972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6973 = call i32 @fileno(ptr noundef %6972) #12
  %6974 = call i32 @isatty(i32 noundef %6973) #12
  %.not1334 = icmp eq i32 %6974, 0
  br i1 %.not1334, label %6975, label %6976

6975:                                             ; preds = %6971, %6965
  br label %6976

6976:                                             ; preds = %6971, %6975
  %.str.5.sink3879 = phi ptr [ @.str.5, %6975 ], [ @.str.2, %6971 ]
  store i32 %6966, ptr %260, align 4, !tbaa !5
  %6977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6978 = load i32, ptr @test_count, align 4, !tbaa !5
  %6979 = load i32, ptr %206, align 4, !tbaa !5
  %6980 = call ptr @s2n_strerror(i32 noundef %6979, ptr noundef nonnull @.str.4) #12
  %6981 = load i32, ptr %206, align 4, !tbaa !5
  %6982 = call ptr @s2n_strerror_debug(i32 noundef %6981, ptr noundef nonnull @.str.4) #12
  %6983 = load i32, ptr %260, align 4, !tbaa !5
  %6984 = call ptr @strerror(i32 noundef %6983) #12
  %6985 = load i32, ptr %260, align 4, !tbaa !5
  %6986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6977, ptr noundef nonnull %.str.5.sink3879, i32 noundef %6978, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 670, ptr noundef %6980, ptr noundef %6982, ptr noundef %6984, i32 noundef %6985) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6987:                                             ; preds = %6961
  %6988 = add nsw i32 %6882, 5
  store i32 %6988, ptr @test_count, align 4, !tbaa !5
  %6989 = getelementptr inbounds i8, ptr %6135, i64 728
  %6990 = load ptr, ptr %6989, align 8, !tbaa !94
  %6991 = icmp eq ptr %6990, null
  br i1 %6991, label %6992, label %7014

6992:                                             ; preds = %6987
  %6993 = load i32, ptr %260, align 4, !tbaa !5
  %6994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6995 = call i32 @s2n_print_stacktrace(ptr noundef %6994) #12
  %6996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6997 = trunc nuw i8 %6996 to i1
  br i1 %6997, label %6998, label %7002

6998:                                             ; preds = %6992
  %6999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7000 = call i32 @fileno(ptr noundef %6999) #12
  %7001 = call i32 @isatty(i32 noundef %7000) #12
  %.not1480 = icmp eq i32 %7001, 0
  br i1 %.not1480, label %7002, label %7003

7002:                                             ; preds = %6998, %6992
  br label %7003

7003:                                             ; preds = %6998, %7002
  %.str.5.sink3888 = phi ptr [ @.str.5, %7002 ], [ @.str.2, %6998 ]
  store i32 %6993, ptr %260, align 4, !tbaa !5
  %7004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7005 = load i32, ptr @test_count, align 4, !tbaa !5
  %7006 = load i32, ptr %206, align 4, !tbaa !5
  %7007 = call ptr @s2n_strerror(i32 noundef %7006, ptr noundef nonnull @.str.4) #12
  %7008 = load i32, ptr %206, align 4, !tbaa !5
  %7009 = call ptr @s2n_strerror_debug(i32 noundef %7008, ptr noundef nonnull @.str.4) #12
  %7010 = load i32, ptr %260, align 4, !tbaa !5
  %7011 = call ptr @strerror(i32 noundef %7010) #12
  %7012 = load i32, ptr %260, align 4, !tbaa !5
  %7013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7004, ptr noundef nonnull %.str.5.sink3888, i32 noundef %7005, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 671, ptr noundef %7007, ptr noundef %7009, ptr noundef %7011, i32 noundef %7012) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7014:                                             ; preds = %6987
  %7015 = add nsw i32 %6882, 6
  store i32 %7015, ptr @test_count, align 4, !tbaa !5
  %7016 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_secp256r1_kyber_512_r3, i64 24), align 8, !tbaa !90
  %7017 = icmp eq ptr %6990, %7016
  br i1 %7017, label %7040, label %7018

7018:                                             ; preds = %7014
  %7019 = load i32, ptr %260, align 4, !tbaa !5
  %7020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7021 = call i32 @s2n_print_stacktrace(ptr noundef %7020) #12
  %7022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7023 = trunc nuw i8 %7022 to i1
  br i1 %7023, label %7024, label %7028

7024:                                             ; preds = %7018
  %7025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7026 = call i32 @fileno(ptr noundef %7025) #12
  %7027 = call i32 @isatty(i32 noundef %7026) #12
  %.not1335 = icmp eq i32 %7027, 0
  br i1 %.not1335, label %7028, label %7029

7028:                                             ; preds = %7024, %7018
  br label %7029

7029:                                             ; preds = %7024, %7028
  %.str.5.sink3897 = phi ptr [ @.str.5, %7028 ], [ @.str.2, %7024 ]
  store i32 %7019, ptr %260, align 4, !tbaa !5
  %7030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7031 = load i32, ptr @test_count, align 4, !tbaa !5
  %7032 = load i32, ptr %206, align 4, !tbaa !5
  %7033 = call ptr @s2n_strerror(i32 noundef %7032, ptr noundef nonnull @.str.4) #12
  %7034 = load i32, ptr %206, align 4, !tbaa !5
  %7035 = call ptr @s2n_strerror_debug(i32 noundef %7034, ptr noundef nonnull @.str.4) #12
  %7036 = load i32, ptr %260, align 4, !tbaa !5
  %7037 = call ptr @strerror(i32 noundef %7036) #12
  %7038 = load i32, ptr %260, align 4, !tbaa !5
  %7039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7030, ptr noundef nonnull %.str.5.sink3897, i32 noundef %7031, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.1, i32 noundef 672, ptr noundef %7033, ptr noundef %7035, ptr noundef %7037, i32 noundef %7038) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7040:                                             ; preds = %7014
  %7041 = add nsw i32 %6882, 7
  store i32 %7041, ptr @test_count, align 4, !tbaa !5
  %7042 = getelementptr inbounds i8, ptr %6135, i64 832
  %7043 = load ptr, ptr %7042, align 8, !tbaa !87
  %7044 = icmp eq ptr %7043, null
  br i1 %7044, label %7067, label %7045

7045:                                             ; preds = %7040
  %7046 = load i32, ptr %260, align 4, !tbaa !5
  %7047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7048 = call i32 @s2n_print_stacktrace(ptr noundef %7047) #12
  %7049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7050 = trunc nuw i8 %7049 to i1
  br i1 %7050, label %7051, label %7055

7051:                                             ; preds = %7045
  %7052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7053 = call i32 @fileno(ptr noundef %7052) #12
  %7054 = call i32 @isatty(i32 noundef %7053) #12
  %.not1336 = icmp eq i32 %7054, 0
  br i1 %.not1336, label %7055, label %7056

7055:                                             ; preds = %7051, %7045
  br label %7056

7056:                                             ; preds = %7051, %7055
  %.str.5.sink3906 = phi ptr [ @.str.5, %7055 ], [ @.str.2, %7051 ]
  store i32 %7046, ptr %260, align 4, !tbaa !5
  %7057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7058 = load i32, ptr @test_count, align 4, !tbaa !5
  %7059 = load i32, ptr %206, align 4, !tbaa !5
  %7060 = call ptr @s2n_strerror(i32 noundef %7059, ptr noundef nonnull @.str.4) #12
  %7061 = load i32, ptr %206, align 4, !tbaa !5
  %7062 = call ptr @s2n_strerror_debug(i32 noundef %7061, ptr noundef nonnull @.str.4) #12
  %7063 = load i32, ptr %260, align 4, !tbaa !5
  %7064 = call ptr @strerror(i32 noundef %7063) #12
  %7065 = load i32, ptr %260, align 4, !tbaa !5
  %7066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7057, ptr noundef nonnull %.str.5.sink3906, i32 noundef %7058, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.1, i32 noundef 676, ptr noundef %7060, ptr noundef %7062, ptr noundef %7064, i32 noundef %7065) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7067:                                             ; preds = %7040
  %7068 = add nsw i32 %6882, 8
  store i32 %7068, ptr @test_count, align 4, !tbaa !5
  %7069 = getelementptr inbounds i8, ptr %6135, i64 928
  %7070 = load ptr, ptr %7069, align 8, !tbaa !89
  %7071 = icmp eq ptr %7070, null
  br i1 %7071, label %7094, label %7072

7072:                                             ; preds = %7067
  %7073 = load i32, ptr %260, align 4, !tbaa !5
  %7074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7075 = call i32 @s2n_print_stacktrace(ptr noundef %7074) #12
  %7076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7077 = trunc nuw i8 %7076 to i1
  br i1 %7077, label %7078, label %7082

7078:                                             ; preds = %7072
  %7079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7080 = call i32 @fileno(ptr noundef %7079) #12
  %7081 = call i32 @isatty(i32 noundef %7080) #12
  %.not1337 = icmp eq i32 %7081, 0
  br i1 %.not1337, label %7082, label %7083

7082:                                             ; preds = %7078, %7072
  br label %7083

7083:                                             ; preds = %7078, %7082
  %.str.5.sink3915 = phi ptr [ @.str.5, %7082 ], [ @.str.2, %7078 ]
  store i32 %7073, ptr %260, align 4, !tbaa !5
  %7084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7085 = load i32, ptr @test_count, align 4, !tbaa !5
  %7086 = load i32, ptr %206, align 4, !tbaa !5
  %7087 = call ptr @s2n_strerror(i32 noundef %7086, ptr noundef nonnull @.str.4) #12
  %7088 = load i32, ptr %206, align 4, !tbaa !5
  %7089 = call ptr @s2n_strerror_debug(i32 noundef %7088, ptr noundef nonnull @.str.4) #12
  %7090 = load i32, ptr %260, align 4, !tbaa !5
  %7091 = call ptr @strerror(i32 noundef %7090) #12
  %7092 = load i32, ptr %260, align 4, !tbaa !5
  %7093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7084, ptr noundef nonnull %.str.5.sink3915, i32 noundef %7085, ptr noundef nonnull @.str.154, ptr noundef nonnull @.str.1, i32 noundef 677, ptr noundef %7087, ptr noundef %7089, ptr noundef %7091, i32 noundef %7092) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7094:                                             ; preds = %7067
  %7095 = add nsw i32 %6882, 9
  store i32 %7095, ptr @test_count, align 4, !tbaa !5
  %7096 = getelementptr inbounds i8, ptr %6135, i64 936
  %7097 = load ptr, ptr %7096, align 8, !tbaa !102
  %7098 = icmp eq ptr %7097, null
  br i1 %7098, label %7121, label %7099

7099:                                             ; preds = %7094
  %7100 = load i32, ptr %260, align 4, !tbaa !5
  %7101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7102 = call i32 @s2n_print_stacktrace(ptr noundef %7101) #12
  %7103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7104 = trunc nuw i8 %7103 to i1
  br i1 %7104, label %7105, label %7109

7105:                                             ; preds = %7099
  %7106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7107 = call i32 @fileno(ptr noundef %7106) #12
  %7108 = call i32 @isatty(i32 noundef %7107) #12
  %.not1338 = icmp eq i32 %7108, 0
  br i1 %.not1338, label %7109, label %7110

7109:                                             ; preds = %7105, %7099
  br label %7110

7110:                                             ; preds = %7105, %7109
  %.str.5.sink3924 = phi ptr [ @.str.5, %7109 ], [ @.str.2, %7105 ]
  store i32 %7100, ptr %260, align 4, !tbaa !5
  %7111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7112 = load i32, ptr @test_count, align 4, !tbaa !5
  %7113 = load i32, ptr %206, align 4, !tbaa !5
  %7114 = call ptr @s2n_strerror(i32 noundef %7113, ptr noundef nonnull @.str.4) #12
  %7115 = load i32, ptr %206, align 4, !tbaa !5
  %7116 = call ptr @s2n_strerror_debug(i32 noundef %7115, ptr noundef nonnull @.str.4) #12
  %7117 = load i32, ptr %260, align 4, !tbaa !5
  %7118 = call ptr @strerror(i32 noundef %7117) #12
  %7119 = load i32, ptr %260, align 4, !tbaa !5
  %7120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7111, ptr noundef nonnull %.str.5.sink3924, i32 noundef %7112, ptr noundef nonnull @.str.155, ptr noundef nonnull @.str.1, i32 noundef 678, ptr noundef %7114, ptr noundef %7116, ptr noundef %7118, i32 noundef %7119) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7121:                                             ; preds = %7094
  %7122 = add nsw i32 %6882, 10
  store i32 %7122, ptr @test_count, align 4, !tbaa !5
  %7123 = getelementptr inbounds i8, ptr %6135, i64 840
  %7124 = load ptr, ptr %7123, align 8, !tbaa !91
  %7125 = icmp eq ptr %7124, null
  br i1 %7125, label %7148, label %7126

7126:                                             ; preds = %7121
  %7127 = load i32, ptr %260, align 4, !tbaa !5
  %7128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7129 = call i32 @s2n_print_stacktrace(ptr noundef %7128) #12
  %7130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7131 = trunc nuw i8 %7130 to i1
  br i1 %7131, label %7132, label %7136

7132:                                             ; preds = %7126
  %7133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7134 = call i32 @fileno(ptr noundef %7133) #12
  %7135 = call i32 @isatty(i32 noundef %7134) #12
  %.not1339 = icmp eq i32 %7135, 0
  br i1 %.not1339, label %7136, label %7137

7136:                                             ; preds = %7132, %7126
  br label %7137

7137:                                             ; preds = %7132, %7136
  %.str.5.sink3933 = phi ptr [ @.str.5, %7136 ], [ @.str.2, %7132 ]
  store i32 %7127, ptr %260, align 4, !tbaa !5
  %7138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7139 = load i32, ptr @test_count, align 4, !tbaa !5
  %7140 = load i32, ptr %206, align 4, !tbaa !5
  %7141 = call ptr @s2n_strerror(i32 noundef %7140, ptr noundef nonnull @.str.4) #12
  %7142 = load i32, ptr %206, align 4, !tbaa !5
  %7143 = call ptr @s2n_strerror_debug(i32 noundef %7142, ptr noundef nonnull @.str.4) #12
  %7144 = load i32, ptr %260, align 4, !tbaa !5
  %7145 = call ptr @strerror(i32 noundef %7144) #12
  %7146 = load i32, ptr %260, align 4, !tbaa !5
  %7147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7138, ptr noundef nonnull %.str.5.sink3933, i32 noundef %7139, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.1, i32 noundef 679, ptr noundef %7141, ptr noundef %7143, ptr noundef %7145, i32 noundef %7146) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7148:                                             ; preds = %7121
  %7149 = add nsw i32 %6882, 11
  store i32 %7149, ptr @test_count, align 4, !tbaa !5
  %7150 = getelementptr inbounds i8, ptr %6135, i64 872
  %7151 = load ptr, ptr %7150, align 8, !tbaa !103
  %7152 = icmp eq ptr %7151, null
  br i1 %7152, label %7175, label %7153

7153:                                             ; preds = %7148
  %7154 = load i32, ptr %260, align 4, !tbaa !5
  %7155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7156 = call i32 @s2n_print_stacktrace(ptr noundef %7155) #12
  %7157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7158 = trunc nuw i8 %7157 to i1
  br i1 %7158, label %7159, label %7163

7159:                                             ; preds = %7153
  %7160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7161 = call i32 @fileno(ptr noundef %7160) #12
  %7162 = call i32 @isatty(i32 noundef %7161) #12
  %.not1340 = icmp eq i32 %7162, 0
  br i1 %.not1340, label %7163, label %7164

7163:                                             ; preds = %7159, %7153
  br label %7164

7164:                                             ; preds = %7159, %7163
  %.str.5.sink3942 = phi ptr [ @.str.5, %7163 ], [ @.str.2, %7159 ]
  store i32 %7154, ptr %260, align 4, !tbaa !5
  %7165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7166 = load i32, ptr @test_count, align 4, !tbaa !5
  %7167 = load i32, ptr %206, align 4, !tbaa !5
  %7168 = call ptr @s2n_strerror(i32 noundef %7167, ptr noundef nonnull @.str.4) #12
  %7169 = load i32, ptr %206, align 4, !tbaa !5
  %7170 = call ptr @s2n_strerror_debug(i32 noundef %7169, ptr noundef nonnull @.str.4) #12
  %7171 = load i32, ptr %260, align 4, !tbaa !5
  %7172 = call ptr @strerror(i32 noundef %7171) #12
  %7173 = load i32, ptr %260, align 4, !tbaa !5
  %7174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7165, ptr noundef nonnull %.str.5.sink3942, i32 noundef %7166, ptr noundef nonnull @.str.157, ptr noundef nonnull @.str.1, i32 noundef 680, ptr noundef %7168, ptr noundef %7170, ptr noundef %7172, i32 noundef %7173) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7175:                                             ; preds = %7148
  %7176 = add nsw i32 %6882, 12
  store i32 %7176, ptr @test_count, align 4, !tbaa !5
  %7177 = getelementptr inbounds i8, ptr %6135, i64 848
  %7178 = load ptr, ptr %7177, align 8, !tbaa !104
  %7179 = icmp eq ptr %7178, null
  br i1 %7179, label %7202, label %7180

7180:                                             ; preds = %7175
  %7181 = load i32, ptr %260, align 4, !tbaa !5
  %7182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7183 = call i32 @s2n_print_stacktrace(ptr noundef %7182) #12
  %7184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7185 = trunc nuw i8 %7184 to i1
  br i1 %7185, label %7186, label %7190

7186:                                             ; preds = %7180
  %7187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7188 = call i32 @fileno(ptr noundef %7187) #12
  %7189 = call i32 @isatty(i32 noundef %7188) #12
  %.not1341 = icmp eq i32 %7189, 0
  br i1 %.not1341, label %7190, label %7191

7190:                                             ; preds = %7186, %7180
  br label %7191

7191:                                             ; preds = %7186, %7190
  %.str.5.sink3951 = phi ptr [ @.str.5, %7190 ], [ @.str.2, %7186 ]
  store i32 %7181, ptr %260, align 4, !tbaa !5
  %7192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7193 = load i32, ptr @test_count, align 4, !tbaa !5
  %7194 = load i32, ptr %206, align 4, !tbaa !5
  %7195 = call ptr @s2n_strerror(i32 noundef %7194, ptr noundef nonnull @.str.4) #12
  %7196 = load i32, ptr %206, align 4, !tbaa !5
  %7197 = call ptr @s2n_strerror_debug(i32 noundef %7196, ptr noundef nonnull @.str.4) #12
  %7198 = load i32, ptr %260, align 4, !tbaa !5
  %7199 = call ptr @strerror(i32 noundef %7198) #12
  %7200 = load i32, ptr %260, align 4, !tbaa !5
  %7201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7192, ptr noundef nonnull %.str.5.sink3951, i32 noundef %7193, ptr noundef nonnull @.str.158, ptr noundef nonnull @.str.1, i32 noundef 681, ptr noundef %7195, ptr noundef %7197, ptr noundef %7199, i32 noundef %7200) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7202:                                             ; preds = %7175
  %7203 = add nsw i32 %6882, 13
  store i32 %7203, ptr @test_count, align 4, !tbaa !5
  %7204 = getelementptr inbounds i8, ptr %6135, i64 896
  %7205 = load ptr, ptr %7204, align 8, !tbaa !95
  %7206 = icmp eq ptr %7205, null
  br i1 %7206, label %7229, label %7207

7207:                                             ; preds = %7202
  %7208 = load i32, ptr %260, align 4, !tbaa !5
  %7209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7210 = call i32 @s2n_print_stacktrace(ptr noundef %7209) #12
  %7211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7212 = trunc nuw i8 %7211 to i1
  br i1 %7212, label %7213, label %7217

7213:                                             ; preds = %7207
  %7214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7215 = call i32 @fileno(ptr noundef %7214) #12
  %7216 = call i32 @isatty(i32 noundef %7215) #12
  %.not1342 = icmp eq i32 %7216, 0
  br i1 %.not1342, label %7217, label %7218

7217:                                             ; preds = %7213, %7207
  br label %7218

7218:                                             ; preds = %7213, %7217
  %.str.5.sink3960 = phi ptr [ @.str.5, %7217 ], [ @.str.2, %7213 ]
  store i32 %7208, ptr %260, align 4, !tbaa !5
  %7219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7220 = load i32, ptr @test_count, align 4, !tbaa !5
  %7221 = load i32, ptr %206, align 4, !tbaa !5
  %7222 = call ptr @s2n_strerror(i32 noundef %7221, ptr noundef nonnull @.str.4) #12
  %7223 = load i32, ptr %206, align 4, !tbaa !5
  %7224 = call ptr @s2n_strerror_debug(i32 noundef %7223, ptr noundef nonnull @.str.4) #12
  %7225 = load i32, ptr %260, align 4, !tbaa !5
  %7226 = call ptr @strerror(i32 noundef %7225) #12
  %7227 = load i32, ptr %260, align 4, !tbaa !5
  %7228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7219, ptr noundef nonnull %.str.5.sink3960, i32 noundef %7220, ptr noundef nonnull @.str.159, ptr noundef nonnull @.str.1, i32 noundef 682, ptr noundef %7222, ptr noundef %7224, ptr noundef %7226, i32 noundef %7227) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7229:                                             ; preds = %7202
  %7230 = add nsw i32 %6882, 14
  store i32 %7230, ptr @test_count, align 4, !tbaa !5
  %7231 = getelementptr inbounds i8, ptr %6135, i64 824
  %7232 = load ptr, ptr %7231, align 8, !tbaa !105
  %7233 = icmp eq ptr %7232, null
  br i1 %7233, label %7256, label %7234

7234:                                             ; preds = %7229
  %7235 = load i32, ptr %260, align 4, !tbaa !5
  %7236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7237 = call i32 @s2n_print_stacktrace(ptr noundef %7236) #12
  %7238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7239 = trunc nuw i8 %7238 to i1
  br i1 %7239, label %7240, label %7244

7240:                                             ; preds = %7234
  %7241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7242 = call i32 @fileno(ptr noundef %7241) #12
  %7243 = call i32 @isatty(i32 noundef %7242) #12
  %.not1343 = icmp eq i32 %7243, 0
  br i1 %.not1343, label %7244, label %7245

7244:                                             ; preds = %7240, %7234
  br label %7245

7245:                                             ; preds = %7240, %7244
  %.str.5.sink3969 = phi ptr [ @.str.5, %7244 ], [ @.str.2, %7240 ]
  store i32 %7235, ptr %260, align 4, !tbaa !5
  %7246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7247 = load i32, ptr @test_count, align 4, !tbaa !5
  %7248 = load i32, ptr %206, align 4, !tbaa !5
  %7249 = call ptr @s2n_strerror(i32 noundef %7248, ptr noundef nonnull @.str.4) #12
  %7250 = load i32, ptr %206, align 4, !tbaa !5
  %7251 = call ptr @s2n_strerror_debug(i32 noundef %7250, ptr noundef nonnull @.str.4) #12
  %7252 = load i32, ptr %260, align 4, !tbaa !5
  %7253 = call ptr @strerror(i32 noundef %7252) #12
  %7254 = load i32, ptr %260, align 4, !tbaa !5
  %7255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7246, ptr noundef nonnull %.str.5.sink3969, i32 noundef %7247, ptr noundef nonnull @.str.160, ptr noundef nonnull @.str.1, i32 noundef 684, ptr noundef %7249, ptr noundef %7251, ptr noundef %7253, i32 noundef %7254) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7256:                                             ; preds = %7229
  %7257 = add nsw i32 %6882, 15
  store i32 %7257, ptr @test_count, align 4, !tbaa !5
  %7258 = getelementptr inbounds i8, ptr %6135, i64 784
  %7259 = load ptr, ptr %7258, align 8, !tbaa !106
  %7260 = icmp eq ptr %7259, null
  br i1 %7260, label %7283, label %7261

7261:                                             ; preds = %7256
  %7262 = load i32, ptr %260, align 4, !tbaa !5
  %7263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7264 = call i32 @s2n_print_stacktrace(ptr noundef %7263) #12
  %7265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7266 = trunc nuw i8 %7265 to i1
  br i1 %7266, label %7267, label %7271

7267:                                             ; preds = %7261
  %7268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7269 = call i32 @fileno(ptr noundef %7268) #12
  %7270 = call i32 @isatty(i32 noundef %7269) #12
  %.not1344 = icmp eq i32 %7270, 0
  br i1 %.not1344, label %7271, label %7272

7271:                                             ; preds = %7267, %7261
  br label %7272

7272:                                             ; preds = %7267, %7271
  %.str.5.sink3978 = phi ptr [ @.str.5, %7271 ], [ @.str.2, %7267 ]
  store i32 %7262, ptr %260, align 4, !tbaa !5
  %7273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7274 = load i32, ptr @test_count, align 4, !tbaa !5
  %7275 = load i32, ptr %206, align 4, !tbaa !5
  %7276 = call ptr @s2n_strerror(i32 noundef %7275, ptr noundef nonnull @.str.4) #12
  %7277 = load i32, ptr %206, align 4, !tbaa !5
  %7278 = call ptr @s2n_strerror_debug(i32 noundef %7277, ptr noundef nonnull @.str.4) #12
  %7279 = load i32, ptr %260, align 4, !tbaa !5
  %7280 = call ptr @strerror(i32 noundef %7279) #12
  %7281 = load i32, ptr %260, align 4, !tbaa !5
  %7282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7273, ptr noundef nonnull %.str.5.sink3978, i32 noundef %7274, ptr noundef nonnull @.str.161, ptr noundef nonnull @.str.1, i32 noundef 685, ptr noundef %7276, ptr noundef %7278, ptr noundef %7280, i32 noundef %7281) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7283:                                             ; preds = %7256
  %7284 = add nsw i32 %6882, 16
  store i32 %7284, ptr @test_count, align 4, !tbaa !5
  %7285 = call i32 @s2n_connection_free(ptr noundef nonnull %6135) #12
  %7286 = icmp eq i32 %7285, -1
  br i1 %7286, label %7287, label %7309

7287:                                             ; preds = %7283
  %7288 = load i32, ptr %260, align 4, !tbaa !5
  %7289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7290 = call i32 @s2n_print_stacktrace(ptr noundef %7289) #12
  %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 = %7287
  %7294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7295 = call i32 @fileno(ptr noundef %7294) #12
  %7296 = call i32 @isatty(i32 noundef %7295) #12
  %.not1479 = icmp eq i32 %7296, 0
  br i1 %.not1479, label %7297, label %7298

7297:                                             ; preds = %7293, %7287
  br label %7298

7298:                                             ; preds = %7293, %7297
  %.str.5.sink3987 = phi ptr [ @.str.5, %7297 ], [ @.str.2, %7293 ]
  store i32 %7288, ptr %260, 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 %206, align 4, !tbaa !5
  %7302 = call ptr @s2n_strerror(i32 noundef %7301, ptr noundef nonnull @.str.4) #12
  %7303 = load i32, ptr %206, align 4, !tbaa !5
  %7304 = call ptr @s2n_strerror_debug(i32 noundef %7303, ptr noundef nonnull @.str.4) #12
  %7305 = load i32, ptr %260, align 4, !tbaa !5
  %7306 = call ptr @strerror(i32 noundef %7305) #12
  %7307 = load i32, ptr %260, align 4, !tbaa !5
  %7308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7299, ptr noundef nonnull %.str.5.sink3987, i32 noundef %7300, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 687, ptr noundef %7302, ptr noundef %7304, ptr noundef %7306, i32 noundef %7307) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7309:                                             ; preds = %7283
  %7310 = call i32 @s2n_stuffer_free(ptr noundef nonnull %39) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %39) #12
  br label %7311

7311:                                             ; preds = %7309, %8201
  %7312 = phi i1 [ true, %7309 ], [ false, %8201 ]
  %.012261685.sroa.phi = phi ptr [ %27, %7309 ], [ %.012261685.sroa.gep5168, %8201 ]
  %7313 = load ptr, ptr %.012261685.sroa.phi, align 8, !tbaa !9
  %7314 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %7313) #12
  br i1 %7314, label %7315, label %8201

7315:                                             ; preds = %7311
  %7316 = load i32, ptr @test_count, align 4, !tbaa !5
  %7317 = add nsw i32 %7316, 1
  store i32 %7317, ptr @test_count, align 4, !tbaa !5
  %7318 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %7319 = icmp eq ptr %7318, null
  br i1 %7319, label %7320, label %7342

7320:                                             ; preds = %7315
  %7321 = load i32, ptr %260, align 4, !tbaa !5
  %7322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7323 = call i32 @s2n_print_stacktrace(ptr noundef %7322) #12
  %7324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7325 = trunc nuw i8 %7324 to i1
  br i1 %7325, label %7326, label %7330

7326:                                             ; preds = %7320
  %7327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7328 = call i32 @fileno(ptr noundef %7327) #12
  %7329 = call i32 @isatty(i32 noundef %7328) #12
  %.not1478 = icmp eq i32 %7329, 0
  br i1 %.not1478, label %7330, label %7331

7330:                                             ; preds = %7326, %7320
  br label %7331

7331:                                             ; preds = %7326, %7330
  %.str.5.sink3996 = phi ptr [ @.str.5, %7330 ], [ @.str.2, %7326 ]
  store i32 %7321, ptr %260, align 4, !tbaa !5
  %7332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7333 = load i32, ptr @test_count, align 4, !tbaa !5
  %7334 = load i32, ptr %206, align 4, !tbaa !5
  %7335 = call ptr @s2n_strerror(i32 noundef %7334, ptr noundef nonnull @.str.4) #12
  %7336 = load i32, ptr %206, align 4, !tbaa !5
  %7337 = call ptr @s2n_strerror_debug(i32 noundef %7336, ptr noundef nonnull @.str.4) #12
  %7338 = load i32, ptr %260, align 4, !tbaa !5
  %7339 = call ptr @strerror(i32 noundef %7338) #12
  %7340 = load i32, ptr %260, align 4, !tbaa !5
  %7341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7332, ptr noundef nonnull %.str.5.sink3996, i32 noundef %7333, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 698, ptr noundef %7335, ptr noundef %7337, ptr noundef %7339, i32 noundef %7340) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7342:                                             ; preds = %7315
  %7343 = getelementptr inbounds i8, ptr %7318, i64 16
  store ptr %29, ptr %7343, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %40) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %40, i8 0, i64 40, i1 false)
  %7344 = load i32, ptr @test_count, align 4, !tbaa !5
  %7345 = add nsw i32 %7344, 1
  store i32 %7345, ptr @test_count, align 4, !tbaa !5
  %7346 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull %40, ptr noundef nonnull @.str.162) #12
  %7347 = call zeroext i1 @s2n_result_is_ok(i32 %7346)
  br i1 %7347, label %7370, label %7348

7348:                                             ; preds = %7342
  %7349 = load i32, ptr %260, align 4, !tbaa !5
  %7350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7351 = call i32 @s2n_print_stacktrace(ptr noundef %7350) #12
  %7352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7353 = trunc nuw i8 %7352 to i1
  br i1 %7353, label %7354, label %7358

7354:                                             ; preds = %7348
  %7355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7356 = call i32 @fileno(ptr noundef %7355) #12
  %7357 = call i32 @isatty(i32 noundef %7356) #12
  %.not1447 = icmp eq i32 %7357, 0
  br i1 %.not1447, label %7358, label %7359

7358:                                             ; preds = %7354, %7348
  br label %7359

7359:                                             ; preds = %7354, %7358
  %.str.5.sink4005 = phi ptr [ @.str.5, %7358 ], [ @.str.2, %7354 ]
  store i32 %7349, ptr %260, align 4, !tbaa !5
  %7360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7361 = load i32, ptr @test_count, align 4, !tbaa !5
  %7362 = load i32, ptr %206, align 4, !tbaa !5
  %7363 = call ptr @s2n_strerror(i32 noundef %7362, ptr noundef nonnull @.str.4) #12
  %7364 = load i32, ptr %206, align 4, !tbaa !5
  %7365 = call ptr @s2n_strerror_debug(i32 noundef %7364, ptr noundef nonnull @.str.4) #12
  %7366 = load i32, ptr %260, align 4, !tbaa !5
  %7367 = call ptr @strerror(i32 noundef %7366) #12
  %7368 = load i32, ptr %260, align 4, !tbaa !5
  %7369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7360, ptr noundef nonnull %.str.5.sink4005, i32 noundef %7361, ptr noundef nonnull @.str.163, ptr noundef nonnull @.str.1, i32 noundef 704, ptr noundef %7363, ptr noundef %7365, ptr noundef %7367, i32 noundef %7368) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7370:                                             ; preds = %7342
  %7371 = load i32, ptr @test_count, align 4, !tbaa !5
  %7372 = add nsw i32 %7371, 1
  store i32 %7372, ptr @test_count, align 4, !tbaa !5
  %7373 = call i32 %2349(ptr noundef nonnull %7318, ptr noundef nonnull %40) #12
  %7374 = icmp eq i32 %7373, -1
  br i1 %7374, label %7397, label %7375

7375:                                             ; preds = %7370
  %7376 = load i32, ptr %260, align 4, !tbaa !5
  %7377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7378 = call i32 @s2n_print_stacktrace(ptr noundef %7377) #12
  %7379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7380 = trunc nuw i8 %7379 to i1
  br i1 %7380, label %7381, label %7385

7381:                                             ; preds = %7375
  %7382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7383 = call i32 @fileno(ptr noundef %7382) #12
  %7384 = call i32 @isatty(i32 noundef %7383) #12
  %.not1448 = icmp eq i32 %7384, 0
  br i1 %.not1448, label %7385, label %7386

7385:                                             ; preds = %7381, %7375
  br label %7386

7386:                                             ; preds = %7381, %7385
  %.str.5.sink4014 = phi ptr [ @.str.5, %7385 ], [ @.str.2, %7381 ]
  store i32 %7376, ptr %260, align 4, !tbaa !5
  %7387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7388 = load i32, ptr @test_count, align 4, !tbaa !5
  %7389 = load i32, ptr %206, align 4, !tbaa !5
  %7390 = call ptr @s2n_strerror(i32 noundef %7389, ptr noundef nonnull @.str.4) #12
  %7391 = load i32, ptr %206, align 4, !tbaa !5
  %7392 = call ptr @s2n_strerror_debug(i32 noundef %7391, ptr noundef nonnull @.str.4) #12
  %7393 = load i32, ptr %260, align 4, !tbaa !5
  %7394 = call ptr @strerror(i32 noundef %7393) #12
  %7395 = load i32, ptr %260, align 4, !tbaa !5
  %7396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7387, ptr noundef nonnull %.str.5.sink4014, i32 noundef %7388, ptr noundef nonnull @.str.164, ptr noundef nonnull @.str.1, i32 noundef 706, ptr noundef %7390, ptr noundef %7392, ptr noundef %7394, i32 noundef %7395) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7397:                                             ; preds = %7370
  %7398 = load i32, ptr @test_count, align 4, !tbaa !5
  %7399 = add nsw i32 %7398, 1
  store i32 %7399, ptr @test_count, align 4, !tbaa !5
  %7400 = load i32, ptr %206, align 4, !tbaa !5
  %7401 = icmp eq i32 %7400, 335544356
  br i1 %7401, label %7424, label %7402

7402:                                             ; preds = %7397
  %7403 = load i32, ptr %260, align 4, !tbaa !5
  %7404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7405 = call i32 @s2n_print_stacktrace(ptr noundef %7404) #12
  %7406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7407 = trunc nuw i8 %7406 to i1
  br i1 %7407, label %7408, label %7412

7408:                                             ; preds = %7402
  %7409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7410 = call i32 @fileno(ptr noundef %7409) #12
  %7411 = call i32 @isatty(i32 noundef %7410) #12
  %.not1449 = icmp eq i32 %7411, 0
  br i1 %.not1449, label %7412, label %7413

7412:                                             ; preds = %7408, %7402
  br label %7413

7413:                                             ; preds = %7408, %7412
  %.str.5.sink4023 = phi ptr [ @.str.5, %7412 ], [ @.str.2, %7408 ]
  store i32 %7403, ptr %260, align 4, !tbaa !5
  %7414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7415 = load i32, ptr @test_count, align 4, !tbaa !5
  %7416 = load i32, ptr %206, align 4, !tbaa !5
  %7417 = call ptr @s2n_strerror(i32 noundef %7416, ptr noundef nonnull @.str.4) #12
  %7418 = load i32, ptr %206, align 4, !tbaa !5
  %7419 = call ptr @s2n_strerror_debug(i32 noundef %7418, ptr noundef nonnull @.str.4) #12
  %7420 = load i32, ptr %260, align 4, !tbaa !5
  %7421 = call ptr @strerror(i32 noundef %7420) #12
  %7422 = load i32, ptr %260, align 4, !tbaa !5
  %7423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7414, ptr noundef nonnull %.str.5.sink4023, i32 noundef %7415, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 706, ptr noundef %7417, ptr noundef %7419, ptr noundef %7421, i32 noundef %7422) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7424:                                             ; preds = %7397
  %7425 = add nsw i32 %7398, 2
  store i32 %7425, ptr @test_count, align 4, !tbaa !5
  %7426 = call ptr @s2n_strerror_debug(i32 noundef 335544356, ptr noundef nonnull @.str.4) #12
  %7427 = icmp eq ptr %7426, null
  br i1 %7427, label %7428, label %7450

7428:                                             ; preds = %7424
  %7429 = load i32, ptr %260, align 4, !tbaa !5
  %7430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7431 = call i32 @s2n_print_stacktrace(ptr noundef %7430) #12
  %7432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7433 = trunc nuw i8 %7432 to i1
  br i1 %7433, label %7434, label %7438

7434:                                             ; preds = %7428
  %7435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7436 = call i32 @fileno(ptr noundef %7435) #12
  %7437 = call i32 @isatty(i32 noundef %7436) #12
  %.not1477 = icmp eq i32 %7437, 0
  br i1 %.not1477, label %7438, label %7439

7438:                                             ; preds = %7434, %7428
  br label %7439

7439:                                             ; preds = %7434, %7438
  %.str.5.sink4032 = phi ptr [ @.str.5, %7438 ], [ @.str.2, %7434 ]
  store i32 %7429, ptr %260, align 4, !tbaa !5
  %7440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7441 = load i32, ptr @test_count, align 4, !tbaa !5
  %7442 = load i32, ptr %206, align 4, !tbaa !5
  %7443 = call ptr @s2n_strerror(i32 noundef %7442, ptr noundef nonnull @.str.4) #12
  %7444 = load i32, ptr %206, align 4, !tbaa !5
  %7445 = call ptr @s2n_strerror_debug(i32 noundef %7444, ptr noundef nonnull @.str.4) #12
  %7446 = load i32, ptr %260, align 4, !tbaa !5
  %7447 = call ptr @strerror(i32 noundef %7446) #12
  %7448 = load i32, ptr %260, align 4, !tbaa !5
  %7449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7440, ptr noundef nonnull %.str.5.sink4032, i32 noundef %7441, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 706, ptr noundef %7443, ptr noundef %7445, ptr noundef %7447, i32 noundef %7448) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7450:                                             ; preds = %7424
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %41) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %41, i8 0, i64 40, i1 false)
  %7451 = load i32, ptr @test_count, align 4, !tbaa !5
  %7452 = add nsw i32 %7451, 1
  store i32 %7452, ptr @test_count, align 4, !tbaa !5
  %7453 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull %41, ptr noundef nonnull @.str.165) #12
  %7454 = call zeroext i1 @s2n_result_is_ok(i32 %7453)
  br i1 %7454, label %7477, label %7455

7455:                                             ; preds = %7450
  %7456 = load i32, ptr %260, align 4, !tbaa !5
  %7457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7458 = call i32 @s2n_print_stacktrace(ptr noundef %7457) #12
  %7459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7460 = trunc nuw i8 %7459 to i1
  br i1 %7460, label %7461, label %7465

7461:                                             ; preds = %7455
  %7462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7463 = call i32 @fileno(ptr noundef %7462) #12
  %7464 = call i32 @isatty(i32 noundef %7463) #12
  %.not1450 = icmp eq i32 %7464, 0
  br i1 %.not1450, label %7465, label %7466

7465:                                             ; preds = %7461, %7455
  br label %7466

7466:                                             ; preds = %7461, %7465
  %.str.5.sink4041 = phi ptr [ @.str.5, %7465 ], [ @.str.2, %7461 ]
  store i32 %7456, ptr %260, align 4, !tbaa !5
  %7467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7468 = load i32, ptr @test_count, align 4, !tbaa !5
  %7469 = load i32, ptr %206, align 4, !tbaa !5
  %7470 = call ptr @s2n_strerror(i32 noundef %7469, ptr noundef nonnull @.str.4) #12
  %7471 = load i32, ptr %206, align 4, !tbaa !5
  %7472 = call ptr @s2n_strerror_debug(i32 noundef %7471, ptr noundef nonnull @.str.4) #12
  %7473 = load i32, ptr %260, align 4, !tbaa !5
  %7474 = call ptr @strerror(i32 noundef %7473) #12
  %7475 = load i32, ptr %260, align 4, !tbaa !5
  %7476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7467, ptr noundef nonnull %.str.5.sink4041, i32 noundef %7468, ptr noundef nonnull @.str.166, ptr noundef nonnull @.str.1, i32 noundef 711, ptr noundef %7470, ptr noundef %7472, ptr noundef %7474, i32 noundef %7475) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7477:                                             ; preds = %7450
  %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 = call i32 %2349(ptr noundef nonnull %7318, ptr noundef nonnull %41) #12
  %7481 = icmp eq i32 %7480, -1
  br i1 %7481, label %7504, label %7482

7482:                                             ; preds = %7477
  %7483 = load i32, ptr %260, align 4, !tbaa !5
  %7484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7485 = call i32 @s2n_print_stacktrace(ptr noundef %7484) #12
  %7486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7487 = trunc nuw i8 %7486 to i1
  br i1 %7487, label %7488, label %7492

7488:                                             ; preds = %7482
  %7489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7490 = call i32 @fileno(ptr noundef %7489) #12
  %7491 = call i32 @isatty(i32 noundef %7490) #12
  %.not1451 = icmp eq i32 %7491, 0
  br i1 %.not1451, label %7492, label %7493

7492:                                             ; preds = %7488, %7482
  br label %7493

7493:                                             ; preds = %7488, %7492
  %.str.5.sink4050 = phi ptr [ @.str.5, %7492 ], [ @.str.2, %7488 ]
  store i32 %7483, ptr %260, align 4, !tbaa !5
  %7494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7495 = load i32, ptr @test_count, align 4, !tbaa !5
  %7496 = load i32, ptr %206, align 4, !tbaa !5
  %7497 = call ptr @s2n_strerror(i32 noundef %7496, ptr noundef nonnull @.str.4) #12
  %7498 = load i32, ptr %206, align 4, !tbaa !5
  %7499 = call ptr @s2n_strerror_debug(i32 noundef %7498, ptr noundef nonnull @.str.4) #12
  %7500 = load i32, ptr %260, align 4, !tbaa !5
  %7501 = call ptr @strerror(i32 noundef %7500) #12
  %7502 = load i32, ptr %260, align 4, !tbaa !5
  %7503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7494, ptr noundef nonnull %.str.5.sink4050, i32 noundef %7495, ptr noundef nonnull @.str.167, ptr noundef nonnull @.str.1, i32 noundef 713, ptr noundef %7497, ptr noundef %7499, ptr noundef %7501, i32 noundef %7502) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7504:                                             ; preds = %7477
  %7505 = load i32, ptr @test_count, align 4, !tbaa !5
  %7506 = add nsw i32 %7505, 1
  store i32 %7506, ptr @test_count, align 4, !tbaa !5
  %7507 = load i32, ptr %206, align 4, !tbaa !5
  %7508 = icmp eq i32 %7507, 335544356
  br i1 %7508, label %7531, label %7509

7509:                                             ; preds = %7504
  %7510 = load i32, ptr %260, align 4, !tbaa !5
  %7511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7512 = call i32 @s2n_print_stacktrace(ptr noundef %7511) #12
  %7513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7514 = trunc nuw i8 %7513 to i1
  br i1 %7514, label %7515, label %7519

7515:                                             ; preds = %7509
  %7516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7517 = call i32 @fileno(ptr noundef %7516) #12
  %7518 = call i32 @isatty(i32 noundef %7517) #12
  %.not1452 = icmp eq i32 %7518, 0
  br i1 %.not1452, label %7519, label %7520

7519:                                             ; preds = %7515, %7509
  br label %7520

7520:                                             ; preds = %7515, %7519
  %.str.5.sink4059 = phi ptr [ @.str.5, %7519 ], [ @.str.2, %7515 ]
  store i32 %7510, ptr %260, align 4, !tbaa !5
  %7521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7522 = load i32, ptr @test_count, align 4, !tbaa !5
  %7523 = load i32, ptr %206, align 4, !tbaa !5
  %7524 = call ptr @s2n_strerror(i32 noundef %7523, ptr noundef nonnull @.str.4) #12
  %7525 = load i32, ptr %206, align 4, !tbaa !5
  %7526 = call ptr @s2n_strerror_debug(i32 noundef %7525, ptr noundef nonnull @.str.4) #12
  %7527 = load i32, ptr %260, align 4, !tbaa !5
  %7528 = call ptr @strerror(i32 noundef %7527) #12
  %7529 = load i32, ptr %260, align 4, !tbaa !5
  %7530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7521, ptr noundef nonnull %.str.5.sink4059, i32 noundef %7522, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 713, ptr noundef %7524, ptr noundef %7526, ptr noundef %7528, i32 noundef %7529) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7531:                                             ; preds = %7504
  %7532 = add nsw i32 %7505, 2
  store i32 %7532, ptr @test_count, align 4, !tbaa !5
  %7533 = call ptr @s2n_strerror_debug(i32 noundef 335544356, ptr noundef nonnull @.str.4) #12
  %7534 = icmp eq ptr %7533, null
  br i1 %7534, label %7535, label %7557

7535:                                             ; preds = %7531
  %7536 = load i32, ptr %260, align 4, !tbaa !5
  %7537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7538 = call i32 @s2n_print_stacktrace(ptr noundef %7537) #12
  %7539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7540 = trunc nuw i8 %7539 to i1
  br i1 %7540, label %7541, label %7545

7541:                                             ; preds = %7535
  %7542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7543 = call i32 @fileno(ptr noundef %7542) #12
  %7544 = call i32 @isatty(i32 noundef %7543) #12
  %.not1476 = icmp eq i32 %7544, 0
  br i1 %.not1476, label %7545, label %7546

7545:                                             ; preds = %7541, %7535
  br label %7546

7546:                                             ; preds = %7541, %7545
  %.str.5.sink4068 = phi ptr [ @.str.5, %7545 ], [ @.str.2, %7541 ]
  store i32 %7536, ptr %260, align 4, !tbaa !5
  %7547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7548 = load i32, ptr @test_count, align 4, !tbaa !5
  %7549 = load i32, ptr %206, align 4, !tbaa !5
  %7550 = call ptr @s2n_strerror(i32 noundef %7549, ptr noundef nonnull @.str.4) #12
  %7551 = load i32, ptr %206, align 4, !tbaa !5
  %7552 = call ptr @s2n_strerror_debug(i32 noundef %7551, ptr noundef nonnull @.str.4) #12
  %7553 = load i32, ptr %260, align 4, !tbaa !5
  %7554 = call ptr @strerror(i32 noundef %7553) #12
  %7555 = load i32, ptr %260, align 4, !tbaa !5
  %7556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7547, ptr noundef nonnull %.str.5.sink4068, i32 noundef %7548, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 713, ptr noundef %7550, ptr noundef %7552, ptr noundef %7554, i32 noundef %7555) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7557:                                             ; preds = %7531
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %7558 = getelementptr inbounds i8, ptr %7318, i64 872
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %42) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %42, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %43) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %43, i8 0, i64 40, i1 false)
  %7559 = load i32, ptr @test_count, align 4, !tbaa !5
  %7560 = add nsw i32 %7559, 1
  store i32 %7560, ptr @test_count, align 4, !tbaa !5
  %7561 = call i32 @s2n_read_server_key_share_hybrid_test_vectors(ptr noundef %7313, ptr noundef nonnull %7558, ptr noundef nonnull %42, ptr noundef nonnull %43)
  %7562 = icmp eq i32 %7561, -1
  br i1 %7562, label %7563, label %7585

7563:                                             ; preds = %7557
  %7564 = load i32, ptr %260, align 4, !tbaa !5
  %7565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7566 = call i32 @s2n_print_stacktrace(ptr noundef %7565) #12
  %7567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7568 = trunc nuw i8 %7567 to i1
  br i1 %7568, label %7569, label %7573

7569:                                             ; preds = %7563
  %7570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7571 = call i32 @fileno(ptr noundef %7570) #12
  %7572 = call i32 @isatty(i32 noundef %7571) #12
  %.not1475 = icmp eq i32 %7572, 0
  br i1 %.not1475, label %7573, label %7574

7573:                                             ; preds = %7569, %7563
  br label %7574

7574:                                             ; preds = %7569, %7573
  %.str.5.sink4077 = phi ptr [ @.str.5, %7573 ], [ @.str.2, %7569 ]
  store i32 %7564, ptr %260, align 4, !tbaa !5
  %7575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7576 = load i32, ptr @test_count, align 4, !tbaa !5
  %7577 = load i32, ptr %206, align 4, !tbaa !5
  %7578 = call ptr @s2n_strerror(i32 noundef %7577, ptr noundef nonnull @.str.4) #12
  %7579 = load i32, ptr %206, align 4, !tbaa !5
  %7580 = call ptr @s2n_strerror_debug(i32 noundef %7579, ptr noundef nonnull @.str.4) #12
  %7581 = load i32, ptr %260, align 4, !tbaa !5
  %7582 = call ptr @strerror(i32 noundef %7581) #12
  %7583 = load i32, ptr %260, align 4, !tbaa !5
  %7584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7575, ptr noundef nonnull %.str.5.sink4077, i32 noundef %7576, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.1, i32 noundef 722, ptr noundef %7578, ptr noundef %7580, ptr noundef %7582, i32 noundef %7583) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7585:                                             ; preds = %7557
  %7586 = getelementptr inbounds i8, ptr %7318, i64 840
  %7587 = getelementptr inbounds i8, ptr %7318, i64 832
  %7588 = load ptr, ptr %43, align 8, !tbaa !99
  %7589 = getelementptr inbounds i8, ptr %7588, i64 2
  %7590 = load i8, ptr %7589, align 1, !tbaa !107
  %7591 = xor i8 %7590, -1
  store i8 %7591, ptr %7589, align 1, !tbaa !107
  store ptr %7313, ptr %7587, align 8, !tbaa !87
  %7592 = getelementptr inbounds i8, ptr %7313, i64 16
  %7593 = load ptr, ptr %7592, align 8, !tbaa !88
  %7594 = getelementptr inbounds i8, ptr %7318, i64 928
  store ptr %7593, ptr %7594, align 8, !tbaa !89
  %7595 = getelementptr inbounds i8, ptr %7313, i64 24
  %7596 = load ptr, ptr %7595, align 8, !tbaa !90
  store ptr %7596, ptr %7586, align 8, !tbaa !91
  %7597 = getelementptr inbounds i8, ptr %7318, i64 920
  store i8 1, ptr %7597, align 8, !tbaa !92
  %7598 = load i32, ptr @test_count, align 4, !tbaa !5
  %7599 = add nsw i32 %7598, 1
  store i32 %7599, ptr @test_count, align 4, !tbaa !5
  %7600 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %7594) #12
  %7601 = icmp eq i32 %7600, -1
  br i1 %7601, label %7602, label %7624

7602:                                             ; preds = %7585
  %7603 = load i32, ptr %260, align 4, !tbaa !5
  %7604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7605 = call i32 @s2n_print_stacktrace(ptr noundef %7604) #12
  %7606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7607 = trunc nuw i8 %7606 to i1
  br i1 %7607, label %7608, label %7612

7608:                                             ; preds = %7602
  %7609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7610 = call i32 @fileno(ptr noundef %7609) #12
  %7611 = call i32 @isatty(i32 noundef %7610) #12
  %.not1474 = icmp eq i32 %7611, 0
  br i1 %.not1474, label %7612, label %7613

7612:                                             ; preds = %7608, %7602
  br label %7613

7613:                                             ; preds = %7608, %7612
  %.str.5.sink4086 = phi ptr [ @.str.5, %7612 ], [ @.str.2, %7608 ]
  store i32 %7603, ptr %260, align 4, !tbaa !5
  %7614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7615 = load i32, ptr @test_count, align 4, !tbaa !5
  %7616 = load i32, ptr %206, align 4, !tbaa !5
  %7617 = call ptr @s2n_strerror(i32 noundef %7616, ptr noundef nonnull @.str.4) #12
  %7618 = load i32, ptr %206, align 4, !tbaa !5
  %7619 = call ptr @s2n_strerror_debug(i32 noundef %7618, ptr noundef nonnull @.str.4) #12
  %7620 = load i32, ptr %260, align 4, !tbaa !5
  %7621 = call ptr @strerror(i32 noundef %7620) #12
  %7622 = load i32, ptr %260, align 4, !tbaa !5
  %7623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7614, ptr noundef nonnull %.str.5.sink4086, i32 noundef %7615, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 731, ptr noundef %7617, ptr noundef %7619, ptr noundef %7621, i32 noundef %7622) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7624:                                             ; preds = %7585
  %7625 = load i32, ptr @test_count, align 4, !tbaa !5
  %7626 = add nsw i32 %7625, 1
  store i32 %7626, ptr @test_count, align 4, !tbaa !5
  %7627 = call i32 %2349(ptr noundef nonnull %7318, ptr noundef nonnull %43) #12
  %7628 = icmp eq i32 %7627, -1
  br i1 %7628, label %7651, label %7629

7629:                                             ; preds = %7624
  %7630 = load i32, ptr %260, align 4, !tbaa !5
  %7631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7632 = call i32 @s2n_print_stacktrace(ptr noundef %7631) #12
  %7633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7634 = trunc nuw i8 %7633 to i1
  br i1 %7634, label %7635, label %7639

7635:                                             ; preds = %7629
  %7636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7637 = call i32 @fileno(ptr noundef %7636) #12
  %7638 = call i32 @isatty(i32 noundef %7637) #12
  %.not1453 = icmp eq i32 %7638, 0
  br i1 %.not1453, label %7639, label %7640

7639:                                             ; preds = %7635, %7629
  br label %7640

7640:                                             ; preds = %7635, %7639
  %.str.5.sink4095 = phi ptr [ @.str.5, %7639 ], [ @.str.2, %7635 ]
  store i32 %7630, ptr %260, align 4, !tbaa !5
  %7641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7642 = load i32, ptr @test_count, align 4, !tbaa !5
  %7643 = load i32, ptr %206, align 4, !tbaa !5
  %7644 = call ptr @s2n_strerror(i32 noundef %7643, ptr noundef nonnull @.str.4) #12
  %7645 = load i32, ptr %206, align 4, !tbaa !5
  %7646 = call ptr @s2n_strerror_debug(i32 noundef %7645, ptr noundef nonnull @.str.4) #12
  %7647 = load i32, ptr %260, align 4, !tbaa !5
  %7648 = call ptr @strerror(i32 noundef %7647) #12
  %7649 = load i32, ptr %260, align 4, !tbaa !5
  %7650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7641, ptr noundef nonnull %.str.5.sink4095, i32 noundef %7642, ptr noundef nonnull @.str.168, ptr noundef nonnull @.str.1, i32 noundef 733, ptr noundef %7644, ptr noundef %7646, ptr noundef %7648, i32 noundef %7649) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7651:                                             ; preds = %7624
  %7652 = load i32, ptr @test_count, align 4, !tbaa !5
  %7653 = add nsw i32 %7652, 1
  store i32 %7653, ptr @test_count, align 4, !tbaa !5
  %7654 = load i32, ptr %206, align 4, !tbaa !5
  %7655 = icmp eq i32 %7654, 335544385
  br i1 %7655, label %7678, label %7656

7656:                                             ; preds = %7651
  %7657 = load i32, ptr %260, align 4, !tbaa !5
  %7658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7659 = call i32 @s2n_print_stacktrace(ptr noundef %7658) #12
  %7660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7661 = trunc nuw i8 %7660 to i1
  br i1 %7661, label %7662, label %7666

7662:                                             ; preds = %7656
  %7663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7664 = call i32 @fileno(ptr noundef %7663) #12
  %7665 = call i32 @isatty(i32 noundef %7664) #12
  %.not1454 = icmp eq i32 %7665, 0
  br i1 %.not1454, label %7666, label %7667

7666:                                             ; preds = %7662, %7656
  br label %7667

7667:                                             ; preds = %7662, %7666
  %.str.5.sink4104 = phi ptr [ @.str.5, %7666 ], [ @.str.2, %7662 ]
  store i32 %7657, ptr %260, align 4, !tbaa !5
  %7668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7669 = load i32, ptr @test_count, align 4, !tbaa !5
  %7670 = load i32, ptr %206, align 4, !tbaa !5
  %7671 = call ptr @s2n_strerror(i32 noundef %7670, ptr noundef nonnull @.str.4) #12
  %7672 = load i32, ptr %206, align 4, !tbaa !5
  %7673 = call ptr @s2n_strerror_debug(i32 noundef %7672, ptr noundef nonnull @.str.4) #12
  %7674 = load i32, ptr %260, align 4, !tbaa !5
  %7675 = call ptr @strerror(i32 noundef %7674) #12
  %7676 = load i32, ptr %260, align 4, !tbaa !5
  %7677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7668, ptr noundef nonnull %.str.5.sink4104, i32 noundef %7669, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 733, ptr noundef %7671, ptr noundef %7673, ptr noundef %7675, i32 noundef %7676) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7678:                                             ; preds = %7651
  %7679 = add nsw i32 %7652, 2
  store i32 %7679, ptr @test_count, align 4, !tbaa !5
  %7680 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %7681 = icmp eq ptr %7680, null
  br i1 %7681, label %7682, label %7704

7682:                                             ; preds = %7678
  %7683 = load i32, ptr %260, align 4, !tbaa !5
  %7684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7685 = call i32 @s2n_print_stacktrace(ptr noundef %7684) #12
  %7686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7687 = trunc nuw i8 %7686 to i1
  br i1 %7687, label %7688, label %7692

7688:                                             ; preds = %7682
  %7689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7690 = call i32 @fileno(ptr noundef %7689) #12
  %7691 = call i32 @isatty(i32 noundef %7690) #12
  %.not1473 = icmp eq i32 %7691, 0
  br i1 %.not1473, label %7692, label %7693

7692:                                             ; preds = %7688, %7682
  br label %7693

7693:                                             ; preds = %7688, %7692
  %.str.5.sink4113 = phi ptr [ @.str.5, %7692 ], [ @.str.2, %7688 ]
  store i32 %7683, ptr %260, align 4, !tbaa !5
  %7694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7695 = load i32, ptr @test_count, align 4, !tbaa !5
  %7696 = load i32, ptr %206, align 4, !tbaa !5
  %7697 = call ptr @s2n_strerror(i32 noundef %7696, ptr noundef nonnull @.str.4) #12
  %7698 = load i32, ptr %206, align 4, !tbaa !5
  %7699 = call ptr @s2n_strerror_debug(i32 noundef %7698, ptr noundef nonnull @.str.4) #12
  %7700 = load i32, ptr %260, align 4, !tbaa !5
  %7701 = call ptr @strerror(i32 noundef %7700) #12
  %7702 = load i32, ptr %260, align 4, !tbaa !5
  %7703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7694, ptr noundef nonnull %.str.5.sink4113, i32 noundef %7695, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 733, ptr noundef %7697, ptr noundef %7699, ptr noundef %7701, i32 noundef %7702) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7704:                                             ; preds = %7678
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %7705 = load ptr, ptr %43, align 8, !tbaa !99
  %7706 = getelementptr inbounds i8, ptr %7705, i64 2
  %7707 = load i8, ptr %7706, align 1, !tbaa !107
  %7708 = xor i8 %7707, -1
  store i8 %7708, ptr %7706, align 1, !tbaa !107
  %7709 = load i32, ptr @test_count, align 4, !tbaa !5
  %7710 = add nsw i32 %7709, 1
  store i32 %7710, ptr @test_count, align 4, !tbaa !5
  %7711 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %43) #12
  %7712 = icmp eq i32 %7711, -1
  br i1 %7712, label %7713, label %7735

7713:                                             ; preds = %7704
  %7714 = load i32, ptr %260, align 4, !tbaa !5
  %7715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7716 = call i32 @s2n_print_stacktrace(ptr noundef %7715) #12
  %7717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7718 = trunc nuw i8 %7717 to i1
  br i1 %7718, label %7719, label %7723

7719:                                             ; preds = %7713
  %7720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7721 = call i32 @fileno(ptr noundef %7720) #12
  %7722 = call i32 @isatty(i32 noundef %7721) #12
  %.not1472 = icmp eq i32 %7722, 0
  br i1 %.not1472, label %7723, label %7724

7723:                                             ; preds = %7719, %7713
  br label %7724

7724:                                             ; preds = %7719, %7723
  %.str.5.sink4122 = phi ptr [ @.str.5, %7723 ], [ @.str.2, %7719 ]
  store i32 %7714, ptr %260, align 4, !tbaa !5
  %7725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7726 = load i32, ptr @test_count, align 4, !tbaa !5
  %7727 = load i32, ptr %206, align 4, !tbaa !5
  %7728 = call ptr @s2n_strerror(i32 noundef %7727, ptr noundef nonnull @.str.4) #12
  %7729 = load i32, ptr %206, align 4, !tbaa !5
  %7730 = call ptr @s2n_strerror_debug(i32 noundef %7729, ptr noundef nonnull @.str.4) #12
  %7731 = load i32, ptr %260, align 4, !tbaa !5
  %7732 = call ptr @strerror(i32 noundef %7731) #12
  %7733 = load i32, ptr %260, align 4, !tbaa !5
  %7734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7725, ptr noundef nonnull %.str.5.sink4122, i32 noundef %7726, ptr noundef nonnull @.str.169, ptr noundef nonnull @.str.1, i32 noundef 736, ptr noundef %7728, ptr noundef %7730, ptr noundef %7732, i32 noundef %7733) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7735:                                             ; preds = %7704
  call void @llvm.lifetime.start.p0(i64 10, ptr nonnull %44) #12
  %7736 = load ptr, ptr %43, align 8, !tbaa !99
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(10) %44, ptr noundef nonnull align 1 dereferenceable(10) %7736, i64 10, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %45, i8 0, i64 24, i1 false)
  %7737 = load i32, ptr @test_count, align 4, !tbaa !5
  %7738 = add nsw i32 %7737, 1
  store i32 %7738, ptr @test_count, align 4, !tbaa !5
  %7739 = call i32 @s2n_blob_init(ptr noundef nonnull %45, ptr noundef nonnull %44, i32 noundef 10) #12
  %7740 = icmp eq i32 %7739, -1
  br i1 %7740, label %7741, label %7763

7741:                                             ; preds = %7735
  %7742 = load i32, ptr %260, align 4, !tbaa !5
  %7743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7744 = call i32 @s2n_print_stacktrace(ptr noundef %7743) #12
  %7745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7746 = trunc nuw i8 %7745 to i1
  br i1 %7746, label %7747, label %7751

7747:                                             ; preds = %7741
  %7748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7749 = call i32 @fileno(ptr noundef %7748) #12
  %7750 = call i32 @isatty(i32 noundef %7749) #12
  %.not1471 = icmp eq i32 %7750, 0
  br i1 %.not1471, label %7751, label %7752

7751:                                             ; preds = %7747, %7741
  br label %7752

7752:                                             ; preds = %7747, %7751
  %.str.5.sink4131 = phi ptr [ @.str.5, %7751 ], [ @.str.2, %7747 ]
  store i32 %7742, ptr %260, align 4, !tbaa !5
  %7753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7754 = load i32, ptr @test_count, align 4, !tbaa !5
  %7755 = load i32, ptr %206, align 4, !tbaa !5
  %7756 = call ptr @s2n_strerror(i32 noundef %7755, ptr noundef nonnull @.str.4) #12
  %7757 = load i32, ptr %206, align 4, !tbaa !5
  %7758 = call ptr @s2n_strerror_debug(i32 noundef %7757, ptr noundef nonnull @.str.4) #12
  %7759 = load i32, ptr %260, align 4, !tbaa !5
  %7760 = call ptr @strerror(i32 noundef %7759) #12
  %7761 = load i32, ptr %260, align 4, !tbaa !5
  %7762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7753, ptr noundef nonnull %.str.5.sink4131, i32 noundef %7754, ptr noundef nonnull @.str.171, ptr noundef nonnull @.str.1, i32 noundef 742, ptr noundef %7756, ptr noundef %7758, ptr noundef %7760, i32 noundef %7761) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7763:                                             ; preds = %7735
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %46) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %46, i8 0, i64 40, i1 false)
  %7764 = load i32, ptr @test_count, align 4, !tbaa !5
  %7765 = add nsw i32 %7764, 1
  store i32 %7765, ptr @test_count, align 4, !tbaa !5
  %7766 = call i32 @s2n_stuffer_init(ptr noundef nonnull %46, ptr noundef nonnull %45) #12
  %7767 = icmp eq i32 %7766, -1
  br i1 %7767, label %7768, label %7790

7768:                                             ; preds = %7763
  %7769 = load i32, ptr %260, align 4, !tbaa !5
  %7770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7771 = call i32 @s2n_print_stacktrace(ptr noundef %7770) #12
  %7772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7773 = trunc nuw i8 %7772 to i1
  br i1 %7773, label %7774, label %7778

7774:                                             ; preds = %7768
  %7775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7776 = call i32 @fileno(ptr noundef %7775) #12
  %7777 = call i32 @isatty(i32 noundef %7776) #12
  %.not1470 = icmp eq i32 %7777, 0
  br i1 %.not1470, label %7778, label %7779

7778:                                             ; preds = %7774, %7768
  br label %7779

7779:                                             ; preds = %7774, %7778
  %.str.5.sink4140 = phi ptr [ @.str.5, %7778 ], [ @.str.2, %7774 ]
  store i32 %7769, ptr %260, align 4, !tbaa !5
  %7780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7781 = load i32, ptr @test_count, align 4, !tbaa !5
  %7782 = load i32, ptr %206, align 4, !tbaa !5
  %7783 = call ptr @s2n_strerror(i32 noundef %7782, ptr noundef nonnull @.str.4) #12
  %7784 = load i32, ptr %206, align 4, !tbaa !5
  %7785 = call ptr @s2n_strerror_debug(i32 noundef %7784, ptr noundef nonnull @.str.4) #12
  %7786 = load i32, ptr %260, align 4, !tbaa !5
  %7787 = call ptr @strerror(i32 noundef %7786) #12
  %7788 = load i32, ptr %260, align 4, !tbaa !5
  %7789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7780, ptr noundef nonnull %.str.5.sink4140, i32 noundef %7781, ptr noundef nonnull @.str.172, ptr noundef nonnull @.str.1, i32 noundef 744, ptr noundef %7783, ptr noundef %7785, ptr noundef %7787, i32 noundef %7788) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7790:                                             ; preds = %7763
  %7791 = load i32, ptr @test_count, align 4, !tbaa !5
  %7792 = add nsw i32 %7791, 1
  store i32 %7792, ptr @test_count, align 4, !tbaa !5
  %7793 = call i32 %2349(ptr noundef nonnull %7318, ptr noundef nonnull %46) #12
  %7794 = icmp eq i32 %7793, -1
  br i1 %7794, label %7817, label %7795

7795:                                             ; preds = %7790
  %7796 = load i32, ptr %260, align 4, !tbaa !5
  %7797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7798 = call i32 @s2n_print_stacktrace(ptr noundef %7797) #12
  %7799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7800 = trunc nuw i8 %7799 to i1
  br i1 %7800, label %7801, label %7805

7801:                                             ; preds = %7795
  %7802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7803 = call i32 @fileno(ptr noundef %7802) #12
  %7804 = call i32 @isatty(i32 noundef %7803) #12
  %.not1455 = icmp eq i32 %7804, 0
  br i1 %.not1455, label %7805, label %7806

7805:                                             ; preds = %7801, %7795
  br label %7806

7806:                                             ; preds = %7801, %7805
  %.str.5.sink4149 = phi ptr [ @.str.5, %7805 ], [ @.str.2, %7801 ]
  store i32 %7796, ptr %260, align 4, !tbaa !5
  %7807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7808 = load i32, ptr @test_count, align 4, !tbaa !5
  %7809 = load i32, ptr %206, align 4, !tbaa !5
  %7810 = call ptr @s2n_strerror(i32 noundef %7809, ptr noundef nonnull @.str.4) #12
  %7811 = load i32, ptr %206, align 4, !tbaa !5
  %7812 = call ptr @s2n_strerror_debug(i32 noundef %7811, ptr noundef nonnull @.str.4) #12
  %7813 = load i32, ptr %260, align 4, !tbaa !5
  %7814 = call ptr @strerror(i32 noundef %7813) #12
  %7815 = load i32, ptr %260, align 4, !tbaa !5
  %7816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7807, ptr noundef nonnull %.str.5.sink4149, i32 noundef %7808, ptr noundef nonnull @.str.173, ptr noundef nonnull @.str.1, i32 noundef 746, ptr noundef %7810, ptr noundef %7812, ptr noundef %7814, i32 noundef %7815) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7817:                                             ; preds = %7790
  %7818 = load i32, ptr @test_count, align 4, !tbaa !5
  %7819 = add nsw i32 %7818, 1
  store i32 %7819, ptr @test_count, align 4, !tbaa !5
  %7820 = load i32, ptr %206, align 4, !tbaa !5
  %7821 = icmp eq i32 %7820, 335544385
  br i1 %7821, label %7844, label %7822

7822:                                             ; preds = %7817
  %7823 = load i32, ptr %260, align 4, !tbaa !5
  %7824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7825 = call i32 @s2n_print_stacktrace(ptr noundef %7824) #12
  %7826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7827 = trunc nuw i8 %7826 to i1
  br i1 %7827, label %7828, label %7832

7828:                                             ; preds = %7822
  %7829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7830 = call i32 @fileno(ptr noundef %7829) #12
  %7831 = call i32 @isatty(i32 noundef %7830) #12
  %.not1456 = icmp eq i32 %7831, 0
  br i1 %.not1456, label %7832, label %7833

7832:                                             ; preds = %7828, %7822
  br label %7833

7833:                                             ; preds = %7828, %7832
  %.str.5.sink4158 = phi ptr [ @.str.5, %7832 ], [ @.str.2, %7828 ]
  store i32 %7823, ptr %260, align 4, !tbaa !5
  %7834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7835 = load i32, ptr @test_count, align 4, !tbaa !5
  %7836 = load i32, ptr %206, align 4, !tbaa !5
  %7837 = call ptr @s2n_strerror(i32 noundef %7836, ptr noundef nonnull @.str.4) #12
  %7838 = load i32, ptr %206, align 4, !tbaa !5
  %7839 = call ptr @s2n_strerror_debug(i32 noundef %7838, ptr noundef nonnull @.str.4) #12
  %7840 = load i32, ptr %260, align 4, !tbaa !5
  %7841 = call ptr @strerror(i32 noundef %7840) #12
  %7842 = load i32, ptr %260, align 4, !tbaa !5
  %7843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7834, ptr noundef nonnull %.str.5.sink4158, i32 noundef %7835, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 746, ptr noundef %7837, ptr noundef %7839, ptr noundef %7841, i32 noundef %7842) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7844:                                             ; preds = %7817
  %7845 = add nsw i32 %7818, 2
  store i32 %7845, ptr @test_count, align 4, !tbaa !5
  %7846 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %7847 = icmp eq ptr %7846, null
  br i1 %7847, label %7848, label %7870

7848:                                             ; preds = %7844
  %7849 = load i32, ptr %260, align 4, !tbaa !5
  %7850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7851 = call i32 @s2n_print_stacktrace(ptr noundef %7850) #12
  %7852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7853 = trunc nuw i8 %7852 to i1
  br i1 %7853, label %7854, label %7858

7854:                                             ; preds = %7848
  %7855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7856 = call i32 @fileno(ptr noundef %7855) #12
  %7857 = call i32 @isatty(i32 noundef %7856) #12
  %.not1469 = icmp eq i32 %7857, 0
  br i1 %.not1469, label %7858, label %7859

7858:                                             ; preds = %7854, %7848
  br label %7859

7859:                                             ; preds = %7854, %7858
  %.str.5.sink4167 = phi ptr [ @.str.5, %7858 ], [ @.str.2, %7854 ]
  store i32 %7849, ptr %260, align 4, !tbaa !5
  %7860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7861 = load i32, ptr @test_count, align 4, !tbaa !5
  %7862 = load i32, ptr %206, align 4, !tbaa !5
  %7863 = call ptr @s2n_strerror(i32 noundef %7862, ptr noundef nonnull @.str.4) #12
  %7864 = load i32, ptr %206, align 4, !tbaa !5
  %7865 = call ptr @s2n_strerror_debug(i32 noundef %7864, ptr noundef nonnull @.str.4) #12
  %7866 = load i32, ptr %260, align 4, !tbaa !5
  %7867 = call ptr @strerror(i32 noundef %7866) #12
  %7868 = load i32, ptr %260, align 4, !tbaa !5
  %7869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7860, ptr noundef nonnull %.str.5.sink4167, i32 noundef %7861, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 746, ptr noundef %7863, ptr noundef %7865, ptr noundef %7867, i32 noundef %7868) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7870:                                             ; preds = %7844
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %7871 = load ptr, ptr %43, align 8, !tbaa !99
  %7872 = getelementptr inbounds i8, ptr %7871, i64 4
  %7873 = load i8, ptr %7872, align 1, !tbaa !107
  %7874 = xor i8 %7873, -1
  store i8 %7874, ptr %7872, align 1, !tbaa !107
  %7875 = load i32, ptr @test_count, align 4, !tbaa !5
  %7876 = add nsw i32 %7875, 1
  store i32 %7876, ptr @test_count, align 4, !tbaa !5
  %7877 = call i32 %2349(ptr noundef nonnull %7318, ptr noundef nonnull %43) #12
  %7878 = icmp eq i32 %7877, -1
  br i1 %7878, label %7901, label %7879

7879:                                             ; preds = %7870
  %7880 = load i32, ptr %260, align 4, !tbaa !5
  %7881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7882 = call i32 @s2n_print_stacktrace(ptr noundef %7881) #12
  %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) #12
  %7888 = call i32 @isatty(i32 noundef %7887) #12
  %.not1457 = icmp eq i32 %7888, 0
  br i1 %.not1457, label %7889, label %7890

7889:                                             ; preds = %7885, %7879
  br label %7890

7890:                                             ; preds = %7885, %7889
  %.str.5.sink4176 = phi ptr [ @.str.5, %7889 ], [ @.str.2, %7885 ]
  store i32 %7880, ptr %260, 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 %206, align 4, !tbaa !5
  %7894 = call ptr @s2n_strerror(i32 noundef %7893, ptr noundef nonnull @.str.4) #12
  %7895 = load i32, ptr %206, align 4, !tbaa !5
  %7896 = call ptr @s2n_strerror_debug(i32 noundef %7895, ptr noundef nonnull @.str.4) #12
  %7897 = load i32, ptr %260, align 4, !tbaa !5
  %7898 = call ptr @strerror(i32 noundef %7897) #12
  %7899 = load i32, ptr %260, align 4, !tbaa !5
  %7900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7891, ptr noundef nonnull %.str.5.sink4176, i32 noundef %7892, ptr noundef nonnull @.str.168, ptr noundef nonnull @.str.1, i32 noundef 752, ptr noundef %7894, ptr noundef %7896, ptr noundef %7898, i32 noundef %7899) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7901:                                             ; preds = %7870
  %7902 = load i32, ptr @test_count, align 4, !tbaa !5
  %7903 = add nsw i32 %7902, 1
  store i32 %7903, ptr @test_count, align 4, !tbaa !5
  %7904 = load i32, ptr %206, align 4, !tbaa !5
  %7905 = icmp eq i32 %7904, 335544385
  br i1 %7905, label %7928, label %7906

7906:                                             ; preds = %7901
  %7907 = load i32, ptr %260, align 4, !tbaa !5
  %7908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7909 = call i32 @s2n_print_stacktrace(ptr noundef %7908) #12
  %7910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7911 = trunc nuw i8 %7910 to i1
  br i1 %7911, label %7912, label %7916

7912:                                             ; preds = %7906
  %7913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7914 = call i32 @fileno(ptr noundef %7913) #12
  %7915 = call i32 @isatty(i32 noundef %7914) #12
  %.not1458 = icmp eq i32 %7915, 0
  br i1 %.not1458, label %7916, label %7917

7916:                                             ; preds = %7912, %7906
  br label %7917

7917:                                             ; preds = %7912, %7916
  %.str.5.sink4185 = phi ptr [ @.str.5, %7916 ], [ @.str.2, %7912 ]
  store i32 %7907, ptr %260, align 4, !tbaa !5
  %7918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7919 = load i32, ptr @test_count, align 4, !tbaa !5
  %7920 = load i32, ptr %206, align 4, !tbaa !5
  %7921 = call ptr @s2n_strerror(i32 noundef %7920, ptr noundef nonnull @.str.4) #12
  %7922 = load i32, ptr %206, align 4, !tbaa !5
  %7923 = call ptr @s2n_strerror_debug(i32 noundef %7922, ptr noundef nonnull @.str.4) #12
  %7924 = load i32, ptr %260, align 4, !tbaa !5
  %7925 = call ptr @strerror(i32 noundef %7924) #12
  %7926 = load i32, ptr %260, align 4, !tbaa !5
  %7927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7918, ptr noundef nonnull %.str.5.sink4185, i32 noundef %7919, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 752, ptr noundef %7921, ptr noundef %7923, ptr noundef %7925, i32 noundef %7926) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7928:                                             ; preds = %7901
  %7929 = add nsw i32 %7902, 2
  store i32 %7929, ptr @test_count, align 4, !tbaa !5
  %7930 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %7931 = icmp eq ptr %7930, null
  br i1 %7931, label %7932, label %7954

7932:                                             ; preds = %7928
  %7933 = load i32, ptr %260, align 4, !tbaa !5
  %7934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7935 = call i32 @s2n_print_stacktrace(ptr noundef %7934) #12
  %7936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7937 = trunc nuw i8 %7936 to i1
  br i1 %7937, label %7938, label %7942

7938:                                             ; preds = %7932
  %7939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7940 = call i32 @fileno(ptr noundef %7939) #12
  %7941 = call i32 @isatty(i32 noundef %7940) #12
  %.not1468 = icmp eq i32 %7941, 0
  br i1 %.not1468, label %7942, label %7943

7942:                                             ; preds = %7938, %7932
  br label %7943

7943:                                             ; preds = %7938, %7942
  %.str.5.sink4194 = phi ptr [ @.str.5, %7942 ], [ @.str.2, %7938 ]
  store i32 %7933, ptr %260, align 4, !tbaa !5
  %7944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7945 = load i32, ptr @test_count, align 4, !tbaa !5
  %7946 = load i32, ptr %206, align 4, !tbaa !5
  %7947 = call ptr @s2n_strerror(i32 noundef %7946, ptr noundef nonnull @.str.4) #12
  %7948 = load i32, ptr %206, align 4, !tbaa !5
  %7949 = call ptr @s2n_strerror_debug(i32 noundef %7948, ptr noundef nonnull @.str.4) #12
  %7950 = load i32, ptr %260, align 4, !tbaa !5
  %7951 = call ptr @strerror(i32 noundef %7950) #12
  %7952 = load i32, ptr %260, align 4, !tbaa !5
  %7953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7944, ptr noundef nonnull %.str.5.sink4194, i32 noundef %7945, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 752, ptr noundef %7947, ptr noundef %7949, ptr noundef %7951, i32 noundef %7952) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7954:                                             ; preds = %7928
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %7955 = load ptr, ptr %43, align 8, !tbaa !99
  %7956 = getelementptr inbounds i8, ptr %7955, i64 4
  %7957 = load i8, ptr %7956, align 1, !tbaa !107
  %7958 = xor i8 %7957, -1
  store i8 %7958, ptr %7956, align 1, !tbaa !107
  %7959 = load i32, ptr @test_count, align 4, !tbaa !5
  %7960 = add nsw i32 %7959, 1
  store i32 %7960, ptr @test_count, align 4, !tbaa !5
  %7961 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %43) #12
  %7962 = icmp eq i32 %7961, -1
  br i1 %7962, label %7963, label %7985

7963:                                             ; preds = %7954
  %7964 = load i32, ptr %260, align 4, !tbaa !5
  %7965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7966 = call i32 @s2n_print_stacktrace(ptr noundef %7965) #12
  %7967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7968 = trunc nuw i8 %7967 to i1
  br i1 %7968, label %7969, label %7973

7969:                                             ; preds = %7963
  %7970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7971 = call i32 @fileno(ptr noundef %7970) #12
  %7972 = call i32 @isatty(i32 noundef %7971) #12
  %.not1467 = icmp eq i32 %7972, 0
  br i1 %.not1467, label %7973, label %7974

7973:                                             ; preds = %7969, %7963
  br label %7974

7974:                                             ; preds = %7969, %7973
  %.str.5.sink4203 = phi ptr [ @.str.5, %7973 ], [ @.str.2, %7969 ]
  store i32 %7964, ptr %260, align 4, !tbaa !5
  %7975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7976 = load i32, ptr @test_count, align 4, !tbaa !5
  %7977 = load i32, ptr %206, align 4, !tbaa !5
  %7978 = call ptr @s2n_strerror(i32 noundef %7977, ptr noundef nonnull @.str.4) #12
  %7979 = load i32, ptr %206, align 4, !tbaa !5
  %7980 = call ptr @s2n_strerror_debug(i32 noundef %7979, ptr noundef nonnull @.str.4) #12
  %7981 = load i32, ptr %260, align 4, !tbaa !5
  %7982 = call ptr @strerror(i32 noundef %7981) #12
  %7983 = load i32, ptr %260, align 4, !tbaa !5
  %7984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7975, ptr noundef nonnull %.str.5.sink4203, i32 noundef %7976, ptr noundef nonnull @.str.169, ptr noundef nonnull @.str.1, i32 noundef 755, ptr noundef %7978, ptr noundef %7980, ptr noundef %7982, i32 noundef %7983) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7985:                                             ; preds = %7954
  %7986 = load ptr, ptr %7592, align 8, !tbaa !88
  %7987 = getelementptr inbounds i8, ptr %7986, i64 16
  %7988 = load i8, ptr %7987, align 8, !tbaa !46
  %7989 = zext i8 %7988 to i64
  %7990 = add nuw nsw i64 %7989, 6
  %7991 = load ptr, ptr %43, align 8, !tbaa !99
  %7992 = getelementptr inbounds i8, ptr %7991, i64 %7990
  %7993 = load i8, ptr %7992, align 1, !tbaa !107
  %7994 = xor i8 %7993, -1
  store i8 %7994, ptr %7992, align 1, !tbaa !107
  %7995 = load i32, ptr @test_count, align 4, !tbaa !5
  %7996 = add nsw i32 %7995, 1
  store i32 %7996, ptr @test_count, align 4, !tbaa !5
  %7997 = call i32 %2349(ptr noundef nonnull %7318, ptr noundef nonnull %43) #12
  %7998 = icmp eq i32 %7997, -1
  br i1 %7998, label %8021, label %7999

7999:                                             ; preds = %7985
  %8000 = load i32, ptr %260, align 4, !tbaa !5
  %8001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8002 = call i32 @s2n_print_stacktrace(ptr noundef %8001) #12
  %8003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8004 = trunc nuw i8 %8003 to i1
  br i1 %8004, label %8005, label %8009

8005:                                             ; preds = %7999
  %8006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8007 = call i32 @fileno(ptr noundef %8006) #12
  %8008 = call i32 @isatty(i32 noundef %8007) #12
  %.not1459 = icmp eq i32 %8008, 0
  br i1 %.not1459, label %8009, label %8010

8009:                                             ; preds = %8005, %7999
  br label %8010

8010:                                             ; preds = %8005, %8009
  %.str.5.sink4212 = phi ptr [ @.str.5, %8009 ], [ @.str.2, %8005 ]
  store i32 %8000, ptr %260, align 4, !tbaa !5
  %8011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8012 = load i32, ptr @test_count, align 4, !tbaa !5
  %8013 = load i32, ptr %206, align 4, !tbaa !5
  %8014 = call ptr @s2n_strerror(i32 noundef %8013, ptr noundef nonnull @.str.4) #12
  %8015 = load i32, ptr %206, align 4, !tbaa !5
  %8016 = call ptr @s2n_strerror_debug(i32 noundef %8015, ptr noundef nonnull @.str.4) #12
  %8017 = load i32, ptr %260, align 4, !tbaa !5
  %8018 = call ptr @strerror(i32 noundef %8017) #12
  %8019 = load i32, ptr %260, align 4, !tbaa !5
  %8020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8011, ptr noundef nonnull %.str.5.sink4212, i32 noundef %8012, ptr noundef nonnull @.str.168, ptr noundef nonnull @.str.1, i32 noundef 766, ptr noundef %8014, ptr noundef %8016, ptr noundef %8018, i32 noundef %8019) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8021:                                             ; preds = %7985
  %8022 = load i32, ptr @test_count, align 4, !tbaa !5
  %8023 = add nsw i32 %8022, 1
  store i32 %8023, ptr @test_count, align 4, !tbaa !5
  %8024 = load i32, ptr %206, align 4, !tbaa !5
  %8025 = icmp eq i32 %8024, 335544385
  br i1 %8025, label %8048, label %8026

8026:                                             ; preds = %8021
  %8027 = load i32, ptr %260, align 4, !tbaa !5
  %8028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8029 = call i32 @s2n_print_stacktrace(ptr noundef %8028) #12
  %8030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8031 = trunc nuw i8 %8030 to i1
  br i1 %8031, label %8032, label %8036

8032:                                             ; preds = %8026
  %8033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8034 = call i32 @fileno(ptr noundef %8033) #12
  %8035 = call i32 @isatty(i32 noundef %8034) #12
  %.not1460 = icmp eq i32 %8035, 0
  br i1 %.not1460, label %8036, label %8037

8036:                                             ; preds = %8032, %8026
  br label %8037

8037:                                             ; preds = %8032, %8036
  %.str.5.sink4221 = phi ptr [ @.str.5, %8036 ], [ @.str.2, %8032 ]
  store i32 %8027, ptr %260, align 4, !tbaa !5
  %8038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8039 = load i32, ptr @test_count, align 4, !tbaa !5
  %8040 = load i32, ptr %206, align 4, !tbaa !5
  %8041 = call ptr @s2n_strerror(i32 noundef %8040, ptr noundef nonnull @.str.4) #12
  %8042 = load i32, ptr %206, align 4, !tbaa !5
  %8043 = call ptr @s2n_strerror_debug(i32 noundef %8042, ptr noundef nonnull @.str.4) #12
  %8044 = load i32, ptr %260, align 4, !tbaa !5
  %8045 = call ptr @strerror(i32 noundef %8044) #12
  %8046 = load i32, ptr %260, align 4, !tbaa !5
  %8047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8038, ptr noundef nonnull %.str.5.sink4221, i32 noundef %8039, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 766, ptr noundef %8041, ptr noundef %8043, ptr noundef %8045, i32 noundef %8046) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8048:                                             ; preds = %8021
  %8049 = add nsw i32 %8022, 2
  store i32 %8049, ptr @test_count, align 4, !tbaa !5
  %8050 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %8051 = icmp eq ptr %8050, null
  br i1 %8051, label %8052, label %8074

8052:                                             ; preds = %8048
  %8053 = load i32, ptr %260, align 4, !tbaa !5
  %8054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8055 = call i32 @s2n_print_stacktrace(ptr noundef %8054) #12
  %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) #12
  %8061 = call i32 @isatty(i32 noundef %8060) #12
  %.not1466 = icmp eq i32 %8061, 0
  br i1 %.not1466, label %8062, label %8063

8062:                                             ; preds = %8058, %8052
  br label %8063

8063:                                             ; preds = %8058, %8062
  %.str.5.sink4230 = phi ptr [ @.str.5, %8062 ], [ @.str.2, %8058 ]
  store i32 %8053, ptr %260, 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 %206, align 4, !tbaa !5
  %8067 = call ptr @s2n_strerror(i32 noundef %8066, ptr noundef nonnull @.str.4) #12
  %8068 = load i32, ptr %206, align 4, !tbaa !5
  %8069 = call ptr @s2n_strerror_debug(i32 noundef %8068, ptr noundef nonnull @.str.4) #12
  %8070 = load i32, ptr %260, align 4, !tbaa !5
  %8071 = call ptr @strerror(i32 noundef %8070) #12
  %8072 = load i32, ptr %260, align 4, !tbaa !5
  %8073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8064, ptr noundef nonnull %.str.5.sink4230, i32 noundef %8065, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 766, ptr noundef %8067, ptr noundef %8069, ptr noundef %8071, i32 noundef %8072) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8074:                                             ; preds = %8048
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %8075 = load ptr, ptr %43, align 8, !tbaa !99
  %8076 = getelementptr inbounds i8, ptr %8075, i64 %7990
  %8077 = load i8, ptr %8076, align 1, !tbaa !107
  %8078 = xor i8 %8077, -1
  store i8 %8078, ptr %8076, align 1, !tbaa !107
  %8079 = load i32, ptr @test_count, align 4, !tbaa !5
  %8080 = add nsw i32 %8079, 1
  store i32 %8080, ptr @test_count, align 4, !tbaa !5
  %8081 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %43) #12
  %8082 = icmp eq i32 %8081, -1
  br i1 %8082, label %8083, label %8105

8083:                                             ; preds = %8074
  %8084 = load i32, ptr %260, align 4, !tbaa !5
  %8085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8086 = call i32 @s2n_print_stacktrace(ptr noundef %8085) #12
  %8087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8088 = trunc nuw i8 %8087 to i1
  br i1 %8088, label %8089, label %8093

8089:                                             ; preds = %8083
  %8090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8091 = call i32 @fileno(ptr noundef %8090) #12
  %8092 = call i32 @isatty(i32 noundef %8091) #12
  %.not1465 = icmp eq i32 %8092, 0
  br i1 %.not1465, label %8093, label %8094

8093:                                             ; preds = %8089, %8083
  br label %8094

8094:                                             ; preds = %8089, %8093
  %.str.5.sink4239 = phi ptr [ @.str.5, %8093 ], [ @.str.2, %8089 ]
  store i32 %8084, ptr %260, align 4, !tbaa !5
  %8095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8096 = load i32, ptr @test_count, align 4, !tbaa !5
  %8097 = load i32, ptr %206, align 4, !tbaa !5
  %8098 = call ptr @s2n_strerror(i32 noundef %8097, ptr noundef nonnull @.str.4) #12
  %8099 = load i32, ptr %206, align 4, !tbaa !5
  %8100 = call ptr @s2n_strerror_debug(i32 noundef %8099, ptr noundef nonnull @.str.4) #12
  %8101 = load i32, ptr %260, align 4, !tbaa !5
  %8102 = call ptr @strerror(i32 noundef %8101) #12
  %8103 = load i32, ptr %260, align 4, !tbaa !5
  %8104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8095, ptr noundef nonnull %.str.5.sink4239, i32 noundef %8096, ptr noundef nonnull @.str.169, ptr noundef nonnull @.str.1, i32 noundef 769, ptr noundef %8098, ptr noundef %8100, ptr noundef %8102, i32 noundef %8103) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8105:                                             ; preds = %8074
  %8106 = load ptr, ptr %43, align 8, !tbaa !99
  %8107 = getelementptr inbounds i8, ptr %8106, i64 %7989
  %8108 = getelementptr inbounds i8, ptr %8107, i64 8
  %8109 = load i8, ptr %8108, align 1, !tbaa !107
  %8110 = xor i8 %8109, -1
  store i8 %8110, ptr %8108, align 1, !tbaa !107
  %8111 = load i32, ptr @test_count, align 4, !tbaa !5
  %8112 = add nsw i32 %8111, 1
  store i32 %8112, ptr @test_count, align 4, !tbaa !5
  %8113 = call i32 %2349(ptr noundef nonnull %7318, ptr noundef nonnull %43) #12
  %8114 = icmp eq i32 %8113, -1
  br i1 %8114, label %8115, label %8137

8115:                                             ; preds = %8105
  %8116 = load i32, ptr %260, align 4, !tbaa !5
  %8117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8118 = call i32 @s2n_print_stacktrace(ptr noundef %8117) #12
  %8119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8120 = trunc nuw i8 %8119 to i1
  br i1 %8120, label %8121, label %8125

8121:                                             ; preds = %8115
  %8122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8123 = call i32 @fileno(ptr noundef %8122) #12
  %8124 = call i32 @isatty(i32 noundef %8123) #12
  %.not1464 = icmp eq i32 %8124, 0
  br i1 %.not1464, label %8125, label %8126

8125:                                             ; preds = %8121, %8115
  br label %8126

8126:                                             ; preds = %8121, %8125
  %.str.5.sink4248 = phi ptr [ @.str.5, %8125 ], [ @.str.2, %8121 ]
  store i32 %8116, ptr %260, align 4, !tbaa !5
  %8127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8128 = load i32, ptr @test_count, align 4, !tbaa !5
  %8129 = load i32, ptr %206, align 4, !tbaa !5
  %8130 = call ptr @s2n_strerror(i32 noundef %8129, ptr noundef nonnull @.str.4) #12
  %8131 = load i32, ptr %206, align 4, !tbaa !5
  %8132 = call ptr @s2n_strerror_debug(i32 noundef %8131, ptr noundef nonnull @.str.4) #12
  %8133 = load i32, ptr %260, align 4, !tbaa !5
  %8134 = call ptr @strerror(i32 noundef %8133) #12
  %8135 = load i32, ptr %260, align 4, !tbaa !5
  %8136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8127, ptr noundef nonnull %.str.5.sink4248, i32 noundef %8128, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.1, i32 noundef 778, ptr noundef %8130, ptr noundef %8132, ptr noundef %8134, i32 noundef %8135) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8137:                                             ; preds = %8105
  %8138 = load i32, ptr @test_count, align 4, !tbaa !5
  %8139 = add nsw i32 %8138, 1
  store i32 %8139, ptr @test_count, align 4, !tbaa !5
  %8140 = getelementptr inbounds i8, ptr %7318, i64 896
  %8141 = load ptr, ptr %8140, align 8, !tbaa !95
  %8142 = load ptr, ptr %42, align 8, !tbaa !99
  %8143 = load ptr, ptr %7595, align 8, !tbaa !90
  %8144 = getelementptr inbounds i8, ptr %8143, i64 18
  %8145 = load i16, ptr %8144, align 2, !tbaa !97
  %8146 = zext i16 %8145 to i64
  %bcmp1461 = call i32 @bcmp(ptr %8141, ptr %8142, i64 %8146)
  %8147 = icmp eq i32 %bcmp1461, 0
  br i1 %8147, label %8148, label %8170

8148:                                             ; preds = %8137
  %8149 = load i32, ptr %260, align 4, !tbaa !5
  %8150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8151 = call i32 @s2n_print_stacktrace(ptr noundef %8150) #12
  %8152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8153 = trunc nuw i8 %8152 to i1
  br i1 %8153, label %8154, label %8158

8154:                                             ; preds = %8148
  %8155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8156 = call i32 @fileno(ptr noundef %8155) #12
  %8157 = call i32 @isatty(i32 noundef %8156) #12
  %.not1463 = icmp eq i32 %8157, 0
  br i1 %.not1463, label %8158, label %8159

8158:                                             ; preds = %8154, %8148
  br label %8159

8159:                                             ; preds = %8154, %8158
  %.str.5.sink4257 = phi ptr [ @.str.5, %8158 ], [ @.str.2, %8154 ]
  store i32 %8149, ptr %260, align 4, !tbaa !5
  %8160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8161 = load i32, ptr @test_count, align 4, !tbaa !5
  %8162 = load i32, ptr %206, align 4, !tbaa !5
  %8163 = call ptr @s2n_strerror(i32 noundef %8162, ptr noundef nonnull @.str.4) #12
  %8164 = load i32, ptr %206, align 4, !tbaa !5
  %8165 = call ptr @s2n_strerror_debug(i32 noundef %8164, ptr noundef nonnull @.str.4) #12
  %8166 = load i32, ptr %260, align 4, !tbaa !5
  %8167 = call ptr @strerror(i32 noundef %8166) #12
  %8168 = load i32, ptr %260, align 4, !tbaa !5
  %8169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8160, ptr noundef nonnull %.str.5.sink4257, i32 noundef %8161, ptr noundef nonnull @.str.174, ptr noundef nonnull @.str.1, i32 noundef 780, ptr noundef %8163, ptr noundef %8165, ptr noundef %8167, i32 noundef %8168) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8170:                                             ; preds = %8137
  %8171 = add nsw i32 %8138, 2
  store i32 %8171, ptr @test_count, align 4, !tbaa !5
  %8172 = call i32 @s2n_connection_free(ptr noundef nonnull %7318) #12
  %8173 = icmp eq i32 %8172, -1
  br i1 %8173, label %8174, label %8196

8174:                                             ; preds = %8170
  %8175 = load i32, ptr %260, align 4, !tbaa !5
  %8176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8177 = call i32 @s2n_print_stacktrace(ptr noundef %8176) #12
  %8178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8179 = trunc nuw i8 %8178 to i1
  br i1 %8179, label %8180, label %8184

8180:                                             ; preds = %8174
  %8181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8182 = call i32 @fileno(ptr noundef %8181) #12
  %8183 = call i32 @isatty(i32 noundef %8182) #12
  %.not1462 = icmp eq i32 %8183, 0
  br i1 %.not1462, label %8184, label %8185

8184:                                             ; preds = %8180, %8174
  br label %8185

8185:                                             ; preds = %8180, %8184
  %.str.5.sink4266 = phi ptr [ @.str.5, %8184 ], [ @.str.2, %8180 ]
  store i32 %8175, ptr %260, align 4, !tbaa !5
  %8186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8187 = load i32, ptr @test_count, align 4, !tbaa !5
  %8188 = load i32, ptr %206, align 4, !tbaa !5
  %8189 = call ptr @s2n_strerror(i32 noundef %8188, ptr noundef nonnull @.str.4) #12
  %8190 = load i32, ptr %206, align 4, !tbaa !5
  %8191 = call ptr @s2n_strerror_debug(i32 noundef %8190, ptr noundef nonnull @.str.4) #12
  %8192 = load i32, ptr %260, align 4, !tbaa !5
  %8193 = call ptr @strerror(i32 noundef %8192) #12
  %8194 = load i32, ptr %260, align 4, !tbaa !5
  %8195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8186, ptr noundef nonnull %.str.5.sink4266, i32 noundef %8187, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 782, ptr noundef %8189, ptr noundef %8191, ptr noundef %8193, i32 noundef %8194) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8196:                                             ; preds = %8170
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %46) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #12
  call void @llvm.lifetime.end.p0(i64 10, ptr nonnull %44) #12
  %8197 = call i32 @s2n_stuffer_free(ptr noundef nonnull %43) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %43) #12
  %8198 = call i32 @s2n_stuffer_free(ptr noundef nonnull %42) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %42) #12
  %8199 = call i32 @s2n_stuffer_free(ptr noundef nonnull %41) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %41) #12
  %8200 = call i32 @s2n_stuffer_free(ptr noundef nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %40) #12
  br label %8201

8201:                                             ; preds = %7311, %8196
  br i1 %7312, label %7311, label %.loopexit1668, !llvm.loop !108

.loopexit1668:                                    ; preds = %8201, %6127
  %8202 = load i32, ptr @test_count, align 4, !tbaa !5
  %8203 = add nsw i32 %8202, 1
  store i32 %8203, ptr @test_count, align 4, !tbaa !5
  %8204 = call i32 (...) @s2n_disable_tls13_in_test() #12
  %8205 = icmp eq i32 %8204, -1
  br i1 %8205, label %8206, label %8228

8206:                                             ; preds = %.loopexit1668
  %8207 = load i32, ptr %260, align 4, !tbaa !5
  %8208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8209 = call i32 @s2n_print_stacktrace(ptr noundef %8208) #12
  %8210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8211 = trunc nuw i8 %8210 to i1
  br i1 %8211, label %8212, label %8216

8212:                                             ; preds = %8206
  %8213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8214 = call i32 @fileno(ptr noundef %8213) #12
  %8215 = call i32 @isatty(i32 noundef %8214) #12
  %.not1446 = icmp eq i32 %8215, 0
  br i1 %.not1446, label %8216, label %8217

8216:                                             ; preds = %8212, %8206
  br label %8217

8217:                                             ; preds = %8212, %8216
  %.str.5.sink4275 = phi ptr [ @.str.5, %8216 ], [ @.str.2, %8212 ]
  store i32 %8207, ptr %260, align 4, !tbaa !5
  %8218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8219 = load i32, ptr @test_count, align 4, !tbaa !5
  %8220 = load i32, ptr %206, align 4, !tbaa !5
  %8221 = call ptr @s2n_strerror(i32 noundef %8220, ptr noundef nonnull @.str.4) #12
  %8222 = load i32, ptr %206, align 4, !tbaa !5
  %8223 = call ptr @s2n_strerror_debug(i32 noundef %8222, ptr noundef nonnull @.str.4) #12
  %8224 = load i32, ptr %260, align 4, !tbaa !5
  %8225 = call ptr @strerror(i32 noundef %8224) #12
  %8226 = load i32, ptr %260, align 4, !tbaa !5
  %8227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8218, ptr noundef nonnull %.str.5.sink4275, i32 noundef %8219, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.1, i32 noundef 786, ptr noundef %8221, ptr noundef %8223, ptr noundef %8225, i32 noundef %8226) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8228:                                             ; preds = %.loopexit1668
  %8229 = load i32, ptr @test_count, align 4, !tbaa !5
  %8230 = add nsw i32 %8229, 1
  store i32 %8230, ptr @test_count, align 4, !tbaa !5
  %8231 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef null) #12
  %8232 = icmp eq i32 %8231, -1
  br i1 %8232, label %8255, label %8233

8233:                                             ; preds = %8228
  %8234 = load i32, ptr %260, align 4, !tbaa !5
  %8235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8236 = call i32 @s2n_print_stacktrace(ptr noundef %8235) #12
  %8237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8238 = trunc nuw i8 %8237 to i1
  br i1 %8238, label %8239, label %8243

8239:                                             ; preds = %8233
  %8240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8241 = call i32 @fileno(ptr noundef %8240) #12
  %8242 = call i32 @isatty(i32 noundef %8241) #12
  %.not1345 = icmp eq i32 %8242, 0
  br i1 %.not1345, label %8243, label %8244

8243:                                             ; preds = %8239, %8233
  br label %8244

8244:                                             ; preds = %8239, %8243
  %.str.5.sink4284 = phi ptr [ @.str.5, %8243 ], [ @.str.2, %8239 ]
  store i32 %8234, ptr %260, align 4, !tbaa !5
  %8245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8246 = load i32, ptr @test_count, align 4, !tbaa !5
  %8247 = load i32, ptr %206, align 4, !tbaa !5
  %8248 = call ptr @s2n_strerror(i32 noundef %8247, ptr noundef nonnull @.str.4) #12
  %8249 = load i32, ptr %206, align 4, !tbaa !5
  %8250 = call ptr @s2n_strerror_debug(i32 noundef %8249, ptr noundef nonnull @.str.4) #12
  %8251 = load i32, ptr %260, align 4, !tbaa !5
  %8252 = call ptr @strerror(i32 noundef %8251) #12
  %8253 = load i32, ptr %260, align 4, !tbaa !5
  %8254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8245, ptr noundef nonnull %.str.5.sink4284, i32 noundef %8246, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 792, ptr noundef %8248, ptr noundef %8250, ptr noundef %8252, i32 noundef %8253) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8255:                                             ; preds = %8228
  %8256 = load i32, ptr @test_count, align 4, !tbaa !5
  %8257 = add nsw i32 %8256, 1
  store i32 %8257, ptr @test_count, align 4, !tbaa !5
  %8258 = load i32, ptr %206, align 4, !tbaa !5
  %8259 = icmp eq i32 %8258, 0
  br i1 %8259, label %8260, label %8282

8260:                                             ; preds = %8255
  %8261 = load i32, ptr %260, align 4, !tbaa !5
  %8262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8263 = call i32 @s2n_print_stacktrace(ptr noundef %8262) #12
  %8264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8265 = trunc nuw i8 %8264 to i1
  br i1 %8265, label %8266, label %8270

8266:                                             ; preds = %8260
  %8267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8268 = call i32 @fileno(ptr noundef %8267) #12
  %8269 = call i32 @isatty(i32 noundef %8268) #12
  %.not1445 = icmp eq i32 %8269, 0
  br i1 %.not1445, label %8270, label %8271

8270:                                             ; preds = %8266, %8260
  br label %8271

8271:                                             ; preds = %8266, %8270
  %.str.5.sink4293 = phi ptr [ @.str.5, %8270 ], [ @.str.2, %8266 ]
  store i32 %8261, ptr %260, align 4, !tbaa !5
  %8272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8273 = load i32, ptr @test_count, align 4, !tbaa !5
  %8274 = load i32, ptr %206, align 4, !tbaa !5
  %8275 = call ptr @s2n_strerror(i32 noundef %8274, ptr noundef nonnull @.str.4) #12
  %8276 = load i32, ptr %206, align 4, !tbaa !5
  %8277 = call ptr @s2n_strerror_debug(i32 noundef %8276, ptr noundef nonnull @.str.4) #12
  %8278 = load i32, ptr %260, align 4, !tbaa !5
  %8279 = call ptr @strerror(i32 noundef %8278) #12
  %8280 = load i32, ptr %260, align 4, !tbaa !5
  %8281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8272, ptr noundef nonnull %.str.5.sink4293, i32 noundef %8273, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 792, ptr noundef %8275, ptr noundef %8277, ptr noundef %8279, i32 noundef %8280) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8282:                                             ; preds = %8255
  %8283 = add nsw i32 %8256, 2
  store i32 %8283, ptr @test_count, align 4, !tbaa !5
  %8284 = call ptr @s2n_strerror_debug(i32 noundef %8258, ptr noundef nonnull @.str.4) #12
  %8285 = icmp eq ptr %8284, null
  br i1 %8285, label %8286, label %8308

8286:                                             ; preds = %8282
  %8287 = load i32, ptr %260, align 4, !tbaa !5
  %8288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8289 = call i32 @s2n_print_stacktrace(ptr noundef %8288) #12
  %8290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8291 = trunc nuw i8 %8290 to i1
  br i1 %8291, label %8292, label %8296

8292:                                             ; preds = %8286
  %8293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8294 = call i32 @fileno(ptr noundef %8293) #12
  %8295 = call i32 @isatty(i32 noundef %8294) #12
  %.not1444 = icmp eq i32 %8295, 0
  br i1 %.not1444, label %8296, label %8297

8296:                                             ; preds = %8292, %8286
  br label %8297

8297:                                             ; preds = %8292, %8296
  %.str.5.sink4302 = phi ptr [ @.str.5, %8296 ], [ @.str.2, %8292 ]
  store i32 %8287, ptr %260, align 4, !tbaa !5
  %8298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8299 = load i32, ptr @test_count, align 4, !tbaa !5
  %8300 = load i32, ptr %206, align 4, !tbaa !5
  %8301 = call ptr @s2n_strerror(i32 noundef %8300, ptr noundef nonnull @.str.4) #12
  %8302 = load i32, ptr %206, align 4, !tbaa !5
  %8303 = call ptr @s2n_strerror_debug(i32 noundef %8302, ptr noundef nonnull @.str.4) #12
  %8304 = load i32, ptr %260, align 4, !tbaa !5
  %8305 = call ptr @strerror(i32 noundef %8304) #12
  %8306 = load i32, ptr %260, align 4, !tbaa !5
  %8307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8298, ptr noundef nonnull %.str.5.sink4302, i32 noundef %8299, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 792, ptr noundef %8301, ptr noundef %8303, ptr noundef %8305, i32 noundef %8306) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8308:                                             ; preds = %8282
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %8309 = load i32, ptr @test_count, align 4, !tbaa !5
  %8310 = add nsw i32 %8309, 1
  store i32 %8310, ptr @test_count, align 4, !tbaa !5
  %8311 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %8312 = icmp eq ptr %8311, null
  br i1 %8312, label %8313, label %8335

8313:                                             ; preds = %8308
  %8314 = load i32, ptr %260, align 4, !tbaa !5
  %8315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8316 = call i32 @s2n_print_stacktrace(ptr noundef %8315) #12
  %8317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8318 = trunc nuw i8 %8317 to i1
  br i1 %8318, label %8319, label %8323

8319:                                             ; preds = %8313
  %8320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8321 = call i32 @fileno(ptr noundef %8320) #12
  %8322 = call i32 @isatty(i32 noundef %8321) #12
  %.not1443 = icmp eq i32 %8322, 0
  br i1 %.not1443, label %8323, label %8324

8323:                                             ; preds = %8319, %8313
  br label %8324

8324:                                             ; preds = %8319, %8323
  %.str.5.sink4311 = phi ptr [ @.str.5, %8323 ], [ @.str.2, %8319 ]
  store i32 %8314, ptr %260, align 4, !tbaa !5
  %8325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8326 = load i32, ptr @test_count, align 4, !tbaa !5
  %8327 = load i32, ptr %206, align 4, !tbaa !5
  %8328 = call ptr @s2n_strerror(i32 noundef %8327, ptr noundef nonnull @.str.4) #12
  %8329 = load i32, ptr %206, align 4, !tbaa !5
  %8330 = call ptr @s2n_strerror_debug(i32 noundef %8329, ptr noundef nonnull @.str.4) #12
  %8331 = load i32, ptr %260, align 4, !tbaa !5
  %8332 = call ptr @strerror(i32 noundef %8331) #12
  %8333 = load i32, ptr %260, align 4, !tbaa !5
  %8334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8325, ptr noundef nonnull %.str.5.sink4311, i32 noundef %8326, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 794, ptr noundef %8328, ptr noundef %8330, ptr noundef %8332, i32 noundef %8333) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8335:                                             ; preds = %8308
  %8336 = call zeroext i1 @s2n_pq_is_enabled() #12
  br i1 %8336, label %8418, label %8337

8337:                                             ; preds = %8335
  %8338 = load i32, ptr @test_count, align 4, !tbaa !5
  %8339 = add nsw i32 %8338, 1
  store i32 %8339, ptr @test_count, align 4, !tbaa !5
  %8340 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef nonnull %8311) #12
  %8341 = icmp eq i32 %8340, -1
  br i1 %8341, label %8364, label %8342

8342:                                             ; preds = %8337
  %8343 = load i32, ptr %260, align 4, !tbaa !5
  %8344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8345 = call i32 @s2n_print_stacktrace(ptr noundef %8344) #12
  %8346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8347 = trunc nuw i8 %8346 to i1
  br i1 %8347, label %8348, label %8352

8348:                                             ; preds = %8342
  %8349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8350 = call i32 @fileno(ptr noundef %8349) #12
  %8351 = call i32 @isatty(i32 noundef %8350) #12
  %.not1346 = icmp eq i32 %8351, 0
  br i1 %.not1346, label %8352, label %8353

8352:                                             ; preds = %8348, %8342
  br label %8353

8353:                                             ; preds = %8348, %8352
  %.str.5.sink4320 = phi ptr [ @.str.5, %8352 ], [ @.str.2, %8348 ]
  store i32 %8343, ptr %260, align 4, !tbaa !5
  %8354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8355 = load i32, ptr @test_count, align 4, !tbaa !5
  %8356 = load i32, ptr %206, align 4, !tbaa !5
  %8357 = call ptr @s2n_strerror(i32 noundef %8356, ptr noundef nonnull @.str.4) #12
  %8358 = load i32, ptr %206, align 4, !tbaa !5
  %8359 = call ptr @s2n_strerror_debug(i32 noundef %8358, ptr noundef nonnull @.str.4) #12
  %8360 = load i32, ptr %260, align 4, !tbaa !5
  %8361 = call ptr @strerror(i32 noundef %8360) #12
  %8362 = load i32, ptr %260, align 4, !tbaa !5
  %8363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8354, ptr noundef nonnull %.str.5.sink4320, i32 noundef %8355, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 797, ptr noundef %8357, ptr noundef %8359, ptr noundef %8361, i32 noundef %8362) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8364:                                             ; preds = %8337
  %8365 = load i32, ptr @test_count, align 4, !tbaa !5
  %8366 = add nsw i32 %8365, 1
  store i32 %8366, ptr @test_count, align 4, !tbaa !5
  %8367 = load i32, ptr %206, align 4, !tbaa !5
  %8368 = icmp eq i32 %8367, 402653231
  br i1 %8368, label %8391, label %8369

8369:                                             ; preds = %8364
  %8370 = load i32, ptr %260, align 4, !tbaa !5
  %8371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8372 = call i32 @s2n_print_stacktrace(ptr noundef %8371) #12
  %8373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8374 = trunc nuw i8 %8373 to i1
  br i1 %8374, label %8375, label %8379

8375:                                             ; preds = %8369
  %8376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8377 = call i32 @fileno(ptr noundef %8376) #12
  %8378 = call i32 @isatty(i32 noundef %8377) #12
  %.not1347 = icmp eq i32 %8378, 0
  br i1 %.not1347, label %8379, label %8380

8379:                                             ; preds = %8375, %8369
  br label %8380

8380:                                             ; preds = %8375, %8379
  %.str.5.sink4329 = phi ptr [ @.str.5, %8379 ], [ @.str.2, %8375 ]
  store i32 %8370, ptr %260, align 4, !tbaa !5
  %8381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8382 = load i32, ptr @test_count, align 4, !tbaa !5
  %8383 = load i32, ptr %206, align 4, !tbaa !5
  %8384 = call ptr @s2n_strerror(i32 noundef %8383, ptr noundef nonnull @.str.4) #12
  %8385 = load i32, ptr %206, align 4, !tbaa !5
  %8386 = call ptr @s2n_strerror_debug(i32 noundef %8385, ptr noundef nonnull @.str.4) #12
  %8387 = load i32, ptr %260, align 4, !tbaa !5
  %8388 = call ptr @strerror(i32 noundef %8387) #12
  %8389 = load i32, ptr %260, align 4, !tbaa !5
  %8390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8381, ptr noundef nonnull %.str.5.sink4329, i32 noundef %8382, ptr noundef nonnull @.str.176, ptr noundef nonnull @.str.1, i32 noundef 797, ptr noundef %8384, ptr noundef %8386, ptr noundef %8388, i32 noundef %8389) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8391:                                             ; preds = %8364
  %8392 = add nsw i32 %8365, 2
  store i32 %8392, ptr @test_count, align 4, !tbaa !5
  %8393 = call ptr @s2n_strerror_debug(i32 noundef 402653231, ptr noundef nonnull @.str.4) #12
  %8394 = icmp eq ptr %8393, null
  br i1 %8394, label %8395, label %8417

8395:                                             ; preds = %8391
  %8396 = load i32, ptr %260, align 4, !tbaa !5
  %8397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8398 = call i32 @s2n_print_stacktrace(ptr noundef %8397) #12
  %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) #12
  %8404 = call i32 @isatty(i32 noundef %8403) #12
  %.not1348 = icmp eq i32 %8404, 0
  br i1 %.not1348, label %8405, label %8406

8405:                                             ; preds = %8401, %8395
  br label %8406

8406:                                             ; preds = %8401, %8405
  %.str.5.sink4338 = phi ptr [ @.str.5, %8405 ], [ @.str.2, %8401 ]
  store i32 %8396, ptr %260, 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 %206, align 4, !tbaa !5
  %8410 = call ptr @s2n_strerror(i32 noundef %8409, ptr noundef nonnull @.str.4) #12
  %8411 = load i32, ptr %206, align 4, !tbaa !5
  %8412 = call ptr @s2n_strerror_debug(i32 noundef %8411, ptr noundef nonnull @.str.4) #12
  %8413 = load i32, ptr %260, align 4, !tbaa !5
  %8414 = call ptr @strerror(i32 noundef %8413) #12
  %8415 = load i32, ptr %260, align 4, !tbaa !5
  %8416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8407, ptr noundef nonnull %.str.5.sink4338, i32 noundef %8408, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 797, ptr noundef %8410, ptr noundef %8412, ptr noundef %8414, i32 noundef %8415) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8417:                                             ; preds = %8391
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  br label %8418

8418:                                             ; preds = %8417, %8335
  %8419 = call zeroext i1 @s2n_pq_is_enabled() #12
  br i1 %8419, label %8420, label %9181

8420:                                             ; preds = %8418
  %8421 = getelementptr inbounds i8, ptr %8311, i64 16
  store ptr %31, ptr %8421, align 8, !tbaa !15
  %8422 = load i32, ptr @test_count, align 4, !tbaa !5
  %8423 = add nsw i32 %8422, 1
  store i32 %8423, ptr @test_count, align 4, !tbaa !5
  %8424 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef nonnull %8311) #12
  %8425 = icmp eq i32 %8424, -1
  br i1 %8425, label %8448, label %8426

8426:                                             ; preds = %8420
  %8427 = load i32, ptr %260, align 4, !tbaa !5
  %8428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8429 = call i32 @s2n_print_stacktrace(ptr noundef %8428) #12
  %8430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8431 = trunc nuw i8 %8430 to i1
  br i1 %8431, label %8432, label %8436

8432:                                             ; preds = %8426
  %8433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8434 = call i32 @fileno(ptr noundef %8433) #12
  %8435 = call i32 @isatty(i32 noundef %8434) #12
  %.not1349 = icmp eq i32 %8435, 0
  br i1 %.not1349, label %8436, label %8437

8436:                                             ; preds = %8432, %8426
  br label %8437

8437:                                             ; preds = %8432, %8436
  %.str.5.sink4347 = phi ptr [ @.str.5, %8436 ], [ @.str.2, %8432 ]
  store i32 %8427, ptr %260, align 4, !tbaa !5
  %8438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8439 = load i32, ptr @test_count, align 4, !tbaa !5
  %8440 = load i32, ptr %206, align 4, !tbaa !5
  %8441 = call ptr @s2n_strerror(i32 noundef %8440, ptr noundef nonnull @.str.4) #12
  %8442 = load i32, ptr %206, align 4, !tbaa !5
  %8443 = call ptr @s2n_strerror_debug(i32 noundef %8442, ptr noundef nonnull @.str.4) #12
  %8444 = load i32, ptr %260, align 4, !tbaa !5
  %8445 = call ptr @strerror(i32 noundef %8444) #12
  %8446 = load i32, ptr %260, align 4, !tbaa !5
  %8447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8438, ptr noundef nonnull %.str.5.sink4347, i32 noundef %8439, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 803, ptr noundef %8441, ptr noundef %8443, ptr noundef %8445, i32 noundef %8446) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8448:                                             ; preds = %8420
  %8449 = load i32, ptr @test_count, align 4, !tbaa !5
  %8450 = add nsw i32 %8449, 1
  store i32 %8450, ptr @test_count, align 4, !tbaa !5
  %8451 = load i32, ptr %206, align 4, !tbaa !5
  %8452 = icmp eq i32 %8451, 0
  br i1 %8452, label %8453, label %8475

8453:                                             ; preds = %8448
  %8454 = load i32, ptr %260, align 4, !tbaa !5
  %8455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8456 = call i32 @s2n_print_stacktrace(ptr noundef %8455) #12
  %8457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8458 = trunc nuw i8 %8457 to i1
  br i1 %8458, label %8459, label %8463

8459:                                             ; preds = %8453
  %8460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8461 = call i32 @fileno(ptr noundef %8460) #12
  %8462 = call i32 @isatty(i32 noundef %8461) #12
  %.not1442 = icmp eq i32 %8462, 0
  br i1 %.not1442, label %8463, label %8464

8463:                                             ; preds = %8459, %8453
  br label %8464

8464:                                             ; preds = %8459, %8463
  %.str.5.sink4356 = phi ptr [ @.str.5, %8463 ], [ @.str.2, %8459 ]
  store i32 %8454, ptr %260, align 4, !tbaa !5
  %8465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8466 = load i32, ptr @test_count, align 4, !tbaa !5
  %8467 = load i32, ptr %206, align 4, !tbaa !5
  %8468 = call ptr @s2n_strerror(i32 noundef %8467, ptr noundef nonnull @.str.4) #12
  %8469 = load i32, ptr %206, align 4, !tbaa !5
  %8470 = call ptr @s2n_strerror_debug(i32 noundef %8469, ptr noundef nonnull @.str.4) #12
  %8471 = load i32, ptr %260, align 4, !tbaa !5
  %8472 = call ptr @strerror(i32 noundef %8471) #12
  %8473 = load i32, ptr %260, align 4, !tbaa !5
  %8474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8465, ptr noundef nonnull %.str.5.sink4356, i32 noundef %8466, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 803, ptr noundef %8468, ptr noundef %8470, ptr noundef %8472, i32 noundef %8473) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8475:                                             ; preds = %8448
  %8476 = add nsw i32 %8449, 2
  store i32 %8476, ptr @test_count, align 4, !tbaa !5
  %8477 = call ptr @s2n_strerror_debug(i32 noundef %8451, ptr noundef nonnull @.str.4) #12
  %8478 = icmp eq ptr %8477, null
  br i1 %8478, label %8479, label %8501

8479:                                             ; preds = %8475
  %8480 = load i32, ptr %260, align 4, !tbaa !5
  %8481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8482 = call i32 @s2n_print_stacktrace(ptr noundef %8481) #12
  %8483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8484 = trunc nuw i8 %8483 to i1
  br i1 %8484, label %8485, label %8489

8485:                                             ; preds = %8479
  %8486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8487 = call i32 @fileno(ptr noundef %8486) #12
  %8488 = call i32 @isatty(i32 noundef %8487) #12
  %.not1441 = icmp eq i32 %8488, 0
  br i1 %.not1441, label %8489, label %8490

8489:                                             ; preds = %8485, %8479
  br label %8490

8490:                                             ; preds = %8485, %8489
  %.str.5.sink4365 = phi ptr [ @.str.5, %8489 ], [ @.str.2, %8485 ]
  store i32 %8480, ptr %260, align 4, !tbaa !5
  %8491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8492 = load i32, ptr @test_count, align 4, !tbaa !5
  %8493 = load i32, ptr %206, align 4, !tbaa !5
  %8494 = call ptr @s2n_strerror(i32 noundef %8493, ptr noundef nonnull @.str.4) #12
  %8495 = load i32, ptr %206, align 4, !tbaa !5
  %8496 = call ptr @s2n_strerror_debug(i32 noundef %8495, ptr noundef nonnull @.str.4) #12
  %8497 = load i32, ptr %260, align 4, !tbaa !5
  %8498 = call ptr @strerror(i32 noundef %8497) #12
  %8499 = load i32, ptr %260, align 4, !tbaa !5
  %8500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8491, ptr noundef nonnull %.str.5.sink4365, i32 noundef %8492, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 803, ptr noundef %8494, ptr noundef %8496, ptr noundef %8498, i32 noundef %8499) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8501:                                             ; preds = %8475
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %8502 = getelementptr inbounds i8, ptr %8311, i64 720
  %8503 = getelementptr inbounds i8, ptr %8311, i64 728
  store ptr @s2n_kyber_512_r3, ptr %8503, align 8, !tbaa !94
  %8504 = load i32, ptr @test_count, align 4, !tbaa !5
  %8505 = add nsw i32 %8504, 1
  store i32 %8505, ptr @test_count, align 4, !tbaa !5
  %8506 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef nonnull %8311) #12
  %8507 = icmp eq i32 %8506, -1
  br i1 %8507, label %8530, label %8508

8508:                                             ; preds = %8501
  %8509 = load i32, ptr %260, align 4, !tbaa !5
  %8510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8511 = call i32 @s2n_print_stacktrace(ptr noundef %8510) #12
  %8512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8513 = trunc nuw i8 %8512 to i1
  br i1 %8513, label %8514, label %8518

8514:                                             ; preds = %8508
  %8515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8516 = call i32 @fileno(ptr noundef %8515) #12
  %8517 = call i32 @isatty(i32 noundef %8516) #12
  %.not1350 = icmp eq i32 %8517, 0
  br i1 %.not1350, label %8518, label %8519

8518:                                             ; preds = %8514, %8508
  br label %8519

8519:                                             ; preds = %8514, %8518
  %.str.5.sink4374 = phi ptr [ @.str.5, %8518 ], [ @.str.2, %8514 ]
  store i32 %8509, ptr %260, align 4, !tbaa !5
  %8520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8521 = load i32, ptr @test_count, align 4, !tbaa !5
  %8522 = load i32, ptr %206, align 4, !tbaa !5
  %8523 = call ptr @s2n_strerror(i32 noundef %8522, ptr noundef nonnull @.str.4) #12
  %8524 = load i32, ptr %206, align 4, !tbaa !5
  %8525 = call ptr @s2n_strerror_debug(i32 noundef %8524, ptr noundef nonnull @.str.4) #12
  %8526 = load i32, ptr %260, align 4, !tbaa !5
  %8527 = call ptr @strerror(i32 noundef %8526) #12
  %8528 = load i32, ptr %260, align 4, !tbaa !5
  %8529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8520, ptr noundef nonnull %.str.5.sink4374, i32 noundef %8521, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 806, ptr noundef %8523, ptr noundef %8525, ptr noundef %8527, i32 noundef %8528) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8530:                                             ; preds = %8501
  %8531 = load i32, ptr @test_count, align 4, !tbaa !5
  %8532 = add nsw i32 %8531, 1
  store i32 %8532, ptr @test_count, align 4, !tbaa !5
  %8533 = load i32, ptr %206, align 4, !tbaa !5
  %8534 = icmp eq i32 %8533, 0
  br i1 %8534, label %8535, label %8557

8535:                                             ; preds = %8530
  %8536 = load i32, ptr %260, align 4, !tbaa !5
  %8537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8538 = call i32 @s2n_print_stacktrace(ptr noundef %8537) #12
  %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) #12
  %8544 = call i32 @isatty(i32 noundef %8543) #12
  %.not1440 = icmp eq i32 %8544, 0
  br i1 %.not1440, label %8545, label %8546

8545:                                             ; preds = %8541, %8535
  br label %8546

8546:                                             ; preds = %8541, %8545
  %.str.5.sink4383 = phi ptr [ @.str.5, %8545 ], [ @.str.2, %8541 ]
  store i32 %8536, ptr %260, 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 %206, align 4, !tbaa !5
  %8550 = call ptr @s2n_strerror(i32 noundef %8549, ptr noundef nonnull @.str.4) #12
  %8551 = load i32, ptr %206, align 4, !tbaa !5
  %8552 = call ptr @s2n_strerror_debug(i32 noundef %8551, ptr noundef nonnull @.str.4) #12
  %8553 = load i32, ptr %260, align 4, !tbaa !5
  %8554 = call ptr @strerror(i32 noundef %8553) #12
  %8555 = load i32, ptr %260, align 4, !tbaa !5
  %8556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8547, ptr noundef nonnull %.str.5.sink4383, i32 noundef %8548, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 806, ptr noundef %8550, ptr noundef %8552, ptr noundef %8554, i32 noundef %8555) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8557:                                             ; preds = %8530
  %8558 = add nsw i32 %8531, 2
  store i32 %8558, ptr @test_count, align 4, !tbaa !5
  %8559 = call ptr @s2n_strerror_debug(i32 noundef %8533, ptr noundef nonnull @.str.4) #12
  %8560 = icmp eq ptr %8559, null
  br i1 %8560, label %8561, label %8583

8561:                                             ; preds = %8557
  %8562 = load i32, ptr %260, align 4, !tbaa !5
  %8563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8564 = call i32 @s2n_print_stacktrace(ptr noundef %8563) #12
  %8565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8566 = trunc nuw i8 %8565 to i1
  br i1 %8566, label %8567, label %8571

8567:                                             ; preds = %8561
  %8568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8569 = call i32 @fileno(ptr noundef %8568) #12
  %8570 = call i32 @isatty(i32 noundef %8569) #12
  %.not1439 = icmp eq i32 %8570, 0
  br i1 %.not1439, label %8571, label %8572

8571:                                             ; preds = %8567, %8561
  br label %8572

8572:                                             ; preds = %8567, %8571
  %.str.5.sink4392 = phi ptr [ @.str.5, %8571 ], [ @.str.2, %8567 ]
  store i32 %8562, ptr %260, align 4, !tbaa !5
  %8573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8574 = load i32, ptr @test_count, align 4, !tbaa !5
  %8575 = load i32, ptr %206, align 4, !tbaa !5
  %8576 = call ptr @s2n_strerror(i32 noundef %8575, ptr noundef nonnull @.str.4) #12
  %8577 = load i32, ptr %206, align 4, !tbaa !5
  %8578 = call ptr @s2n_strerror_debug(i32 noundef %8577, ptr noundef nonnull @.str.4) #12
  %8579 = load i32, ptr %260, align 4, !tbaa !5
  %8580 = call ptr @strerror(i32 noundef %8579) #12
  %8581 = load i32, ptr %260, align 4, !tbaa !5
  %8582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8573, ptr noundef nonnull %.str.5.sink4392, i32 noundef %8574, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 806, ptr noundef %8576, ptr noundef %8578, ptr noundef %8580, i32 noundef %8581) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8583:                                             ; preds = %8557
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %8584 = getelementptr inbounds i8, ptr %8311, i64 816
  store ptr @s2n_ecc_curve_secp256r1, ptr %8584, align 8, !tbaa !93
  store ptr @s2n_secp256r1_kyber_512_r3, ptr %8502, align 8, !tbaa !48
  %8585 = load i32, ptr @test_count, align 4, !tbaa !5
  %8586 = add nsw i32 %8585, 1
  store i32 %8586, ptr @test_count, align 4, !tbaa !5
  %8587 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef nonnull %8311) #12
  %8588 = icmp eq i32 %8587, -1
  br i1 %8588, label %8611, label %8589

8589:                                             ; preds = %8583
  %8590 = load i32, ptr %260, align 4, !tbaa !5
  %8591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8592 = call i32 @s2n_print_stacktrace(ptr noundef %8591) #12
  %8593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8594 = trunc nuw i8 %8593 to i1
  br i1 %8594, label %8595, label %8599

8595:                                             ; preds = %8589
  %8596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8597 = call i32 @fileno(ptr noundef %8596) #12
  %8598 = call i32 @isatty(i32 noundef %8597) #12
  %.not1351 = icmp eq i32 %8598, 0
  br i1 %.not1351, label %8599, label %8600

8599:                                             ; preds = %8595, %8589
  br label %8600

8600:                                             ; preds = %8595, %8599
  %.str.5.sink4401 = phi ptr [ @.str.5, %8599 ], [ @.str.2, %8595 ]
  store i32 %8590, ptr %260, align 4, !tbaa !5
  %8601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8602 = load i32, ptr @test_count, align 4, !tbaa !5
  %8603 = load i32, ptr %206, align 4, !tbaa !5
  %8604 = call ptr @s2n_strerror(i32 noundef %8603, ptr noundef nonnull @.str.4) #12
  %8605 = load i32, ptr %206, align 4, !tbaa !5
  %8606 = call ptr @s2n_strerror_debug(i32 noundef %8605, ptr noundef nonnull @.str.4) #12
  %8607 = load i32, ptr %260, align 4, !tbaa !5
  %8608 = call ptr @strerror(i32 noundef %8607) #12
  %8609 = load i32, ptr %260, align 4, !tbaa !5
  %8610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8601, ptr noundef nonnull %.str.5.sink4401, i32 noundef %8602, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 810, ptr noundef %8604, ptr noundef %8606, ptr noundef %8608, i32 noundef %8609) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8611:                                             ; preds = %8583
  %8612 = load i32, ptr @test_count, align 4, !tbaa !5
  %8613 = add nsw i32 %8612, 1
  store i32 %8613, ptr @test_count, align 4, !tbaa !5
  %8614 = load i32, ptr %206, align 4, !tbaa !5
  %8615 = icmp eq i32 %8614, 335544385
  br i1 %8615, label %8638, label %8616

8616:                                             ; preds = %8611
  %8617 = load i32, ptr %260, align 4, !tbaa !5
  %8618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8619 = call i32 @s2n_print_stacktrace(ptr noundef %8618) #12
  %8620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8621 = trunc nuw i8 %8620 to i1
  br i1 %8621, label %8622, label %8626

8622:                                             ; preds = %8616
  %8623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8624 = call i32 @fileno(ptr noundef %8623) #12
  %8625 = call i32 @isatty(i32 noundef %8624) #12
  %.not1352 = icmp eq i32 %8625, 0
  br i1 %.not1352, label %8626, label %8627

8626:                                             ; preds = %8622, %8616
  br label %8627

8627:                                             ; preds = %8622, %8626
  %.str.5.sink4410 = phi ptr [ @.str.5, %8626 ], [ @.str.2, %8622 ]
  store i32 %8617, ptr %260, align 4, !tbaa !5
  %8628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8629 = load i32, ptr @test_count, align 4, !tbaa !5
  %8630 = load i32, ptr %206, align 4, !tbaa !5
  %8631 = call ptr @s2n_strerror(i32 noundef %8630, ptr noundef nonnull @.str.4) #12
  %8632 = load i32, ptr %206, align 4, !tbaa !5
  %8633 = call ptr @s2n_strerror_debug(i32 noundef %8632, ptr noundef nonnull @.str.4) #12
  %8634 = load i32, ptr %260, align 4, !tbaa !5
  %8635 = call ptr @strerror(i32 noundef %8634) #12
  %8636 = load i32, ptr %260, align 4, !tbaa !5
  %8637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8628, ptr noundef nonnull %.str.5.sink4410, i32 noundef %8629, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 810, ptr noundef %8631, ptr noundef %8633, ptr noundef %8635, i32 noundef %8636) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8638:                                             ; preds = %8611
  %8639 = add nsw i32 %8612, 2
  store i32 %8639, ptr @test_count, align 4, !tbaa !5
  %8640 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %8641 = icmp eq ptr %8640, null
  br i1 %8641, label %8642, label %8664

8642:                                             ; preds = %8638
  %8643 = load i32, ptr %260, align 4, !tbaa !5
  %8644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8645 = call i32 @s2n_print_stacktrace(ptr noundef %8644) #12
  %8646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8647 = trunc nuw i8 %8646 to i1
  br i1 %8647, label %8648, label %8652

8648:                                             ; preds = %8642
  %8649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8650 = call i32 @fileno(ptr noundef %8649) #12
  %8651 = call i32 @isatty(i32 noundef %8650) #12
  %.not1438 = icmp eq i32 %8651, 0
  br i1 %.not1438, label %8652, label %8653

8652:                                             ; preds = %8648, %8642
  br label %8653

8653:                                             ; preds = %8648, %8652
  %.str.5.sink4419 = phi ptr [ @.str.5, %8652 ], [ @.str.2, %8648 ]
  store i32 %8643, ptr %260, align 4, !tbaa !5
  %8654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8655 = load i32, ptr @test_count, align 4, !tbaa !5
  %8656 = load i32, ptr %206, align 4, !tbaa !5
  %8657 = call ptr @s2n_strerror(i32 noundef %8656, ptr noundef nonnull @.str.4) #12
  %8658 = load i32, ptr %206, align 4, !tbaa !5
  %8659 = call ptr @s2n_strerror_debug(i32 noundef %8658, ptr noundef nonnull @.str.4) #12
  %8660 = load i32, ptr %260, align 4, !tbaa !5
  %8661 = call ptr @strerror(i32 noundef %8660) #12
  %8662 = load i32, ptr %260, align 4, !tbaa !5
  %8663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8654, ptr noundef nonnull %.str.5.sink4419, i32 noundef %8655, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 810, ptr noundef %8657, ptr noundef %8659, ptr noundef %8661, i32 noundef %8662) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8664:                                             ; preds = %8638
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  store ptr @s2n_secp256r1_kyber_512_r3, ptr %8502, align 8, !tbaa !48
  store ptr @s2n_kyber_512_r3, ptr %8503, align 8, !tbaa !94
  %8665 = load i32, ptr @test_count, align 4, !tbaa !5
  %8666 = add nsw i32 %8665, 1
  store i32 %8666, ptr @test_count, align 4, !tbaa !5
  %8667 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef nonnull %8311) #12
  %8668 = icmp eq i32 %8667, -1
  br i1 %8668, label %8691, label %8669

8669:                                             ; preds = %8664
  %8670 = load i32, ptr %260, align 4, !tbaa !5
  %8671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8672 = call i32 @s2n_print_stacktrace(ptr noundef %8671) #12
  %8673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8674 = trunc nuw i8 %8673 to i1
  br i1 %8674, label %8675, label %8679

8675:                                             ; preds = %8669
  %8676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8677 = call i32 @fileno(ptr noundef %8676) #12
  %8678 = call i32 @isatty(i32 noundef %8677) #12
  %.not1353 = icmp eq i32 %8678, 0
  br i1 %.not1353, label %8679, label %8680

8679:                                             ; preds = %8675, %8669
  br label %8680

8680:                                             ; preds = %8675, %8679
  %.str.5.sink4428 = phi ptr [ @.str.5, %8679 ], [ @.str.2, %8675 ]
  store i32 %8670, ptr %260, align 4, !tbaa !5
  %8681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8682 = load i32, ptr @test_count, align 4, !tbaa !5
  %8683 = load i32, ptr %206, align 4, !tbaa !5
  %8684 = call ptr @s2n_strerror(i32 noundef %8683, ptr noundef nonnull @.str.4) #12
  %8685 = load i32, ptr %206, align 4, !tbaa !5
  %8686 = call ptr @s2n_strerror_debug(i32 noundef %8685, ptr noundef nonnull @.str.4) #12
  %8687 = load i32, ptr %260, align 4, !tbaa !5
  %8688 = call ptr @strerror(i32 noundef %8687) #12
  %8689 = load i32, ptr %260, align 4, !tbaa !5
  %8690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8681, ptr noundef nonnull %.str.5.sink4428, i32 noundef %8682, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 814, ptr noundef %8684, ptr noundef %8686, ptr noundef %8688, i32 noundef %8689) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8691:                                             ; preds = %8664
  %8692 = load i32, ptr @test_count, align 4, !tbaa !5
  %8693 = add nsw i32 %8692, 1
  store i32 %8693, ptr @test_count, align 4, !tbaa !5
  %8694 = load i32, ptr %206, align 4, !tbaa !5
  %8695 = icmp eq i32 %8694, 335544385
  br i1 %8695, label %8718, label %8696

8696:                                             ; preds = %8691
  %8697 = load i32, ptr %260, align 4, !tbaa !5
  %8698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8699 = call i32 @s2n_print_stacktrace(ptr noundef %8698) #12
  %8700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8701 = trunc nuw i8 %8700 to i1
  br i1 %8701, label %8702, label %8706

8702:                                             ; preds = %8696
  %8703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8704 = call i32 @fileno(ptr noundef %8703) #12
  %8705 = call i32 @isatty(i32 noundef %8704) #12
  %.not1354 = icmp eq i32 %8705, 0
  br i1 %.not1354, label %8706, label %8707

8706:                                             ; preds = %8702, %8696
  br label %8707

8707:                                             ; preds = %8702, %8706
  %.str.5.sink4437 = phi ptr [ @.str.5, %8706 ], [ @.str.2, %8702 ]
  store i32 %8697, ptr %260, align 4, !tbaa !5
  %8708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8709 = load i32, ptr @test_count, align 4, !tbaa !5
  %8710 = load i32, ptr %206, align 4, !tbaa !5
  %8711 = call ptr @s2n_strerror(i32 noundef %8710, ptr noundef nonnull @.str.4) #12
  %8712 = load i32, ptr %206, align 4, !tbaa !5
  %8713 = call ptr @s2n_strerror_debug(i32 noundef %8712, ptr noundef nonnull @.str.4) #12
  %8714 = load i32, ptr %260, align 4, !tbaa !5
  %8715 = call ptr @strerror(i32 noundef %8714) #12
  %8716 = load i32, ptr %260, align 4, !tbaa !5
  %8717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8708, ptr noundef nonnull %.str.5.sink4437, i32 noundef %8709, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 814, ptr noundef %8711, ptr noundef %8713, ptr noundef %8715, i32 noundef %8716) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8718:                                             ; preds = %8691
  %8719 = add nsw i32 %8692, 2
  store i32 %8719, ptr @test_count, align 4, !tbaa !5
  %8720 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %8721 = icmp eq ptr %8720, null
  br i1 %8721, label %8722, label %8744

8722:                                             ; preds = %8718
  %8723 = load i32, ptr %260, align 4, !tbaa !5
  %8724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8725 = call i32 @s2n_print_stacktrace(ptr noundef %8724) #12
  %8726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8727 = trunc nuw i8 %8726 to i1
  br i1 %8727, label %8728, label %8732

8728:                                             ; preds = %8722
  %8729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8730 = call i32 @fileno(ptr noundef %8729) #12
  %8731 = call i32 @isatty(i32 noundef %8730) #12
  %.not1437 = icmp eq i32 %8731, 0
  br i1 %.not1437, label %8732, label %8733

8732:                                             ; preds = %8728, %8722
  br label %8733

8733:                                             ; preds = %8728, %8732
  %.str.5.sink4446 = phi ptr [ @.str.5, %8732 ], [ @.str.2, %8728 ]
  store i32 %8723, ptr %260, align 4, !tbaa !5
  %8734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8735 = load i32, ptr @test_count, align 4, !tbaa !5
  %8736 = load i32, ptr %206, align 4, !tbaa !5
  %8737 = call ptr @s2n_strerror(i32 noundef %8736, ptr noundef nonnull @.str.4) #12
  %8738 = load i32, ptr %206, align 4, !tbaa !5
  %8739 = call ptr @s2n_strerror_debug(i32 noundef %8738, ptr noundef nonnull @.str.4) #12
  %8740 = load i32, ptr %260, align 4, !tbaa !5
  %8741 = call ptr @strerror(i32 noundef %8740) #12
  %8742 = load i32, ptr %260, align 4, !tbaa !5
  %8743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8734, ptr noundef nonnull %.str.5.sink4446, i32 noundef %8735, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 814, ptr noundef %8737, ptr noundef %8739, ptr noundef %8741, i32 noundef %8742) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8744:                                             ; preds = %8718
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %8745 = getelementptr inbounds i8, ptr %8311, i64 832
  store ptr @s2n_secp256r1_kyber_512_r3, ptr %8745, align 8, !tbaa !87
  %8746 = load i32, ptr @test_count, align 4, !tbaa !5
  %8747 = add nsw i32 %8746, 1
  store i32 %8747, ptr @test_count, align 4, !tbaa !5
  %8748 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef nonnull %8311) #12
  %8749 = icmp eq i32 %8748, -1
  br i1 %8749, label %8772, label %8750

8750:                                             ; preds = %8744
  %8751 = load i32, ptr %260, align 4, !tbaa !5
  %8752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8753 = call i32 @s2n_print_stacktrace(ptr noundef %8752) #12
  %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 = %8750
  %8757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8758 = call i32 @fileno(ptr noundef %8757) #12
  %8759 = call i32 @isatty(i32 noundef %8758) #12
  %.not1355 = icmp eq i32 %8759, 0
  br i1 %.not1355, label %8760, label %8761

8760:                                             ; preds = %8756, %8750
  br label %8761

8761:                                             ; preds = %8756, %8760
  %.str.5.sink4455 = phi ptr [ @.str.5, %8760 ], [ @.str.2, %8756 ]
  store i32 %8751, ptr %260, 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 %206, align 4, !tbaa !5
  %8765 = call ptr @s2n_strerror(i32 noundef %8764, ptr noundef nonnull @.str.4) #12
  %8766 = load i32, ptr %206, align 4, !tbaa !5
  %8767 = call ptr @s2n_strerror_debug(i32 noundef %8766, ptr noundef nonnull @.str.4) #12
  %8768 = load i32, ptr %260, align 4, !tbaa !5
  %8769 = call ptr @strerror(i32 noundef %8768) #12
  %8770 = load i32, ptr %260, align 4, !tbaa !5
  %8771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8762, ptr noundef nonnull %.str.5.sink4455, i32 noundef %8763, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 817, ptr noundef %8765, ptr noundef %8767, ptr noundef %8769, i32 noundef %8770) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8772:                                             ; preds = %8744
  %8773 = load i32, ptr @test_count, align 4, !tbaa !5
  %8774 = add nsw i32 %8773, 1
  store i32 %8774, ptr @test_count, align 4, !tbaa !5
  %8775 = load i32, ptr %206, align 4, !tbaa !5
  %8776 = icmp eq i32 %8775, 335544385
  br i1 %8776, label %8799, label %8777

8777:                                             ; preds = %8772
  %8778 = load i32, ptr %260, align 4, !tbaa !5
  %8779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8780 = call i32 @s2n_print_stacktrace(ptr noundef %8779) #12
  %8781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8782 = trunc nuw i8 %8781 to i1
  br i1 %8782, label %8783, label %8787

8783:                                             ; preds = %8777
  %8784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8785 = call i32 @fileno(ptr noundef %8784) #12
  %8786 = call i32 @isatty(i32 noundef %8785) #12
  %.not1356 = icmp eq i32 %8786, 0
  br i1 %.not1356, label %8787, label %8788

8787:                                             ; preds = %8783, %8777
  br label %8788

8788:                                             ; preds = %8783, %8787
  %.str.5.sink4464 = phi ptr [ @.str.5, %8787 ], [ @.str.2, %8783 ]
  store i32 %8778, ptr %260, align 4, !tbaa !5
  %8789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8790 = load i32, ptr @test_count, align 4, !tbaa !5
  %8791 = load i32, ptr %206, align 4, !tbaa !5
  %8792 = call ptr @s2n_strerror(i32 noundef %8791, ptr noundef nonnull @.str.4) #12
  %8793 = load i32, ptr %206, align 4, !tbaa !5
  %8794 = call ptr @s2n_strerror_debug(i32 noundef %8793, ptr noundef nonnull @.str.4) #12
  %8795 = load i32, ptr %260, align 4, !tbaa !5
  %8796 = call ptr @strerror(i32 noundef %8795) #12
  %8797 = load i32, ptr %260, align 4, !tbaa !5
  %8798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8789, ptr noundef nonnull %.str.5.sink4464, i32 noundef %8790, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 817, ptr noundef %8792, ptr noundef %8794, ptr noundef %8796, i32 noundef %8797) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8799:                                             ; preds = %8772
  %8800 = add nsw i32 %8773, 2
  store i32 %8800, ptr @test_count, align 4, !tbaa !5
  %8801 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %8802 = icmp eq ptr %8801, null
  br i1 %8802, label %8803, label %8825

8803:                                             ; preds = %8799
  %8804 = load i32, ptr %260, align 4, !tbaa !5
  %8805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8806 = call i32 @s2n_print_stacktrace(ptr noundef %8805) #12
  %8807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8808 = trunc nuw i8 %8807 to i1
  br i1 %8808, label %8809, label %8813

8809:                                             ; preds = %8803
  %8810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8811 = call i32 @fileno(ptr noundef %8810) #12
  %8812 = call i32 @isatty(i32 noundef %8811) #12
  %.not1436 = icmp eq i32 %8812, 0
  br i1 %.not1436, label %8813, label %8814

8813:                                             ; preds = %8809, %8803
  br label %8814

8814:                                             ; preds = %8809, %8813
  %.str.5.sink4473 = phi ptr [ @.str.5, %8813 ], [ @.str.2, %8809 ]
  store i32 %8804, ptr %260, align 4, !tbaa !5
  %8815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8816 = load i32, ptr @test_count, align 4, !tbaa !5
  %8817 = load i32, ptr %206, align 4, !tbaa !5
  %8818 = call ptr @s2n_strerror(i32 noundef %8817, ptr noundef nonnull @.str.4) #12
  %8819 = load i32, ptr %206, align 4, !tbaa !5
  %8820 = call ptr @s2n_strerror_debug(i32 noundef %8819, ptr noundef nonnull @.str.4) #12
  %8821 = load i32, ptr %260, align 4, !tbaa !5
  %8822 = call ptr @strerror(i32 noundef %8821) #12
  %8823 = load i32, ptr %260, align 4, !tbaa !5
  %8824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8815, ptr noundef nonnull %.str.5.sink4473, i32 noundef %8816, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 817, ptr noundef %8818, ptr noundef %8820, ptr noundef %8822, i32 noundef %8823) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8825:                                             ; preds = %8799
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %8826 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_secp256r1_kyber_512_r3, i64 16), align 8, !tbaa !88
  %8827 = getelementptr inbounds i8, ptr %8311, i64 928
  store ptr %8826, ptr %8827, align 8, !tbaa !89
  %8828 = load i32, ptr @test_count, align 4, !tbaa !5
  %8829 = add nsw i32 %8828, 1
  store i32 %8829, ptr @test_count, align 4, !tbaa !5
  %8830 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef nonnull %8311) #12
  %8831 = icmp eq i32 %8830, -1
  br i1 %8831, label %8854, label %8832

8832:                                             ; preds = %8825
  %8833 = load i32, ptr %260, align 4, !tbaa !5
  %8834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8835 = call i32 @s2n_print_stacktrace(ptr noundef %8834) #12
  %8836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8837 = trunc nuw i8 %8836 to i1
  br i1 %8837, label %8838, label %8842

8838:                                             ; preds = %8832
  %8839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8840 = call i32 @fileno(ptr noundef %8839) #12
  %8841 = call i32 @isatty(i32 noundef %8840) #12
  %.not1357 = icmp eq i32 %8841, 0
  br i1 %.not1357, label %8842, label %8843

8842:                                             ; preds = %8838, %8832
  br label %8843

8843:                                             ; preds = %8838, %8842
  %.str.5.sink4482 = phi ptr [ @.str.5, %8842 ], [ @.str.2, %8838 ]
  store i32 %8833, ptr %260, align 4, !tbaa !5
  %8844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8845 = load i32, ptr @test_count, align 4, !tbaa !5
  %8846 = load i32, ptr %206, align 4, !tbaa !5
  %8847 = call ptr @s2n_strerror(i32 noundef %8846, ptr noundef nonnull @.str.4) #12
  %8848 = load i32, ptr %206, align 4, !tbaa !5
  %8849 = call ptr @s2n_strerror_debug(i32 noundef %8848, ptr noundef nonnull @.str.4) #12
  %8850 = load i32, ptr %260, align 4, !tbaa !5
  %8851 = call ptr @strerror(i32 noundef %8850) #12
  %8852 = load i32, ptr %260, align 4, !tbaa !5
  %8853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8844, ptr noundef nonnull %.str.5.sink4482, i32 noundef %8845, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 820, ptr noundef %8847, ptr noundef %8849, ptr noundef %8851, i32 noundef %8852) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8854:                                             ; preds = %8825
  %8855 = load i32, ptr @test_count, align 4, !tbaa !5
  %8856 = add nsw i32 %8855, 1
  store i32 %8856, ptr @test_count, align 4, !tbaa !5
  %8857 = load i32, ptr %206, align 4, !tbaa !5
  %8858 = icmp eq i32 %8857, 335544385
  br i1 %8858, label %8881, label %8859

8859:                                             ; preds = %8854
  %8860 = load i32, ptr %260, align 4, !tbaa !5
  %8861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8862 = call i32 @s2n_print_stacktrace(ptr noundef %8861) #12
  %8863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8864 = trunc nuw i8 %8863 to i1
  br i1 %8864, label %8865, label %8869

8865:                                             ; preds = %8859
  %8866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8867 = call i32 @fileno(ptr noundef %8866) #12
  %8868 = call i32 @isatty(i32 noundef %8867) #12
  %.not1358 = icmp eq i32 %8868, 0
  br i1 %.not1358, label %8869, label %8870

8869:                                             ; preds = %8865, %8859
  br label %8870

8870:                                             ; preds = %8865, %8869
  %.str.5.sink4491 = phi ptr [ @.str.5, %8869 ], [ @.str.2, %8865 ]
  store i32 %8860, ptr %260, align 4, !tbaa !5
  %8871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8872 = load i32, ptr @test_count, align 4, !tbaa !5
  %8873 = load i32, ptr %206, align 4, !tbaa !5
  %8874 = call ptr @s2n_strerror(i32 noundef %8873, ptr noundef nonnull @.str.4) #12
  %8875 = load i32, ptr %206, align 4, !tbaa !5
  %8876 = call ptr @s2n_strerror_debug(i32 noundef %8875, ptr noundef nonnull @.str.4) #12
  %8877 = load i32, ptr %260, align 4, !tbaa !5
  %8878 = call ptr @strerror(i32 noundef %8877) #12
  %8879 = load i32, ptr %260, align 4, !tbaa !5
  %8880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8871, ptr noundef nonnull %.str.5.sink4491, i32 noundef %8872, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 820, ptr noundef %8874, ptr noundef %8876, ptr noundef %8878, i32 noundef %8879) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8881:                                             ; preds = %8854
  %8882 = add nsw i32 %8855, 2
  store i32 %8882, ptr @test_count, align 4, !tbaa !5
  %8883 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %8884 = icmp eq ptr %8883, null
  br i1 %8884, label %8885, label %8907

8885:                                             ; preds = %8881
  %8886 = load i32, ptr %260, align 4, !tbaa !5
  %8887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8888 = call i32 @s2n_print_stacktrace(ptr noundef %8887) #12
  %8889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8890 = trunc nuw i8 %8889 to i1
  br i1 %8890, label %8891, label %8895

8891:                                             ; preds = %8885
  %8892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8893 = call i32 @fileno(ptr noundef %8892) #12
  %8894 = call i32 @isatty(i32 noundef %8893) #12
  %.not1435 = icmp eq i32 %8894, 0
  br i1 %.not1435, label %8895, label %8896

8895:                                             ; preds = %8891, %8885
  br label %8896

8896:                                             ; preds = %8891, %8895
  %.str.5.sink4500 = phi ptr [ @.str.5, %8895 ], [ @.str.2, %8891 ]
  store i32 %8886, ptr %260, align 4, !tbaa !5
  %8897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8898 = load i32, ptr @test_count, align 4, !tbaa !5
  %8899 = load i32, ptr %206, align 4, !tbaa !5
  %8900 = call ptr @s2n_strerror(i32 noundef %8899, ptr noundef nonnull @.str.4) #12
  %8901 = load i32, ptr %206, align 4, !tbaa !5
  %8902 = call ptr @s2n_strerror_debug(i32 noundef %8901, ptr noundef nonnull @.str.4) #12
  %8903 = load i32, ptr %260, align 4, !tbaa !5
  %8904 = call ptr @strerror(i32 noundef %8903) #12
  %8905 = load i32, ptr %260, align 4, !tbaa !5
  %8906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8897, ptr noundef nonnull %.str.5.sink4500, i32 noundef %8898, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 820, ptr noundef %8900, ptr noundef %8902, ptr noundef %8904, i32 noundef %8905) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8907:                                             ; preds = %8881
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %8908 = load i32, ptr @test_count, align 4, !tbaa !5
  %8909 = add nsw i32 %8908, 1
  store i32 %8909, ptr @test_count, align 4, !tbaa !5
  %8910 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %8827) #12
  %8911 = icmp eq i32 %8910, -1
  br i1 %8911, label %8912, label %8934

8912:                                             ; preds = %8907
  %8913 = load i32, ptr %260, align 4, !tbaa !5
  %8914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8915 = call i32 @s2n_print_stacktrace(ptr noundef %8914) #12
  %8916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8917 = trunc nuw i8 %8916 to i1
  br i1 %8917, label %8918, label %8922

8918:                                             ; preds = %8912
  %8919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8920 = call i32 @fileno(ptr noundef %8919) #12
  %8921 = call i32 @isatty(i32 noundef %8920) #12
  %.not1434 = icmp eq i32 %8921, 0
  br i1 %.not1434, label %8922, label %8923

8922:                                             ; preds = %8918, %8912
  br label %8923

8923:                                             ; preds = %8918, %8922
  %.str.5.sink4509 = phi ptr [ @.str.5, %8922 ], [ @.str.2, %8918 ]
  store i32 %8913, ptr %260, align 4, !tbaa !5
  %8924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8925 = load i32, ptr @test_count, align 4, !tbaa !5
  %8926 = load i32, ptr %206, align 4, !tbaa !5
  %8927 = call ptr @s2n_strerror(i32 noundef %8926, ptr noundef nonnull @.str.4) #12
  %8928 = load i32, ptr %206, align 4, !tbaa !5
  %8929 = call ptr @s2n_strerror_debug(i32 noundef %8928, ptr noundef nonnull @.str.4) #12
  %8930 = load i32, ptr %260, align 4, !tbaa !5
  %8931 = call ptr @strerror(i32 noundef %8930) #12
  %8932 = load i32, ptr %260, align 4, !tbaa !5
  %8933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8924, ptr noundef nonnull %.str.5.sink4509, i32 noundef %8925, ptr noundef nonnull @.str.177, ptr noundef nonnull @.str.1, i32 noundef 822, ptr noundef %8927, ptr noundef %8929, ptr noundef %8931, i32 noundef %8932) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8934:                                             ; preds = %8907
  %8935 = load i32, ptr @test_count, align 4, !tbaa !5
  %8936 = add nsw i32 %8935, 1
  store i32 %8936, ptr @test_count, align 4, !tbaa !5
  %8937 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef nonnull %8311) #12
  %8938 = icmp eq i32 %8937, -1
  br i1 %8938, label %8961, label %8939

8939:                                             ; preds = %8934
  %8940 = load i32, ptr %260, align 4, !tbaa !5
  %8941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8942 = call i32 @s2n_print_stacktrace(ptr noundef %8941) #12
  %8943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8944 = trunc nuw i8 %8943 to i1
  br i1 %8944, label %8945, label %8949

8945:                                             ; preds = %8939
  %8946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8947 = call i32 @fileno(ptr noundef %8946) #12
  %8948 = call i32 @isatty(i32 noundef %8947) #12
  %.not1359 = icmp eq i32 %8948, 0
  br i1 %.not1359, label %8949, label %8950

8949:                                             ; preds = %8945, %8939
  br label %8950

8950:                                             ; preds = %8945, %8949
  %.str.5.sink4518 = phi ptr [ @.str.5, %8949 ], [ @.str.2, %8945 ]
  store i32 %8940, ptr %260, align 4, !tbaa !5
  %8951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8952 = load i32, ptr @test_count, align 4, !tbaa !5
  %8953 = load i32, ptr %206, align 4, !tbaa !5
  %8954 = call ptr @s2n_strerror(i32 noundef %8953, ptr noundef nonnull @.str.4) #12
  %8955 = load i32, ptr %206, align 4, !tbaa !5
  %8956 = call ptr @s2n_strerror_debug(i32 noundef %8955, ptr noundef nonnull @.str.4) #12
  %8957 = load i32, ptr %260, align 4, !tbaa !5
  %8958 = call ptr @strerror(i32 noundef %8957) #12
  %8959 = load i32, ptr %260, align 4, !tbaa !5
  %8960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8951, ptr noundef nonnull %.str.5.sink4518, i32 noundef %8952, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 823, ptr noundef %8954, ptr noundef %8956, ptr noundef %8958, i32 noundef %8959) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8961:                                             ; preds = %8934
  %8962 = load i32, ptr @test_count, align 4, !tbaa !5
  %8963 = add nsw i32 %8962, 1
  store i32 %8963, ptr @test_count, align 4, !tbaa !5
  %8964 = load i32, ptr %206, align 4, !tbaa !5
  %8965 = icmp eq i32 %8964, 335544385
  br i1 %8965, label %8988, label %8966

8966:                                             ; preds = %8961
  %8967 = load i32, ptr %260, align 4, !tbaa !5
  %8968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8969 = call i32 @s2n_print_stacktrace(ptr noundef %8968) #12
  %8970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8971 = trunc nuw i8 %8970 to i1
  br i1 %8971, label %8972, label %8976

8972:                                             ; preds = %8966
  %8973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8974 = call i32 @fileno(ptr noundef %8973) #12
  %8975 = call i32 @isatty(i32 noundef %8974) #12
  %.not1360 = icmp eq i32 %8975, 0
  br i1 %.not1360, label %8976, label %8977

8976:                                             ; preds = %8972, %8966
  br label %8977

8977:                                             ; preds = %8972, %8976
  %.str.5.sink4527 = phi ptr [ @.str.5, %8976 ], [ @.str.2, %8972 ]
  store i32 %8967, ptr %260, align 4, !tbaa !5
  %8978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8979 = load i32, ptr @test_count, align 4, !tbaa !5
  %8980 = load i32, ptr %206, align 4, !tbaa !5
  %8981 = call ptr @s2n_strerror(i32 noundef %8980, ptr noundef nonnull @.str.4) #12
  %8982 = load i32, ptr %206, align 4, !tbaa !5
  %8983 = call ptr @s2n_strerror_debug(i32 noundef %8982, ptr noundef nonnull @.str.4) #12
  %8984 = load i32, ptr %260, align 4, !tbaa !5
  %8985 = call ptr @strerror(i32 noundef %8984) #12
  %8986 = load i32, ptr %260, align 4, !tbaa !5
  %8987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8978, ptr noundef nonnull %.str.5.sink4527, i32 noundef %8979, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 823, ptr noundef %8981, ptr noundef %8983, ptr noundef %8985, i32 noundef %8986) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8988:                                             ; preds = %8961
  %8989 = add nsw i32 %8962, 2
  store i32 %8989, ptr @test_count, align 4, !tbaa !5
  %8990 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %8991 = icmp eq ptr %8990, null
  br i1 %8991, label %8992, label %9014

8992:                                             ; preds = %8988
  %8993 = load i32, ptr %260, align 4, !tbaa !5
  %8994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8995 = call i32 @s2n_print_stacktrace(ptr noundef %8994) #12
  %8996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8997 = trunc nuw i8 %8996 to i1
  br i1 %8997, label %8998, label %9002

8998:                                             ; preds = %8992
  %8999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9000 = call i32 @fileno(ptr noundef %8999) #12
  %9001 = call i32 @isatty(i32 noundef %9000) #12
  %.not1433 = icmp eq i32 %9001, 0
  br i1 %.not1433, label %9002, label %9003

9002:                                             ; preds = %8998, %8992
  br label %9003

9003:                                             ; preds = %8998, %9002
  %.str.5.sink4536 = phi ptr [ @.str.5, %9002 ], [ @.str.2, %8998 ]
  store i32 %8993, ptr %260, align 4, !tbaa !5
  %9004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9005 = load i32, ptr @test_count, align 4, !tbaa !5
  %9006 = load i32, ptr %206, align 4, !tbaa !5
  %9007 = call ptr @s2n_strerror(i32 noundef %9006, ptr noundef nonnull @.str.4) #12
  %9008 = load i32, ptr %206, align 4, !tbaa !5
  %9009 = call ptr @s2n_strerror_debug(i32 noundef %9008, ptr noundef nonnull @.str.4) #12
  %9010 = load i32, ptr %260, align 4, !tbaa !5
  %9011 = call ptr @strerror(i32 noundef %9010) #12
  %9012 = load i32, ptr %260, align 4, !tbaa !5
  %9013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9004, ptr noundef nonnull %.str.5.sink4536, i32 noundef %9005, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 823, ptr noundef %9007, ptr noundef %9009, ptr noundef %9011, i32 noundef %9012) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9014:                                             ; preds = %8988
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %9015 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_secp256r1_kyber_512_r3, i64 24), align 8, !tbaa !90
  %9016 = getelementptr inbounds i8, ptr %8311, i64 840
  store ptr %9015, ptr %9016, align 8, !tbaa !91
  %9017 = load i32, ptr @test_count, align 4, !tbaa !5
  %9018 = add nsw i32 %9017, 1
  store i32 %9018, ptr @test_count, align 4, !tbaa !5
  %9019 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef nonnull %8311) #12
  %9020 = icmp eq i32 %9019, -1
  br i1 %9020, label %9043, label %9021

9021:                                             ; preds = %9014
  %9022 = load i32, ptr %260, align 4, !tbaa !5
  %9023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9024 = call i32 @s2n_print_stacktrace(ptr noundef %9023) #12
  %9025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9026 = trunc nuw i8 %9025 to i1
  br i1 %9026, label %9027, label %9031

9027:                                             ; preds = %9021
  %9028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9029 = call i32 @fileno(ptr noundef %9028) #12
  %9030 = call i32 @isatty(i32 noundef %9029) #12
  %.not1361 = icmp eq i32 %9030, 0
  br i1 %.not1361, label %9031, label %9032

9031:                                             ; preds = %9027, %9021
  br label %9032

9032:                                             ; preds = %9027, %9031
  %.str.5.sink4545 = phi ptr [ @.str.5, %9031 ], [ @.str.2, %9027 ]
  store i32 %9022, ptr %260, align 4, !tbaa !5
  %9033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9034 = load i32, ptr @test_count, align 4, !tbaa !5
  %9035 = load i32, ptr %206, align 4, !tbaa !5
  %9036 = call ptr @s2n_strerror(i32 noundef %9035, ptr noundef nonnull @.str.4) #12
  %9037 = load i32, ptr %206, align 4, !tbaa !5
  %9038 = call ptr @s2n_strerror_debug(i32 noundef %9037, ptr noundef nonnull @.str.4) #12
  %9039 = load i32, ptr %260, align 4, !tbaa !5
  %9040 = call ptr @strerror(i32 noundef %9039) #12
  %9041 = load i32, ptr %260, align 4, !tbaa !5
  %9042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9033, ptr noundef nonnull %.str.5.sink4545, i32 noundef %9034, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 826, ptr noundef %9036, ptr noundef %9038, ptr noundef %9040, i32 noundef %9041) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9043:                                             ; preds = %9014
  %9044 = load i32, ptr @test_count, align 4, !tbaa !5
  %9045 = add nsw i32 %9044, 1
  store i32 %9045, ptr @test_count, align 4, !tbaa !5
  %9046 = load i32, ptr %206, align 4, !tbaa !5
  %9047 = icmp eq i32 %9046, 335544385
  br i1 %9047, label %9070, label %9048

9048:                                             ; preds = %9043
  %9049 = load i32, ptr %260, align 4, !tbaa !5
  %9050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9051 = call i32 @s2n_print_stacktrace(ptr noundef %9050) #12
  %9052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9053 = trunc nuw i8 %9052 to i1
  br i1 %9053, label %9054, label %9058

9054:                                             ; preds = %9048
  %9055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9056 = call i32 @fileno(ptr noundef %9055) #12
  %9057 = call i32 @isatty(i32 noundef %9056) #12
  %.not1362 = icmp eq i32 %9057, 0
  br i1 %.not1362, label %9058, label %9059

9058:                                             ; preds = %9054, %9048
  br label %9059

9059:                                             ; preds = %9054, %9058
  %.str.5.sink4554 = phi ptr [ @.str.5, %9058 ], [ @.str.2, %9054 ]
  store i32 %9049, ptr %260, align 4, !tbaa !5
  %9060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9061 = load i32, ptr @test_count, align 4, !tbaa !5
  %9062 = load i32, ptr %206, align 4, !tbaa !5
  %9063 = call ptr @s2n_strerror(i32 noundef %9062, ptr noundef nonnull @.str.4) #12
  %9064 = load i32, ptr %206, align 4, !tbaa !5
  %9065 = call ptr @s2n_strerror_debug(i32 noundef %9064, ptr noundef nonnull @.str.4) #12
  %9066 = load i32, ptr %260, align 4, !tbaa !5
  %9067 = call ptr @strerror(i32 noundef %9066) #12
  %9068 = load i32, ptr %260, align 4, !tbaa !5
  %9069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9060, ptr noundef nonnull %.str.5.sink4554, i32 noundef %9061, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 826, ptr noundef %9063, ptr noundef %9065, ptr noundef %9067, i32 noundef %9068) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9070:                                             ; preds = %9043
  %9071 = add nsw i32 %9044, 2
  store i32 %9071, ptr @test_count, align 4, !tbaa !5
  %9072 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.4) #12
  %9073 = icmp eq ptr %9072, null
  br i1 %9073, label %9074, label %9096

9074:                                             ; preds = %9070
  %9075 = load i32, ptr %260, align 4, !tbaa !5
  %9076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9077 = call i32 @s2n_print_stacktrace(ptr noundef %9076) #12
  %9078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9079 = trunc nuw i8 %9078 to i1
  br i1 %9079, label %9080, label %9084

9080:                                             ; preds = %9074
  %9081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9082 = call i32 @fileno(ptr noundef %9081) #12
  %9083 = call i32 @isatty(i32 noundef %9082) #12
  %.not1432 = icmp eq i32 %9083, 0
  br i1 %.not1432, label %9084, label %9085

9084:                                             ; preds = %9080, %9074
  br label %9085

9085:                                             ; preds = %9080, %9084
  %.str.5.sink4563 = phi ptr [ @.str.5, %9084 ], [ @.str.2, %9080 ]
  store i32 %9075, ptr %260, align 4, !tbaa !5
  %9086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9087 = load i32, ptr @test_count, align 4, !tbaa !5
  %9088 = load i32, ptr %206, align 4, !tbaa !5
  %9089 = call ptr @s2n_strerror(i32 noundef %9088, ptr noundef nonnull @.str.4) #12
  %9090 = load i32, ptr %206, align 4, !tbaa !5
  %9091 = call ptr @s2n_strerror_debug(i32 noundef %9090, ptr noundef nonnull @.str.4) #12
  %9092 = load i32, ptr %260, align 4, !tbaa !5
  %9093 = call ptr @strerror(i32 noundef %9092) #12
  %9094 = load i32, ptr %260, align 4, !tbaa !5
  %9095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9086, ptr noundef nonnull %.str.5.sink4563, i32 noundef %9087, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 826, ptr noundef %9089, ptr noundef %9091, ptr noundef %9093, i32 noundef %9094) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9096:                                             ; preds = %9070
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %9097 = load i32, ptr @test_count, align 4, !tbaa !5
  %9098 = add nsw i32 %9097, 1
  store i32 %9098, ptr @test_count, align 4, !tbaa !5
  %9099 = getelementptr inbounds i8, ptr %8311, i64 848
  %9100 = getelementptr inbounds i8, ptr %9015, i64 14
  %9101 = load i16, ptr %9100, align 2, !tbaa !109
  %9102 = zext i16 %9101 to i32
  %9103 = call i32 @s2n_alloc(ptr noundef nonnull %9099, i32 noundef %9102) #12
  %9104 = icmp eq i32 %9103, -1
  br i1 %9104, label %9105, label %9127

9105:                                             ; preds = %9096
  %9106 = load i32, ptr %260, align 4, !tbaa !5
  %9107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9108 = call i32 @s2n_print_stacktrace(ptr noundef %9107) #12
  %9109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9110 = trunc nuw i8 %9109 to i1
  br i1 %9110, label %9111, label %9115

9111:                                             ; preds = %9105
  %9112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9113 = call i32 @fileno(ptr noundef %9112) #12
  %9114 = call i32 @isatty(i32 noundef %9113) #12
  %.not1431 = icmp eq i32 %9114, 0
  br i1 %.not1431, label %9115, label %9116

9115:                                             ; preds = %9111, %9105
  br label %9116

9116:                                             ; preds = %9111, %9115
  %.str.5.sink4572 = phi ptr [ @.str.5, %9115 ], [ @.str.2, %9111 ]
  store i32 %9106, ptr %260, align 4, !tbaa !5
  %9117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9118 = load i32, ptr @test_count, align 4, !tbaa !5
  %9119 = load i32, ptr %206, align 4, !tbaa !5
  %9120 = call ptr @s2n_strerror(i32 noundef %9119, ptr noundef nonnull @.str.4) #12
  %9121 = load i32, ptr %206, align 4, !tbaa !5
  %9122 = call ptr @s2n_strerror_debug(i32 noundef %9121, ptr noundef nonnull @.str.4) #12
  %9123 = load i32, ptr %260, align 4, !tbaa !5
  %9124 = call ptr @strerror(i32 noundef %9123) #12
  %9125 = load i32, ptr %260, align 4, !tbaa !5
  %9126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9117, ptr noundef nonnull %.str.5.sink4572, i32 noundef %9118, ptr noundef nonnull @.str.178, ptr noundef nonnull @.str.1, i32 noundef 829, ptr noundef %9120, ptr noundef %9122, ptr noundef %9124, i32 noundef %9125) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9127:                                             ; preds = %9096
  %9128 = load i32, ptr @test_count, align 4, !tbaa !5
  %9129 = add nsw i32 %9128, 1
  store i32 %9129, ptr @test_count, align 4, !tbaa !5
  %9130 = call i32 @s2n_kem_generate_keypair(ptr noundef nonnull %9016) #12
  %9131 = call zeroext i1 @s2n_result_is_ok(i32 %9130)
  br i1 %9131, label %9154, label %9132

9132:                                             ; preds = %9127
  %9133 = load i32, ptr %260, align 4, !tbaa !5
  %9134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9135 = call i32 @s2n_print_stacktrace(ptr noundef %9134) #12
  %9136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9137 = trunc nuw i8 %9136 to i1
  br i1 %9137, label %9138, label %9142

9138:                                             ; preds = %9132
  %9139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9140 = call i32 @fileno(ptr noundef %9139) #12
  %9141 = call i32 @isatty(i32 noundef %9140) #12
  %.not1363 = icmp eq i32 %9141, 0
  br i1 %.not1363, label %9142, label %9143

9142:                                             ; preds = %9138, %9132
  br label %9143

9143:                                             ; preds = %9138, %9142
  %.str.5.sink4581 = phi ptr [ @.str.5, %9142 ], [ @.str.2, %9138 ]
  store i32 %9133, ptr %260, align 4, !tbaa !5
  %9144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9145 = load i32, ptr @test_count, align 4, !tbaa !5
  %9146 = load i32, ptr %206, align 4, !tbaa !5
  %9147 = call ptr @s2n_strerror(i32 noundef %9146, ptr noundef nonnull @.str.4) #12
  %9148 = load i32, ptr %206, align 4, !tbaa !5
  %9149 = call ptr @s2n_strerror_debug(i32 noundef %9148, ptr noundef nonnull @.str.4) #12
  %9150 = load i32, ptr %260, align 4, !tbaa !5
  %9151 = call ptr @strerror(i32 noundef %9150) #12
  %9152 = load i32, ptr %260, align 4, !tbaa !5
  %9153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9144, ptr noundef nonnull %.str.5.sink4581, i32 noundef %9145, ptr noundef nonnull @.str.179, ptr noundef nonnull @.str.1, i32 noundef 830, ptr noundef %9147, ptr noundef %9149, ptr noundef %9151, i32 noundef %9152) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9154:                                             ; preds = %9127
  %9155 = load i32, ptr @test_count, align 4, !tbaa !5
  %9156 = add nsw i32 %9155, 1
  store i32 %9156, ptr @test_count, align 4, !tbaa !5
  %9157 = call i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef nonnull %8311) #12
  %9158 = icmp eq i32 %9157, -1
  br i1 %9158, label %9159, label %9181

9159:                                             ; preds = %9154
  %9160 = load i32, ptr %260, align 4, !tbaa !5
  %9161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9162 = call i32 @s2n_print_stacktrace(ptr noundef %9161) #12
  %9163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9164 = trunc nuw i8 %9163 to i1
  br i1 %9164, label %9165, label %9169

9165:                                             ; preds = %9159
  %9166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9167 = call i32 @fileno(ptr noundef %9166) #12
  %9168 = call i32 @isatty(i32 noundef %9167) #12
  %.not1430 = icmp eq i32 %9168, 0
  br i1 %.not1430, label %9169, label %9170

9169:                                             ; preds = %9165, %9159
  br label %9170

9170:                                             ; preds = %9165, %9169
  %.str.5.sink4590 = phi ptr [ @.str.5, %9169 ], [ @.str.2, %9165 ]
  store i32 %9160, ptr %260, align 4, !tbaa !5
  %9171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9172 = load i32, ptr @test_count, align 4, !tbaa !5
  %9173 = load i32, ptr %206, align 4, !tbaa !5
  %9174 = call ptr @s2n_strerror(i32 noundef %9173, ptr noundef nonnull @.str.4) #12
  %9175 = load i32, ptr %206, align 4, !tbaa !5
  %9176 = call ptr @s2n_strerror_debug(i32 noundef %9175, ptr noundef nonnull @.str.4) #12
  %9177 = load i32, ptr %260, align 4, !tbaa !5
  %9178 = call ptr @strerror(i32 noundef %9177) #12
  %9179 = load i32, ptr %260, align 4, !tbaa !5
  %9180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9171, ptr noundef nonnull %.str.5.sink4590, i32 noundef %9172, ptr noundef nonnull @.str.180, ptr noundef nonnull @.str.1, i32 noundef 831, ptr noundef %9174, ptr noundef %9176, ptr noundef %9178, i32 noundef %9179) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9181:                                             ; preds = %8418, %9154
  %9182 = load i32, ptr @test_count, align 4, !tbaa !5
  %9183 = add nsw i32 %9182, 1
  store i32 %9183, ptr @test_count, align 4, !tbaa !5
  %9184 = call i32 @s2n_connection_free(ptr noundef nonnull %8311) #12
  %9185 = icmp eq i32 %9184, -1
  br i1 %9185, label %9186, label %9208

9186:                                             ; preds = %9181
  %9187 = load i32, ptr %260, align 4, !tbaa !5
  %9188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9189 = call i32 @s2n_print_stacktrace(ptr noundef %9188) #12
  %9190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9191 = trunc nuw i8 %9190 to i1
  br i1 %9191, label %9192, label %9196

9192:                                             ; preds = %9186
  %9193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9194 = call i32 @fileno(ptr noundef %9193) #12
  %9195 = call i32 @isatty(i32 noundef %9194) #12
  %.not1429 = icmp eq i32 %9195, 0
  br i1 %.not1429, label %9196, label %9197

9196:                                             ; preds = %9192, %9186
  br label %9197

9197:                                             ; preds = %9192, %9196
  %.str.5.sink4599 = phi ptr [ @.str.5, %9196 ], [ @.str.2, %9192 ]
  store i32 %9187, ptr %260, align 4, !tbaa !5
  %9198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9199 = load i32, ptr @test_count, align 4, !tbaa !5
  %9200 = load i32, ptr %206, align 4, !tbaa !5
  %9201 = call ptr @s2n_strerror(i32 noundef %9200, ptr noundef nonnull @.str.4) #12
  %9202 = load i32, ptr %206, align 4, !tbaa !5
  %9203 = call ptr @s2n_strerror_debug(i32 noundef %9202, ptr noundef nonnull @.str.4) #12
  %9204 = load i32, ptr %260, align 4, !tbaa !5
  %9205 = call ptr @strerror(i32 noundef %9204) #12
  %9206 = load i32, ptr %260, align 4, !tbaa !5
  %9207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9198, ptr noundef nonnull %.str.5.sink4599, i32 noundef %9199, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 834, ptr noundef %9201, ptr noundef %9203, ptr noundef %9205, i32 noundef %9206) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9208:                                             ; preds = %9181
  %9209 = call zeroext i1 @s2n_pq_is_enabled() #12
  br i1 %9209, label %.preheader1667, label %.loopexit

.preheader1667:                                   ; preds = %9208
  %9210 = getelementptr inbounds i8, ptr %48, i64 28
  %9211 = getelementptr inbounds i8, ptr %48, i64 24
  br label %.preheader1666

.preheader1666:                                   ; preds = %.preheader1667, %9212
  %.not1401 = phi i1 [ true, %.preheader1667 ], [ false, %9212 ]
  %.012281687 = phi i8 [ 0, %.preheader1667 ], [ 1, %9212 ]
  br label %9213

9212:                                             ; preds = %10024
  br i1 %.not1401, label %.preheader1666, label %.loopexit, !llvm.loop !110

9213:                                             ; preds = %.preheader1666, %10024
  %.012291686 = phi i64 [ 0, %.preheader1666 ], [ %10026, %10024 ]
  %9214 = load i32, ptr @test_count, align 4, !tbaa !5
  %9215 = add nsw i32 %9214, 1
  store i32 %9215, ptr @test_count, align 4, !tbaa !5
  %9216 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %9217 = icmp eq ptr %9216, null
  br i1 %9217, label %9218, label %9240

9218:                                             ; preds = %9213
  %9219 = load i32, ptr %260, align 4, !tbaa !5
  %9220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9221 = call i32 @s2n_print_stacktrace(ptr noundef %9220) #12
  %9222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9223 = trunc nuw i8 %9222 to i1
  br i1 %9223, label %9224, label %9228

9224:                                             ; preds = %9218
  %9225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9226 = call i32 @fileno(ptr noundef %9225) #12
  %9227 = call i32 @isatty(i32 noundef %9226) #12
  %.not1428 = icmp eq i32 %9227, 0
  br i1 %.not1428, label %9228, label %9229

9228:                                             ; preds = %9224, %9218
  br label %9229

9229:                                             ; preds = %9224, %9228
  %.str.5.sink4608 = phi ptr [ @.str.5, %9228 ], [ @.str.2, %9224 ]
  store i32 %9219, ptr %260, align 4, !tbaa !5
  %9230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9231 = load i32, ptr @test_count, align 4, !tbaa !5
  %9232 = load i32, ptr %206, align 4, !tbaa !5
  %9233 = call ptr @s2n_strerror(i32 noundef %9232, ptr noundef nonnull @.str.4) #12
  %9234 = load i32, ptr %206, align 4, !tbaa !5
  %9235 = call ptr @s2n_strerror_debug(i32 noundef %9234, ptr noundef nonnull @.str.4) #12
  %9236 = load i32, ptr %260, align 4, !tbaa !5
  %9237 = call ptr @strerror(i32 noundef %9236) #12
  %9238 = load i32, ptr %260, align 4, !tbaa !5
  %9239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9230, ptr noundef nonnull %.str.5.sink4608, i32 noundef %9231, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 842, ptr noundef %9233, ptr noundef %9235, ptr noundef %9237, i32 noundef %9238) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9240:                                             ; preds = %9213
  %9241 = getelementptr inbounds i8, ptr %9216, i64 16
  store ptr %31, ptr %9241, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #12
  store ptr null, ptr %47, align 8, !tbaa !9
  %9242 = load i32, ptr @test_count, align 4, !tbaa !5
  %9243 = add nsw i32 %9242, 1
  store i32 %9243, ptr @test_count, align 4, !tbaa !5
  %9244 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %9216, ptr noundef nonnull %47) #12
  %9245 = icmp eq i32 %9244, -1
  br i1 %9245, label %9246, label %9268

9246:                                             ; preds = %9240
  %9247 = load i32, ptr %260, align 4, !tbaa !5
  %9248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9249 = call i32 @s2n_print_stacktrace(ptr noundef %9248) #12
  %9250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9251 = trunc nuw i8 %9250 to i1
  br i1 %9251, label %9252, label %9256

9252:                                             ; preds = %9246
  %9253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9254 = call i32 @fileno(ptr noundef %9253) #12
  %9255 = call i32 @isatty(i32 noundef %9254) #12
  %.not1427 = icmp eq i32 %9255, 0
  br i1 %.not1427, label %9256, label %9257

9256:                                             ; preds = %9252, %9246
  br label %9257

9257:                                             ; preds = %9252, %9256
  %.str.5.sink4617 = phi ptr [ @.str.5, %9256 ], [ @.str.2, %9252 ]
  store i32 %9247, ptr %260, align 4, !tbaa !5
  %9258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9259 = load i32, ptr @test_count, align 4, !tbaa !5
  %9260 = load i32, ptr %206, align 4, !tbaa !5
  %9261 = call ptr @s2n_strerror(i32 noundef %9260, ptr noundef nonnull @.str.4) #12
  %9262 = load i32, ptr %206, align 4, !tbaa !5
  %9263 = call ptr @s2n_strerror_debug(i32 noundef %9262, ptr noundef nonnull @.str.4) #12
  %9264 = load i32, ptr %260, align 4, !tbaa !5
  %9265 = call ptr @strerror(i32 noundef %9264) #12
  %9266 = load i32, ptr %260, align 4, !tbaa !5
  %9267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9258, ptr noundef nonnull %.str.5.sink4617, i32 noundef %9259, ptr noundef nonnull @.str.181, ptr noundef nonnull @.str.1, i32 noundef 846, ptr noundef %9261, ptr noundef %9263, ptr noundef %9265, i32 noundef %9266) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9268:                                             ; preds = %9240
  %9269 = load i32, ptr @test_count, align 4, !tbaa !5
  %9270 = add nsw i32 %9269, 1
  store i32 %9270, ptr @test_count, align 4, !tbaa !5
  %9271 = load ptr, ptr %47, align 8, !tbaa !9
  %9272 = icmp eq ptr %9271, null
  br i1 %9272, label %9273, label %9295

9273:                                             ; preds = %9268
  %9274 = load i32, ptr %260, align 4, !tbaa !5
  %9275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9276 = call i32 @s2n_print_stacktrace(ptr noundef %9275) #12
  %9277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9278 = trunc nuw i8 %9277 to i1
  br i1 %9278, label %9279, label %9283

9279:                                             ; preds = %9273
  %9280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9281 = call i32 @fileno(ptr noundef %9280) #12
  %9282 = call i32 @isatty(i32 noundef %9281) #12
  %.not1426 = icmp eq i32 %9282, 0
  br i1 %.not1426, label %9283, label %9284

9283:                                             ; preds = %9279, %9273
  br label %9284

9284:                                             ; preds = %9279, %9283
  %.str.5.sink4626 = phi ptr [ @.str.5, %9283 ], [ @.str.2, %9279 ]
  store i32 %9274, ptr %260, align 4, !tbaa !5
  %9285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9286 = load i32, ptr @test_count, align 4, !tbaa !5
  %9287 = load i32, ptr %206, align 4, !tbaa !5
  %9288 = call ptr @s2n_strerror(i32 noundef %9287, ptr noundef nonnull @.str.4) #12
  %9289 = load i32, ptr %206, align 4, !tbaa !5
  %9290 = call ptr @s2n_strerror_debug(i32 noundef %9289, ptr noundef nonnull @.str.4) #12
  %9291 = load i32, ptr %260, align 4, !tbaa !5
  %9292 = call ptr @strerror(i32 noundef %9291) #12
  %9293 = load i32, ptr %260, align 4, !tbaa !5
  %9294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9285, ptr noundef nonnull %.str.5.sink4626, i32 noundef %9286, ptr noundef nonnull @.str.182, ptr noundef nonnull @.str.1, i32 noundef 847, ptr noundef %9288, ptr noundef %9290, ptr noundef %9292, i32 noundef %9293) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9295:                                             ; preds = %9268
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %48) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %48, i8 0, i64 40, i1 false)
  %9296 = add nsw i32 %9269, 2
  store i32 %9296, ptr @test_count, align 4, !tbaa !5
  %9297 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %48, i32 noundef 4096) #12
  %9298 = icmp eq i32 %9297, -1
  br i1 %9298, label %9299, label %9321

9299:                                             ; preds = %9295
  %9300 = load i32, ptr %260, align 4, !tbaa !5
  %9301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9302 = call i32 @s2n_print_stacktrace(ptr noundef %9301) #12
  %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) #12
  %9308 = call i32 @isatty(i32 noundef %9307) #12
  %.not1425 = icmp eq i32 %9308, 0
  br i1 %.not1425, label %9309, label %9310

9309:                                             ; preds = %9305, %9299
  br label %9310

9310:                                             ; preds = %9305, %9309
  %.str.5.sink4635 = phi ptr [ @.str.5, %9309 ], [ @.str.2, %9305 ]
  store i32 %9300, ptr %260, 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 %206, align 4, !tbaa !5
  %9314 = call ptr @s2n_strerror(i32 noundef %9313, ptr noundef nonnull @.str.4) #12
  %9315 = load i32, ptr %206, align 4, !tbaa !5
  %9316 = call ptr @s2n_strerror_debug(i32 noundef %9315, ptr noundef nonnull @.str.4) #12
  %9317 = load i32, ptr %260, align 4, !tbaa !5
  %9318 = call ptr @strerror(i32 noundef %9317) #12
  %9319 = load i32, ptr %260, align 4, !tbaa !5
  %9320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9311, ptr noundef nonnull %.str.5.sink4635, i32 noundef %9312, ptr noundef nonnull @.str.183, ptr noundef nonnull @.str.1, i32 noundef 850, ptr noundef %9314, ptr noundef %9316, ptr noundef %9318, i32 noundef %9319) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9321:                                             ; preds = %9295
  %9322 = getelementptr inbounds i8, ptr %9216, i64 656
  store ptr null, ptr %9322, align 8, !tbaa !42
  %9323 = getelementptr inbounds i8, ptr %9216, i64 720
  %9324 = load ptr, ptr %47, align 8, !tbaa !9
  %9325 = getelementptr inbounds i8, ptr %9324, i64 24
  %9326 = load ptr, ptr %9325, align 8, !tbaa !74
  %9327 = getelementptr inbounds ptr, ptr %9326, i64 %.012291686
  %9328 = load ptr, ptr %9327, align 8, !tbaa !9
  %9329 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %9328) #12
  br i1 %9329, label %9357, label %9330

9330:                                             ; preds = %9321
  %9331 = load i32, ptr @test_count, align 4, !tbaa !5
  %9332 = add nsw i32 %9331, 1
  store i32 %9332, ptr @test_count, align 4, !tbaa !5
  %9333 = call i32 @s2n_connection_free(ptr noundef nonnull %9216) #12
  %9334 = icmp eq i32 %9333, -1
  br i1 %9334, label %9335, label %10024

9335:                                             ; preds = %9330
  %9336 = load i32, ptr %260, align 4, !tbaa !5
  %9337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9338 = call i32 @s2n_print_stacktrace(ptr noundef %9337) #12
  %9339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9340 = trunc nuw i8 %9339 to i1
  br i1 %9340, label %9341, label %9345

9341:                                             ; preds = %9335
  %9342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9343 = call i32 @fileno(ptr noundef %9342) #12
  %9344 = call i32 @isatty(i32 noundef %9343) #12
  %.not1400 = icmp eq i32 %9344, 0
  br i1 %.not1400, label %9345, label %9346

9345:                                             ; preds = %9341, %9335
  br label %9346

9346:                                             ; preds = %9341, %9345
  %.str.5.sink4644 = phi ptr [ @.str.5, %9345 ], [ @.str.2, %9341 ]
  store i32 %9336, ptr %260, align 4, !tbaa !5
  %9347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9348 = load i32, ptr @test_count, align 4, !tbaa !5
  %9349 = load i32, ptr %206, align 4, !tbaa !5
  %9350 = call ptr @s2n_strerror(i32 noundef %9349, ptr noundef nonnull @.str.4) #12
  %9351 = load i32, ptr %206, align 4, !tbaa !5
  %9352 = call ptr @s2n_strerror_debug(i32 noundef %9351, ptr noundef nonnull @.str.4) #12
  %9353 = load i32, ptr %260, align 4, !tbaa !5
  %9354 = call ptr @strerror(i32 noundef %9353) #12
  %9355 = load i32, ptr %260, align 4, !tbaa !5
  %9356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9347, ptr noundef nonnull %.str.5.sink4644, i32 noundef %9348, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 859, ptr noundef %9350, ptr noundef %9352, ptr noundef %9354, i32 noundef %9355) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9357:                                             ; preds = %9321
  store ptr %9328, ptr %9323, align 8, !tbaa !111
  %9358 = getelementptr inbounds i8, ptr %9328, i64 24
  %9359 = load ptr, ptr %9358, align 8, !tbaa !90
  %9360 = getelementptr inbounds i8, ptr %9216, i64 728
  store ptr %9359, ptr %9360, align 8, !tbaa !112
  %9361 = getelementptr inbounds i8, ptr %9328, i64 16
  %9362 = load ptr, ptr %9361, align 8, !tbaa !88
  %9363 = getelementptr inbounds i8, ptr %9216, i64 816
  store ptr %9362, ptr %9363, align 8, !tbaa !113
  %9364 = getelementptr inbounds i8, ptr %9216, i64 832
  store ptr %9328, ptr %9364, align 8, !tbaa !111
  %9365 = getelementptr inbounds i8, ptr %9216, i64 840
  store ptr %9359, ptr %9365, align 8, !tbaa !112
  %9366 = getelementptr inbounds i8, ptr %9216, i64 920
  store i8 %.012281687, ptr %9366, align 8, !tbaa !114
  %9367 = getelementptr inbounds i8, ptr %9216, i64 928
  store ptr %9362, ptr %9367, align 8, !tbaa !113
  %9368 = load i32, ptr @test_count, align 4, !tbaa !5
  %9369 = add nsw i32 %9368, 1
  store i32 %9369, ptr @test_count, align 4, !tbaa !5
  %9370 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %9367) #12
  %9371 = icmp eq i32 %9370, -1
  br i1 %9371, label %9372, label %9394

9372:                                             ; preds = %9357
  %9373 = load i32, ptr %260, align 4, !tbaa !5
  %9374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9375 = call i32 @s2n_print_stacktrace(ptr noundef %9374) #12
  %9376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9377 = trunc nuw i8 %9376 to i1
  br i1 %9377, label %9378, label %9382

9378:                                             ; preds = %9372
  %9379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9380 = call i32 @fileno(ptr noundef %9379) #12
  %9381 = call i32 @isatty(i32 noundef %9380) #12
  %.not1424 = icmp eq i32 %9381, 0
  br i1 %.not1424, label %9382, label %9383

9382:                                             ; preds = %9378, %9372
  br label %9383

9383:                                             ; preds = %9378, %9382
  %.str.5.sink4653 = phi ptr [ @.str.5, %9382 ], [ @.str.2, %9378 ]
  store i32 %9373, ptr %260, align 4, !tbaa !5
  %9384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9385 = load i32, ptr @test_count, align 4, !tbaa !5
  %9386 = load i32, ptr %206, align 4, !tbaa !5
  %9387 = call ptr @s2n_strerror(i32 noundef %9386, ptr noundef nonnull @.str.4) #12
  %9388 = load i32, ptr %206, align 4, !tbaa !5
  %9389 = call ptr @s2n_strerror_debug(i32 noundef %9388, ptr noundef nonnull @.str.4) #12
  %9390 = load i32, ptr %260, align 4, !tbaa !5
  %9391 = call ptr @strerror(i32 noundef %9390) #12
  %9392 = load i32, ptr %260, align 4, !tbaa !5
  %9393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9384, ptr noundef nonnull %.str.5.sink4653, i32 noundef %9385, ptr noundef nonnull @.str.184, ptr noundef nonnull @.str.1, i32 noundef 872, ptr noundef %9387, ptr noundef %9389, ptr noundef %9391, i32 noundef %9392) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9394:                                             ; preds = %9357
  %9395 = load i32, ptr @test_count, align 4, !tbaa !5
  %9396 = add nsw i32 %9395, 1
  store i32 %9396, ptr @test_count, align 4, !tbaa !5
  %9397 = getelementptr inbounds i8, ptr %9216, i64 848
  %9398 = load ptr, ptr %9358, align 8, !tbaa !90
  %9399 = getelementptr inbounds i8, ptr %9398, i64 14
  %9400 = load i16, ptr %9399, align 2, !tbaa !109
  %9401 = zext i16 %9400 to i32
  %9402 = call i32 @s2n_alloc(ptr noundef nonnull %9397, i32 noundef %9401) #12
  %9403 = icmp eq i32 %9402, -1
  br i1 %9403, label %9404, label %9426

9404:                                             ; preds = %9394
  %9405 = load i32, ptr %260, align 4, !tbaa !5
  %9406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9407 = call i32 @s2n_print_stacktrace(ptr noundef %9406) #12
  %9408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9409 = trunc nuw i8 %9408 to i1
  br i1 %9409, label %9410, label %9414

9410:                                             ; preds = %9404
  %9411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9412 = call i32 @fileno(ptr noundef %9411) #12
  %9413 = call i32 @isatty(i32 noundef %9412) #12
  %.not1423 = icmp eq i32 %9413, 0
  br i1 %.not1423, label %9414, label %9415

9414:                                             ; preds = %9410, %9404
  br label %9415

9415:                                             ; preds = %9410, %9414
  %.str.5.sink4662 = phi ptr [ @.str.5, %9414 ], [ @.str.2, %9410 ]
  store i32 %9405, ptr %260, align 4, !tbaa !5
  %9416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9417 = load i32, ptr @test_count, align 4, !tbaa !5
  %9418 = load i32, ptr %206, align 4, !tbaa !5
  %9419 = call ptr @s2n_strerror(i32 noundef %9418, ptr noundef nonnull @.str.4) #12
  %9420 = load i32, ptr %206, align 4, !tbaa !5
  %9421 = call ptr @s2n_strerror_debug(i32 noundef %9420, ptr noundef nonnull @.str.4) #12
  %9422 = load i32, ptr %260, align 4, !tbaa !5
  %9423 = call ptr @strerror(i32 noundef %9422) #12
  %9424 = load i32, ptr %260, align 4, !tbaa !5
  %9425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9416, ptr noundef nonnull %.str.5.sink4662, i32 noundef %9417, ptr noundef nonnull @.str.185, ptr noundef nonnull @.str.1, i32 noundef 873, ptr noundef %9419, ptr noundef %9421, ptr noundef %9423, i32 noundef %9424) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9426:                                             ; preds = %9394
  %9427 = load i32, ptr @test_count, align 4, !tbaa !5
  %9428 = add nsw i32 %9427, 1
  store i32 %9428, ptr @test_count, align 4, !tbaa !5
  %9429 = call i32 @s2n_kem_generate_keypair(ptr noundef nonnull %9365) #12
  %9430 = call zeroext i1 @s2n_result_is_ok(i32 %9429)
  br i1 %9430, label %9453, label %9431

9431:                                             ; preds = %9426
  %9432 = load i32, ptr %260, align 4, !tbaa !5
  %9433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9434 = call i32 @s2n_print_stacktrace(ptr noundef %9433) #12
  %9435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9436 = trunc nuw i8 %9435 to i1
  br i1 %9436, label %9437, label %9441

9437:                                             ; preds = %9431
  %9438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9439 = call i32 @fileno(ptr noundef %9438) #12
  %9440 = call i32 @isatty(i32 noundef %9439) #12
  %.not1402 = icmp eq i32 %9440, 0
  br i1 %.not1402, label %9441, label %9442

9441:                                             ; preds = %9437, %9431
  br label %9442

9442:                                             ; preds = %9437, %9441
  %.str.5.sink4671 = phi ptr [ @.str.5, %9441 ], [ @.str.2, %9437 ]
  store i32 %9432, ptr %260, align 4, !tbaa !5
  %9443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9444 = load i32, ptr @test_count, align 4, !tbaa !5
  %9445 = load i32, ptr %206, align 4, !tbaa !5
  %9446 = call ptr @s2n_strerror(i32 noundef %9445, ptr noundef nonnull @.str.4) #12
  %9447 = load i32, ptr %206, align 4, !tbaa !5
  %9448 = call ptr @s2n_strerror_debug(i32 noundef %9447, ptr noundef nonnull @.str.4) #12
  %9449 = load i32, ptr %260, align 4, !tbaa !5
  %9450 = call ptr @strerror(i32 noundef %9449) #12
  %9451 = load i32, ptr %260, align 4, !tbaa !5
  %9452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9443, ptr noundef nonnull %.str.5.sink4671, i32 noundef %9444, ptr noundef nonnull @.str.186, ptr noundef nonnull @.str.1, i32 noundef 874, ptr noundef %9446, ptr noundef %9448, ptr noundef %9450, i32 noundef %9451) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9453:                                             ; preds = %9426
  %9454 = load i32, ptr @test_count, align 4, !tbaa !5
  %9455 = add nsw i32 %9454, 1
  store i32 %9455, ptr @test_count, align 4, !tbaa !5
  %9456 = call i32 %2026(ptr noundef nonnull %9216, ptr noundef nonnull %48) #12
  %9457 = icmp eq i32 %9456, -1
  br i1 %9457, label %9458, label %9480

9458:                                             ; preds = %9453
  %9459 = load i32, ptr %260, align 4, !tbaa !5
  %9460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9461 = call i32 @s2n_print_stacktrace(ptr noundef %9460) #12
  %9462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9463 = trunc nuw i8 %9462 to i1
  br i1 %9463, label %9464, label %9468

9464:                                             ; preds = %9458
  %9465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9466 = call i32 @fileno(ptr noundef %9465) #12
  %9467 = call i32 @isatty(i32 noundef %9466) #12
  %.not1422 = icmp eq i32 %9467, 0
  br i1 %.not1422, label %9468, label %9469

9468:                                             ; preds = %9464, %9458
  br label %9469

9469:                                             ; preds = %9464, %9468
  %.str.5.sink4680 = phi ptr [ @.str.5, %9468 ], [ @.str.2, %9464 ]
  store i32 %9459, ptr %260, align 4, !tbaa !5
  %9470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9471 = load i32, ptr @test_count, align 4, !tbaa !5
  %9472 = load i32, ptr %206, align 4, !tbaa !5
  %9473 = call ptr @s2n_strerror(i32 noundef %9472, ptr noundef nonnull @.str.4) #12
  %9474 = load i32, ptr %206, align 4, !tbaa !5
  %9475 = call ptr @s2n_strerror_debug(i32 noundef %9474, ptr noundef nonnull @.str.4) #12
  %9476 = load i32, ptr %260, align 4, !tbaa !5
  %9477 = call ptr @strerror(i32 noundef %9476) #12
  %9478 = load i32, ptr %260, align 4, !tbaa !5
  %9479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9470, ptr noundef nonnull %.str.5.sink4680, i32 noundef %9471, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 875, ptr noundef %9473, ptr noundef %9475, ptr noundef %9477, i32 noundef %9478) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9480:                                             ; preds = %9453
  %9481 = load ptr, ptr %9361, align 8, !tbaa !88
  %9482 = getelementptr inbounds i8, ptr %9481, i64 16
  %9483 = load i8, ptr %9482, align 8, !tbaa !46
  %9484 = zext i8 %9483 to i16
  %9485 = load ptr, ptr %9358, align 8, !tbaa !90
  %9486 = getelementptr inbounds i8, ptr %9485, i64 20
  %9487 = load i16, ptr %9486, align 4, !tbaa !115
  %9488 = add i16 %9487, %9484
  %9489 = load i8, ptr %9366, align 8, !tbaa !114, !range !13, !noundef !14
  %9490 = trunc nuw i8 %9489 to i1
  %9491 = add i16 %9488, 4
  %spec.select = select i1 %9490, i16 %9491, i16 %9488
  %9492 = load i32, ptr @test_count, align 4, !tbaa !5
  %9493 = add nsw i32 %9492, 1
  store i32 %9493, ptr @test_count, align 4, !tbaa !5
  %9494 = load i32, ptr %9210, align 4, !tbaa !54
  %9495 = load i32, ptr %9211, align 8, !tbaa !55
  %9496 = sub i32 %9494, %9495
  %9497 = zext i32 %9496 to i64
  %9498 = zext i16 %spec.select to i64
  %9499 = add nuw nsw i64 %9498, 4
  %9500 = icmp eq i64 %9499, %9497
  br i1 %9500, label %9523, label %9501

9501:                                             ; preds = %9480
  %9502 = load i32, ptr %260, align 4, !tbaa !5
  %9503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9504 = call i32 @s2n_print_stacktrace(ptr noundef %9503) #12
  %9505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9506 = trunc nuw i8 %9505 to i1
  br i1 %9506, label %9507, label %9511

9507:                                             ; preds = %9501
  %9508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9509 = call i32 @fileno(ptr noundef %9508) #12
  %9510 = call i32 @isatty(i32 noundef %9509) #12
  %.not1403 = icmp eq i32 %9510, 0
  br i1 %.not1403, label %9511, label %9512

9511:                                             ; preds = %9507, %9501
  br label %9512

9512:                                             ; preds = %9507, %9511
  %.str.5.sink4689 = phi ptr [ @.str.5, %9511 ], [ @.str.2, %9507 ]
  store i32 %9502, ptr %260, align 4, !tbaa !5
  %9513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9514 = load i32, ptr @test_count, align 4, !tbaa !5
  %9515 = load i32, ptr %206, align 4, !tbaa !5
  %9516 = call ptr @s2n_strerror(i32 noundef %9515, ptr noundef nonnull @.str.4) #12
  %9517 = load i32, ptr %206, align 4, !tbaa !5
  %9518 = call ptr @s2n_strerror_debug(i32 noundef %9517, ptr noundef nonnull @.str.4) #12
  %9519 = load i32, ptr %260, align 4, !tbaa !5
  %9520 = call ptr @strerror(i32 noundef %9519) #12
  %9521 = load i32, ptr %260, align 4, !tbaa !5
  %9522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9513, ptr noundef nonnull %.str.5.sink4689, i32 noundef %9514, ptr noundef nonnull @.str.187, ptr noundef nonnull @.str.1, i32 noundef 883, ptr noundef %9516, ptr noundef %9518, ptr noundef %9520, i32 noundef %9521) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9523:                                             ; preds = %9480
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %49) #12
  %9524 = add nsw i32 %9492, 2
  store i32 %9524, ptr @test_count, align 4, !tbaa !5
  %9525 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %48, ptr noundef nonnull %49) #12
  %9526 = icmp eq i32 %9525, -1
  br i1 %9526, label %9527, label %9549

9527:                                             ; preds = %9523
  %9528 = load i32, ptr %260, align 4, !tbaa !5
  %9529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9530 = call i32 @s2n_print_stacktrace(ptr noundef %9529) #12
  %9531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9532 = trunc nuw i8 %9531 to i1
  br i1 %9532, label %9533, label %9537

9533:                                             ; preds = %9527
  %9534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9535 = call i32 @fileno(ptr noundef %9534) #12
  %9536 = call i32 @isatty(i32 noundef %9535) #12
  %.not1421 = icmp eq i32 %9536, 0
  br i1 %.not1421, label %9537, label %9538

9537:                                             ; preds = %9533, %9527
  br label %9538

9538:                                             ; preds = %9533, %9537
  %.str.5.sink4698 = phi ptr [ @.str.5, %9537 ], [ @.str.2, %9533 ]
  store i32 %9528, ptr %260, align 4, !tbaa !5
  %9539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9540 = load i32, ptr @test_count, align 4, !tbaa !5
  %9541 = load i32, ptr %206, align 4, !tbaa !5
  %9542 = call ptr @s2n_strerror(i32 noundef %9541, ptr noundef nonnull @.str.4) #12
  %9543 = load i32, ptr %206, align 4, !tbaa !5
  %9544 = call ptr @s2n_strerror_debug(i32 noundef %9543, ptr noundef nonnull @.str.4) #12
  %9545 = load i32, ptr %260, align 4, !tbaa !5
  %9546 = call ptr @strerror(i32 noundef %9545) #12
  %9547 = load i32, ptr %260, align 4, !tbaa !5
  %9548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9539, ptr noundef nonnull %.str.5.sink4698, i32 noundef %9540, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 886, ptr noundef %9542, ptr noundef %9544, ptr noundef %9546, i32 noundef %9547) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9549:                                             ; preds = %9523
  %9550 = load i32, ptr @test_count, align 4, !tbaa !5
  %9551 = add nsw i32 %9550, 1
  store i32 %9551, ptr @test_count, align 4, !tbaa !5
  %9552 = load i16, ptr %49, align 2, !tbaa !52
  %9553 = getelementptr inbounds i8, ptr %9328, i64 8
  %9554 = load i16, ptr %9553, align 8, !tbaa !85
  %9555 = icmp eq i16 %9552, %9554
  br i1 %9555, label %9578, label %9556

9556:                                             ; preds = %9549
  %9557 = load i32, ptr %260, align 4, !tbaa !5
  %9558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9559 = call i32 @s2n_print_stacktrace(ptr noundef %9558) #12
  %9560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9561 = trunc nuw i8 %9560 to i1
  br i1 %9561, label %9562, label %9566

9562:                                             ; preds = %9556
  %9563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9564 = call i32 @fileno(ptr noundef %9563) #12
  %9565 = call i32 @isatty(i32 noundef %9564) #12
  %.not1404 = icmp eq i32 %9565, 0
  br i1 %.not1404, label %9566, label %9567

9566:                                             ; preds = %9562, %9556
  br label %9567

9567:                                             ; preds = %9562, %9566
  %.str.5.sink4707 = phi ptr [ @.str.5, %9566 ], [ @.str.2, %9562 ]
  store i32 %9557, ptr %260, align 4, !tbaa !5
  %9568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9569 = load i32, ptr @test_count, align 4, !tbaa !5
  %9570 = load i32, ptr %206, align 4, !tbaa !5
  %9571 = call ptr @s2n_strerror(i32 noundef %9570, ptr noundef nonnull @.str.4) #12
  %9572 = load i32, ptr %206, align 4, !tbaa !5
  %9573 = call ptr @s2n_strerror_debug(i32 noundef %9572, ptr noundef nonnull @.str.4) #12
  %9574 = load i32, ptr %260, align 4, !tbaa !5
  %9575 = call ptr @strerror(i32 noundef %9574) #12
  %9576 = load i32, ptr %260, align 4, !tbaa !5
  %9577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9568, ptr noundef nonnull %.str.5.sink4707, i32 noundef %9569, ptr noundef nonnull @.str.188, ptr noundef nonnull @.str.1, i32 noundef 886, ptr noundef %9571, ptr noundef %9573, ptr noundef %9575, i32 noundef %9576) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9578:                                             ; preds = %9549
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %49) #12
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %50) #12
  %9579 = add nsw i32 %9550, 2
  store i32 %9579, ptr @test_count, align 4, !tbaa !5
  %9580 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %48, ptr noundef nonnull %50) #12
  %9581 = icmp eq i32 %9580, -1
  br i1 %9581, label %9582, label %9604

9582:                                             ; preds = %9578
  %9583 = load i32, ptr %260, align 4, !tbaa !5
  %9584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9585 = call i32 @s2n_print_stacktrace(ptr noundef %9584) #12
  %9586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9587 = trunc nuw i8 %9586 to i1
  br i1 %9587, label %9588, label %9592

9588:                                             ; preds = %9582
  %9589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9590 = call i32 @fileno(ptr noundef %9589) #12
  %9591 = call i32 @isatty(i32 noundef %9590) #12
  %.not1420 = icmp eq i32 %9591, 0
  br i1 %.not1420, label %9592, label %9593

9592:                                             ; preds = %9588, %9582
  br label %9593

9593:                                             ; preds = %9588, %9592
  %.str.5.sink4716 = phi ptr [ @.str.5, %9592 ], [ @.str.2, %9588 ]
  store i32 %9583, ptr %260, align 4, !tbaa !5
  %9594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9595 = load i32, ptr @test_count, align 4, !tbaa !5
  %9596 = load i32, ptr %206, align 4, !tbaa !5
  %9597 = call ptr @s2n_strerror(i32 noundef %9596, ptr noundef nonnull @.str.4) #12
  %9598 = load i32, ptr %206, align 4, !tbaa !5
  %9599 = call ptr @s2n_strerror_debug(i32 noundef %9598, ptr noundef nonnull @.str.4) #12
  %9600 = load i32, ptr %260, align 4, !tbaa !5
  %9601 = call ptr @strerror(i32 noundef %9600) #12
  %9602 = load i32, ptr %260, align 4, !tbaa !5
  %9603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9594, ptr noundef nonnull %.str.5.sink4716, i32 noundef %9595, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 887, ptr noundef %9597, ptr noundef %9599, ptr noundef %9601, i32 noundef %9602) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9604:                                             ; preds = %9578
  %9605 = load i32, ptr @test_count, align 4, !tbaa !5
  %9606 = add nsw i32 %9605, 1
  store i32 %9606, ptr @test_count, align 4, !tbaa !5
  %9607 = load i16, ptr %50, align 2, !tbaa !52
  %9608 = icmp eq i16 %9607, %spec.select
  br i1 %9608, label %9631, label %9609

9609:                                             ; preds = %9604
  %9610 = load i32, ptr %260, align 4, !tbaa !5
  %9611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9612 = call i32 @s2n_print_stacktrace(ptr noundef %9611) #12
  %9613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9614 = trunc nuw i8 %9613 to i1
  br i1 %9614, label %9615, label %9619

9615:                                             ; preds = %9609
  %9616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9617 = call i32 @fileno(ptr noundef %9616) #12
  %9618 = call i32 @isatty(i32 noundef %9617) #12
  %.not1405 = icmp eq i32 %9618, 0
  br i1 %.not1405, label %9619, label %9620

9619:                                             ; preds = %9615, %9609
  br label %9620

9620:                                             ; preds = %9615, %9619
  %.str.5.sink4725 = phi ptr [ @.str.5, %9619 ], [ @.str.2, %9615 ]
  store i32 %9610, ptr %260, align 4, !tbaa !5
  %9621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9622 = load i32, ptr @test_count, align 4, !tbaa !5
  %9623 = load i32, ptr %206, align 4, !tbaa !5
  %9624 = call ptr @s2n_strerror(i32 noundef %9623, ptr noundef nonnull @.str.4) #12
  %9625 = load i32, ptr %206, align 4, !tbaa !5
  %9626 = call ptr @s2n_strerror_debug(i32 noundef %9625, ptr noundef nonnull @.str.4) #12
  %9627 = load i32, ptr %260, align 4, !tbaa !5
  %9628 = call ptr @strerror(i32 noundef %9627) #12
  %9629 = load i32, ptr %260, align 4, !tbaa !5
  %9630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9621, ptr noundef nonnull %.str.5.sink4725, i32 noundef %9622, ptr noundef nonnull @.str.189, ptr noundef nonnull @.str.1, i32 noundef 887, ptr noundef %9624, ptr noundef %9626, ptr noundef %9628, i32 noundef %9629) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9631:                                             ; preds = %9604
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %50) #12
  %9632 = load ptr, ptr %9361, align 8, !tbaa !88
  %9633 = getelementptr inbounds i8, ptr %9632, i64 16
  %9634 = load i8, ptr %9633, align 8, !tbaa !46
  %9635 = zext i8 %9634 to i16
  %9636 = load ptr, ptr %9358, align 8, !tbaa !90
  %9637 = getelementptr inbounds i8, ptr %9636, i64 20
  %9638 = load i16, ptr %9637, align 4, !tbaa !115
  %9639 = getelementptr inbounds i8, ptr %9328, i64 32
  %9640 = load i8, ptr %9639, align 8, !tbaa !116, !range !13, !noundef !14
  %9641 = trunc nuw i8 %9640 to i1
  %spec.select1664 = select i1 %9641, i16 %9635, i16 %9638
  %spec.select1665 = select i1 %9641, i16 %9638, i16 %9635
  br i1 %.not1401, label %9696, label %9642

9642:                                             ; preds = %9631
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %51) #12
  %9643 = add nsw i32 %9605, 2
  store i32 %9643, ptr @test_count, align 4, !tbaa !5
  %9644 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %48, ptr noundef nonnull %51) #12
  %9645 = icmp eq i32 %9644, -1
  br i1 %9645, label %9646, label %9668

9646:                                             ; preds = %9642
  %9647 = load i32, ptr %260, align 4, !tbaa !5
  %9648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9649 = call i32 @s2n_print_stacktrace(ptr noundef %9648) #12
  %9650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9651 = trunc nuw i8 %9650 to i1
  br i1 %9651, label %9652, label %9656

9652:                                             ; preds = %9646
  %9653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9654 = call i32 @fileno(ptr noundef %9653) #12
  %9655 = call i32 @isatty(i32 noundef %9654) #12
  %.not1419 = icmp eq i32 %9655, 0
  br i1 %.not1419, label %9656, label %9657

9656:                                             ; preds = %9652, %9646
  br label %9657

9657:                                             ; preds = %9652, %9656
  %.str.5.sink4734 = phi ptr [ @.str.5, %9656 ], [ @.str.2, %9652 ]
  store i32 %9647, ptr %260, align 4, !tbaa !5
  %9658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9659 = load i32, ptr @test_count, align 4, !tbaa !5
  %9660 = load i32, ptr %206, align 4, !tbaa !5
  %9661 = call ptr @s2n_strerror(i32 noundef %9660, ptr noundef nonnull @.str.4) #12
  %9662 = load i32, ptr %206, align 4, !tbaa !5
  %9663 = call ptr @s2n_strerror_debug(i32 noundef %9662, ptr noundef nonnull @.str.4) #12
  %9664 = load i32, ptr %260, align 4, !tbaa !5
  %9665 = call ptr @strerror(i32 noundef %9664) #12
  %9666 = load i32, ptr %260, align 4, !tbaa !5
  %9667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9658, ptr noundef nonnull %.str.5.sink4734, i32 noundef %9659, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 898, ptr noundef %9661, ptr noundef %9663, ptr noundef %9665, i32 noundef %9666) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9668:                                             ; preds = %9642
  %9669 = load i32, ptr @test_count, align 4, !tbaa !5
  %9670 = add nsw i32 %9669, 1
  store i32 %9670, ptr @test_count, align 4, !tbaa !5
  %9671 = load i16, ptr %51, align 2, !tbaa !52
  %9672 = icmp eq i16 %9671, %spec.select1665
  br i1 %9672, label %9695, label %9673

9673:                                             ; preds = %9668
  %9674 = load i32, ptr %260, align 4, !tbaa !5
  %9675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9676 = call i32 @s2n_print_stacktrace(ptr noundef %9675) #12
  %9677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9678 = trunc nuw i8 %9677 to i1
  br i1 %9678, label %9679, label %9683

9679:                                             ; preds = %9673
  %9680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9681 = call i32 @fileno(ptr noundef %9680) #12
  %9682 = call i32 @isatty(i32 noundef %9681) #12
  %.not1406 = icmp eq i32 %9682, 0
  br i1 %.not1406, label %9683, label %9684

9683:                                             ; preds = %9679, %9673
  br label %9684

9684:                                             ; preds = %9679, %9683
  %.str.5.sink4743 = phi ptr [ @.str.5, %9683 ], [ @.str.2, %9679 ]
  store i32 %9674, ptr %260, align 4, !tbaa !5
  %9685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9686 = load i32, ptr @test_count, align 4, !tbaa !5
  %9687 = load i32, ptr %206, align 4, !tbaa !5
  %9688 = call ptr @s2n_strerror(i32 noundef %9687, ptr noundef nonnull @.str.4) #12
  %9689 = load i32, ptr %206, align 4, !tbaa !5
  %9690 = call ptr @s2n_strerror_debug(i32 noundef %9689, ptr noundef nonnull @.str.4) #12
  %9691 = load i32, ptr %260, align 4, !tbaa !5
  %9692 = call ptr @strerror(i32 noundef %9691) #12
  %9693 = load i32, ptr %260, align 4, !tbaa !5
  %9694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9685, ptr noundef nonnull %.str.5.sink4743, i32 noundef %9686, ptr noundef nonnull @.str.190, ptr noundef nonnull @.str.1, i32 noundef 898, ptr noundef %9688, ptr noundef %9690, ptr noundef %9692, i32 noundef %9693) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9695:                                             ; preds = %9668
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %51) #12
  br label %9696

9696:                                             ; preds = %9631, %9695
  %9697 = phi i32 [ %9606, %9631 ], [ %9670, %9695 ]
  %9698 = add nsw i32 %9697, 1
  store i32 %9698, ptr @test_count, align 4, !tbaa !5
  %9699 = zext i16 %spec.select1665 to i32
  %9700 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %48, i32 noundef %9699) #12
  %9701 = icmp eq i32 %9700, -1
  br i1 %9701, label %9702, label %9724

9702:                                             ; preds = %9696
  %9703 = load i32, ptr %260, align 4, !tbaa !5
  %9704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9705 = call i32 @s2n_print_stacktrace(ptr noundef %9704) #12
  %9706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9707 = trunc nuw i8 %9706 to i1
  br i1 %9707, label %9708, label %9712

9708:                                             ; preds = %9702
  %9709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9710 = call i32 @fileno(ptr noundef %9709) #12
  %9711 = call i32 @isatty(i32 noundef %9710) #12
  %.not1418 = icmp eq i32 %9711, 0
  br i1 %.not1418, label %9712, label %9713

9712:                                             ; preds = %9708, %9702
  br label %9713

9713:                                             ; preds = %9708, %9712
  %.str.5.sink4752 = phi ptr [ @.str.5, %9712 ], [ @.str.2, %9708 ]
  store i32 %9703, ptr %260, align 4, !tbaa !5
  %9714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9715 = load i32, ptr @test_count, align 4, !tbaa !5
  %9716 = load i32, ptr %206, align 4, !tbaa !5
  %9717 = call ptr @s2n_strerror(i32 noundef %9716, ptr noundef nonnull @.str.4) #12
  %9718 = load i32, ptr %206, align 4, !tbaa !5
  %9719 = call ptr @s2n_strerror_debug(i32 noundef %9718, ptr noundef nonnull @.str.4) #12
  %9720 = load i32, ptr %260, align 4, !tbaa !5
  %9721 = call ptr @strerror(i32 noundef %9720) #12
  %9722 = load i32, ptr %260, align 4, !tbaa !5
  %9723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9714, ptr noundef nonnull %.str.5.sink4752, i32 noundef %9715, ptr noundef nonnull @.str.191, ptr noundef nonnull @.str.1, i32 noundef 900, ptr noundef %9717, ptr noundef %9719, ptr noundef %9721, i32 noundef %9722) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9724:                                             ; preds = %9696
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not1401, label %9779, label %9725

9725:                                             ; preds = %9724
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %52) #12
  %9726 = add nsw i32 %.pre, 1
  store i32 %9726, ptr @test_count, align 4, !tbaa !5
  %9727 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %48, ptr noundef nonnull %52) #12
  %9728 = icmp eq i32 %9727, -1
  br i1 %9728, label %9729, label %9751

9729:                                             ; preds = %9725
  %9730 = load i32, ptr %260, align 4, !tbaa !5
  %9731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9732 = call i32 @s2n_print_stacktrace(ptr noundef %9731) #12
  %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) #12
  %9738 = call i32 @isatty(i32 noundef %9737) #12
  %.not1417 = icmp eq i32 %9738, 0
  br i1 %.not1417, label %9739, label %9740

9739:                                             ; preds = %9735, %9729
  br label %9740

9740:                                             ; preds = %9735, %9739
  %.str.5.sink4761 = phi ptr [ @.str.5, %9739 ], [ @.str.2, %9735 ]
  store i32 %9730, ptr %260, 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 %206, align 4, !tbaa !5
  %9744 = call ptr @s2n_strerror(i32 noundef %9743, ptr noundef nonnull @.str.4) #12
  %9745 = load i32, ptr %206, align 4, !tbaa !5
  %9746 = call ptr @s2n_strerror_debug(i32 noundef %9745, ptr noundef nonnull @.str.4) #12
  %9747 = load i32, ptr %260, align 4, !tbaa !5
  %9748 = call ptr @strerror(i32 noundef %9747) #12
  %9749 = load i32, ptr %260, align 4, !tbaa !5
  %9750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9741, ptr noundef nonnull %.str.5.sink4761, i32 noundef %9742, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 903, ptr noundef %9744, ptr noundef %9746, ptr noundef %9748, i32 noundef %9749) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9751:                                             ; preds = %9725
  %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 i16, ptr %52, align 2, !tbaa !52
  %9755 = icmp eq i16 %9754, %spec.select1664
  br i1 %9755, label %9778, label %9756

9756:                                             ; preds = %9751
  %9757 = load i32, ptr %260, align 4, !tbaa !5
  %9758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9759 = call i32 @s2n_print_stacktrace(ptr noundef %9758) #12
  %9760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9761 = trunc nuw i8 %9760 to i1
  br i1 %9761, label %9762, label %9766

9762:                                             ; preds = %9756
  %9763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9764 = call i32 @fileno(ptr noundef %9763) #12
  %9765 = call i32 @isatty(i32 noundef %9764) #12
  %.not1407 = icmp eq i32 %9765, 0
  br i1 %.not1407, label %9766, label %9767

9766:                                             ; preds = %9762, %9756
  br label %9767

9767:                                             ; preds = %9762, %9766
  %.str.5.sink4770 = phi ptr [ @.str.5, %9766 ], [ @.str.2, %9762 ]
  store i32 %9757, ptr %260, align 4, !tbaa !5
  %9768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9769 = load i32, ptr @test_count, align 4, !tbaa !5
  %9770 = load i32, ptr %206, align 4, !tbaa !5
  %9771 = call ptr @s2n_strerror(i32 noundef %9770, ptr noundef nonnull @.str.4) #12
  %9772 = load i32, ptr %206, align 4, !tbaa !5
  %9773 = call ptr @s2n_strerror_debug(i32 noundef %9772, ptr noundef nonnull @.str.4) #12
  %9774 = load i32, ptr %260, align 4, !tbaa !5
  %9775 = call ptr @strerror(i32 noundef %9774) #12
  %9776 = load i32, ptr %260, align 4, !tbaa !5
  %9777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9768, ptr noundef nonnull %.str.5.sink4770, i32 noundef %9769, ptr noundef nonnull @.str.192, ptr noundef nonnull @.str.1, i32 noundef 903, ptr noundef %9771, ptr noundef %9773, ptr noundef %9775, i32 noundef %9776) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9778:                                             ; preds = %9751
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %52) #12
  br label %9779

9779:                                             ; preds = %9778, %9724
  %9780 = phi i32 [ %9753, %9778 ], [ %.pre, %9724 ]
  %9781 = add nsw i32 %9780, 1
  store i32 %9781, ptr @test_count, align 4, !tbaa !5
  %9782 = zext i16 %spec.select1664 to i32
  %9783 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %48, i32 noundef %9782) #12
  %9784 = icmp eq i32 %9783, -1
  br i1 %9784, label %9785, label %9807

9785:                                             ; preds = %9779
  %9786 = load i32, ptr %260, align 4, !tbaa !5
  %9787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9788 = call i32 @s2n_print_stacktrace(ptr noundef %9787) #12
  %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) #12
  %9794 = call i32 @isatty(i32 noundef %9793) #12
  %.not1416 = icmp eq i32 %9794, 0
  br i1 %.not1416, label %9795, label %9796

9795:                                             ; preds = %9791, %9785
  br label %9796

9796:                                             ; preds = %9791, %9795
  %.str.5.sink4779 = phi ptr [ @.str.5, %9795 ], [ @.str.2, %9791 ]
  store i32 %9786, ptr %260, 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 %206, align 4, !tbaa !5
  %9800 = call ptr @s2n_strerror(i32 noundef %9799, ptr noundef nonnull @.str.4) #12
  %9801 = load i32, ptr %206, align 4, !tbaa !5
  %9802 = call ptr @s2n_strerror_debug(i32 noundef %9801, ptr noundef nonnull @.str.4) #12
  %9803 = load i32, ptr %260, align 4, !tbaa !5
  %9804 = call ptr @strerror(i32 noundef %9803) #12
  %9805 = load i32, ptr %260, align 4, !tbaa !5
  %9806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9797, ptr noundef nonnull %.str.5.sink4779, i32 noundef %9798, ptr noundef nonnull @.str.193, ptr noundef nonnull @.str.1, i32 noundef 905, ptr noundef %9800, ptr noundef %9802, ptr noundef %9804, i32 noundef %9805) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9807:                                             ; preds = %9779
  %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 = load i32, ptr %9210, align 4, !tbaa !54
  %9811 = load i32, ptr %9211, align 8, !tbaa !55
  %9812 = icmp eq i32 %9810, %9811
  br i1 %9812, label %9835, label %9813

9813:                                             ; preds = %9807
  %9814 = load i32, ptr %260, align 4, !tbaa !5
  %9815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9816 = call i32 @s2n_print_stacktrace(ptr noundef %9815) #12
  %9817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9818 = trunc nuw i8 %9817 to i1
  br i1 %9818, label %9819, label %9823

9819:                                             ; preds = %9813
  %9820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9821 = call i32 @fileno(ptr noundef %9820) #12
  %9822 = call i32 @isatty(i32 noundef %9821) #12
  %.not1408 = icmp eq i32 %9822, 0
  br i1 %.not1408, label %9823, label %9824

9823:                                             ; preds = %9819, %9813
  br label %9824

9824:                                             ; preds = %9819, %9823
  %.str.5.sink4788 = phi ptr [ @.str.5, %9823 ], [ @.str.2, %9819 ]
  store i32 %9814, ptr %260, align 4, !tbaa !5
  %9825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9826 = load i32, ptr @test_count, align 4, !tbaa !5
  %9827 = load i32, ptr %206, align 4, !tbaa !5
  %9828 = call ptr @s2n_strerror(i32 noundef %9827, ptr noundef nonnull @.str.4) #12
  %9829 = load i32, ptr %206, align 4, !tbaa !5
  %9830 = call ptr @s2n_strerror_debug(i32 noundef %9829, ptr noundef nonnull @.str.4) #12
  %9831 = load i32, ptr %260, align 4, !tbaa !5
  %9832 = call ptr @strerror(i32 noundef %9831) #12
  %9833 = load i32, ptr %260, align 4, !tbaa !5
  %9834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9825, ptr noundef nonnull %.str.5.sink4788, i32 noundef %9826, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 905, ptr noundef %9828, ptr noundef %9830, ptr noundef %9832, i32 noundef %9833) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9835:                                             ; preds = %9807
  %9836 = add nsw i32 %9808, 2
  store i32 %9836, ptr @test_count, align 4, !tbaa !5
  %9837 = load ptr, ptr %9322, align 8, !tbaa !42
  %9838 = icmp eq ptr %9837, null
  br i1 %9838, label %9861, label %9839

9839:                                             ; preds = %9835
  %9840 = load i32, ptr %260, align 4, !tbaa !5
  %9841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9842 = call i32 @s2n_print_stacktrace(ptr noundef %9841) #12
  %9843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9844 = trunc nuw i8 %9843 to i1
  br i1 %9844, label %9845, label %9849

9845:                                             ; preds = %9839
  %9846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9847 = call i32 @fileno(ptr noundef %9846) #12
  %9848 = call i32 @isatty(i32 noundef %9847) #12
  %.not1409 = icmp eq i32 %9848, 0
  br i1 %.not1409, label %9849, label %9850

9849:                                             ; preds = %9845, %9839
  br label %9850

9850:                                             ; preds = %9845, %9849
  %.str.5.sink4797 = phi ptr [ @.str.5, %9849 ], [ @.str.2, %9845 ]
  store i32 %9840, ptr %260, align 4, !tbaa !5
  %9851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9852 = load i32, ptr @test_count, align 4, !tbaa !5
  %9853 = load i32, ptr %206, align 4, !tbaa !5
  %9854 = call ptr @s2n_strerror(i32 noundef %9853, ptr noundef nonnull @.str.4) #12
  %9855 = load i32, ptr %206, align 4, !tbaa !5
  %9856 = call ptr @s2n_strerror_debug(i32 noundef %9855, ptr noundef nonnull @.str.4) #12
  %9857 = load i32, ptr %260, align 4, !tbaa !5
  %9858 = call ptr @strerror(i32 noundef %9857) #12
  %9859 = load i32, ptr %260, align 4, !tbaa !5
  %9860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9851, ptr noundef nonnull %.str.5.sink4797, i32 noundef %9852, ptr noundef nonnull @.str.194, ptr noundef nonnull @.str.1, i32 noundef 907, ptr noundef %9854, ptr noundef %9856, ptr noundef %9858, i32 noundef %9859) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9861:                                             ; preds = %9835
  %9862 = add nsw i32 %9808, 3
  store i32 %9862, ptr @test_count, align 4, !tbaa !5
  %9863 = load ptr, ptr %9323, align 8, !tbaa !111
  %9864 = icmp eq ptr %9863, %9328
  br i1 %9864, label %9887, label %9865

9865:                                             ; preds = %9861
  %9866 = load i32, ptr %260, align 4, !tbaa !5
  %9867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9868 = call i32 @s2n_print_stacktrace(ptr noundef %9867) #12
  %9869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9870 = trunc nuw i8 %9869 to i1
  br i1 %9870, label %9871, label %9875

9871:                                             ; preds = %9865
  %9872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9873 = call i32 @fileno(ptr noundef %9872) #12
  %9874 = call i32 @isatty(i32 noundef %9873) #12
  %.not1410 = icmp eq i32 %9874, 0
  br i1 %.not1410, label %9875, label %9876

9875:                                             ; preds = %9871, %9865
  br label %9876

9876:                                             ; preds = %9871, %9875
  %.str.5.sink4806 = phi ptr [ @.str.5, %9875 ], [ @.str.2, %9871 ]
  store i32 %9866, ptr %260, align 4, !tbaa !5
  %9877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9878 = load i32, ptr @test_count, align 4, !tbaa !5
  %9879 = load i32, ptr %206, align 4, !tbaa !5
  %9880 = call ptr @s2n_strerror(i32 noundef %9879, ptr noundef nonnull @.str.4) #12
  %9881 = load i32, ptr %206, align 4, !tbaa !5
  %9882 = call ptr @s2n_strerror_debug(i32 noundef %9881, ptr noundef nonnull @.str.4) #12
  %9883 = load i32, ptr %260, align 4, !tbaa !5
  %9884 = call ptr @strerror(i32 noundef %9883) #12
  %9885 = load i32, ptr %260, align 4, !tbaa !5
  %9886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9877, ptr noundef nonnull %.str.5.sink4806, i32 noundef %9878, ptr noundef nonnull @.str.195, ptr noundef nonnull @.str.1, i32 noundef 908, ptr noundef %9880, ptr noundef %9882, ptr noundef %9884, i32 noundef %9885) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9887:                                             ; preds = %9861
  %9888 = add nsw i32 %9808, 4
  store i32 %9888, ptr @test_count, align 4, !tbaa !5
  %9889 = load ptr, ptr %9360, align 8, !tbaa !112
  %9890 = load ptr, ptr %9358, align 8, !tbaa !90
  %9891 = icmp eq ptr %9889, %9890
  br i1 %9891, label %9914, label %9892

9892:                                             ; preds = %9887
  %9893 = load i32, ptr %260, align 4, !tbaa !5
  %9894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9895 = call i32 @s2n_print_stacktrace(ptr noundef %9894) #12
  %9896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9897 = trunc nuw i8 %9896 to i1
  br i1 %9897, label %9898, label %9902

9898:                                             ; preds = %9892
  %9899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9900 = call i32 @fileno(ptr noundef %9899) #12
  %9901 = call i32 @isatty(i32 noundef %9900) #12
  %.not1411 = icmp eq i32 %9901, 0
  br i1 %.not1411, label %9902, label %9903

9902:                                             ; preds = %9898, %9892
  br label %9903

9903:                                             ; preds = %9898, %9902
  %.str.5.sink4815 = phi ptr [ @.str.5, %9902 ], [ @.str.2, %9898 ]
  store i32 %9893, ptr %260, align 4, !tbaa !5
  %9904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9905 = load i32, ptr @test_count, align 4, !tbaa !5
  %9906 = load i32, ptr %206, align 4, !tbaa !5
  %9907 = call ptr @s2n_strerror(i32 noundef %9906, ptr noundef nonnull @.str.4) #12
  %9908 = load i32, ptr %206, align 4, !tbaa !5
  %9909 = call ptr @s2n_strerror_debug(i32 noundef %9908, ptr noundef nonnull @.str.4) #12
  %9910 = load i32, ptr %260, align 4, !tbaa !5
  %9911 = call ptr @strerror(i32 noundef %9910) #12
  %9912 = load i32, ptr %260, align 4, !tbaa !5
  %9913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9904, ptr noundef nonnull %.str.5.sink4815, i32 noundef %9905, ptr noundef nonnull @.str.196, ptr noundef nonnull @.str.1, i32 noundef 909, ptr noundef %9907, ptr noundef %9909, ptr noundef %9911, i32 noundef %9912) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9914:                                             ; preds = %9887
  %9915 = add nsw i32 %9808, 5
  store i32 %9915, ptr @test_count, align 4, !tbaa !5
  %9916 = load ptr, ptr %9363, align 8, !tbaa !113
  %9917 = load ptr, ptr %9361, align 8, !tbaa !88
  %9918 = icmp eq ptr %9916, %9917
  br i1 %9918, label %9941, label %9919

9919:                                             ; preds = %9914
  %9920 = load i32, ptr %260, align 4, !tbaa !5
  %9921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9922 = call i32 @s2n_print_stacktrace(ptr noundef %9921) #12
  %9923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9924 = trunc nuw i8 %9923 to i1
  br i1 %9924, label %9925, label %9929

9925:                                             ; preds = %9919
  %9926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9927 = call i32 @fileno(ptr noundef %9926) #12
  %9928 = call i32 @isatty(i32 noundef %9927) #12
  %.not1412 = icmp eq i32 %9928, 0
  br i1 %.not1412, label %9929, label %9930

9929:                                             ; preds = %9925, %9919
  br label %9930

9930:                                             ; preds = %9925, %9929
  %.str.5.sink4824 = phi ptr [ @.str.5, %9929 ], [ @.str.2, %9925 ]
  store i32 %9920, ptr %260, align 4, !tbaa !5
  %9931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9932 = load i32, ptr @test_count, align 4, !tbaa !5
  %9933 = load i32, ptr %206, align 4, !tbaa !5
  %9934 = call ptr @s2n_strerror(i32 noundef %9933, ptr noundef nonnull @.str.4) #12
  %9935 = load i32, ptr %206, align 4, !tbaa !5
  %9936 = call ptr @s2n_strerror_debug(i32 noundef %9935, ptr noundef nonnull @.str.4) #12
  %9937 = load i32, ptr %260, align 4, !tbaa !5
  %9938 = call ptr @strerror(i32 noundef %9937) #12
  %9939 = load i32, ptr %260, align 4, !tbaa !5
  %9940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9931, ptr noundef nonnull %.str.5.sink4824, i32 noundef %9932, ptr noundef nonnull @.str.197, ptr noundef nonnull @.str.1, i32 noundef 910, ptr noundef %9934, ptr noundef %9936, ptr noundef %9938, i32 noundef %9939) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9941:                                             ; preds = %9914
  %9942 = add nsw i32 %9808, 6
  store i32 %9942, ptr @test_count, align 4, !tbaa !5
  %9943 = getelementptr inbounds i8, ptr %9216, i64 904
  %9944 = load i32, ptr %9943, align 8, !tbaa !117
  %9945 = getelementptr inbounds i8, ptr %9890, i64 18
  %9946 = load i16, ptr %9945, align 2, !tbaa !97
  %9947 = zext i16 %9946 to i32
  %9948 = icmp eq i32 %9944, %9947
  br i1 %9948, label %9971, label %9949

9949:                                             ; preds = %9941
  %9950 = load i32, ptr %260, align 4, !tbaa !5
  %9951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9952 = call i32 @s2n_print_stacktrace(ptr noundef %9951) #12
  %9953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9954 = trunc nuw i8 %9953 to i1
  br i1 %9954, label %9955, label %9959

9955:                                             ; preds = %9949
  %9956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9957 = call i32 @fileno(ptr noundef %9956) #12
  %9958 = call i32 @isatty(i32 noundef %9957) #12
  %.not1413 = icmp eq i32 %9958, 0
  br i1 %.not1413, label %9959, label %9960

9959:                                             ; preds = %9955, %9949
  br label %9960

9960:                                             ; preds = %9955, %9959
  %.str.5.sink4833 = phi ptr [ @.str.5, %9959 ], [ @.str.2, %9955 ]
  store i32 %9950, ptr %260, align 4, !tbaa !5
  %9961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9962 = load i32, ptr @test_count, align 4, !tbaa !5
  %9963 = load i32, ptr %206, align 4, !tbaa !5
  %9964 = call ptr @s2n_strerror(i32 noundef %9963, ptr noundef nonnull @.str.4) #12
  %9965 = load i32, ptr %206, align 4, !tbaa !5
  %9966 = call ptr @s2n_strerror_debug(i32 noundef %9965, ptr noundef nonnull @.str.4) #12
  %9967 = load i32, ptr %260, align 4, !tbaa !5
  %9968 = call ptr @strerror(i32 noundef %9967) #12
  %9969 = load i32, ptr %260, align 4, !tbaa !5
  %9970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9961, ptr noundef nonnull %.str.5.sink4833, i32 noundef %9962, ptr noundef nonnull @.str.198, ptr noundef nonnull @.str.1, i32 noundef 911, ptr noundef %9964, ptr noundef %9966, ptr noundef %9968, i32 noundef %9969) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9971:                                             ; preds = %9941
  %9972 = getelementptr inbounds i8, ptr %9216, i64 896
  %9973 = add nsw i32 %9808, 7
  store i32 %9973, ptr @test_count, align 4, !tbaa !5
  %9974 = load ptr, ptr %9972, align 8, !tbaa !118
  %9975 = icmp eq ptr %9974, null
  br i1 %9975, label %9976, label %9998

9976:                                             ; preds = %9971
  %9977 = load i32, ptr %260, align 4, !tbaa !5
  %9978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9979 = call i32 @s2n_print_stacktrace(ptr noundef %9978) #12
  %9980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9981 = trunc nuw i8 %9980 to i1
  br i1 %9981, label %9982, label %9986

9982:                                             ; preds = %9976
  %9983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9984 = call i32 @fileno(ptr noundef %9983) #12
  %9985 = call i32 @isatty(i32 noundef %9984) #12
  %.not1415 = icmp eq i32 %9985, 0
  br i1 %.not1415, label %9986, label %9987

9986:                                             ; preds = %9982, %9976
  br label %9987

9987:                                             ; preds = %9982, %9986
  %.str.5.sink4842 = phi ptr [ @.str.5, %9986 ], [ @.str.2, %9982 ]
  store i32 %9977, ptr %260, align 4, !tbaa !5
  %9988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9989 = load i32, ptr @test_count, align 4, !tbaa !5
  %9990 = load i32, ptr %206, align 4, !tbaa !5
  %9991 = call ptr @s2n_strerror(i32 noundef %9990, ptr noundef nonnull @.str.4) #12
  %9992 = load i32, ptr %206, align 4, !tbaa !5
  %9993 = call ptr @s2n_strerror_debug(i32 noundef %9992, ptr noundef nonnull @.str.4) #12
  %9994 = load i32, ptr %260, align 4, !tbaa !5
  %9995 = call ptr @strerror(i32 noundef %9994) #12
  %9996 = load i32, ptr %260, align 4, !tbaa !5
  %9997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9988, ptr noundef nonnull %.str.5.sink4842, i32 noundef %9989, ptr noundef nonnull @.str.199, ptr noundef nonnull @.str.1, i32 noundef 912, ptr noundef %9991, ptr noundef %9993, ptr noundef %9995, i32 noundef %9996) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9998:                                             ; preds = %9971
  %9999 = add nsw i32 %9808, 8
  store i32 %9999, ptr @test_count, align 4, !tbaa !5
  %10000 = call i32 @s2n_connection_free(ptr noundef nonnull %9216) #12
  %10001 = icmp eq i32 %10000, -1
  br i1 %10001, label %10002, label %10024

10002:                                            ; preds = %9998
  %10003 = load i32, ptr %260, align 4, !tbaa !5
  %10004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10005 = call i32 @s2n_print_stacktrace(ptr noundef %10004) #12
  %10006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10007 = trunc nuw i8 %10006 to i1
  br i1 %10007, label %10008, label %10012

10008:                                            ; preds = %10002
  %10009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10010 = call i32 @fileno(ptr noundef %10009) #12
  %10011 = call i32 @isatty(i32 noundef %10010) #12
  %.not1414 = icmp eq i32 %10011, 0
  br i1 %.not1414, label %10012, label %10013

10012:                                            ; preds = %10008, %10002
  br label %10013

10013:                                            ; preds = %10008, %10012
  %.str.5.sink4851 = phi ptr [ @.str.5, %10012 ], [ @.str.2, %10008 ]
  store i32 %10003, ptr %260, align 4, !tbaa !5
  %10014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10015 = load i32, ptr @test_count, align 4, !tbaa !5
  %10016 = load i32, ptr %206, align 4, !tbaa !5
  %10017 = call ptr @s2n_strerror(i32 noundef %10016, ptr noundef nonnull @.str.4) #12
  %10018 = load i32, ptr %206, align 4, !tbaa !5
  %10019 = call ptr @s2n_strerror_debug(i32 noundef %10018, ptr noundef nonnull @.str.4) #12
  %10020 = load i32, ptr %260, align 4, !tbaa !5
  %10021 = call ptr @strerror(i32 noundef %10020) #12
  %10022 = load i32, ptr %260, align 4, !tbaa !5
  %10023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10014, ptr noundef nonnull %.str.5.sink4851, i32 noundef %10015, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 914, ptr noundef %10017, ptr noundef %10019, ptr noundef %10021, i32 noundef %10022) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10024:                                            ; preds = %9998, %9330
  %10025 = call i32 @s2n_stuffer_free(ptr noundef nonnull %48) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %48) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #12
  %10026 = add nuw nsw i64 %.012291686, 1
  %exitcond.not = icmp eq i64 %10026, 8
  br i1 %exitcond.not, label %9212, label %9213, !llvm.loop !119

.loopexit:                                        ; preds = %9212, %9208
  %10027 = load i32, ptr @test_count, align 4, !tbaa !5
  %10028 = add nsw i32 %10027, 1
  store i32 %10028, ptr @test_count, align 4, !tbaa !5
  %10029 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %10030 = icmp eq ptr %10029, null
  br i1 %10030, label %10031, label %10053

10031:                                            ; preds = %.loopexit
  %10032 = load i32, ptr %260, align 4, !tbaa !5
  %10033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10034 = call i32 @s2n_print_stacktrace(ptr noundef %10033) #12
  %10035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10036 = trunc nuw i8 %10035 to i1
  br i1 %10036, label %10037, label %10041

10037:                                            ; preds = %10031
  %10038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10039 = call i32 @fileno(ptr noundef %10038) #12
  %10040 = call i32 @isatty(i32 noundef %10039) #12
  %.not1399 = icmp eq i32 %10040, 0
  br i1 %.not1399, label %10041, label %10042

10041:                                            ; preds = %10037, %10031
  br label %10042

10042:                                            ; preds = %10037, %10041
  %.str.5.sink4860 = phi ptr [ @.str.5, %10041 ], [ @.str.2, %10037 ]
  store i32 %10032, ptr %260, align 4, !tbaa !5
  %10043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10044 = load i32, ptr @test_count, align 4, !tbaa !5
  %10045 = load i32, ptr %206, align 4, !tbaa !5
  %10046 = call ptr @s2n_strerror(i32 noundef %10045, ptr noundef nonnull @.str.4) #12
  %10047 = load i32, ptr %206, align 4, !tbaa !5
  %10048 = call ptr @s2n_strerror_debug(i32 noundef %10047, ptr noundef nonnull @.str.4) #12
  %10049 = load i32, ptr %260, align 4, !tbaa !5
  %10050 = call ptr @strerror(i32 noundef %10049) #12
  %10051 = load i32, ptr %260, align 4, !tbaa !5
  %10052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10043, ptr noundef nonnull %.str.5.sink4860, i32 noundef %10044, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 922, ptr noundef %10046, ptr noundef %10048, ptr noundef %10050, i32 noundef %10051) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10053:                                            ; preds = %.loopexit
  %10054 = getelementptr inbounds i8, ptr %10029, i64 16
  store ptr %31, ptr %10054, align 8, !tbaa !15
  %10055 = getelementptr inbounds i8, ptr %10029, i64 220
  store i8 34, ptr %10055, align 4, !tbaa !56
  %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 = call i32 @s2n_conn_choose_state_machine(ptr noundef nonnull %10029, i8 noundef zeroext 34) #12
  %10059 = call zeroext i1 @s2n_result_is_ok(i32 %10058)
  br i1 %10059, label %10082, label %10060

10060:                                            ; preds = %10053
  %10061 = load i32, ptr %260, align 4, !tbaa !5
  %10062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10063 = call i32 @s2n_print_stacktrace(ptr noundef %10062) #12
  %10064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10065 = trunc nuw i8 %10064 to i1
  br i1 %10065, label %10066, label %10070

10066:                                            ; preds = %10060
  %10067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10068 = call i32 @fileno(ptr noundef %10067) #12
  %10069 = call i32 @isatty(i32 noundef %10068) #12
  %.not1364 = icmp eq i32 %10069, 0
  br i1 %.not1364, label %10070, label %10071

10070:                                            ; preds = %10066, %10060
  br label %10071

10071:                                            ; preds = %10066, %10070
  %.str.5.sink4869 = phi ptr [ @.str.5, %10070 ], [ @.str.2, %10066 ]
  store i32 %10061, ptr %260, align 4, !tbaa !5
  %10072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10073 = load i32, ptr @test_count, align 4, !tbaa !5
  %10074 = load i32, ptr %206, align 4, !tbaa !5
  %10075 = call ptr @s2n_strerror(i32 noundef %10074, ptr noundef nonnull @.str.4) #12
  %10076 = load i32, ptr %206, align 4, !tbaa !5
  %10077 = call ptr @s2n_strerror_debug(i32 noundef %10076, ptr noundef nonnull @.str.4) #12
  %10078 = load i32, ptr %260, align 4, !tbaa !5
  %10079 = call ptr @strerror(i32 noundef %10078) #12
  %10080 = load i32, ptr %260, align 4, !tbaa !5
  %10081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10072, ptr noundef nonnull %.str.5.sink4869, i32 noundef %10073, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 925, ptr noundef %10075, ptr noundef %10077, ptr noundef %10079, i32 noundef %10080) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10082:                                            ; preds = %10053
  %10083 = getelementptr inbounds i8, ptr %10029, i64 2172
  store i32 16, ptr %10083, align 4, !tbaa !57
  %10084 = getelementptr inbounds i8, ptr %10029, i64 2176
  store i32 1, ptr %10084, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #12
  store ptr null, ptr %53, align 8, !tbaa !9
  %10085 = load i32, ptr @test_count, align 4, !tbaa !5
  %10086 = add nsw i32 %10085, 1
  store i32 %10086, ptr @test_count, align 4, !tbaa !5
  %10087 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %10029, ptr noundef nonnull %53) #12
  %10088 = icmp eq i32 %10087, -1
  br i1 %10088, label %10089, label %10111

10089:                                            ; preds = %10082
  %10090 = load i32, ptr %260, align 4, !tbaa !5
  %10091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10092 = call i32 @s2n_print_stacktrace(ptr noundef %10091) #12
  %10093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10094 = trunc nuw i8 %10093 to i1
  br i1 %10094, label %10095, label %10099

10095:                                            ; preds = %10089
  %10096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10097 = call i32 @fileno(ptr noundef %10096) #12
  %10098 = call i32 @isatty(i32 noundef %10097) #12
  %.not1398 = icmp eq i32 %10098, 0
  br i1 %.not1398, label %10099, label %10100

10099:                                            ; preds = %10095, %10089
  br label %10100

10100:                                            ; preds = %10095, %10099
  %.str.5.sink4878 = phi ptr [ @.str.5, %10099 ], [ @.str.2, %10095 ]
  store i32 %10090, ptr %260, align 4, !tbaa !5
  %10101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10102 = load i32, ptr @test_count, align 4, !tbaa !5
  %10103 = load i32, ptr %206, align 4, !tbaa !5
  %10104 = call ptr @s2n_strerror(i32 noundef %10103, ptr noundef nonnull @.str.4) #12
  %10105 = load i32, ptr %206, align 4, !tbaa !5
  %10106 = call ptr @s2n_strerror_debug(i32 noundef %10105, ptr noundef nonnull @.str.4) #12
  %10107 = load i32, ptr %260, align 4, !tbaa !5
  %10108 = call ptr @strerror(i32 noundef %10107) #12
  %10109 = load i32, ptr %260, align 4, !tbaa !5
  %10110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10101, ptr noundef nonnull %.str.5.sink4878, i32 noundef %10102, ptr noundef nonnull @.str.181, ptr noundef nonnull @.str.1, i32 noundef 930, ptr noundef %10104, ptr noundef %10106, ptr noundef %10108, i32 noundef %10109) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10111:                                            ; preds = %10082
  %10112 = load i32, ptr @test_count, align 4, !tbaa !5
  %10113 = add nsw i32 %10112, 1
  store i32 %10113, ptr @test_count, align 4, !tbaa !5
  %10114 = load ptr, ptr %53, align 8, !tbaa !9
  %10115 = icmp eq ptr %10114, null
  br i1 %10115, label %10116, label %10138

10116:                                            ; preds = %10111
  %10117 = load i32, ptr %260, align 4, !tbaa !5
  %10118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10119 = call i32 @s2n_print_stacktrace(ptr noundef %10118) #12
  %10120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10121 = trunc nuw i8 %10120 to i1
  br i1 %10121, label %10122, label %10126

10122:                                            ; preds = %10116
  %10123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10124 = call i32 @fileno(ptr noundef %10123) #12
  %10125 = call i32 @isatty(i32 noundef %10124) #12
  %.not1397 = icmp eq i32 %10125, 0
  br i1 %.not1397, label %10126, label %10127

10126:                                            ; preds = %10122, %10116
  br label %10127

10127:                                            ; preds = %10122, %10126
  %.str.5.sink4887 = phi ptr [ @.str.5, %10126 ], [ @.str.2, %10122 ]
  store i32 %10117, ptr %260, align 4, !tbaa !5
  %10128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10129 = load i32, ptr @test_count, align 4, !tbaa !5
  %10130 = load i32, ptr %206, align 4, !tbaa !5
  %10131 = call ptr @s2n_strerror(i32 noundef %10130, ptr noundef nonnull @.str.4) #12
  %10132 = load i32, ptr %206, align 4, !tbaa !5
  %10133 = call ptr @s2n_strerror_debug(i32 noundef %10132, ptr noundef nonnull @.str.4) #12
  %10134 = load i32, ptr %260, align 4, !tbaa !5
  %10135 = call ptr @strerror(i32 noundef %10134) #12
  %10136 = load i32, ptr %260, align 4, !tbaa !5
  %10137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10128, ptr noundef nonnull %.str.5.sink4887, i32 noundef %10129, ptr noundef nonnull @.str.182, ptr noundef nonnull @.str.1, i32 noundef 931, ptr noundef %10131, ptr noundef %10133, ptr noundef %10135, i32 noundef %10136) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10138:                                            ; preds = %10111
  %10139 = add nsw i32 %10112, 2
  store i32 %10139, ptr @test_count, align 4, !tbaa !5
  %10140 = getelementptr inbounds i8, ptr %10029, i64 656
  %10141 = load ptr, ptr %10140, align 8, !tbaa !42
  %10142 = icmp eq ptr %10141, null
  br i1 %10142, label %10165, label %10143

10143:                                            ; preds = %10138
  %10144 = load i32, ptr %260, align 4, !tbaa !5
  %10145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10146 = call i32 @s2n_print_stacktrace(ptr noundef %10145) #12
  %10147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10148 = trunc nuw i8 %10147 to i1
  br i1 %10148, label %10149, label %10153

10149:                                            ; preds = %10143
  %10150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10151 = call i32 @fileno(ptr noundef %10150) #12
  %10152 = call i32 @isatty(i32 noundef %10151) #12
  %.not1365 = icmp eq i32 %10152, 0
  br i1 %.not1365, label %10153, label %10154

10153:                                            ; preds = %10149, %10143
  br label %10154

10154:                                            ; preds = %10149, %10153
  %.str.5.sink4896 = phi ptr [ @.str.5, %10153 ], [ @.str.2, %10149 ]
  store i32 %10144, ptr %260, align 4, !tbaa !5
  %10155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10156 = load i32, ptr @test_count, align 4, !tbaa !5
  %10157 = load i32, ptr %206, align 4, !tbaa !5
  %10158 = call ptr @s2n_strerror(i32 noundef %10157, ptr noundef nonnull @.str.4) #12
  %10159 = load i32, ptr %206, align 4, !tbaa !5
  %10160 = call ptr @s2n_strerror_debug(i32 noundef %10159, ptr noundef nonnull @.str.4) #12
  %10161 = load i32, ptr %260, align 4, !tbaa !5
  %10162 = call ptr @strerror(i32 noundef %10161) #12
  %10163 = load i32, ptr %260, align 4, !tbaa !5
  %10164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10155, ptr noundef nonnull %.str.5.sink4896, i32 noundef %10156, ptr noundef nonnull @.str.194, ptr noundef nonnull @.str.1, i32 noundef 933, ptr noundef %10158, ptr noundef %10160, ptr noundef %10162, i32 noundef %10163) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10165:                                            ; preds = %10138
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %54) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %54, i8 0, i64 40, i1 false)
  %10166 = add nsw i32 %10112, 3
  store i32 %10166, ptr @test_count, align 4, !tbaa !5
  %10167 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %54, i32 noundef 1024) #12
  %10168 = icmp eq i32 %10167, -1
  br i1 %10168, label %10181, label %.preheader

.preheader:                                       ; preds = %10165
  %10169 = load ptr, ptr %53, align 8, !tbaa !9
  %10170 = getelementptr inbounds i8, ptr %10169, i64 16
  %10171 = load i8, ptr %10170, align 8, !tbaa !72
  %.not1693 = icmp eq i8 %10171, 0
  br i1 %.not1693, label %._crit_edge1690, label %.lr.ph1689

.lr.ph1689:                                       ; preds = %.preheader
  %10172 = getelementptr inbounds i8, ptr %10029, i64 720
  %10173 = getelementptr inbounds i8, ptr %10029, i64 728
  %10174 = getelementptr inbounds i8, ptr %10029, i64 816
  %10175 = getelementptr inbounds i8, ptr %10029, i64 664
  %10176 = getelementptr inbounds i8, ptr %54, i64 28
  %10177 = getelementptr inbounds i8, ptr %54, i64 24
  %10178 = getelementptr inbounds i8, ptr %10029, i64 784
  %10179 = getelementptr inbounds i8, ptr %10029, i64 792
  %10180 = getelementptr inbounds i8, ptr %10029, i64 824
  br label %10207

10181:                                            ; preds = %10165
  %10182 = load i32, ptr %260, align 4, !tbaa !5
  %10183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10184 = call i32 @s2n_print_stacktrace(ptr noundef %10183) #12
  %10185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10186 = trunc nuw i8 %10185 to i1
  br i1 %10186, label %10187, label %10191

10187:                                            ; preds = %10181
  %10188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10189 = call i32 @fileno(ptr noundef %10188) #12
  %10190 = call i32 @isatty(i32 noundef %10189) #12
  %.not1396 = icmp eq i32 %10190, 0
  br i1 %.not1396, label %10191, label %10192

10191:                                            ; preds = %10187, %10181
  br label %10192

10192:                                            ; preds = %10187, %10191
  %.str.5.sink4905 = phi ptr [ @.str.5, %10191 ], [ @.str.2, %10187 ]
  store i32 %10182, ptr %260, align 4, !tbaa !5
  %10193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10194 = load i32, ptr @test_count, align 4, !tbaa !5
  %10195 = load i32, ptr %206, align 4, !tbaa !5
  %10196 = call ptr @s2n_strerror(i32 noundef %10195, ptr noundef nonnull @.str.4) #12
  %10197 = load i32, ptr %206, align 4, !tbaa !5
  %10198 = call ptr @s2n_strerror_debug(i32 noundef %10197, ptr noundef nonnull @.str.4) #12
  %10199 = load i32, ptr %260, align 4, !tbaa !5
  %10200 = call ptr @strerror(i32 noundef %10199) #12
  %10201 = load i32, ptr %260, align 4, !tbaa !5
  %10202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10193, ptr noundef nonnull %.str.5.sink4905, i32 noundef %10194, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 935, ptr noundef %10196, ptr noundef %10198, ptr noundef %10200, i32 noundef %10201) #14
  call void @exit(i32 noundef 1) #15
  unreachable

._crit_edge1690:                                  ; preds = %10590, %.preheader
  %10203 = load i32, ptr @test_count, align 4, !tbaa !5
  %10204 = add nsw i32 %10203, 1
  store i32 %10204, ptr @test_count, align 4, !tbaa !5
  %10205 = call i32 @s2n_connection_free(ptr noundef nonnull %10029) #12
  %10206 = icmp eq i32 %10205, -1
  br i1 %10206, label %10597, label %10619

10207:                                            ; preds = %.lr.ph1689, %10590
  %10208 = phi ptr [ %10169, %.lr.ph1689 ], [ %10592, %10590 ]
  %.012271688 = phi i64 [ 0, %.lr.ph1689 ], [ %10591, %10590 ]
  %10209 = getelementptr inbounds i8, ptr %10208, i64 24
  %10210 = load ptr, ptr %10209, align 8, !tbaa !74
  %10211 = getelementptr inbounds ptr, ptr %10210, i64 %.012271688
  %10212 = load ptr, ptr %10211, align 8, !tbaa !9
  %10213 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %10212) #12
  br i1 %10213, label %10214, label %10590

10214:                                            ; preds = %10207
  store ptr %10212, ptr %10172, align 8, !tbaa !111
  %10215 = getelementptr inbounds i8, ptr %10212, i64 24
  %10216 = load ptr, ptr %10215, align 8, !tbaa !90
  store ptr %10216, ptr %10173, align 8, !tbaa !112
  %10217 = getelementptr inbounds i8, ptr %10212, i64 16
  %10218 = load ptr, ptr %10217, align 8, !tbaa !88
  store ptr %10218, ptr %10174, align 8, !tbaa !113
  %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 = load ptr, ptr %10175, align 8, !tbaa !59
  %10222 = icmp eq ptr %10221, null
  br i1 %10222, label %10245, label %10223

10223:                                            ; preds = %10214
  %10224 = load i32, ptr %260, align 4, !tbaa !5
  %10225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10226 = call i32 @s2n_print_stacktrace(ptr noundef %10225) #12
  %10227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10228 = trunc nuw i8 %10227 to i1
  br i1 %10228, label %10229, label %10233

10229:                                            ; preds = %10223
  %10230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10231 = call i32 @fileno(ptr noundef %10230) #12
  %10232 = call i32 @isatty(i32 noundef %10231) #12
  %.not1382 = icmp eq i32 %10232, 0
  br i1 %.not1382, label %10233, label %10234

10233:                                            ; preds = %10229, %10223
  br label %10234

10234:                                            ; preds = %10229, %10233
  %.str.5.sink4914 = phi ptr [ @.str.5, %10233 ], [ @.str.2, %10229 ]
  store i32 %10224, ptr %260, align 4, !tbaa !5
  %10235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10236 = load i32, ptr @test_count, align 4, !tbaa !5
  %10237 = load i32, ptr %206, align 4, !tbaa !5
  %10238 = call ptr @s2n_strerror(i32 noundef %10237, ptr noundef nonnull @.str.4) #12
  %10239 = load i32, ptr %206, align 4, !tbaa !5
  %10240 = call ptr @s2n_strerror_debug(i32 noundef %10239, ptr noundef nonnull @.str.4) #12
  %10241 = load i32, ptr %260, align 4, !tbaa !5
  %10242 = call ptr @strerror(i32 noundef %10241) #12
  %10243 = load i32, ptr %260, align 4, !tbaa !5
  %10244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10235, ptr noundef nonnull %.str.5.sink4914, i32 noundef %10236, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 947, ptr noundef %10238, ptr noundef %10240, ptr noundef %10242, i32 noundef %10243) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10245:                                            ; preds = %10214
  %10246 = add nsw i32 %10219, 2
  store i32 %10246, ptr @test_count, align 4, !tbaa !5
  %10247 = load ptr, ptr %10140, align 8, !tbaa !42
  %10248 = icmp eq ptr %10247, null
  br i1 %10248, label %10271, label %10249

10249:                                            ; preds = %10245
  %10250 = load i32, ptr %260, align 4, !tbaa !5
  %10251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10252 = call i32 @s2n_print_stacktrace(ptr noundef %10251) #12
  %10253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10254 = trunc nuw i8 %10253 to i1
  br i1 %10254, label %10255, label %10259

10255:                                            ; preds = %10249
  %10256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10257 = call i32 @fileno(ptr noundef %10256) #12
  %10258 = call i32 @isatty(i32 noundef %10257) #12
  %.not1383 = icmp eq i32 %10258, 0
  br i1 %.not1383, label %10259, label %10260

10259:                                            ; preds = %10255, %10249
  br label %10260

10260:                                            ; preds = %10255, %10259
  %.str.5.sink4923 = phi ptr [ @.str.5, %10259 ], [ @.str.2, %10255 ]
  store i32 %10250, ptr %260, align 4, !tbaa !5
  %10261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10262 = load i32, ptr @test_count, align 4, !tbaa !5
  %10263 = load i32, ptr %206, align 4, !tbaa !5
  %10264 = call ptr @s2n_strerror(i32 noundef %10263, ptr noundef nonnull @.str.4) #12
  %10265 = load i32, ptr %206, align 4, !tbaa !5
  %10266 = call ptr @s2n_strerror_debug(i32 noundef %10265, ptr noundef nonnull @.str.4) #12
  %10267 = load i32, ptr %260, align 4, !tbaa !5
  %10268 = call ptr @strerror(i32 noundef %10267) #12
  %10269 = load i32, ptr %260, align 4, !tbaa !5
  %10270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10261, ptr noundef nonnull %.str.5.sink4923, i32 noundef %10262, ptr noundef nonnull @.str.194, ptr noundef nonnull @.str.1, i32 noundef 948, ptr noundef %10264, ptr noundef %10266, ptr noundef %10268, i32 noundef %10269) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10271:                                            ; preds = %10245
  %10272 = add nsw i32 %10219, 3
  store i32 %10272, ptr @test_count, align 4, !tbaa !5
  %10273 = call i32 %2026(ptr noundef nonnull %10029, ptr noundef nonnull %54) #12
  %10274 = icmp eq i32 %10273, -1
  br i1 %10274, label %10275, label %10297

10275:                                            ; preds = %10271
  %10276 = load i32, ptr %260, align 4, !tbaa !5
  %10277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10278 = call i32 @s2n_print_stacktrace(ptr noundef %10277) #12
  %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) #12
  %10284 = call i32 @isatty(i32 noundef %10283) #12
  %.not1395 = icmp eq i32 %10284, 0
  br i1 %.not1395, label %10285, label %10286

10285:                                            ; preds = %10281, %10275
  br label %10286

10286:                                            ; preds = %10281, %10285
  %.str.5.sink4932 = phi ptr [ @.str.5, %10285 ], [ @.str.2, %10281 ]
  store i32 %10276, ptr %260, 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 %206, align 4, !tbaa !5
  %10290 = call ptr @s2n_strerror(i32 noundef %10289, ptr noundef nonnull @.str.4) #12
  %10291 = load i32, ptr %206, align 4, !tbaa !5
  %10292 = call ptr @s2n_strerror_debug(i32 noundef %10291, ptr noundef nonnull @.str.4) #12
  %10293 = load i32, ptr %260, align 4, !tbaa !5
  %10294 = call ptr @strerror(i32 noundef %10293) #12
  %10295 = load i32, ptr %260, align 4, !tbaa !5
  %10296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10287, ptr noundef nonnull %.str.5.sink4932, i32 noundef %10288, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 950, ptr noundef %10290, ptr noundef %10292, ptr noundef %10294, i32 noundef %10295) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10297:                                            ; preds = %10271
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %55) #12
  %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_stuffer_read_uint16(ptr noundef nonnull %54, ptr noundef nonnull %55) #12
  %10301 = icmp eq i32 %10300, -1
  br i1 %10301, label %10302, label %10324

10302:                                            ; preds = %10297
  %10303 = load i32, ptr %260, align 4, !tbaa !5
  %10304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10305 = call i32 @s2n_print_stacktrace(ptr noundef %10304) #12
  %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) #12
  %10311 = call i32 @isatty(i32 noundef %10310) #12
  %.not1394 = icmp eq i32 %10311, 0
  br i1 %.not1394, label %10312, label %10313

10312:                                            ; preds = %10308, %10302
  br label %10313

10313:                                            ; preds = %10308, %10312
  %.str.5.sink4941 = phi ptr [ @.str.5, %10312 ], [ @.str.2, %10308 ]
  store i32 %10303, ptr %260, 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 %206, align 4, !tbaa !5
  %10317 = call ptr @s2n_strerror(i32 noundef %10316, ptr noundef nonnull @.str.4) #12
  %10318 = load i32, ptr %206, align 4, !tbaa !5
  %10319 = call ptr @s2n_strerror_debug(i32 noundef %10318, ptr noundef nonnull @.str.4) #12
  %10320 = load i32, ptr %260, align 4, !tbaa !5
  %10321 = call ptr @strerror(i32 noundef %10320) #12
  %10322 = load i32, ptr %260, align 4, !tbaa !5
  %10323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10314, ptr noundef nonnull %.str.5.sink4941, i32 noundef %10315, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 952, ptr noundef %10317, ptr noundef %10319, ptr noundef %10321, i32 noundef %10322) #14
  call void @exit(i32 noundef 1) #15
  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 i16, ptr %55, align 2, !tbaa !52
  %10328 = getelementptr inbounds i8, ptr %10212, i64 8
  %10329 = load i16, ptr %10328, align 8, !tbaa !85
  %10330 = icmp eq i16 %10327, %10329
  br i1 %10330, label %10353, label %10331

10331:                                            ; preds = %10324
  %10332 = load i32, ptr %260, align 4, !tbaa !5
  %10333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10334 = call i32 @s2n_print_stacktrace(ptr noundef %10333) #12
  %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) #12
  %10340 = call i32 @isatty(i32 noundef %10339) #12
  %.not1384 = icmp eq i32 %10340, 0
  br i1 %.not1384, label %10341, label %10342

10341:                                            ; preds = %10337, %10331
  br label %10342

10342:                                            ; preds = %10337, %10341
  %.str.5.sink4950 = phi ptr [ @.str.5, %10341 ], [ @.str.2, %10337 ]
  store i32 %10332, ptr %260, 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 %206, align 4, !tbaa !5
  %10346 = call ptr @s2n_strerror(i32 noundef %10345, ptr noundef nonnull @.str.4) #12
  %10347 = load i32, ptr %206, align 4, !tbaa !5
  %10348 = call ptr @s2n_strerror_debug(i32 noundef %10347, ptr noundef nonnull @.str.4) #12
  %10349 = load i32, ptr %260, align 4, !tbaa !5
  %10350 = call ptr @strerror(i32 noundef %10349) #12
  %10351 = load i32, ptr %260, align 4, !tbaa !5
  %10352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10343, ptr noundef nonnull %.str.5.sink4950, i32 noundef %10344, ptr noundef nonnull @.str.188, ptr noundef nonnull @.str.1, i32 noundef 952, ptr noundef %10346, ptr noundef %10348, ptr noundef %10350, i32 noundef %10351) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10353:                                            ; preds = %10324
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %55) #12
  %10354 = add nsw i32 %10325, 2
  store i32 %10354, ptr @test_count, align 4, !tbaa !5
  %10355 = load i32, ptr %10176, align 4, !tbaa !54
  %10356 = load i32, ptr %10177, align 8, !tbaa !55
  %10357 = icmp eq i32 %10355, %10356
  br i1 %10357, label %10380, label %10358

10358:                                            ; preds = %10353
  %10359 = load i32, ptr %260, align 4, !tbaa !5
  %10360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10361 = call i32 @s2n_print_stacktrace(ptr noundef %10360) #12
  %10362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10363 = trunc nuw i8 %10362 to i1
  br i1 %10363, label %10364, label %10368

10364:                                            ; preds = %10358
  %10365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10366 = call i32 @fileno(ptr noundef %10365) #12
  %10367 = call i32 @isatty(i32 noundef %10366) #12
  %.not1385 = icmp eq i32 %10367, 0
  br i1 %.not1385, label %10368, label %10369

10368:                                            ; preds = %10364, %10358
  br label %10369

10369:                                            ; preds = %10364, %10368
  %.str.5.sink4959 = phi ptr [ @.str.5, %10368 ], [ @.str.2, %10364 ]
  store i32 %10359, ptr %260, align 4, !tbaa !5
  %10370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10371 = load i32, ptr @test_count, align 4, !tbaa !5
  %10372 = load i32, ptr %206, align 4, !tbaa !5
  %10373 = call ptr @s2n_strerror(i32 noundef %10372, ptr noundef nonnull @.str.4) #12
  %10374 = load i32, ptr %206, align 4, !tbaa !5
  %10375 = call ptr @s2n_strerror_debug(i32 noundef %10374, ptr noundef nonnull @.str.4) #12
  %10376 = load i32, ptr %260, align 4, !tbaa !5
  %10377 = call ptr @strerror(i32 noundef %10376) #12
  %10378 = load i32, ptr %260, align 4, !tbaa !5
  %10379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10370, ptr noundef nonnull %.str.5.sink4959, i32 noundef %10371, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 953, ptr noundef %10373, ptr noundef %10375, ptr noundef %10377, i32 noundef %10378) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10380:                                            ; preds = %10353
  %10381 = add nsw i32 %10325, 3
  store i32 %10381, ptr @test_count, align 4, !tbaa !5
  %10382 = load ptr, ptr %10172, align 8, !tbaa !111
  %10383 = icmp eq ptr %10382, %10212
  br i1 %10383, label %10406, label %10384

10384:                                            ; preds = %10380
  %10385 = load i32, ptr %260, align 4, !tbaa !5
  %10386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10387 = call i32 @s2n_print_stacktrace(ptr noundef %10386) #12
  %10388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10389 = trunc nuw i8 %10388 to i1
  br i1 %10389, label %10390, label %10394

10390:                                            ; preds = %10384
  %10391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10392 = call i32 @fileno(ptr noundef %10391) #12
  %10393 = call i32 @isatty(i32 noundef %10392) #12
  %.not1386 = icmp eq i32 %10393, 0
  br i1 %.not1386, label %10394, label %10395

10394:                                            ; preds = %10390, %10384
  br label %10395

10395:                                            ; preds = %10390, %10394
  %.str.5.sink4968 = phi ptr [ @.str.5, %10394 ], [ @.str.2, %10390 ]
  store i32 %10385, ptr %260, align 4, !tbaa !5
  %10396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10397 = load i32, ptr @test_count, align 4, !tbaa !5
  %10398 = load i32, ptr %206, align 4, !tbaa !5
  %10399 = call ptr @s2n_strerror(i32 noundef %10398, ptr noundef nonnull @.str.4) #12
  %10400 = load i32, ptr %206, align 4, !tbaa !5
  %10401 = call ptr @s2n_strerror_debug(i32 noundef %10400, ptr noundef nonnull @.str.4) #12
  %10402 = load i32, ptr %260, align 4, !tbaa !5
  %10403 = call ptr @strerror(i32 noundef %10402) #12
  %10404 = load i32, ptr %260, align 4, !tbaa !5
  %10405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10396, ptr noundef nonnull %.str.5.sink4968, i32 noundef %10397, ptr noundef nonnull @.str.195, ptr noundef nonnull @.str.1, i32 noundef 955, ptr noundef %10399, ptr noundef %10401, ptr noundef %10403, i32 noundef %10404) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10406:                                            ; preds = %10380
  %10407 = add nsw i32 %10325, 4
  store i32 %10407, ptr @test_count, align 4, !tbaa !5
  %10408 = load ptr, ptr %10173, align 8, !tbaa !112
  %10409 = load ptr, ptr %10215, align 8, !tbaa !90
  %10410 = icmp eq ptr %10408, %10409
  br i1 %10410, label %10433, label %10411

10411:                                            ; preds = %10406
  %10412 = load i32, ptr %260, align 4, !tbaa !5
  %10413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10414 = call i32 @s2n_print_stacktrace(ptr noundef %10413) #12
  %10415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10416 = trunc nuw i8 %10415 to i1
  br i1 %10416, label %10417, label %10421

10417:                                            ; preds = %10411
  %10418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10419 = call i32 @fileno(ptr noundef %10418) #12
  %10420 = call i32 @isatty(i32 noundef %10419) #12
  %.not1387 = icmp eq i32 %10420, 0
  br i1 %.not1387, label %10421, label %10422

10421:                                            ; preds = %10417, %10411
  br label %10422

10422:                                            ; preds = %10417, %10421
  %.str.5.sink4977 = phi ptr [ @.str.5, %10421 ], [ @.str.2, %10417 ]
  store i32 %10412, ptr %260, align 4, !tbaa !5
  %10423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10424 = load i32, ptr @test_count, align 4, !tbaa !5
  %10425 = load i32, ptr %206, align 4, !tbaa !5
  %10426 = call ptr @s2n_strerror(i32 noundef %10425, ptr noundef nonnull @.str.4) #12
  %10427 = load i32, ptr %206, align 4, !tbaa !5
  %10428 = call ptr @s2n_strerror_debug(i32 noundef %10427, ptr noundef nonnull @.str.4) #12
  %10429 = load i32, ptr %260, align 4, !tbaa !5
  %10430 = call ptr @strerror(i32 noundef %10429) #12
  %10431 = load i32, ptr %260, align 4, !tbaa !5
  %10432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10423, ptr noundef nonnull %.str.5.sink4977, i32 noundef %10424, ptr noundef nonnull @.str.196, ptr noundef nonnull @.str.1, i32 noundef 956, ptr noundef %10426, ptr noundef %10428, ptr noundef %10430, i32 noundef %10431) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10433:                                            ; preds = %10406
  %10434 = add nsw i32 %10325, 5
  store i32 %10434, ptr @test_count, align 4, !tbaa !5
  %10435 = load ptr, ptr %10174, align 8, !tbaa !113
  %10436 = load ptr, ptr %10217, align 8, !tbaa !88
  %10437 = icmp eq ptr %10435, %10436
  br i1 %10437, label %10460, label %10438

10438:                                            ; preds = %10433
  %10439 = load i32, ptr %260, align 4, !tbaa !5
  %10440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10441 = call i32 @s2n_print_stacktrace(ptr noundef %10440) #12
  %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 = %10438
  %10445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10446 = call i32 @fileno(ptr noundef %10445) #12
  %10447 = call i32 @isatty(i32 noundef %10446) #12
  %.not1388 = icmp eq i32 %10447, 0
  br i1 %.not1388, label %10448, label %10449

10448:                                            ; preds = %10444, %10438
  br label %10449

10449:                                            ; preds = %10444, %10448
  %.str.5.sink4986 = phi ptr [ @.str.5, %10448 ], [ @.str.2, %10444 ]
  store i32 %10439, ptr %260, 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 %206, align 4, !tbaa !5
  %10453 = call ptr @s2n_strerror(i32 noundef %10452, ptr noundef nonnull @.str.4) #12
  %10454 = load i32, ptr %206, align 4, !tbaa !5
  %10455 = call ptr @s2n_strerror_debug(i32 noundef %10454, ptr noundef nonnull @.str.4) #12
  %10456 = load i32, ptr %260, align 4, !tbaa !5
  %10457 = call ptr @strerror(i32 noundef %10456) #12
  %10458 = load i32, ptr %260, align 4, !tbaa !5
  %10459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10450, ptr noundef nonnull %.str.5.sink4986, i32 noundef %10451, ptr noundef nonnull @.str.197, ptr noundef nonnull @.str.1, i32 noundef 957, ptr noundef %10453, ptr noundef %10455, ptr noundef %10457, i32 noundef %10458) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10460:                                            ; preds = %10433
  %10461 = add nsw i32 %10325, 6
  store i32 %10461, ptr @test_count, align 4, !tbaa !5
  %10462 = load ptr, ptr %10178, align 8, !tbaa !118
  %10463 = icmp eq ptr %10462, null
  br i1 %10463, label %10486, label %10464

10464:                                            ; preds = %10460
  %10465 = load i32, ptr %260, align 4, !tbaa !5
  %10466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10467 = call i32 @s2n_print_stacktrace(ptr noundef %10466) #12
  %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 = %10464
  %10471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10472 = call i32 @fileno(ptr noundef %10471) #12
  %10473 = call i32 @isatty(i32 noundef %10472) #12
  %.not1389 = icmp eq i32 %10473, 0
  br i1 %.not1389, label %10474, label %10475

10474:                                            ; preds = %10470, %10464
  br label %10475

10475:                                            ; preds = %10470, %10474
  %.str.5.sink4995 = phi ptr [ @.str.5, %10474 ], [ @.str.2, %10470 ]
  store i32 %10465, ptr %260, 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 %206, align 4, !tbaa !5
  %10479 = call ptr @s2n_strerror(i32 noundef %10478, ptr noundef nonnull @.str.4) #12
  %10480 = load i32, ptr %206, align 4, !tbaa !5
  %10481 = call ptr @s2n_strerror_debug(i32 noundef %10480, ptr noundef nonnull @.str.4) #12
  %10482 = load i32, ptr %260, align 4, !tbaa !5
  %10483 = call ptr @strerror(i32 noundef %10482) #12
  %10484 = load i32, ptr %260, align 4, !tbaa !5
  %10485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10476, ptr noundef nonnull %.str.5.sink4995, i32 noundef %10477, ptr noundef nonnull @.str.200, ptr noundef nonnull @.str.1, i32 noundef 958, ptr noundef %10479, ptr noundef %10481, ptr noundef %10483, i32 noundef %10484) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10486:                                            ; preds = %10460
  %10487 = add nsw i32 %10325, 7
  store i32 %10487, ptr @test_count, align 4, !tbaa !5
  %10488 = load i32, ptr %10179, align 8, !tbaa !117
  %10489 = icmp eq i32 %10488, 0
  br i1 %10489, label %10512, label %10490

10490:                                            ; preds = %10486
  %10491 = load i32, ptr %260, align 4, !tbaa !5
  %10492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10493 = call i32 @s2n_print_stacktrace(ptr noundef %10492) #12
  %10494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10495 = trunc nuw i8 %10494 to i1
  br i1 %10495, label %10496, label %10500

10496:                                            ; preds = %10490
  %10497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10498 = call i32 @fileno(ptr noundef %10497) #12
  %10499 = call i32 @isatty(i32 noundef %10498) #12
  %.not1390 = icmp eq i32 %10499, 0
  br i1 %.not1390, label %10500, label %10501

10500:                                            ; preds = %10496, %10490
  br label %10501

10501:                                            ; preds = %10496, %10500
  %.str.5.sink5004 = phi ptr [ @.str.5, %10500 ], [ @.str.2, %10496 ]
  store i32 %10491, ptr %260, align 4, !tbaa !5
  %10502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10503 = load i32, ptr @test_count, align 4, !tbaa !5
  %10504 = load i32, ptr %206, align 4, !tbaa !5
  %10505 = call ptr @s2n_strerror(i32 noundef %10504, ptr noundef nonnull @.str.4) #12
  %10506 = load i32, ptr %206, align 4, !tbaa !5
  %10507 = call ptr @s2n_strerror_debug(i32 noundef %10506, ptr noundef nonnull @.str.4) #12
  %10508 = load i32, ptr %260, align 4, !tbaa !5
  %10509 = call ptr @strerror(i32 noundef %10508) #12
  %10510 = load i32, ptr %260, align 4, !tbaa !5
  %10511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10502, ptr noundef nonnull %.str.5.sink5004, i32 noundef %10503, ptr noundef nonnull @.str.201, ptr noundef nonnull @.str.1, i32 noundef 959, ptr noundef %10505, ptr noundef %10507, ptr noundef %10509, i32 noundef %10510) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10512:                                            ; preds = %10486
  %10513 = add nsw i32 %10325, 8
  store i32 %10513, ptr @test_count, align 4, !tbaa !5
  %10514 = load ptr, ptr %10180, align 8, !tbaa !120
  %10515 = icmp eq ptr %10514, null
  br i1 %10515, label %10538, label %10516

10516:                                            ; preds = %10512
  %10517 = load i32, ptr %260, align 4, !tbaa !5
  %10518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10519 = call i32 @s2n_print_stacktrace(ptr noundef %10518) #12
  %10520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10521 = trunc nuw i8 %10520 to i1
  br i1 %10521, label %10522, label %10526

10522:                                            ; preds = %10516
  %10523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10524 = call i32 @fileno(ptr noundef %10523) #12
  %10525 = call i32 @isatty(i32 noundef %10524) #12
  %.not1391 = icmp eq i32 %10525, 0
  br i1 %.not1391, label %10526, label %10527

10526:                                            ; preds = %10522, %10516
  br label %10527

10527:                                            ; preds = %10522, %10526
  %.str.5.sink5013 = phi ptr [ @.str.5, %10526 ], [ @.str.2, %10522 ]
  store i32 %10517, ptr %260, align 4, !tbaa !5
  %10528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10529 = load i32, ptr @test_count, align 4, !tbaa !5
  %10530 = load i32, ptr %206, align 4, !tbaa !5
  %10531 = call ptr @s2n_strerror(i32 noundef %10530, ptr noundef nonnull @.str.4) #12
  %10532 = load i32, ptr %206, align 4, !tbaa !5
  %10533 = call ptr @s2n_strerror_debug(i32 noundef %10532, ptr noundef nonnull @.str.4) #12
  %10534 = load i32, ptr %260, align 4, !tbaa !5
  %10535 = call ptr @strerror(i32 noundef %10534) #12
  %10536 = load i32, ptr %260, align 4, !tbaa !5
  %10537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10528, ptr noundef nonnull %.str.5.sink5013, i32 noundef %10529, ptr noundef nonnull @.str.202, ptr noundef nonnull @.str.1, i32 noundef 960, ptr noundef %10531, ptr noundef %10533, ptr noundef %10535, i32 noundef %10536) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10538:                                            ; preds = %10512
  %10539 = add nsw i32 %10325, 9
  store i32 %10539, ptr @test_count, align 4, !tbaa !5
  %10540 = load ptr, ptr %10140, align 8, !tbaa !42
  %10541 = icmp eq ptr %10540, null
  br i1 %10541, label %10564, label %10542

10542:                                            ; preds = %10538
  %10543 = load i32, ptr %260, align 4, !tbaa !5
  %10544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10545 = call i32 @s2n_print_stacktrace(ptr noundef %10544) #12
  %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) #12
  %10551 = call i32 @isatty(i32 noundef %10550) #12
  %.not1392 = icmp eq i32 %10551, 0
  br i1 %.not1392, label %10552, label %10553

10552:                                            ; preds = %10548, %10542
  br label %10553

10553:                                            ; preds = %10548, %10552
  %.str.5.sink5022 = phi ptr [ @.str.5, %10552 ], [ @.str.2, %10548 ]
  store i32 %10543, ptr %260, 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 %206, align 4, !tbaa !5
  %10557 = call ptr @s2n_strerror(i32 noundef %10556, ptr noundef nonnull @.str.4) #12
  %10558 = load i32, ptr %206, align 4, !tbaa !5
  %10559 = call ptr @s2n_strerror_debug(i32 noundef %10558, ptr noundef nonnull @.str.4) #12
  %10560 = load i32, ptr %260, align 4, !tbaa !5
  %10561 = call ptr @strerror(i32 noundef %10560) #12
  %10562 = load i32, ptr %260, align 4, !tbaa !5
  %10563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10554, ptr noundef nonnull %.str.5.sink5022, i32 noundef %10555, ptr noundef nonnull @.str.194, ptr noundef nonnull @.str.1, i32 noundef 962, ptr noundef %10557, ptr noundef %10559, ptr noundef %10561, i32 noundef %10562) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10564:                                            ; preds = %10538
  %10565 = add nsw i32 %10325, 10
  store i32 %10565, ptr @test_count, align 4, !tbaa !5
  %10566 = load ptr, ptr %10175, align 8, !tbaa !59
  %10567 = icmp eq ptr %10566, null
  br i1 %10567, label %10590, label %10568

10568:                                            ; preds = %10564
  %10569 = load i32, ptr %260, align 4, !tbaa !5
  %10570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10571 = call i32 @s2n_print_stacktrace(ptr noundef %10570) #12
  %10572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10573 = trunc nuw i8 %10572 to i1
  br i1 %10573, label %10574, label %10578

10574:                                            ; preds = %10568
  %10575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10576 = call i32 @fileno(ptr noundef %10575) #12
  %10577 = call i32 @isatty(i32 noundef %10576) #12
  %.not1393 = icmp eq i32 %10577, 0
  br i1 %.not1393, label %10578, label %10579

10578:                                            ; preds = %10574, %10568
  br label %10579

10579:                                            ; preds = %10574, %10578
  %.str.5.sink5031 = phi ptr [ @.str.5, %10578 ], [ @.str.2, %10574 ]
  store i32 %10569, ptr %260, align 4, !tbaa !5
  %10580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10581 = load i32, ptr @test_count, align 4, !tbaa !5
  %10582 = load i32, ptr %206, align 4, !tbaa !5
  %10583 = call ptr @s2n_strerror(i32 noundef %10582, ptr noundef nonnull @.str.4) #12
  %10584 = load i32, ptr %206, align 4, !tbaa !5
  %10585 = call ptr @s2n_strerror_debug(i32 noundef %10584, ptr noundef nonnull @.str.4) #12
  %10586 = load i32, ptr %260, align 4, !tbaa !5
  %10587 = call ptr @strerror(i32 noundef %10586) #12
  %10588 = load i32, ptr %260, align 4, !tbaa !5
  %10589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10580, ptr noundef nonnull %.str.5.sink5031, i32 noundef %10581, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 963, ptr noundef %10583, ptr noundef %10585, ptr noundef %10587, i32 noundef %10588) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10590:                                            ; preds = %10564, %10207
  %10591 = add nuw nsw i64 %.012271688, 1
  %10592 = load ptr, ptr %53, align 8, !tbaa !9
  %10593 = getelementptr inbounds i8, ptr %10592, i64 16
  %10594 = load i8, ptr %10593, align 8, !tbaa !72
  %10595 = zext i8 %10594 to i64
  %10596 = icmp ult i64 %10591, %10595
  br i1 %10596, label %10207, label %._crit_edge1690, !llvm.loop !121

10597:                                            ; preds = %._crit_edge1690
  %10598 = load i32, ptr %260, align 4, !tbaa !5
  %10599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10600 = call i32 @s2n_print_stacktrace(ptr noundef %10599) #12
  %10601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10602 = trunc nuw i8 %10601 to i1
  br i1 %10602, label %10603, label %10607

10603:                                            ; preds = %10597
  %10604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10605 = call i32 @fileno(ptr noundef %10604) #12
  %10606 = call i32 @isatty(i32 noundef %10605) #12
  %.not1381 = icmp eq i32 %10606, 0
  br i1 %.not1381, label %10607, label %10608

10607:                                            ; preds = %10603, %10597
  br label %10608

10608:                                            ; preds = %10603, %10607
  %.str.5.sink5040 = phi ptr [ @.str.5, %10607 ], [ @.str.2, %10603 ]
  store i32 %10598, ptr %260, align 4, !tbaa !5
  %10609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10610 = load i32, ptr @test_count, align 4, !tbaa !5
  %10611 = load i32, ptr %206, align 4, !tbaa !5
  %10612 = call ptr @s2n_strerror(i32 noundef %10611, ptr noundef nonnull @.str.4) #12
  %10613 = load i32, ptr %206, align 4, !tbaa !5
  %10614 = call ptr @s2n_strerror_debug(i32 noundef %10613, ptr noundef nonnull @.str.4) #12
  %10615 = load i32, ptr %260, align 4, !tbaa !5
  %10616 = call ptr @strerror(i32 noundef %10615) #12
  %10617 = load i32, ptr %260, align 4, !tbaa !5
  %10618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10609, ptr noundef nonnull %.str.5.sink5040, i32 noundef %10610, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 966, ptr noundef %10612, ptr noundef %10614, ptr noundef %10616, i32 noundef %10617) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10619:                                            ; preds = %._crit_edge1690
  %10620 = call i32 @s2n_stuffer_free(ptr noundef nonnull %54) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %54) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #12
  %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 ptr @s2n_connection_new(i32 noundef 0) #12
  %10624 = icmp eq ptr %10623, null
  br i1 %10624, label %10625, label %10647

10625:                                            ; preds = %10619
  %10626 = load i32, ptr %260, align 4, !tbaa !5
  %10627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10628 = call i32 @s2n_print_stacktrace(ptr noundef %10627) #12
  %10629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10630 = trunc nuw i8 %10629 to i1
  br i1 %10630, label %10631, label %10635

10631:                                            ; preds = %10625
  %10632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10633 = call i32 @fileno(ptr noundef %10632) #12
  %10634 = call i32 @isatty(i32 noundef %10633) #12
  %.not1380 = icmp eq i32 %10634, 0
  br i1 %.not1380, label %10635, label %10636

10635:                                            ; preds = %10631, %10625
  br label %10636

10636:                                            ; preds = %10631, %10635
  %.str.5.sink5049 = phi ptr [ @.str.5, %10635 ], [ @.str.2, %10631 ]
  store i32 %10626, ptr %260, align 4, !tbaa !5
  %10637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10638 = load i32, ptr @test_count, align 4, !tbaa !5
  %10639 = load i32, ptr %206, align 4, !tbaa !5
  %10640 = call ptr @s2n_strerror(i32 noundef %10639, ptr noundef nonnull @.str.4) #12
  %10641 = load i32, ptr %206, align 4, !tbaa !5
  %10642 = call ptr @s2n_strerror_debug(i32 noundef %10641, ptr noundef nonnull @.str.4) #12
  %10643 = load i32, ptr %260, align 4, !tbaa !5
  %10644 = call ptr @strerror(i32 noundef %10643) #12
  %10645 = load i32, ptr %260, align 4, !tbaa !5
  %10646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10637, ptr noundef nonnull %.str.5.sink5049, i32 noundef %10638, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 972, ptr noundef %10640, ptr noundef %10642, ptr noundef %10644, i32 noundef %10645) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10647:                                            ; preds = %10619
  %10648 = getelementptr inbounds i8, ptr %10623, i64 16
  store ptr %31, ptr %10648, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #12
  store ptr null, ptr %56, align 8, !tbaa !9
  %10649 = load i32, ptr @test_count, align 4, !tbaa !5
  %10650 = add nsw i32 %10649, 1
  store i32 %10650, ptr @test_count, align 4, !tbaa !5
  %10651 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %10623, ptr noundef nonnull %56) #12
  %10652 = icmp eq i32 %10651, -1
  br i1 %10652, label %10653, label %10675

10653:                                            ; preds = %10647
  %10654 = load i32, ptr %260, align 4, !tbaa !5
  %10655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10656 = call i32 @s2n_print_stacktrace(ptr noundef %10655) #12
  %10657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10658 = trunc nuw i8 %10657 to i1
  br i1 %10658, label %10659, label %10663

10659:                                            ; preds = %10653
  %10660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10661 = call i32 @fileno(ptr noundef %10660) #12
  %10662 = call i32 @isatty(i32 noundef %10661) #12
  %.not1379 = icmp eq i32 %10662, 0
  br i1 %.not1379, label %10663, label %10664

10663:                                            ; preds = %10659, %10653
  br label %10664

10664:                                            ; preds = %10659, %10663
  %.str.5.sink5058 = phi ptr [ @.str.5, %10663 ], [ @.str.2, %10659 ]
  store i32 %10654, ptr %260, align 4, !tbaa !5
  %10665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10666 = load i32, ptr @test_count, align 4, !tbaa !5
  %10667 = load i32, ptr %206, align 4, !tbaa !5
  %10668 = call ptr @s2n_strerror(i32 noundef %10667, ptr noundef nonnull @.str.4) #12
  %10669 = load i32, ptr %206, align 4, !tbaa !5
  %10670 = call ptr @s2n_strerror_debug(i32 noundef %10669, ptr noundef nonnull @.str.4) #12
  %10671 = load i32, ptr %260, align 4, !tbaa !5
  %10672 = call ptr @strerror(i32 noundef %10671) #12
  %10673 = load i32, ptr %260, align 4, !tbaa !5
  %10674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10665, ptr noundef nonnull %.str.5.sink5058, i32 noundef %10666, ptr noundef nonnull @.str.181, ptr noundef nonnull @.str.1, i32 noundef 976, ptr noundef %10668, ptr noundef %10670, ptr noundef %10672, i32 noundef %10673) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10675:                                            ; preds = %10647
  %10676 = load i32, ptr @test_count, align 4, !tbaa !5
  %10677 = add nsw i32 %10676, 1
  store i32 %10677, ptr @test_count, align 4, !tbaa !5
  %10678 = load ptr, ptr %56, align 8, !tbaa !9
  %10679 = icmp eq ptr %10678, null
  br i1 %10679, label %10680, label %10702

10680:                                            ; preds = %10675
  %10681 = load i32, ptr %260, align 4, !tbaa !5
  %10682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10683 = call i32 @s2n_print_stacktrace(ptr noundef %10682) #12
  %10684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10685 = trunc nuw i8 %10684 to i1
  br i1 %10685, label %10686, label %10690

10686:                                            ; preds = %10680
  %10687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10688 = call i32 @fileno(ptr noundef %10687) #12
  %10689 = call i32 @isatty(i32 noundef %10688) #12
  %.not1378 = icmp eq i32 %10689, 0
  br i1 %.not1378, label %10690, label %10691

10690:                                            ; preds = %10686, %10680
  br label %10691

10691:                                            ; preds = %10686, %10690
  %.str.5.sink5067 = phi ptr [ @.str.5, %10690 ], [ @.str.2, %10686 ]
  store i32 %10681, ptr %260, align 4, !tbaa !5
  %10692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10693 = load i32, ptr @test_count, align 4, !tbaa !5
  %10694 = load i32, ptr %206, align 4, !tbaa !5
  %10695 = call ptr @s2n_strerror(i32 noundef %10694, ptr noundef nonnull @.str.4) #12
  %10696 = load i32, ptr %206, align 4, !tbaa !5
  %10697 = call ptr @s2n_strerror_debug(i32 noundef %10696, ptr noundef nonnull @.str.4) #12
  %10698 = load i32, ptr %260, align 4, !tbaa !5
  %10699 = call ptr @strerror(i32 noundef %10698) #12
  %10700 = load i32, ptr %260, align 4, !tbaa !5
  %10701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10692, ptr noundef nonnull %.str.5.sink5067, i32 noundef %10693, ptr noundef nonnull @.str.182, ptr noundef nonnull @.str.1, i32 noundef 977, ptr noundef %10695, ptr noundef %10697, ptr noundef %10699, i32 noundef %10700) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10702:                                            ; preds = %10675
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #12
  store ptr null, ptr %57, align 8, !tbaa !9
  %10703 = add nsw i32 %10676, 2
  store i32 %10703, ptr @test_count, align 4, !tbaa !5
  %10704 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %10623, ptr noundef nonnull %57) #12
  %10705 = icmp eq i32 %10704, -1
  br i1 %10705, label %10706, label %10728

10706:                                            ; preds = %10702
  %10707 = load i32, ptr %260, align 4, !tbaa !5
  %10708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10709 = call i32 @s2n_print_stacktrace(ptr noundef %10708) #12
  %10710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10711 = trunc nuw i8 %10710 to i1
  br i1 %10711, label %10712, label %10716

10712:                                            ; preds = %10706
  %10713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10714 = call i32 @fileno(ptr noundef %10713) #12
  %10715 = call i32 @isatty(i32 noundef %10714) #12
  %.not1377 = icmp eq i32 %10715, 0
  br i1 %.not1377, label %10716, label %10717

10716:                                            ; preds = %10712, %10706
  br label %10717

10717:                                            ; preds = %10712, %10716
  %.str.5.sink5076 = phi ptr [ @.str.5, %10716 ], [ @.str.2, %10712 ]
  store i32 %10707, ptr %260, align 4, !tbaa !5
  %10718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10719 = load i32, ptr @test_count, align 4, !tbaa !5
  %10720 = load i32, ptr %206, align 4, !tbaa !5
  %10721 = call ptr @s2n_strerror(i32 noundef %10720, ptr noundef nonnull @.str.4) #12
  %10722 = load i32, ptr %206, align 4, !tbaa !5
  %10723 = call ptr @s2n_strerror_debug(i32 noundef %10722, ptr noundef nonnull @.str.4) #12
  %10724 = load i32, ptr %260, align 4, !tbaa !5
  %10725 = call ptr @strerror(i32 noundef %10724) #12
  %10726 = load i32, ptr %260, align 4, !tbaa !5
  %10727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10718, ptr noundef nonnull %.str.5.sink5076, i32 noundef %10719, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 980, ptr noundef %10721, ptr noundef %10723, ptr noundef %10725, i32 noundef %10726) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10728:                                            ; preds = %10702
  %10729 = load i32, ptr @test_count, align 4, !tbaa !5
  %10730 = add nsw i32 %10729, 1
  store i32 %10730, ptr @test_count, align 4, !tbaa !5
  %10731 = load ptr, ptr %57, align 8, !tbaa !9
  %10732 = icmp eq ptr %10731, null
  br i1 %10732, label %10733, label %10755

10733:                                            ; preds = %10728
  %10734 = load i32, ptr %260, align 4, !tbaa !5
  %10735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10736 = call i32 @s2n_print_stacktrace(ptr noundef %10735) #12
  %10737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10738 = trunc nuw i8 %10737 to i1
  br i1 %10738, label %10739, label %10743

10739:                                            ; preds = %10733
  %10740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10741 = call i32 @fileno(ptr noundef %10740) #12
  %10742 = call i32 @isatty(i32 noundef %10741) #12
  %.not1376 = icmp eq i32 %10742, 0
  br i1 %.not1376, label %10743, label %10744

10743:                                            ; preds = %10739, %10733
  br label %10744

10744:                                            ; preds = %10739, %10743
  %.str.5.sink5085 = phi ptr [ @.str.5, %10743 ], [ @.str.2, %10739 ]
  store i32 %10734, ptr %260, align 4, !tbaa !5
  %10745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10746 = load i32, ptr @test_count, align 4, !tbaa !5
  %10747 = load i32, ptr %206, align 4, !tbaa !5
  %10748 = call ptr @s2n_strerror(i32 noundef %10747, ptr noundef nonnull @.str.4) #12
  %10749 = load i32, ptr %206, align 4, !tbaa !5
  %10750 = call ptr @s2n_strerror_debug(i32 noundef %10749, ptr noundef nonnull @.str.4) #12
  %10751 = load i32, ptr %260, align 4, !tbaa !5
  %10752 = call ptr @strerror(i32 noundef %10751) #12
  %10753 = load i32, ptr %260, align 4, !tbaa !5
  %10754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10745, ptr noundef nonnull %.str.5.sink5085, i32 noundef %10746, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 981, ptr noundef %10748, ptr noundef %10750, ptr noundef %10752, i32 noundef %10753) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10755:                                            ; preds = %10728
  %10756 = getelementptr inbounds i8, ptr %10731, i64 8
  %10757 = load ptr, ptr %10756, align 8, !tbaa !43
  %10758 = load ptr, ptr %10757, align 8, !tbaa !9
  %10759 = getelementptr inbounds i8, ptr %10623, i64 656
  store ptr %10758, ptr %10759, align 8, !tbaa !42
  %10760 = load ptr, ptr %56, align 8, !tbaa !9
  %10761 = getelementptr inbounds i8, ptr %10760, i64 24
  %10762 = load ptr, ptr %10761, align 8, !tbaa !74
  %10763 = load ptr, ptr %10762, align 8, !tbaa !9
  %10764 = getelementptr inbounds i8, ptr %10623, i64 720
  store ptr %10763, ptr %10764, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %58) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %58, i8 0, i64 40, i1 false)
  %10765 = add nsw i32 %10729, 2
  store i32 %10765, ptr @test_count, align 4, !tbaa !5
  %10766 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %58, i32 noundef 0) #12
  %10767 = icmp eq i32 %10766, -1
  br i1 %10767, label %10768, label %10790

10768:                                            ; preds = %10755
  %10769 = load i32, ptr %260, align 4, !tbaa !5
  %10770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10771 = call i32 @s2n_print_stacktrace(ptr noundef %10770) #12
  %10772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10773 = trunc nuw i8 %10772 to i1
  br i1 %10773, label %10774, label %10778

10774:                                            ; preds = %10768
  %10775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10776 = call i32 @fileno(ptr noundef %10775) #12
  %10777 = call i32 @isatty(i32 noundef %10776) #12
  %.not1375 = icmp eq i32 %10777, 0
  br i1 %.not1375, label %10778, label %10779

10778:                                            ; preds = %10774, %10768
  br label %10779

10779:                                            ; preds = %10774, %10778
  %.str.5.sink5094 = phi ptr [ @.str.5, %10778 ], [ @.str.2, %10774 ]
  store i32 %10769, ptr %260, align 4, !tbaa !5
  %10780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10781 = load i32, ptr @test_count, align 4, !tbaa !5
  %10782 = load i32, ptr %206, align 4, !tbaa !5
  %10783 = call ptr @s2n_strerror(i32 noundef %10782, ptr noundef nonnull @.str.4) #12
  %10784 = load i32, ptr %206, align 4, !tbaa !5
  %10785 = call ptr @s2n_strerror_debug(i32 noundef %10784, ptr noundef nonnull @.str.4) #12
  %10786 = load i32, ptr %260, align 4, !tbaa !5
  %10787 = call ptr @strerror(i32 noundef %10786) #12
  %10788 = load i32, ptr %260, align 4, !tbaa !5
  %10789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10780, ptr noundef nonnull %.str.5.sink5094, i32 noundef %10781, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 987, ptr noundef %10783, ptr noundef %10785, ptr noundef %10787, i32 noundef %10788) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10790:                                            ; preds = %10755
  %10791 = load i32, ptr @test_count, align 4, !tbaa !5
  %10792 = add nsw i32 %10791, 1
  store i32 %10792, ptr @test_count, align 4, !tbaa !5
  %10793 = call i32 %2026(ptr noundef nonnull %10623, ptr noundef nonnull %58) #12
  %10794 = icmp eq i32 %10793, -1
  br i1 %10794, label %10817, label %10795

10795:                                            ; preds = %10790
  %10796 = load i32, ptr %260, align 4, !tbaa !5
  %10797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10798 = call i32 @s2n_print_stacktrace(ptr noundef %10797) #12
  %10799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10800 = trunc nuw i8 %10799 to i1
  br i1 %10800, label %10801, label %10805

10801:                                            ; preds = %10795
  %10802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10803 = call i32 @fileno(ptr noundef %10802) #12
  %10804 = call i32 @isatty(i32 noundef %10803) #12
  %.not1366 = icmp eq i32 %10804, 0
  br i1 %.not1366, label %10805, label %10806

10805:                                            ; preds = %10801, %10795
  br label %10806

10806:                                            ; preds = %10801, %10805
  %.str.5.sink5103 = phi ptr [ @.str.5, %10805 ], [ @.str.2, %10801 ]
  store i32 %10796, ptr %260, align 4, !tbaa !5
  %10807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10808 = load i32, ptr @test_count, align 4, !tbaa !5
  %10809 = load i32, ptr %206, align 4, !tbaa !5
  %10810 = call ptr @s2n_strerror(i32 noundef %10809, ptr noundef nonnull @.str.4) #12
  %10811 = load i32, ptr %206, align 4, !tbaa !5
  %10812 = call ptr @s2n_strerror_debug(i32 noundef %10811, ptr noundef nonnull @.str.4) #12
  %10813 = load i32, ptr %260, align 4, !tbaa !5
  %10814 = call ptr @strerror(i32 noundef %10813) #12
  %10815 = load i32, ptr %260, align 4, !tbaa !5
  %10816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10807, ptr noundef nonnull %.str.5.sink5103, i32 noundef %10808, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 989, ptr noundef %10810, ptr noundef %10812, ptr noundef %10814, i32 noundef %10815) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10817:                                            ; preds = %10790
  %10818 = load i32, ptr @test_count, align 4, !tbaa !5
  %10819 = add nsw i32 %10818, 1
  store i32 %10819, ptr @test_count, align 4, !tbaa !5
  %10820 = load i32, ptr %206, align 4, !tbaa !5
  %10821 = icmp eq i32 %10820, 335544356
  br i1 %10821, label %10844, label %10822

10822:                                            ; preds = %10817
  %10823 = load i32, ptr %260, align 4, !tbaa !5
  %10824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10825 = call i32 @s2n_print_stacktrace(ptr noundef %10824) #12
  %10826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10827 = trunc nuw i8 %10826 to i1
  br i1 %10827, label %10828, label %10832

10828:                                            ; preds = %10822
  %10829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10830 = call i32 @fileno(ptr noundef %10829) #12
  %10831 = call i32 @isatty(i32 noundef %10830) #12
  %.not1367 = icmp eq i32 %10831, 0
  br i1 %.not1367, label %10832, label %10833

10832:                                            ; preds = %10828, %10822
  br label %10833

10833:                                            ; preds = %10828, %10832
  %.str.5.sink5112 = phi ptr [ @.str.5, %10832 ], [ @.str.2, %10828 ]
  store i32 %10823, ptr %260, align 4, !tbaa !5
  %10834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10835 = load i32, ptr @test_count, align 4, !tbaa !5
  %10836 = load i32, ptr %206, align 4, !tbaa !5
  %10837 = call ptr @s2n_strerror(i32 noundef %10836, ptr noundef nonnull @.str.4) #12
  %10838 = load i32, ptr %206, align 4, !tbaa !5
  %10839 = call ptr @s2n_strerror_debug(i32 noundef %10838, ptr noundef nonnull @.str.4) #12
  %10840 = load i32, ptr %260, align 4, !tbaa !5
  %10841 = call ptr @strerror(i32 noundef %10840) #12
  %10842 = load i32, ptr %260, align 4, !tbaa !5
  %10843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10834, ptr noundef nonnull %.str.5.sink5112, i32 noundef %10835, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 989, ptr noundef %10837, ptr noundef %10839, ptr noundef %10841, i32 noundef %10842) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10844:                                            ; preds = %10817
  %10845 = add nsw i32 %10818, 2
  store i32 %10845, ptr @test_count, align 4, !tbaa !5
  %10846 = call ptr @s2n_strerror_debug(i32 noundef 335544356, ptr noundef nonnull @.str.4) #12
  %10847 = icmp eq ptr %10846, null
  br i1 %10847, label %10848, label %10870

10848:                                            ; preds = %10844
  %10849 = load i32, ptr %260, align 4, !tbaa !5
  %10850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10851 = call i32 @s2n_print_stacktrace(ptr noundef %10850) #12
  %10852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10853 = trunc nuw i8 %10852 to i1
  br i1 %10853, label %10854, label %10858

10854:                                            ; preds = %10848
  %10855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10856 = call i32 @fileno(ptr noundef %10855) #12
  %10857 = call i32 @isatty(i32 noundef %10856) #12
  %.not1374 = icmp eq i32 %10857, 0
  br i1 %.not1374, label %10858, label %10859

10858:                                            ; preds = %10854, %10848
  br label %10859

10859:                                            ; preds = %10854, %10858
  %.str.5.sink5121 = phi ptr [ @.str.5, %10858 ], [ @.str.2, %10854 ]
  store i32 %10849, ptr %260, align 4, !tbaa !5
  %10860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10861 = load i32, ptr @test_count, align 4, !tbaa !5
  %10862 = load i32, ptr %206, align 4, !tbaa !5
  %10863 = call ptr @s2n_strerror(i32 noundef %10862, ptr noundef nonnull @.str.4) #12
  %10864 = load i32, ptr %206, align 4, !tbaa !5
  %10865 = call ptr @s2n_strerror_debug(i32 noundef %10864, ptr noundef nonnull @.str.4) #12
  %10866 = load i32, ptr %260, align 4, !tbaa !5
  %10867 = call ptr @strerror(i32 noundef %10866) #12
  %10868 = load i32, ptr %260, align 4, !tbaa !5
  %10869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10860, ptr noundef nonnull %.str.5.sink5121, i32 noundef %10861, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 989, ptr noundef %10863, ptr noundef %10865, ptr noundef %10867, i32 noundef %10868) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10870:                                            ; preds = %10844
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %260, align 4, !tbaa !5
  %10871 = load i32, ptr @test_count, align 4, !tbaa !5
  %10872 = add nsw i32 %10871, 1
  store i32 %10872, ptr @test_count, align 4, !tbaa !5
  %10873 = call i32 @s2n_connection_free(ptr noundef nonnull %10623) #12
  %10874 = icmp eq i32 %10873, -1
  br i1 %10874, label %10875, label %10897

10875:                                            ; preds = %10870
  %10876 = load i32, ptr %260, align 4, !tbaa !5
  %10877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10878 = call i32 @s2n_print_stacktrace(ptr noundef %10877) #12
  %10879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10880 = trunc nuw i8 %10879 to i1
  br i1 %10880, label %10881, label %10885

10881:                                            ; preds = %10875
  %10882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10883 = call i32 @fileno(ptr noundef %10882) #12
  %10884 = call i32 @isatty(i32 noundef %10883) #12
  %.not1373 = icmp eq i32 %10884, 0
  br i1 %.not1373, label %10885, label %10886

10885:                                            ; preds = %10881, %10875
  br label %10886

10886:                                            ; preds = %10881, %10885
  %.str.5.sink5130 = phi ptr [ @.str.5, %10885 ], [ @.str.2, %10881 ]
  store i32 %10876, ptr %260, align 4, !tbaa !5
  %10887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10888 = load i32, ptr @test_count, align 4, !tbaa !5
  %10889 = load i32, ptr %206, align 4, !tbaa !5
  %10890 = call ptr @s2n_strerror(i32 noundef %10889, ptr noundef nonnull @.str.4) #12
  %10891 = load i32, ptr %206, align 4, !tbaa !5
  %10892 = call ptr @s2n_strerror_debug(i32 noundef %10891, ptr noundef nonnull @.str.4) #12
  %10893 = load i32, ptr %260, align 4, !tbaa !5
  %10894 = call ptr @strerror(i32 noundef %10893) #12
  %10895 = load i32, ptr %260, align 4, !tbaa !5
  %10896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10887, ptr noundef nonnull %.str.5.sink5130, i32 noundef %10888, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 991, ptr noundef %10890, ptr noundef %10892, ptr noundef %10894, i32 noundef %10895) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10897:                                            ; preds = %10870
  %10898 = call i32 @s2n_stuffer_free(ptr noundef nonnull %58) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %58) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #12
  %10899 = call i32 @s2n_cleanup() #12
  %10900 = icmp eq i32 %10899, -1
  br i1 %10900, label %10901, label %10923

10901:                                            ; preds = %10897
  %10902 = load i32, ptr %260, align 4, !tbaa !5
  %10903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10904 = call i32 @s2n_print_stacktrace(ptr noundef %10903) #12
  %10905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10906 = trunc nuw i8 %10905 to i1
  br i1 %10906, label %10907, label %10911

10907:                                            ; preds = %10901
  %10908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10909 = call i32 @fileno(ptr noundef %10908) #12
  %10910 = call i32 @isatty(i32 noundef %10909) #12
  %.not1372 = icmp eq i32 %10910, 0
  br i1 %.not1372, label %10911, label %10912

10911:                                            ; preds = %10907, %10901
  br label %10912

10912:                                            ; preds = %10907, %10911
  %.str.5.sink5139 = phi ptr [ @.str.5, %10911 ], [ @.str.2, %10907 ]
  store i32 %10902, ptr %260, align 4, !tbaa !5
  %10913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10914 = load i32, ptr @test_count, align 4, !tbaa !5
  %10915 = load i32, ptr %206, align 4, !tbaa !5
  %10916 = call ptr @s2n_strerror(i32 noundef %10915, ptr noundef nonnull @.str.4) #12
  %10917 = load i32, ptr %206, align 4, !tbaa !5
  %10918 = call ptr @s2n_strerror_debug(i32 noundef %10917, ptr noundef nonnull @.str.4) #12
  %10919 = load i32, ptr %260, align 4, !tbaa !5
  %10920 = call ptr @strerror(i32 noundef %10919) #12
  %10921 = load i32, ptr %260, align 4, !tbaa !5
  %10922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10913, ptr noundef nonnull %.str.5.sink5139, i32 noundef %10914, ptr noundef nonnull @.str.203, ptr noundef nonnull @.str.1, i32 noundef 995, ptr noundef %10916, ptr noundef %10918, ptr noundef %10920, i32 noundef %10921) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10923:                                            ; preds = %10897
  %10924 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %10925 = icmp eq i32 %10924, -1
  br i1 %10925, label %10926, label %10948

10926:                                            ; preds = %10923
  %10927 = load i32, ptr %260, align 4, !tbaa !5
  %10928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10929 = call i32 @s2n_print_stacktrace(ptr noundef %10928) #12
  %10930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10931 = trunc nuw i8 %10930 to i1
  br i1 %10931, label %10932, label %10936

10932:                                            ; preds = %10926
  %10933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10934 = call i32 @fileno(ptr noundef %10933) #12
  %10935 = call i32 @isatty(i32 noundef %10934) #12
  %.not1371 = icmp eq i32 %10935, 0
  br i1 %.not1371, label %10936, label %10937

10936:                                            ; preds = %10932, %10926
  br label %10937

10937:                                            ; preds = %10932, %10936
  %.str.5.sink5148 = phi ptr [ @.str.5, %10936 ], [ @.str.2, %10932 ]
  store i32 %10927, ptr %260, align 4, !tbaa !5
  %10938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10939 = load i32, ptr @test_count, align 4, !tbaa !5
  %10940 = load i32, ptr %206, align 4, !tbaa !5
  %10941 = call ptr @s2n_strerror(i32 noundef %10940, ptr noundef nonnull @.str.4) #12
  %10942 = load i32, ptr %206, align 4, !tbaa !5
  %10943 = call ptr @s2n_strerror_debug(i32 noundef %10942, ptr noundef nonnull @.str.4) #12
  %10944 = load i32, ptr %260, align 4, !tbaa !5
  %10945 = call ptr @strerror(i32 noundef %10944) #12
  %10946 = load i32, ptr %260, align 4, !tbaa !5
  %10947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10938, ptr noundef nonnull %.str.5.sink5148, i32 noundef %10939, ptr noundef nonnull @.str.204, ptr noundef nonnull @.str.1, i32 noundef 995, ptr noundef %10941, ptr noundef %10943, ptr noundef %10945, i32 noundef %10946) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10948:                                            ; preds = %10923
  %10949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10950 = trunc nuw i8 %10949 to i1
  br i1 %10950, label %10951, label %10962

10951:                                            ; preds = %10948
  %10952 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10953 = call i32 @fileno(ptr noundef %10952) #12
  %10954 = call i32 @isatty(i32 noundef %10953) #12
  %.not1368 = icmp eq i32 %10954, 0
  br i1 %.not1368, label %10962, label %10955

10955:                                            ; preds = %10951
  %10956 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not1370 = icmp eq i32 %10956, 0
  %10957 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not1370, label %10960, label %10958

10958:                                            ; preds = %10955
  %10959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10957, ptr noundef nonnull @.str.205, i32 noundef %10956) #12
  br label %10969

10960:                                            ; preds = %10955
  %10961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10957, ptr noundef nonnull @.str.206) #12
  br label %10969

10962:                                            ; preds = %10951, %10948
  %10963 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not1369 = icmp eq i32 %10963, 0
  %10964 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not1369, label %10967, label %10965

10965:                                            ; preds = %10962
  %10966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10964, ptr noundef nonnull @.str.207, i32 noundef %10963) #12
  br label %10969

10967:                                            ; preds = %10962
  %10968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10964, ptr noundef nonnull @.str.208) #12
  br label %10969

10969:                                            ; preds = %10965, %10967, %10958, %10960
  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_enable_tls13_in_test(...) 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 i32 @s2n_server_key_share_send_check_ecdhe(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_is_evp_apis_supported(...) local_unnamed_addr #2

declare i32 @s2n_connection_get_ecc_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_extensions_server_key_share_send_size(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_all_protocol_versions(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

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

declare i32 @s2n_conn_choose_state_machine(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_set_connection_hello_retry_flags(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) #10

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_ecc_evp_params_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_alloc_from_hex(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_allow_response_extension(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_extension_recv(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_set_all_mutually_supported_groups(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_public_ecc_keys_are_equal(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_ecc_evp_compute_shared_secret_from_params(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

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

declare i32 @s2n_set_hello_retry_required(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_hello_retry_message(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_stuffer_init(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_pq_is_enabled() local_unnamed_addr #2

declare zeroext i1 @s2n_kem_group_is_available(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_read_server_key_share_hybrid_test_vectors(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_connection_get_kem_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_reread(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_server_key_share_send_check_pq_hybrid(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_kem_generate_keypair(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

attributes #0 = { 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 = { 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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { nofree nounwind willreturn memory(argmem: read) }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { cold nounwind }
attributes #15 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 16}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !10, i64 656}
!43 = !{!44, !10, i64 8}
!44 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!45 = !{!16, !10, i64 704}
!46 = !{!47, !7, i64 16}
!47 = !{!"s2n_ecc_named_curve", !31, i64 0, !6, i64 4, !10, i64 8, !7, i64 16, !10, i64 24}
!48 = !{!16, !10, i64 720}
!49 = !{!44, !7, i64 0}
!50 = distinct !{!50, !51}
!51 = !{!"llvm.loop.mustprogress"}
!52 = !{!31, !31, i64 0}
!53 = !{!47, !31, i64 0}
!54 = !{!32, !6, i64 28}
!55 = !{!32, !6, i64 24}
!56 = !{!16, !7, i64 220}
!57 = !{!16, !6, i64 2172}
!58 = !{!16, !6, i64 2176}
!59 = !{!16, !10, i64 664}
!60 = distinct !{!60, !51, !61}
!61 = !{!"llvm.loop.peeled.count", i32 1}
!62 = !{!63, !10, i64 8}
!63 = !{!"", !31, i64 0, !6, i64 2, !31, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!64 = distinct !{!64, !51}
!65 = !{!63, !31, i64 0}
!66 = !{!63, !10, i64 16}
!67 = !{!25, !6, i64 8}
!68 = !{!25, !10, i64 0}
!69 = !{!16, !10, i64 8}
!70 = !{!22, !10, i64 0}
!71 = !{!22, !10, i64 8}
!72 = !{!73, !7, i64 16}
!73 = !{!"s2n_kem_preferences", !7, i64 0, !10, i64 8, !7, i64 16, !10, i64 24, !7, i64 32}
!74 = !{!73, !10, i64 24}
!75 = !{!76, !7, i64 0}
!76 = !{!"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}
!77 = !{!76, !10, i64 8}
!78 = !{!76, !10, i64 16}
!79 = !{!76, !10, i64 24}
!80 = !{!76, !10, i64 32}
!81 = !{!76, !10, i64 40}
!82 = !{!76, !10, i64 48}
!83 = !{!76, !12, i64 56}
!84 = !{!16, !6, i64 2204}
!85 = !{!86, !31, i64 8}
!86 = !{!"s2n_kem_group", !10, i64 0, !31, i64 8, !10, i64 16, !10, i64 24, !12, i64 32}
!87 = !{!16, !10, i64 832}
!88 = !{!86, !10, i64 16}
!89 = !{!16, !10, i64 928}
!90 = !{!86, !10, i64 24}
!91 = !{!16, !10, i64 840}
!92 = !{!16, !12, i64 920}
!93 = !{!16, !10, i64 816}
!94 = !{!16, !10, i64 728}
!95 = !{!16, !10, i64 896}
!96 = !{!16, !6, i64 904}
!97 = !{!98, !31, i64 18}
!98 = !{!"s2n_kem", !10, i64 0, !6, i64 8, !31, i64 12, !31, i64 14, !31, i64 16, !31, i64 18, !31, i64 20, !10, i64 24, !10, i64 32, !10, i64 40}
!99 = !{!32, !10, i64 0}
!100 = distinct !{!100, !51}
!101 = !{!16, !7, i64 222}
!102 = !{!16, !10, i64 936}
!103 = !{!16, !10, i64 872}
!104 = !{!16, !10, i64 848}
!105 = !{!16, !10, i64 824}
!106 = !{!16, !10, i64 784}
!107 = !{!7, !7, i64 0}
!108 = distinct !{!108, !51}
!109 = !{!98, !31, i64 14}
!110 = distinct !{!110, !51}
!111 = !{!23, !10, i64 0}
!112 = !{!23, !10, i64 8}
!113 = !{!23, !10, i64 96}
!114 = !{!23, !12, i64 88}
!115 = !{!98, !31, i64 20}
!116 = !{!86, !12, i64 32}
!117 = !{!23, !6, i64 72}
!118 = !{!23, !10, i64 64}
!119 = distinct !{!119, !51}
!120 = !{!23, !10, i64 104}
!121 = distinct !{!121, !51}


; Effective O3 passes: ADCEPass,BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass